Organizations run complex, critical software to support their business.
Often, several critical software systems must work together to support this processing, but there may be no integrated view of the entire software architecture.
Nevertheless, the entire architecture must evolve as necessary to meet both new business requirements (e.g., market changes, regulation changes, etc.) and new technical approaches (e.g., Web-based delivery, service-oriented architecture, etc.).
“ A set of design artifacts, or descriptive representations, that are relevant for describing an object such that it can be produced to requirements (quality) as well as maintained over the period of its useful life (change).” (John Zachman)
Architecture as a Practice
“ The practice of finding creative design solutions that meet the needs of the client, fit the environment in which they are to be deployed, and are feasible to implement.”
Architecture provides the bridge between desires of the client and the capabilities of available technology.
Enterprise: A system of business endeavor within a particular business environment. 1
Enterprise Architecture: A design for the arrangement and interoperation of business components (e.g., policies, operations, infrastructure, information) that together make up the enterprise's means of operation. 1
1 Interoperability Clearinghouse Glossary, http://www.ichnet.org/glossary.htm This positions “EA” as the architecture of the enterprise, not a technology architecture
Service: A logical representation of a repeatable business activity that has a specified outcome, is self-contained, may be composed of other services and is a “black box” to consumers of the service. 1
Service Oriented: A way of thinking in terms of services and service-based development and the outcomes of services. 1
Service Oriented Architecture: An architectural style for a community of providers and consumers of services to achieve mutual value, that: 2
Allows participants in the community to work together with minimal co-dependence or technology dependence
Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community
Provides for business value and business processes to be realized by the community
Allows for a variety of technologies to be used to facilitate interactions within the community
1 The Open Group, SOA Definition v1.1, June 2006, http://www.theopengroup.org/projects/soa/doc.tpl?CALLER=doc.tpl&gdid=10632 2 Object Management Group, SOA SIG, Draft SOA Definition , April 2006
Technology specific (e.g., middleware, application platform, etc.) system implementation
Conforms to the logical system model (PIM)
An (OMG) approach to system specification that separates (models for) the specification of functionality from the specification of the implementation of that functionality on a specific technology platform. Object Management Group (OMG) Terminology (as commonly applied)
A model is a set of statements in some modeling language made in order to describe or specify some system or domain.
Standard modeling languages: Unified Modeling Language (UML), Business Process Modeling Notation (BPMN), Systems Modeling Language (SysML), Service Oriented Architecture Modeling Language (SoaML), etc.
Models are intended to represent and communicate the results of analyses and proposals for new syntheses.
No model can represent everything – but, to be useful, a model must effectively promote general understanding and communicate important details.
Typical kinds of models:
Business process model
Business information model
System requirements model
System design model
What is Architecture Driven Modernization (ADM)?
A process for understanding and evolving existing software assets
Business Architecture (Business Model) System Architecture (Logical System Model) Technical Architecture / System Implementation MDA ADM
The dealer network models an “industry community” of dealers, shippers and manufacturers. The community defines the SOA architecture by which they all work together.
Service-Oriented, Model Driven Approach Business Concerns Technology Specification JEE, JMS, Web Services WSDL, BPEL, XML Schema… Logical System Model Technology Services (t-SOA), Components, Compositions Interfaces, Messages & Data Business Model Business Services (e-SOA) Roles, Collaborations & Interactions Process & Information
Focus on the Business Model Business Concerns Technology Specification JEE, JMS, Web Services WSDL, BPEL, XML Schema… Logical System Model Technology Services (t-SOA), Components, Compositions Interfaces, Messages & Data Business Model Business Services (e-SOA) Roles, Collaborations & Interactions Process & Information
The Dealer Network Order GetItThere Freight Shipper Acme Industries Manufacturer Mechanics Are Us Dealer A participant in the network The role played by the participant in the network An interaction between participants Confirmation
The Dealer Network Order Ship Req GetItThere Freight Shipper Acme Industries Manufacturer Mechanics Are Us Dealer A participant in the network The role played by the participant in the network An interaction between participants Confirmation
The Dealer Network Order Confirmation Shipped Ship Req Shipped Status GetItThere Freight Shipper Acme Industries Manufacturer Mechanics Are Us Dealer A participant in the network The role played by the participant in the network An interaction between participants
The Dealer Network Order Confirmation Shipped Ship Req Shipped Delivered Status GetItThere Freight Shipper Acme Industries Manufacturer Mechanics Are Us Dealer A participant in the network The role played by the participant in the network An interaction between participants Physical Delivery
Marketplace Services Status Order Confirmation Shipped Shipper (Provider) Requester (Consumer) Vendor (Provider) Orderer (Consumer) Recipient (Consumer) Shipper (Provider) GetItThere Freight Shipper Mechanics Are Us Dealer Acme Industries Manufacturer The role played by the participant for a specific service A service contract grouping the interactions required for providing a specific service Ship Req Shipped Delivered Physical Delivery
Participant – A specification of the responsibility to perform specific functions in the context of a business process.
Services Architecture – A set of two or more participants interacting to carry out a business process to achieve some joint purpose.
Service Contract – A collaboration that defines a conversation in which a service or services is provided to consumers by providers. This conversation may be extended over time (i.e., responses of one participant to the other may not be immediate).
SoaML is an OMG standard profile of the Unified Modeling Language (UML).
It adapts best-practice UML modeling techniques for the specific purpose of modeling service-oriented architectures.
SOA Concept UML Modeling Technique
Services Architecture (SOA) Collaboration
Participant Collaboration Role
Service Contract Collaboration/Interaction
Service Use Collaboration Use
But all the rest of UML is still available to use as appropriate.
Services Architecture for the Dealer Network A Services Architecture (or SOA) is a network of participant roles providing and consuming services to fulfill a purpose. The services architecture defines the requirements for the types of participants and services that fulfill those roles. Shipping service Delivery service Ordering service Manufacturer Participant – provides and consumes services Dealer Participant – provides and consumes services Shipper Participant – provides services
“ Place Order” Service Contract: High Level View This view of a service contract only identifies the service name and the roles each participant plays in the service. This is a high-level summary view. A service contract is the specification of the agreement between providers and consumers of a service as to what information, products, assets, value and obligations will flow between them. It specifies the service without regard for realization, capabilities or implementation. The orderer role (the consumer) and its Order Placer interface The vendor role (the provider) and its Order Taker interface
“Place Order” Service Choreography An optional interaction to request a quote A reply to return the quote A required interaction to place an order A reply to accept or reject the order This is a more detailed look at the same service. Note that this models a fully asynchronous interaction – like most business interactions. (The interaction message types are detailed later.) A second reply to confirm shipment
Drilling down - Inside a Manufacturer Order Confirmation Shipped Ship Req Shipped Delivered Fulfillment Production Accounting Acme Industries Not every manufacturer is going to be the same inside – this shows some of the internals of “Acme”
Services Architecture Inside of Acme This shows a “drill down” of the services architecture inside of a particular manufacturer, Acme. Other manufactures may have different internal architectures and processes. The Acme architecture realizes the Dealer Network participant role. This participant is within the Acme organization. This participant (from the Dealer Network architecture) is external to Acme
Acme Manufacturing Business Process A business process represents the desired behavior among the various participants in a services architecture. Each participant is given a swimlane containing the actions carried out by that participant within the business process. Interactions between participants must be consistent with their service contracts. (Note: for simplicity, the optional “quote” interaction is not shown here.)
“Place Order” Message Types This is the detail for the message types that correspond to the interactions for the Place Order service. Note that at the technology level this model can be used to produce the implementation specification of the messages, e.g., XML schema. The messages passed between roles in a service contract are specified using message types.
Customer Order Information Model An information model is a model of individually identifiable business entities and relevant information about them.
Linking Messages to Business Information Messages can reference and include parts of the logical information model – forming a connection between SOA and enterprise data.
Producing the Logical Systems Model Business Concerns Technology Specification Web Services, JEE, .NET WSDL, BPEL, XML Schema… Logical System Model Technology Services (t-SOA), Components & Compositions Interfaces, Messages & Data Business Model Business Services (e-SOA) Roles, Collaborations & Interactions Process, Information & Rules
Interfaces for Participant Roles These interfaces will correspond with parts of WSDL in a web services implementation. Each role in the service that receives interactions has an interface . This is the interface for a logical technology component and is implemented by components providing or using this service. The service is bi-directional – messages flow in both directions – so there is an interface on each side.
Service Interfaces on Participants Ports on the participants provide and require the service interfaces for each service provided or consumed
Service contracts imply service interfaces on participants
Participants and services may be used in multiple architectures.
Service contracts imply service interfaces on participants
Participants and services may be used in multiple architectures.
Ports on the participants provide and require the service interfaces for each service provided or consumed Provided interface Required interface “ Conjugated” interfaces
Logical System Components Components implement the service interfaces providing the link to systems. A component may realize a services architecture.
Composite Application Components Components can be assembled from other components by linking their services. This corresponds to the architecture for Acme. Ideally, IT components directly play the roles of SOA participants. This component is defined as a composition of other components. This is a service delegation to an internal subcomponent. This is a service channel connection between a consumer and a provider.
Legacy Application Architecture In reality, the legacy architecture of most enterprises often does not reflect the business service architecture clearly. Participant roles are played primarily by human workers using ad-hoc IT interfaces. A request point is a port that is used to request services provided by a corresponding service point. Human participants may also interact without the aid of IT.
Acme Order Processing: Initial Service Implementation This is Acme’s initial pilot service-oriented solution architecture. Existing enterprise systems can be integrated using adapter components This new component provides full back-end support for fulfillment. The new component uses back-end service interfaces directly based on the business services architecture.
Adapting Enterprise Systems This is the inside of the SAP AR component – also a composition, it uses the existing SAP interfaces and adapts them to the service contract. This separates the concerns of a particular enterprise system from the enterprise SOA. Sometimes the system interfaces are used directly or adapted by an Enterprise Service Bus (ESB).
Acme Order Processing: Re-Architected Service Implementation Acme next decides to implement a new Fulfillment Component, with external service interfaces, while continuing to use adapter interfaces to back-end AR and Inventory Management systems.
Provisioning Technology Artifacts Business Concerns Technology Specification JEE, JMS, Web Services, .NET WSDL, BPEL, XML Schema Logical System Model Technology Services (t-SOA), Components Interfaces, Messages & Data Business Model Business Services (b-SOA) Roles, Collaborations & Interactions Process, Rules & Information
How Do You Implement a Service Oriented Enterprise?
“Implementing” the Service Oriented Enterprise can mean several things:
Re-engineering enterprise business processes to a target service-oriented business architecture.
Re-aligning enterprise organization for service delivery.
Establishing effective IT support for enterprise business services
An Enterprise Service Implementation Platform provides a consistent set of IT technologies for implementing a Service Oriented Enterprise.
By wrapping and adapting existing systems
By creating new applications
Using “code free” configuration
Enterprise Service Implementation Platform: Solution Approach Service Delivery Service Orchestration & Workflow Solution Architecture
Business Process Management (BPM)
Business Rule Management
Enterprise Service Bus (ESB)
Service Operations & Governance
Standards in the Web Services Stack Source: SUN, 2007
Example Provisioning to JEE Web Services How SoaML is provisioned to technology artifacts, such as Web Services, is not yet standard. This illustrates one approach. The components to be provisioned are dropped into a technology specific provisioning node (in this case JEE and web services).
Custom Business Logic Components Application Framework Generated Component Wrapper Custom Code Framework Component Application components provide service implementations with user supplied logic. These “plug into” the users architecture as composite application components Framework components add infrastructural capabilities by extending the platform (E.G. JBI) and are called by the provisioned code or platform configuration XSLT Java Etc. As MDA progresses, there will be less and less need for custom components, but the capability will remain. Custom part is separate from the generated part
Model-Driven Development Using a standard-conforming UML modeling tool With custom business logic components Developers write the custom logic code Technologists specify the implementation platform The models are provisioned onto the target platform Architects create the models
Model Driven Development With fully executable models Using a standard-conforming UML modeling tool Using a standard-conforming UML execution tool The models are the source code. Analysts validate the models by executing them in a simulated test environment Technologists specify the implementation platform The models are provisioned as executing artifacts on the target platform Architects create the models