From The Founder and Senior Analyst of ZapThink

Ron Schmelzer

Subscribe to Ron Schmelzer: eMailAlertsEmail Alerts
Get Ron Schmelzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: SOA & WOA Magazine

SOA & WOA: Article

Service Orienting BPM

Service-Oriented Process Management

Business process management (BPM) is a business management philosophy consisting of the idea that a business can be understood and managed solely in terms of business processes. BPM is process-centric and responsive to change in business requirements and objectives. Businesses are defined through dynamic processes that change almost constantly.

Workflow Management Coalition Terminology and Glossary defines a business process as follows:

  • As being associated with operational objectives and business relationships such as claims process.
  • As having a defined triggering (initiation) conditions for each new process instance (e.g., the arrival of claim) and defined outputs at its completion.
  • May involve formal or informal interactions between participants; its durations may vary widely.
  • May consist of automated activities and is capable of workflow management and/or manual activities that lie outside the scope of workflow management.
Data-Centric vs. Process-Driven Applications
The IT applications defined and implemented before the advent of SOA are mostly data-centric; that is, geared towards data capture, storage, and retrieval. The architecture is mostly technology driven and not process-centric. This resulted in applications being less adaptable to changes in business process or costlier to maintain and keep up with than changes in the business process. Often business processes were modeled to fit the applications (to save on costs of changing), thereby making them ineffective and inefficient. Dr. Michael Hammer, the process-reengineering guru, in his famous book Reengineering the Corporation said, "Rip it out and start over." Reengineering enabled better process definition in a given framework, but it did not give a dynamic and agile architecture. (More recently Dr. Hammer said, "I was wrong.")

For an enterprise to be effective and responsive to changes in the business process, the approach for enterprise architecture should be to:

  • Externalize processes, separating them from applications and providing tools to simplify process design, implementation, and changes.
  • Design applications in the form of services that are a part of the end-to-end process and have them access external data that the process needs.
This approach allows the business processes to interact with and coordinate the services' behavior for the execution and completion of the process and interaction with other processes. This is a paradigm shift from applications to processes, thus making processes the centerpiece of enterprise architecture (EA).

Enterprise Architecture
The definition of architecture from ANSI/IEEE Std 1741-2000 is: "the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution."

EA is a conceptual tool that assists organizations with the understanding of their own structure and the way they work. It provides a map for the enterprise and it's a route planner for business and technology change.

Normally, EA takes the form of a comprehensive set of cohesive models that describe the structure and the functions of an enterprise. The most commonly used perspectives of EA are business, application, information, and technology perspectives.

Service-Oriented Architecture (SOA)
Typically, SOA is equated to Web services, but that is not the case. SOA is an architecture style that promotes business process orchestration of enterprise-level business services. The three major elements of SOA are:

  • Services: SOA models the enterprise as a collection of business services, which can be accessed across the enterprise. Services are self-contained in the sense that they perform specific functions and can be invoked using a standard protocol.
  • Processes: Business processes orchestrate the execution of these enterprise services to fulfill required business functionality. Enterprise-wide processes essentially define enterprise operations.
  • Organization: Organization owns all of the SOA artifacts and governs their creation, usage, access, and maintenance.
A service is defined and exposed to the outside world in terms of its interface. The service interface consists of a service name and set of methods that the service supports. Each interface is defined by a set of parameters (defining data required for interaction with the service) and a communication protocol used for data transfer and actual service invocation. The methods in the service interface are grouped together based on the business functionality requirements of the service.

Services provide the business logic as well as the state management relevant to the business functionality. Services encapsulate the logic and data associated with a real-world process, similar to OO encapsulation. Since services are called across a network, the services should wrap a substantial body of application logic, thereby justifying the latency cost of network requests. A service should enable the performance of a complete function through a single request and fewer interfaces, rather than exposing many interfaces that manipulate small amounts of data.

SOA for Enterprise Architecture
Let's analyze the impact of SOA on all four perspectives of enterprise architecture.

Business Perspective
By using SOA it is possible to decompose business functionality into more manageable, reusable parts that can be independently designed, developed, and maintained. SOA enables the definition of the enterprise functionality in terms of services and processes. The business and application perspectives can be aligned better in the sense that it is easier to trace the application perspective back to the business perspective, and thereby easier to implement required changes in functionality. This facilitates the separation of business services that do not often change from processes - the fast-changing entities of a business model.

Business activity monitoring (BAM), the real-time monitoring of business events and transactions, becomes easier by separation of functionality and applications. BAM delivers real-time intelligence about integrated enterprise to management. BAM is typically integrated into the execution of business process.

Before even thinking of designing and implementing business functionality, it is essential to create a model of the business that identifies the fundamental entities and the business processes. Modeling tools using UML can be effectively used to model the business, the business process, and entities. UML enables the complete end-to-end modeling of business, from business process to implementation entities. During this process of business process modeling, services, and the interfaces to them for each process, are identified.

More Stories By Neeraj Kulkarni

Neeraj Kulkarni is a senior technical architect with the Technology Consulting Group of Infosys Technologies Limited. He has several years of experience in product development and implementing projects that involve EAI and Web services.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.