I've been asked to present to a major financial institution which has bought into Service Oriented Architecture in a big way. They have a number of projects underway based around web services, Service Orientation and Orchestration. They clearly have a lot of expertise in these areas but want to discuss what the infrastructure that supports these SOA projects looks like. This is a request that I have heard a number of times recently from large organizations who understand the advantages of SOA, are building Service based systems but don't have a clear vision of plan for what those SOA systems should be built on.
It seems to me that what these organizations is looking for is a Service Oriented Infrastructure (SOI) to support their Service Oriented Architecture. This includes areas such as the base platform, networking, SANS, clustering, virtualization, security, identity and access control, SO middleware, deployment, auditing, metering, instrumentation, monitoring and management. These are the same areas that are covered by the definition of Infrastructure Architecture I blogged about yesterday, but with the goal of supporting an SOA implementation.
I group the elements of a SOI into three areas: Platform (networking, OS, Data, virtualization, middleware), Access control (security, identity management) and Management (deployment, provisioning, instrumentation, metering, monitoring, auditing and management).
So a definition of Service Oriented Infrastructure would be:
A Service Oriented Infrastructure (SOI) is the set of basic computing elements which are common across an organization and configured in such a manner to support a Service Oriented Architecture.
Does this seem reasonable? Again after a period for cogitation and feedback I will post to wikipedia.
Is it not perhaps a little too generic?
One could be refering to an infrastructure for another architecture.
Would it be incorrect, to insert the fundamental aspects of transport and connectivity in there somewhere?
Completely makes sense. I was considering this to be part of the SOA itself but as the concept of SOA matures, it seems these aspects are separate but related concepts.
In most SOA implementations I have had to deal with identity management across services. Although WSE is adding support for security, but it will be nice to have an infrastructure as a tailored infrastructure definitely helps.
SOI could help us move towards a SOA based environment from another aspect. One of the most common challenges for creating SOA-based environments is having access to every resource on the network. One of the tenets of SOA is autonomy but many people start coupling applications without knowing (e.g. I need the details of this customer so let's just do a join to the CRM application database). Ideally I would like my infrastructure to help me in visualising and managing this for me. In SOA each application has its own fiefdom, but an application does not have enough power to protect its citizens. For example other people start using the database or middle-tier components without going through a well-defined service interface.
So what I would really like to see (could be part of the DSI initiative?) is a way to define an application, specify interfaces (endpoints for services) and manage it. For example taking an application offline will affect consumers of the services. I would like to have an infrastructure (a management console) that allows me to select an application, set the status to offline and provide a message (e.g. saying that This application is now down for maintenance until midnight.) And this allows us to better manage interdependencies between services and create quality SOA applications and environments.
I need to watch this space closely!
It is indeed generic, i am gradually refining my ideas from definitions down through layers of abstractions to details. This is a top down journey, stay with me!
I think what you are talking about is very powerful and it would certainly be part of DSI. At the moment DSI dosnt really talk about health mapping but it will cerainly have to. This is where the managment packs are going today. There is a paper in the works discussing some of these health managment issues.
So I have a ton of feedback from a number of people about my SOI blog. There are a couple of key points...