Anyone involved in systems integration at any level understands that what it means to be connected, itself, quickly becomes an abstract term with multiple meanings. Enter in SOA and most have no clue what the goal is.
Making SOA Happen - The Oshyn Maturity Model
Is an integration project merely a matter of connectivity making n-number of applications transfer data? By this logic the project's success is binary: it connected the systems or it did not. Anyone involved in systems integration at any level understands that what it means to be "connected", itself, quickly becomes an abstract term with multiple meanings. Enter in SOA and most have no clue what the goal is.
Consider your internet connection (Information Bus). Even with best throughput, it means little without a web browser (System Interface). Add your browser of choice and you are not going very far without specific web addresses or Google (Service Discovery and Definitions). Once you determine your desired URL, you then need to manage potential user credentials, maybe even VPN requirements and at a minimum play tip-toe around your local anti-virus software ensuring you can even get access
(Governance and Security). If you are lucky enough to make it through all that, you land on your page of information and then what? Well in today's 2.0 world of portals, viral advertising, RSS feeds, blogging and other "features" designed to provide data; you quickly navigate and disseminate (Process Engine) to extract the thoughts that are the most important to you. So you still think you can get around with just connectivity?
So is SOA about connectivity, or the data? Is about interfaces or standards? Does it have anything to say about governance or process improvement? SOA is a guideline to all these challenges and purports to deliver a clear roadmap to tying these concepts together. Oshyn's approach is one that boxes SOA into distinct degrees of maturity growing an integration landscape from the "Connected-App" to the "Complete-App".
Every integration project starts with the need to connect. Delivering a Connected Middleware Application is valuable but is greatly limited in its overall enterprise relevance. Its value increases significantly at this point in a ratio indirectly proportional to its maturity. It's a rite of passage from the Connected-App to the Consolidated ESB
Application, but one that immediately demands attention from the business community (after all its their attention we want, they hold the budgets). From there, the proposition evens out, where each step adds the as much value as the next. What this diagram does not show is level of respective efforts. In truth, the amount of work to move from step to step is more of a function of architecture (understanding SOA as a collection of practices) than it is anything else. A properly planned, designed and executed SOA should be able to move through maturity model with increasing efforts - not decreasing where the first step is this insurmountable endeavor, but just do it so you can reap all these benefits a year down the road. Quite the opposite, SOA infrastructure is fairly straightforward and with current toolsets fairly easy to implement. SOA
Value-Add can typically involve much iteration to get it right from designing the Enterprise Service Layer (ESL) to agreeing upon composite application ownership and scope.
The Connected-App is just that - an application landscape that is able to cross-communicate. The focus is on both interface management and data modeling. This is the first degree of integration maturity: data level problem solving. Here we apply adaptor patterns, common data models (CDM) and mapping translations along many other techniques to achieve enterprise plug and play.
The Consolidated-App is maybe the most critical maturity milestone to reach, and interestingly often of the most overlooked in favor for delivering
the Composite-App as soon as possible. However doing so will also most certainly be a recipe for low ROI ignoring the most significant advancements in integration from the last decade. Consolidation origins are birthed out the evolution of data-level integration through message and event driven interoperability to true process execution. Consolidation is to solidify and unify an integration landscape with both message and process architecture that defines the organization scaling across the enterprise. The focus here is not just the use of an ESB, rather defining its place as simply an enabler for the events that make up the process, with the emphasis being on the later. Integration maturity and, in turn SOA ROI, is as much about process engineering as it is connectivity.
The Composite-App is the SOA playground. The next step with plug and play processes is to leverage them. Often touted as agility, the composition is the icing on the integration cake enabling those rich and necessary consolidated business processes to be used over and over in a multitude of use cases. Truly this is the service-oriented allure of SOA; its technical versatility to provide value to the ever-changing business. Composition is a landscape where the library of services and access to the system's they represent allow the freedom of erecting powerful business solutions quickly despite technology stacks (new or old) that are part of your organizations core competencies.
The Complete-App is a today's representation of a mature integration landscape. As with any software deliverable it must be production ready and enterprise robust to withstand the flurry of diverse transactions it is to encounter. For SOA this can take on various forms to meet the needs of industry verticals, but usually focuses on one more of the following: Business Activity Monitoring, Policy Management and Governance, Security measures as well as actions for High Availability (HA), High Performabilty (HP) and what I call High Maintainability (HM) for production support. The most mature SOA implementations include all of the above as implicit architectural decisions early on as opposed to add-on after thoughts.
At this point it is essential to note, that maturity model expressed here is not meant to be understood as a project plan methodology. As a matter of fact, if an integration project was to start by delivering the Connected-App without first architecting the Consolidated App, as well as defining the Composite App, that project has little hope of delivering ROI on its SOA, and has taken a time machine backwards doomed to make the same mistakes that eventually made speaking letters E.A.I. forbidden and punishable.