Introduction and Context
I have been giving an SOA talk, in various forms for several years, where I concentrate on various themes. For the benefit of many who have not gone to such talks, as well as for others, I always wanted to start a written series based on these talks. Since, I can't sleep tonight, this is Part 1.
In this series, I would like to discuss a lot of concepts that are not tied to any particular technology stack whatsoever. SOA requires a Paradigm Shift in thinking and I am very interested in getting people there. Chief, among these ideas is that People Drive Business Outcomes, not technology. Thus, there are people and business drivers for SOA. Doing SOA for the sake of doing SOA or for some technology exercise is very likely to fail. We will use Microsoft Infrastructure Optimization (IO) to measure, yes measure the value of the business enablers in the context of a maturity model. Rather than being vague guidelines, we will instead have ways to measure business drivers and then the services that meet them into the context of creating a more dynamic IT.
However, as we delve into implementation, I will need to use a stack, and I will use Indigo. Yes, say it with me. The W-C-F is silent. It's pronounced "Indigo." Examples will be all with .NET Framework 3.5 SP1 Beta 1 and Visual Studio 2008 SP1 Beta 1. At that point, I envision the series moving more into how Indigo is a framework or platform for creating SOA. As WCF is THE one Microsoft distributed stack to rule them all (among the Microsoft stacks), I also have selfish reasons to stop the use, and promotion of non-SOA stacks like ASMX in a lot of the ASP.NET books and blogs I see and the non-SOA RPC-centric systems it creates.
We will talk about Microsoft Real World SOA and Expose-Compose-Consume. In that area, I would like to especially talk about Workflow and Workflow/Durable Services in 3.5.
We will spent a lot of time talking about Service Patterns and Message Exchange Patterns.
So, here is a tentative Outline. Tell me what you think, would like to see, etc.
Tentative Outline
- Symptoms of a Problem, Diagnosis and Why SOA?
- Dynamic IT to Support the Agile Business and Business Benefits of SOA
- What is SOA? The Many Definitions, a Working Definition, the Four Tenants
- What is a Service?
- Service Architectural Patterns
- The Current State of SOA and How to Make the Paradigm Shift
- Microsoft Approach to SOA
- Microsoft IO, App Plat IO, ESOMM Maturity Model and how Service Enablement Fits In
- Real World SOA and the "Middle-Out" Approach
- Short Term vs. Long-Term
- Introduction of the ESB as Long-Term A in SOA
- Introduction to WCF: Architecture and the "ABCs" of Indigo
- WCF: Bindings, Endpoints, and Hosting
- WCF: Contracts
- WCF: Behaviors and the Channel Stack
- Message Exchange Patterns and Greghor Hohpe EAI Patterns
- Introduction to BizTalk in context of Patterns
- BizTalk and It's Role in an SOA
- Asynchronous Messaging and Event-Driven Architectures
- Publish-Subscribe and Router Design Patterns
- Introduction to Neuron as WCF/SOA Enabler and "BizTalk and Neuron: Better Together"
- Neuron ESB and Publish-Subscribe, Mediation, Routing, etc.
- REST in Indigo 3.5
- Windows Workflow Introduction
- Workflow Services, Durable Services in 3.5
Symptoms of a Problem
So, what are some of the symptoms in the industry driving SOA? Well, there are a bunch of them, but they fundamentally stem from a mismatch between organizational needs and technical infrastructure. IT has become a conversation of "why we can't." What once was an Enabler has become a Barrier. So many companies have treated IT as a cost center and simply outsourced it. We see technology at home way before IT at work. It begins to feel like Paleontology.
What has happened? Simply, with 80% or more of the average IT budget spent on maintenance, the CIO can’t redeploy budget and resources to shift IT to strategic business asset. Less than 20% is spent on Business Results and New Value. Meanwhile, the poor CIO is getting hammered with SOX/Regulatory Compliance, Cost Reduction efforts, technology changes, security, keeping the islands and masses of legacy systems running.
· A dramatic shift in the perception of IT has occurred: The “State of the CIO Study” (CIO Research, 2006), shows that, more and more, CIOs are looking for IT to proactively initiate technology solutions to enable business outcomes, rather than a supporter role.
· There are increased business demands with increased M&A activity and regulatory pressures.
· IT is constantly being challenged to do more with less.
· Too frequently, the existing IT portfolio does not adequately meet growth and change. The solution, however, is not to rip and replace systems or applications, nor to completely renovate them, but rather, finds a way to leverage existing IT investments so that overall organizational goals are supported effectively.
· Architectural plans are reactive and application-centric
· Web services are not reused and basic XML is used without services approach
· Need for integrating isolated systems and applications is not prioritized
· Little process/workflow automation outside those locked within standalone application
· Manual workarounds for process across application and people
· Business-to-business based on phone/fax, manual entry, or hard-coded workarounds
· In addition to corporate reorganizations or restructuring, there is an increasing demand for application and system consolidation.
· Integration Paralysis – There is a significant amount of dissatisfaction with traditional, proprietary integration-broker technologies as well as point-to-point integrations, creating silos and an endless need to integrate. In some cases, people are fed up with the state of IT. IT is perceived as a roadblock. Data is not available when the business needs it. The right reports are not available because the data is scattered amongst 4 different systems. IT spends all its time and budgets maintaining legacy systems and data and cannot concentrate on meeting the new business needs.
· Increased regulatory compliance such as Surbanes-Oaxley and HIPAA
· The need to increase productivity and streamline business processes
· Previous “SOA” attempts were focused on technology instead of representing what the business does.
Diagnosis
The diagnosis is that there is a misalignment. Us Geeks think in the world of the abstract (think OO) and business people are thinking in Capabilities. People focus on process. hide behind requirements and become fearful of change. We have spent billions creating Silos and Monoliths, and billions more with EAI systems with misguided investments of point-to-point silo stitching. We then end up with two systems tightly integrated. Big step forward. Not.
The bottom line is that IT must become more dynamic to support the business in an agile fashion.
That is the subject of Part 2.
