You are on page 1of 32

Service Oriented Architecture

In the Context of

Enterprise Systems

Business in the New Economy

Needs of a competitive organization

Organizations need to be agile and flexible means integrated data, applications, and resources across the organization. To compete effectively, organizations have to be customer focused.
This requires cross-functional integration among the accounting, marketing, sales, manufacturing, shipping..

Traditional systems did not (dont) meet these

Can systems meet these needs?

What is an ES?
Enterprise systems (ES) are large-scale application software packages that support business processes, information flows, reporting, and data analytics in complex organizations. In short, ES are packaged enterprise application software (PEAS) systems. Types of enterprise systems include enterprise resource planning (ERP) systems, enterprise planning systems, and customer relationship management software. Although data warehousing or business intelligence systems are enterprisewide packaged application software often sold by ES vendors, since they do not directly support execution of business processes, they are often excluded from the term. Enterprise systems are built on software platforms, such as SAPs NetWeaver and Oracle's Fusion, and databases.

What is an ERP or ES?

Breakup of an ERP System across Different Families of ERP Modules (Taken and adapted from ERP Systems Market Primer by Focus Research)
Cross Industry Modules (for Enterprise Admin Support) Sector Specific Modules (for Enterprise Operation Support)
Management Banking, Finance, Security and Insurance Sector Loan Management Deposit Management Collateral Management Manufacturing Sector Inventory Management Production Management Material Resources Planning and Management Service Sector Project Management Resource Management Risk Analysis Management

Human Resources Management Employee Payroll Management Performance Management Payroll Finance Management General Ledger Account Receivable Accounts Payable

Extended Modules (for Enterprise Sales, Operations and Management Sup[port] Operation Support
Supply Chain Management Management Supplier Relationship Product Lifecycle Management Sales Support Marketing Automation Quota and Territory Management Customer Relationship Management Management Support Reporting Analytics Forecasting Business Intelligence

Why do organisations bother to implement Enterprise Systems?

ERP Drawbacks
Very expensive Risky to implement Long time to value Forces organizations to change Liquid concrete?

Even ERP vendors agree

Traditional Enterprise Systems

Traditional Enterprise Systems

Business Objects

External Application

BOM = Bill of Material

Application Programs

Thomas Erl , Service-Oriented Architecture: Concepts, Technology, and Design, Prentice Hall PTR, 2005

Business Processes
business process logic

Thomas Erl , Service-Oriented Architecture: Concepts, Technology, and Design, Prentice Hall PTR, 2005

A Service Layer
business process logic

Service Layer

What is a Service?
A service is a mechanism to enable access to one or more capabilities, where the access is provided using a prescribed interface and is exercised consistent with constraints and policies as specified by the service description. *OASIS reference model+
enables access to capabilities service description defining constraints and policies functionality provided by formally specified interface
encapsulated functionality implementation transparency

loose coupling

Service-Oriented Design Is An Evolutionary Approach

Source from

W3C=World Wide Webb Consortium CBDI = Component Based Development and Integration

Source from

Business Service Application Services And then Services

Services are everywhere

Architecture level
Source from

By business people

A Service-Oriented Architecture (SOA) is an architecture that is based on the key concepts of an application frontend, service, service repository, and service bus. A service consists of a contract, one or more interfaces, and an implementation. The whole concept of an SOA focuses on the definition of a business infrastructure. When we use the term "service," we have in mind a business service

Source from Krafzig et al., Enterprise SOA: Service-Oriented Architecture Best Practices, Prentice Hall, 2005

Application Frontends
Application frontends are the active players of an SOA. They initiate and control all activity of the enterprise systems. There are different types of application frontends. An application frontend with a graphical user interface, such as a Web application or a rich client that interacts directly with end users, is the most obvious example. However, application front-ends do not necessarily have to interact directly with end users. Batch programs or longliving processes that invoke functionality periodically or as a result of specific events are also valid examples of application frontends.

Source from Krafzig et al., Enterprise SOA: Service-Oriented Architecture Best Practices, Prentice Hall, 2005

A service is a software component of distinctive functional meaning that typically encapsulates a high-level business concept.
Contract The service contract provides an informal specification of the purpose, functionality, constraints, and usage of the service. The form of this specification can vary, depending on the type of service. One non-mandatory element of the service contract is a formal interface definition based on languages such as IDL or WSDL. Interface The functionality of the service is exposed by the service interface to clients that are connected to the service using a network. Although the description of the interface is part of the service contract, the physical implementation of the interface consists of service stubs, which are incorporated into the clients of a service and dispatcher. Implementation The service implementation physically provides the required business logic and appropriate data. It is the technical realization that fulfils the service contract.
Business logic The business logic that is encapsulated by a service is part of its implementation. Data A service can also include data.
IDL = Interface Definition Language WSDL = Web Services Description Language

Source from Krafzig et al., Enterprise SOA: Service-Oriented Architecture Best Practices, Prentice Hall, 2005

A service consists of both data and business logic along with interfaces and their descriptions. Services are not just the encapsulation of some code of the former lower layers of applications. Every service is an entity of distinctive functional meaning that typically encapsulates a high-level business entity.

Source from Krafzig et al., Enterprise SOA: Service-Oriented Architecture Best Practices, Prentice Hall, 2005

Interaction services: These support the portal server and human interactions. Process services: This is the business process management (BPM) component. Information services: This reflects both the structured (e.g., relational database tables) and unstructured (e.g., documents, images, multimedia) content accesses. Application and information services: This is where the back-end applications are accessed. Partner services: This is where the business-to-business integration (B2B) happens.

Source from Krafzig et al., Enterprise SOA: Service-Oriented Architecture Best Practices, Prentice Hall, 2005

Although much of the required information is already part of the service contract, the service repository can provide additional information, such as physical location, information about the provider, contact persons, usage fees, technical constraints, security issues, and available service levels. You can build an SOA and achieve many of its benefits without establishing a service repository, but a repository is indispensable in the long term. An architecture can cope without a repository if the scope of a service is just one project, if it has very few services, or if all projects are staffed with the same team members. In reality, though, most enterprise scenarios are characterized by many concurrent projects, changing teams, and a variety of services.

Service Repository

A service registry is a network-based directory that contains information about available services. It is an entity that accepts and stores contracts from service providers and provides those contracts to interested service consumers. The service registry may also act as proxy for the provider, enabling the consumer to interact with a single point of contact for all required services.

A service bus connects all participants of an SOA services and application front ends with each other. If two participants need to communicate for example, if an application frontend needs to invoke some functionality of a basic service the service bus makes it happen. The service bus is not necessarily composed of a single technology, but rather comprises a variety of products and concepts.

SOAP = Simple Object Access Protocol J2EE = Java Enterprise Edition IMS = Internet Messaging System JAX = Java API for XML CORBA = Common Object Request Broker Architecture


RPC = Remote Procedure Call

Eric Newcomer and Greg Lomow , Understanding SOA with Web Services, Addison Wesley Professional, 2004

An Application created using SOA and existing applications

Oracle Financials Standard Interface

Costumer order Application

Standard Interface

New Web Application Standard Interface

Supply Chain Management Application

Standard Interface

Standard Interface Mainframe HR Application

Standard Interface .NET Inventory Application


A simple SOA architecture

Service Consumers

Service Bus

Configuration and Rules

Management and Reporting

Service Interfaces and Implementations

Source from

Final Thoughts
An excellent plumber is infinitely more admirable than an incompetent philosopher. The society which scorns excellence in plumbing because plumbing is a humble activity and tolerates shoddiness in philosophy because it is an exalted activity will have neither good plumbing nor good philosophy. Neither its pipes nor its theories will hold water" John Gardner