So we're going to talk about service oriented architecture, a popular buzz word
that people used to think didn't mean anything and it almost died because it was
so vague that it's caught on and become popular.
So what does it mean?
It means an architecture where all of the components
are designed to be a service.
So, it wouldn't be the way you'd normally design
it.
Every single component, anybody else can use.
[sound] That's what service-oriented architecture means.
The applications themselves, what's an
application?
You pick a bunch of these services and put together the application
and what this means is, if you build your software this way, as a service oriented
architecture, it's really easy to use customized services because all of the
components that you put together to make one, you could make a variation that's
more specialized with very little work.
Another big advantage of service oriented architecture, it's so modular, and each of
these things are independent.
That if you've made a mistake in the design, it's
a lot easier to repair.
'Cause each of the services are independent.
You can replace one with a better design.
It's, it, it's more a more flexible design.
So those are the two big ideas there in service
architecture.
So what, we need a name for the thing that's not service oriented
architecture.
Is not a great name for that so Armando and I are using the word silo.
So a software silo, in that it's kind of monolithic, all the code is interlaced
against with one another.
It's probably the way you would normally write code.
Now, so there's a great story.
Armando found this website.
And what happened once.
It was a, a.
>> Googler at no, a blogger at Google, not a Googler at blog.
[laugh].
>> [laugh] >> It was a, it was a blogger at Google and he had two blogs.
He had the internal blog.
>> For the company, where he would rant about maybe the
company screwing up, and he had a public blog that he would talk about technology.
And he accidentally put his Google rant on the public blog.
Armando saw it, got a copy of it, and, and we put it into the
book.
[laugh].
>> [laugh] >> [laugh] And, and the, and it's gone, right?
If you go to his blog it's not there anymore.
Okay, so here's this blog.
Now what he was trying to make a point is That the point
he was trying to make Was that Amazon for all its weaknesses.
Got service [inaudible].
And Google for all its strengths does not.
That's the point he was trying to make.
So he said, this is what happened at.
So his rant, was when he worked at Amazon.
This is what happened at Amazon.
This was like five or seven years after Amazon was a successful company so
its software was built as a silo.
The Jeff Boz Bozos.
[laugh] Bezos.
[laugh] Jeff Bezos, wrote, that's [laugh], kind of a
Freudian slip there.
Jeff Bezos [laugh] wrote this email.
Now Jeff Bezos, a very interesting, very smart guy.
He got, h, he's got a degree in computer science, a
bachelor's degree in computer science from Princeton.
But he's the head of, of Amazon.com.
So he sends this email.
Here's the first part of the email.
And, and I'm quoting the blogger.
So this isn't exactly word for word, but this is the essence of
what he said.
All teams will henceforth expose their data and functionality
through service interfaces.
This is from the CEO.
This one.
Two, teams must communicate with each other through these
interfaces.
You're gonna make them available and everybody's gonna have to
use'em.
There are no other ways to communicate.
No other kind of interprocess, there's no direct linking,
you can't, you know, you can't do reads of that, somebody else's data.
There's no shared memory, everything's independent,
there's no cheats.
You know, you can't say, oh yeah, everybody does that but h-,
you're my friend, you can use it this way.
You're gonna, only way you're gonna allowed is via service interfaces, calls
over the network.
So it's as if every service is running on its own computer and
it's gotta go over the network.
So this is gonna have some performance consequences
with it, right?
It'll be a lot faster [inaudible].
It says, this is what we're gonna do.
This is, so this is point three of the email.
This is one email that the CEO sends out.
So you, you come into work when they start reading this.
I don't care which protocol you use.
So we tried to stay away from religious wars and which of
the various APIs.
I don't care which one you use.
He actually doesn't care that much as long as you use something.
So you guys decide what you want to use and
different groups use different APIs, I can live with it, but you've got to use the
service here.
He didn't use the word service [inaudible] architecture.
He said we're going to go through these APIs.
So service interfaces, without exception,
must be designed from the ground up to be externalizable.
That is to say, the team must plan a design to be able to expose
the interface to developers in the outside world.
No exceptions.
Well, you know?
You know, a CEO sends us out.
I dunno, I'm an engineer; I'm smarter than the CEO.
I dunno if I wanna follow advice or not.
So what did, what did the CEO put in the
next, what was the next point?
Anyone who doesn't do this will be fired.
[laugh] So that probably got the attention of all of
the engineers in the company.
[laugh] You'll see.
You're gonna do this and this and this.
If you don't, I'm gonna fire ya.
Okay?
And then and then the last note was, have a nice day.
[laugh].
Now the guy who wrote the blogs said actually, those
people who worked at Amazon know, that there's one of the seven points that
wouldn't have happened.
And he said this was the point that actually he wouldn't
have said have a nice day.
He would have just thought anyone who does this will be
fired.
But it was funnier to put that one in.
Okay, so this was kind of from a [inaudible] and I perspective kinda the
best description of what service orientated architecture is.
Right, everything has to use a service interface,
if you don't use it you're going to be fired.
Because if you had kinda a 50/50 silo service orientated architecture, you
don't have it.
And, the point he was trying to make was Google doesn't
understand service oriented architecture.
They build model software.
And there're examples, like Google+.
The Facebook also had a revolution where Facebook made,
turned themselves into a service-oriented architecture.
They had, what was it, Facebook.
>> Facebook Connect.
>> Facebook.
>> Platform.
>> Facebook Platform.
They announced Facebook Platform, which was a service-oriented
architecture of Facebook, and suddenly, if you're reading New York Times, you can
find out what your friends on Facebook were reading as well.
But Google didn't get it, and so Google Plus He was ranting
about the only thing that they had.
They had zero.
Kind of services with Google plus from the [inaudible].
And later they had a Google plus thing that allow you to
track what other people did.
And, this blogger referred that as the stalking
feature [laugh].
But, it really didn't have this idea you can break it up and
[inaudible] it.
So let.
To make it more clear what the service in [inaudible] is.
Here's an example that we've got in the book.
Let me use this, so this is a monolithic one right?
There's a book store service.
These things can do direct reads from each data buses, invoke each other,
but the user has to go through into the single API book service.
What would a service oriented architecture look like
for that?
Now, these three things are separate systems.
The review service, the user profile service, the buying service.
You see that we're able to plug in.
To another service that wasn't actually part
of the other one.
Which is the credit card processing.
And this is the book store services.
And the dotted line is kind of the [inaudible].
But what we are able to do because every internal component was as
all service we can create another app that just that just kind a simple extension of
it favorite book service that you some of the same services before and this one plug
in another service which was a social networking service so you can get a group
favorite books by plug in some of these component with those components.
So that's, that's the, that's the idea of a
service oriented architecture.
It's actually a powerful idea even though in
the early days it looked like everything, everybody had a service oriented
architecture.
You just had to declare it.
And, you know, these corporations who started another path were able to reverse
course through a forceful CEO.
You can imagine [inaudible] Mark Zuckerberg didn't
send change your interfaces or I'll fire you, but you know, he's also, an
influential guy in the company.