alternate text alternate text alternate text alternate text

IFEAD

People -- Process -- Business -- Technology
IFEAD is an independent research and information exchange organization working on the future state of Enterprise Architecture.



EA & Services Oriented Enterprise (SOE)

-

Services Orientation, Hype or Hope?

Structuring the Enterprise around Services

By J. Schekkerman

The terms Enterprise Architecture (EA), Services Oriented Enterprise (SOE), Service-Oriented Architecture (SOA) and Service Oriented Computing (SOC) are being exposed to an ever wider and more influential audience. Unfortunately, as with many "new concepts" there is a common misunderstanding about prior ideas and practices from which they are derived. Accordingly, these terms will be bandied about as buzzwords and/or marketing hyperbole assaults.

This section is a preemptory effort to provide both a basic and somewhat advanced understanding of these terms: why they are important to us, where they come from and what this means for business & information technology (IT). As with most innovative concepts that seemingly come into vogue in a sudden and haphazard manner, there is both a history leading up to its short sojourn in the spotlight of popular perception and a predictable fade unless popular uptake makes it a structuring paradigm of the Enterprise. With reference to EA, SOE, SOA and SOC, it is fairly certain that they will have their role in this paradigm shift.

Frequently asked questions that revolve around this topic include: What is SPA? What is SOE? What is SOA? and what is SOC and how are they interrelated? To answer this multipart question, let us first try to gain the proper perspective for being able to see the overall Enterprise Architecture landscape. This is commonly called the Heliview. This view refers to the landscape from a chopper at a few thousands meter height and, that is an apt metaphor, since at that height and from that perspective we see a larger picture. We see the mountain ranges not just the mountain in front of us, or the trail we are hiking up through the trees in the foothills and lower slopes. We see the checkerboard layout of farmlands. We see the green meandering paths of the watershed streams and rivers, and this is appropriate to the level of Enterprise Architecture (EA). In this view an enterprise is seen simply as an organization or a part of an organization, rather than in the specific context of public or private, business or government, academic or non-profit. This is a good start.

Enterprise Architecture in the Context of Services Orientation

However to truly see the outlines and parameters of what is called EA, and from that perspective begin to understand how a SOE and SOA can enable an EA, we need to get up to suborbital or low orbit viewpoint at least, and it could be argued that we need to get all the way out to the viewpoint of our moon to see the entire environment within which these concepts work. The fact is that the word enterprise is by no means restricted to a business, or even an industry, nor does it refer to a particular time in the life of an organization. The enterprise encompasses the entire life cycle of an organization or an organism.

Enterprise Architecture Services Model

After having achieved the desired scope of view, we can apply that perspective, the perspective of the economic or ecological lifecycle, to provide measures to ensure an extended life beyond the restrictions of the individual biological entity model we necessarily bring with us. Enterprises, like cultures, outlive individual members, and those life cycles require us to extend our vision further than our own lives. In many areas in our lives, such as in educational institutions, the familial clan or kinship networks, governments, etc., we take this viewpoint for granted, but in EA, we now need to be explicit and put in place the kinds of mechanisms that can conduct constant review and institute quality assurance as a matter of course and, in effect, institutionalize the cycle of build, use, learn, assess, build (adjust/rebuild), use, learn, etc., ad infinitum. This presupposes, of course, that the "de facto" starting point for this process is where an enterprise or organization happens to be at that the point when it is decided to begin this process of building and deploying an EA. Some comprehensive review is not required to start. In effect, gaining the correct perspective should allow an enterprise to refocus on the immediate with that larger focus still in mind. Such reviews or foundational reports have their place, but, unless an enterprise is at its founding point, the larger picture can be developed while the more functional aspects of current operations and immediate planning based on immediate findings take precedence in simply getting the process moving.

Differences between hype or Hope

In the next diagram that is showing the business version of the Extended Enterprise Architecture Framework (E2AF) the concepts of SPA, SOE, SOA, SOC and STP are positioned on the framework to help the readers to understand the relative position of these concepts related to the E2AF. Around the E2AF, 4 Critical Success Factors (CSF) are positioned that are critical for the success of implementing Service Orientation in your organization and which makes the difference between Hype or Hope.

Services Paradigm Adoption (SPA)

Services orientation presents an ideal vision of a world in which resources are cleanly partitioned and consistently represented in terms of services. Therefore the Services Paradigm has to be adopted by the Enterprise to structure the Enterprise in terms of Services. So the Enterprise aspect areas of Business, Information, Information-Systems and the Technology Infrastructure has to be decomposed in terms of functional Services. Doing that at a consistent and consequent matter will deliver loosely coupled functional services that can be outsourced or insourced or brought together in so called shared services centers.

Adopting the Services Paradigm by your Enterprise and implementing it in an appropriate way, will deliver the Enterprise more flexibility, adaptability and agility then organizations that don't want to adopt the Services Paradigm.


Services Oriented Enterprise (SOE)

A service-oriented enterprise is really connecting business processes in a much more horizontal fashion. It's having an Enterprise infrastructure that provides an enterprise architecture and security foundation to be able to run these services consistently across your enterprise.

While the concept of a service-oriented architecture has been considered a best practice by system architects for the past three decades, it is now being embraced by organizations everywhere as the key to business agility. But SOE and SOA doesn’t come in a box, it’s not a single technology and it doesn't render all problems solved. While SOE enables and even drives organizational change, it also requires executives, enterprise architects and program managers to think and act differently or simply find themselves in possession of new problems with few or no new benefits.

What is a Service?


A Service is an implementation of a well-defined business functionality that operates independent of the state of any other Service defined within the system. Services have a well- defined set of interfaces and operate through a pre-defined contract between the client of the Service and the Service itself.
A Service can be of various nature. A Business service may mean “getAccountBalance”. A business Transaction Service may mean something like “makeCreditCardPayment”. A system Service may offer some operations like “deleteAFile”.

Top-Down versus Bottom-Up Service Definition

In the ideal situation Services are defined and described Top-Down at Enterprise level in what is called the Service Oriented Enterprise (SOE). From a functional decomposition of well defined Business functionality we can identify the business function 'Financial Services'. This Business function can be decomposed in lower level services like Invoicing, Payements, Banking, etc.

In Service Oriented Architecture, the system operates as a collection of services. Each Service may interact with various other Services to accomplish a certain task. The operation of one Service might be a combination of several low level functions. In that case, these low level functions are NOT considered Services.

Services Orientation; level of Adoption & Ambition

Top-Down - SPA / SOE / SOA

  1. On Demand Business Transformation: Broad Busienss Transformation of existing business models or the deployment of new business models (SOE)
  2. Enterprise-wide IT transformation: An enterprise architected implementation enabling integration across business functions throughout an enterprise (SOA/SOE)
Bottum-Up - SOC / SOA
  1. Service-oriented integration of business functions Integrating services across multiple applications inside and outside the enterprise for a business objective (SOI/SOA)
  2. Implementing individual Web services Creating services from tasks contained in new or existing applications (SOC/SOA)

Top-down domain decomposition (process modeling and decomposition, variation-oriented analysis, policy and business rules analysis, and domain specific behavior modeling (using grammars and diagrams) ) is conducted in parallel with a bottom-up analysis of existing legacy assets that are candidates for componentization (modularization) and service exposure. To catch the business intent behind the project and to align services with this business intent, goal-service modeling is conducted.

How to Identify Services
Technically, you can make any piece of functionality as a Service, but doing so will make the organizational IT systems cluttered and complicated to maintain. The advantage is in keeping the Services as a set of well-organized functionalities. Services must represent a tangible Business concept. For example, getAccountBalance() is a tangible business process but convertStringToNumber() is not an identifiable business concept and therefore is not a candidate for a Service.


The process of identifying potential Services is by no means an easy task. At this stage, I have seen many organizations get carried away by the available technologies forgetting that the technology should not drive the Business. Although, identifying Services is a series of organization-wide analysis, certain analysis patterns can be applied to find out the potential services. Here are some things to consider when deciding.

  • Analyse a certain part of the organizational business process and decompose them into several smaller business process. For example, Order Processing System of an organization can be decomposed into smaller business processes such as checkInventory(), processPayment(), updateInventory() etc.
  • Identify if any of the smaller business processes are re- used or can potentially be reused in other organizational business process. For example, checkInventory() can also be used by the Stock Management application within the organization. The reusable business processes are strong candidates for operating as Services.
  • Draft the required inputs to these business processes and define what the specific outputs they must produce. Attention must be paid to keep these inputs and outputs generic so that the Service remains reusable and are capable of providing Service to changing business models. For example, processPayment() service at present might only accept check payment but should be flexible enough to support Card payment in order to support changing business needs. Hence, the input to the processPayment() Service must be defined in a generic fashion.
  • Identify, if these Business processes are already implemented as an IT system within the organization. If yes, then analyse the Business critical factor for all the existing applications to identify which ones need to be converted to SOA. For example, if a clothes retailer no longer accepts refund/exchange of goods, we do not need to consider to look into Refund/Exchange application.
  • Identify, what Services operate together, what are the dependencies between various Services.
  • Find out, if the Services will be used only internally or will be opened to external consumers also. This will have impact on the definition of the Services.
  • Identify, whether the Services operate in a synchronous or asynchronous manner. What is the permissible response time for the Services?


These are guidelines from experiences in working in the industry with quite a few organizations, where we successfully provided SOA based solutions. By no means is this list complete and I do not believe that there can ever be a complete set of formulas for identifying the correct set and subset of Services to be implemented. It is always an ongoing process as new requirements keep on coming in. But the gist of the story is that one needs great attention to identify the sets of Services that are to be deployed within the organization.


Services Oriented Modelling

A number of important activities and decisions exist that influence not just integration architecture but enterprise and application architectures as well. They include the activities from the two key views of the consumer and provider.

The activities that are typically conducted by each of the roles of provider and consumer. Note that the provider's activities are a superset of the consumer's activities (for example, the provider would also be concerned with service identification, categorization, and so forth). In many cases, the differentiation of the roles comes from the fact that the consumers specify the services they want, often search for it, and once they are convinced of the match between the specification of the service they are looking for, and that provided by a service provider, they bind and invoke the service as needed. The provider, in turn, needs to publish the services they are willing to support; both in terms of functionality and most importantly in terms of the QoS that consumers will require. This implicit contract between consumer and provider might mature into an explicit contract in terms of SLAs; negotiated either electronically or through business and legal venues.

The activities described above can be depicted to flow within the service-oriented modeling.


The process of service-oriented modeling and architecture consists of three general steps: identification, specification and realization of services, components and flows (typically, choreography of services).

Service Identification

This process consists of a combination of top-down, bottom-up, and middle-out techniques of domain decomposition, existing asset analysis, and goal-service modeling. In the top-down view, a blueprint of business use cases provides the specification for business services. This top-down process is often referred to as domain decomposition, which consists of the decomposition of the business domain into its functional areas and subsystems, including its flow or process decomposition into processes, sub-processes, and high-level business use cases. These use cases often are very good candidates for business services exposed at the edge of the enterprise, or for those used within the boundaries of the enterprise across lines of business.

In the bottom-up portion of the process or existing system analysis, existing systems are analyzed and selected as viable candidates for providing lower cost solutions to the implementation of underlying service functionality that supports the business process. In this process, you analyze and leverage API\\x92s, transactions, and modules from legacy and packaged applications. In some cases, componentization of the legacy systems is needed to re-modularize the existing assets for supporting service functionality.


The middle-out view consists of goal-service modeling to validate and unearth other services not captured by either top-down or bottom-up service identification approaches. It ties services to goals and sub-goals, key performance indicators, and metrics.

Service Classification or Categorization

This activity is started when services have been identified. It is important to start service classification into a service hierarchy, reflecting the composite or fractal nature of services: services can and should be composed of finer-grained components and services. Classification helps determine composition and layering, as well as coordinates building of interdependent services based on the hierarchy. Also, it helps alleviate the service proliferation syndrome in which an increasing number of small-grained services get defined, designed, and deployed with very little governance, resulting in major performance, scalability, and management issues. More importantly, service proliferation fails to provide services, which are useful to the business, that allow for the economies of scale to be achieved.

Sub-system Analysis

This activity takes the subsystems found above during domain decomposition and specifies the interdependencies and flow between the subsystems. It also puts the use cases identified during domain decomposition as exposed services on the subsystem interface. The analysis of the subsystem consists of creating object models to represent the internal workings and designs of the containing subsystems that will expose the services and realize them. The design construct of "subsystem" will then be realized as an implementation construct of a large-grained component realizing the services in the following activity.

Component Specification

In the next major activity, the details of the component that implement the services are specified:

  • Data
  • Rules
  • Services
  • Configurable profile
  • Variations


Messaging and events specifications and management definition occur at this step.

Service Allocation

Service allocation consists of assigning services to the subsystems that have been identified so far. These subsystems have enterprise components that realize their published functionality. Often you make the simplifying assumption that the subsystem has a one-to-one correspondence with the enterprise components. Structuring components occurs when you use patterns to construct enterprise components with a combination of:

  • Mediators
  • Facade
  • Rule objects
  • Configurable profiles
  • Factories


Service allocation also consists of assigning the services and the components that realize them to the layers in your SOA. Allocation of components and services to layers in the SOA is a key task that require the documentation and resolution of key architectural decisions that relate not only to the application architecture but to the technical operational architecture designed and used to support the SOA realization at runtime.

Service Realization

This step recognizes that the software that realizes a given service must be selected or custom built. Other options that are available include integration, transformation, subscription and outsourcing of parts of the functionality using Web services. In this step you make the decision as to which legacy system module will be used to realize a given service and which services will be built from the bottom-up." Other realization decisions for services other than business functionality include: security, management and monitoring of services.

The service oriented modelling paragraph is based on an article of Ali Arsanjani, Ph.D., Chief Architect, SOA and Web Services Center of Excellence, IBM.


Services Transition Plan (STP)

Your SOE, SOA and SOC is very much a work in progress, and your transition to Services Orientation will take place over a long period, in many phases. Consequently, transition management is one of the most critical concerns in the long ramp-up to Service Orientation everywhere.

Despite the magnitude of a migration to a services-oriented platform, the continuing uncertainty of critical WS-* standards, and the often thundering impact of large-scale SOA deployments, now is the time to start considering the move. The key to a successful transition is to find a spot of calm amidst the storm of activity surrounding SOA, and develop an intuitive plan that will guide your organization through a path of technical obstacles, organizational resistance, and ever-shifting industry trends.

Invest in an Impact Analysis Before Developing the Transition Plan


In order to assess the feasibility of a transition to Services Orientation, you first need to estimate the real-world impact such a migration will have. Therefore, you should consider holding off any sort of planning until an initial impact analysis is complete. Using the impact analysis results as your primary guide, and factoring in budget constraints, related project requirements, and other external drivers (such as strategic business goals), you should be able to determine the scope of your planned transition. It is not uncommon for an SOA transition plan to apply only to a subset of an organization's technical environment. For instance, there may be several legacy areas of an enterprise that do not warrant any intrusion by service encapsulation. Perhaps your goal is to build a dedicated hosting environment intended only to support new service-oriented applications. More often than not, however, integration requirements drive SOA transitions, in which case the scope of your project could easily see the introduction of SOA affect a majority of your IT enterprise.


Service-oriented principles themselves are not complex, however, the application of these principles can result in relatively complex automation solutions. This is especially the case when services from different solutions are shared and composed to support new or modified business processes. If you're going to live in a service-oriented world, your project team will need to change the way it thinks about fundamental aspects of common architecture, such as componentization, integration, and process automation.


Services Oriented Maturity

Companies are at different levels of maturity in the adoption and incorporation of Services-Orientation (SO). Some are just beginning to explore the world of SO using its technology instantiation: Web services. They are wrapping legacy functionality and exposing it for invocation for third-parties, clients, and business partners. This gets them into the game: they ramp up the development team, start the process of changing the corporate culture to better support SO, and take the first steps in the exploration of new technologies and the business capabilities that may be impacted. This is level one.

Level two of SO adoption is when the initial testing of Web services has been successfully overcome and now the organization is beginning to integrate systems and applications using services. As proprietary protocols, glue code, and point-to-point connections give way to more open, standards-based protocols and interaction based on service descriptions that each system externalizes, we step into the realm of Service-Oriented Integration (SOI). In this world, the enterprise service bus reigns supreme: a mechanism for mediation, routing, and transformation of service invocations irrespective of the target service provider. It helps overcome many of the shortcomings associated with point-to-point connections.

Service Oriented Maturity Model

This SOA Maturity Model provides a framework for discussion between IT and business users about the applicability and benefits of SOA in an organization across five levels of adoption maturity.


Choreography of Services

With the growing popularity of Service Oriented Architecture (SOA) and Web Services, these diverse assets can be made available as individual enterprise services. How do we build and expose them as such and how do we leverage them in building new service-based applications or business processes? This is the problem Business Process Choreography tries to solve.

Web Services Choreography Interface (WSCI) is an XML-based interface description language that describes the flow of messages exchanged by a Web Service participating in choreographed interactions with other services. WSCI describes the dynamic interface of the Web Service participating in a given message exchange by means of reusing the operations defined for a static interface. WSCI describes the observable behavior of a Web Service. This is expressed in terms of temporal and logical dependencies among the exchanged messages, featuring sequencing rules, correlation, exception handling, and transactions. WSCI also describes the collective message exchange among interacting Web Services, thus providing a global, message-oriented view of the interactions.

 


Granularity of Services

Stating that Services are the central part of both SOA and SOE will probably not offend anybody. But methods to identify Services are only slowly emerging. When talking about SOA the Services are often seen as a task that will require only a small effort – so small that we almost don’t bother talking about it. The level of detail, in which this task is described, is usually focused on whether to approach this Top-Down or Bottom-up. In practise you will probably use a mix of both, but should have a strong emphasis on the Top-Down – this is necessary in order to control the coherence between the Services.

But how do we actually identify our Services? This is now doubt a discipline normally mastered on the abstraction level of EA. In SOE we need a method to identify Services in a way that supports the paradigm of SOE and utilizes the experience of EA. The important notion here is that we don’t start from scratch!

If you are experienced working with SOE, SOAA and EA you should however not expect any revolution – it is in fact a very simple method. But this is just where I see the strength of the method. The simple message is: when identifying your Services don’t start developing your solution! Keep on track, and identify the Services one level of abstraction at a time

-
 
Extended Enterprise Architecture Framework / E2AF & Extended Enterprise Architecture Maturity Model / E2AM are Service Marks (SM) registered by IFEAD