SOA architectural style aims to provide enterprise business solutions that can extend or change on demand. SOA solutions are composed of reusable services, with well-defined, published and standards-compliant interfaces. SOA provides a mechanism for integrating existing legacy applications regardless of their platform or language.
In SOA, always the focus is on Messages (XML) rather than API.
Conceptually, there are three major levels of abstraction within SOA:
1.Operations: Transactions that represent single logical units of work (LUWs). Execution of an operation will typically cause one or more persistent data records to be read, written, or modified. SOA operations are directly comparable to object-oriented (OO) methods. They have a specific, structured interface, and return structured responses. Just as for methods, the execution of a specific operation might involve invocation of additional operations.
2.Services: Represent logical groupings of operations. For example, if we view CustomerProfiling as a service, then, Lookup customer by telephone number, List customers by name and postal code, and Save data for new customer represent the associated operations.
3.Business Processes: A long running set of actions or activities performed with specific business goals in mind. Business processes typically encompass multiple service invocations. Examples of business processes are: Initiate New Employee, Sell Products or Services, and Fulfill Order.
BPM, EA, and OOAD positioning
SOA Choreography vs SOA Orchestration (From WebService perspective)
Process choreography, as the term is commonly used in the IT world, describes the interplay of various trading partners to implement a multi organization business function. For example, in the supply chain space, the fulfillment of a product purchase may involve the exchange of purchase orders, advance shipping notices, and money between two or more companies. Choreography does not describe how each company would conduct its operations, only how the different companies would interface with each other.
Process orchestration [of web service] is a technique to recursively compose and orchestrate web services to provide a new composite webservice Process orchestration is when a central process coordinates the execution of different Web services operations. The central conductor (as in an orchestra) is aware of the overall goal of the orchestration, the operations involved, and the order of the operation invocation. This centralized management allows Web services to be added or removed without each being aware of its effect on others, as well as compensatory processes to be implemented in case of faults and exceptions.
ref:
Elements of Service-Oriented Analysis and Design - http://www.ibm.com/developerworks/webservices/library/ws-soad1/
Place XML Message Design Ahead of Schema Planning to Improve Web Service Interoperability - http://msdn.microsoft.com/en-us/magazine/cc188900.aspx
Case Study: SOA Design Scenario - http://www.redbooks.ibm.com/redpapers/pdfs/redp4379.pdf
SOA AntiPatterns - http://www.ibm.com/developerworks/webservices/library/ws-antipatterns/
Oracle’s SOA Architect Center - http://www.oracle.com/technology/tech/soa/index.html
IBM’s SOA Center - http://www-01.ibm.com/software/solutions/soa/
Service Façade - http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1346145_mem1,00.html
SOA Design Pattern Application Sequences: Service Facade + UI Mediator -
http://www.oracle.com/technology/pub/articles/erl_soa_design_patterns_app_sequences.html
Non-Agnostic Context SOA Pattern -
http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1347582_mem1,00.html
Domain Inventory SOA Pattern -
http://searchsoa.techtarget.com/tip/0,289483,sid26_gci1349152_mem1,00.html
E-business patterns -
http://www.ibm.com/developerworks/patterns/index.html
https://www.ibm.com/developerworks/patterns/library/