+1 from me.  This is pretty much what I've been banging on about for a few
years.  The implementation bit is the secondary concern and then its about
"what works best when", the real challenge for for IT to start working at
the business service level and its from there that the right implementation
decisions will be made.

Steve

On 15/06/07, Mike Glendinning <[EMAIL PROTECTED]> wrote:

  --- In 
[email protected]<service-orientated-architecture%40yahoogroups.com>,
"Mark Baker"
<[EMAIL PROTECTED]> wrote:
>
> On 6/13/07, Steve Jones <[EMAIL PROTECTED]> wrote:
> > So if the goal is to deliver IT that looks like and operates like
the business then ultimately it must be presented in service specific
ways.
>
> Why is that a goal, nevermind *the* goal? What are the
architectural
> benefits exactly? IMO, the goal should be to deliver a scalable,
> evolvable, extensible system with the right concerns properly
> separated through the principled application of constraints on the
> architectural elements of that system.

Mark/Steve,

let's not forget that the ultimate goal of most businesses is not to
create IT systems.

Leaving aside governmental and charitable organisations, most
businesses are designed simply to return financial benefits (whether
direct or indirect) to their owners, the shareholders.

A company like BP does this through the exploration, refining and
marketing of oil, gas and chemical products. Ford, on the other hand
chooses the manufacture and selling of motor vehicles. Citibank's
approach is to buy and sell financial products. And so on.

Of course the increasing competition resulting from globalised
markets means that today all of these companies *require* appropriate
IT systems to run their businesses. It is simply impractical to
operate such companies in a cost-effective way without a significant
investment in IT systems.

What we need is a way to decide what IT systems need to be built, how
they will interoperate with the other [human] parts of the
organisation and how to evaluate their cost and effectiveness at
supporting the objectives of the business.

In short, the real "system" to be designed is the business itself, of
which IT systems will be a [perhaps significant] part.

This is where thinking about "services" becomes useful.

The language of business design is very much about services, or the
three questions of:

1) What will you do for me (the service)?
2) How will this help my business?
3) How much will it cost?

So, we might have marketing services, finance services, HR services,
manufacturing services and customer support services all making up
our business. In choosing service suppliers, you care only
incidentally (through the SLA) about how the service is implemented.
Instead, services are considered as self-contained "black boxes".

Historically, the language of IT has been all about implementation
platforms and technology, with terms such as the mainframe,
client/server, SQL, Java, WSDL, REST and so on. In the context of
trying to design the [whole] business, this is largely irrelevant.

Now, if we can use the same language to talk about the operation of
the business as well as the IT systems then we are in a much better
position to understand and decide what IT systems are needed to
support the business. We can see immediately how these IT systems
will work with the other parts of the organisation to achieve the
aims of the business. And we can use the same methods for evaluating
the financial cost and benefits as we use elsewhere.

Although this may sound trivial, it is in fact a major step forward.

So what does this mean to the choice of technology implementation
approaches such as WS-Everything or REST? Clearly, WS-Everything is
more obviously oriented around "services", whilst REST is
about "resources". Isn't this a conflict?

Yes and no. This is where I think you need to take a hierarchical
(or fractal) view of the architecture, at least for two levels.

As we have seen, the concept of a "service" is a useful way to
partition the system that is the whole business. A business such as
BP, Ford or Citibank is a massive undertaking so we need some way to
simplify things and get a handle on how to design them.

But once we have broken the business down into "services", each such
service can be viewed as a system in its own right. Because the
services are self-contained, we can take a different implementation
approach to each one. Some might be dealt with by humans and manual
processes. Others might be heavyweight service-oriented IT systems
implemented using Java and WS-Everything. Still others might be way-
cool and resource-oriented IT systems using Ruby and REST.

I think it is a mistake to think that any large organisation can get
away with a single technology implementation approach for services.
In fact, I would go so far as to say that technology diversity is
*necessary* for survival. That is, you *need* both WS-Everything and
REST approaches in your organisation as well as a sprinkling of the
latest technological and product trends. A fractal approach to
service design can help you achieve this whilst controlling and
minimising the risks.

Regards,

-Mike Glendinning.

Reply via email to