SOA is an architectural model that aims to enhance the efficiency, agility, and productivity of an enterprise by positioning services as the primary means through which solution logic is represented in support of the realization of strategic goals associated with service-oriented computing.
Service-orientation is a design paradigm comprised of design principles that shape solution logic into services with distinct design characteristics that support the realization of strategic goals associated with service-oriented computing.
The service contract specifies the purpose, functionality, constraints, and usage of a service. The contract is defined by the business in business terms.
A Service interface provides a means for the users of a service to access its functionality according to the contract it offers. A given service may offer multiple interfaces to allow consumption of the service through different means.
The implementation part of a service is the actual code. The implementation may be accomplished using any technology. Implementations, especially early ones, often represent functionality that already exists in an enterprise.
SOA Service Lifecycle Design, Development and Deploy Business Operations Service Architect Business Analyst Service Development Business Activity Monitoring Business Process Modeling Core Metadata Service Develop and Deploy Management Monitoring Service Modeling
BPM is a management practice that provides for governance of a business process environment toward the goal of improving agility and operational performance.
BPM is a structured approach employing methods, policies, metrics , management practices and software tools to manage and continuously optimize an organization's activities and processes.
What Is Business Process Management? Architecture Graphic source: Casewise/Gartner presentation, 2005 People Technology Process
SOA is Business Driven Product inquiry SOA – A Service Invocation Framework Product inquiry Business World Processes IT World Services Reserve inventory Reserve inventory Schedule shipment Schedule shipment Create Customer Order Create customer order Schedule production Schedule production Create Supplier order Create supplier order
Business, Technology Model for SOA Potential Reuse
Service Modeling Services That Map To Real Business Processes, Not As Silo-ed Apps
Think strategically, execute tactically: start with a single core process
Top down: identify the services required to support this single core process
Bottom up: identify functions in existing systems that could be exposed as services to support this process
Infrastructure services: identify common supporting functionality requirements
Orchestrate services into processes Measure alignment with strategy Identify opportunities for optimization Analyze processes Identify supporting functionality required Harvest functionality from existing IT assets Develop new functionality Develop contracts and package as services 3 1 2 Services are mapped to business processes, and enable business process improvement over time Business Strategy & Process
Service Modeling Shared Services Business Process Services ? ? ? ? ? ? ? ? ? ? Service Modeling What services should be created? What is the process for identifying these services? What are the characteristics that identify these services? Applications Partners & Suppliers People Data Sources Infrastructure Services Service Enablement System Access Human Access Data Access Shared Service Access Presentation Services Applications Partners & Suppliers People Data Sources Composite Applications Integration Services Orchestration Data
As Long as the Request Is Processed at Least Once, the Correct Stuff Occurs
In Today’s Internet, You Must Design Your Requests to Be Idempotent
Not Idempotent Baking a Cake Starting from Ingredients Naturally Idempotent Sweeping the Floor Naturally Idempotent Read Record “X” Idempotent If Haven’t Yet Done Withdrawal #XYZ for $1 Billion, Then Withdraw $1 Billion and Label as #XYZ Not Idempotent Withdrawing $1 Billion Idempotent Baking a Cake Starting from the Shopping List (If Money Doesn’t Matter)
What message format will the service use? Typical answers here include SOAP, Proprietary XML, and various RPC mechanisms.
What protocol will the caller use to communicate with the service? Typical answers here include HTTP and various RPC protocols.
What level of availability should the caller expect for the service? Will the service be available 24x7? Whats the service level agreement that the hosting team is willing to sign up for?
What is the expected interaction on the part of the caller when the service is not available? Should he call again later? Try again right away? Discard the call? Return an error to the calling system?
If the service call is part of an expected sequence of service calls, define the sequence. This may include call-back mechanisms. Note that call-back mechanisms require the reflected service to be as well defined as the initial service, using all of the rules described here.
What latency should the caller expect for the synchronous return from the service call? (In messaging systems, this is the time that the caller should expect to wait for the acknowledgement or receipt.)