6SoaML (SOA Modelling Language) SoaML provides a standard way to architect and model SOA solutions using the Unified Modeling Language® (UML®).Developed and maintained by OMGThe SoaML profile uses the built-in extension mechanisms of MOF and UML to define SOA concepts in terms of existing UML concepts.
7continued…SoaML can leverage Model Driven Architecture® (MDA®) to helpMap business and systems architecturesChart technologies that support business automationSoaML supports both Top down and bottom- up development for SOA
9Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
10Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
11Service InterfaceA ServiceInterface is a UML Class and defines specific roles each participant plays in the service interaction«ServiceInterface»Place Order Service – this is the root of the service interface and represents the service itself – the terms and conditions under which the service can be enacted and the results of the service. The service interface may be related to business goals or requirements.This service interface is defined from the perspective of the provider of the service – the order taker.provider : Order Taker – this defines the role of the provider in the place order service. The provider is the participant that provides something of value to the consumer.consumer: Order Placer – this is the role of the consumer in the place order service. The consumer is the participant that has some need and requests a service of a provider.Order Taker – this is the interface for a place order service provider. This indicates all the operations and signals a providing participant may receive when enacting this serviceOrder Placer – this is the interface for a place order service consumer. This indicates all of the operations and signals a consuming participant will receive when enacting the service.
12continued… Name of the service Service interactions through realized interfacesA detailed specification describingCapabilities and ObligationsPreconditionsPost conditionsInputs and outputsExceptions that might be raisedProtocol or rules for using the serviceProvider instructions for implementing the serviceSuccess criteria
13Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
14ParticipantParticipants represent software components, organizations, systems, or individuals that provide and use services.
15continued…A participant can be a Service Provider or a Consumer, which represents roles that a Participant plays in a relationship.Internally a participant may specify a behaviour, a business process, or a more granular service contract as a Participant Architecture.Participants interact in 3 ways –Method invocationEvent HandlingDelegation
17Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
18Port Participants have ports! Port is an interaction point where services are provided and consumed.Port can have a Provider or a Request interface on it. The type of port determines the activity that it performs.
20Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
21Service ChannelCommunication path between a request and a provider within an architecture.A Request is compatible with, and may be connected to a Service through a ServiceChannel if:The Request and Service have the same type, either an Interface or ServiceInterface.The type of the Service is a specialization or realization of the type of the Request.
23Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
24Message TypeA MessageType is service data object that represents information exchanged between participant requests and services.Example of JAX-RPC vs JAX-WS Document Literal wrapped.
25continued… Information in a message type is Data passed in Input or output or exception of operationData in an Event SignalA MessageType is in the domain or service- specific content.
26Key components of a SoaML Service InterfaceParticipantPortServiceRequestService ChannelMessage TypeExposure
27ExposureExpose dependency is a relationship between a Service Interface and a Capability it exposes or that provides it.The source of the Expose is the ServiceInterface, the target is the exposed Capability
28CapabilityA Capability represents something a Participant needs or has to have in order to achieve its goalsCapabilities specify a cohesive set of functions that a participant might offerAbility to specify the behaviour of a participant that will realize or implement a ServiceInterface
29continued…Specify behaviour via ServiceInterfaces and are realized by participants
30Service ArchitectureThe services architecture is an extremely high-level view of how services work together for a purpose.A ServicesArchitecture is a network of participating roles providing and consuming services to fulfil a purpose.The services architecture may also have a business process / sequence , to define the tasks and orchestration for the architecture.The services architecture puts a set of services in context and shows how participants work together to support the goals.Emphasis on roles as we haven’t defined yet, at this stage, for a participant, the type of party that fills the role. A role defines the basic function (or set of functions) that an entity may perform in a particular context.
31continued…SA’s are represented using UML Collaboration
32continued…SA of a participant – drill down one level
33Service ContractA ServiceContract defines the terms, conditions, interfaces, and choreography that interacting participants must agree to for the service to be enacted;The choreography is a specification of what is transmitted and when it is transmitted between parties to enact a service exchange.Might link to activity diagrams, business process diagrams, interaction diagrams.Foundation of formal SLAHelps formalise requirements without constraining the how.
34continued…Both participants utilise the same port
36Comparison to RSARSA is eclipse based modelling platform and uses UML2RSA does not support SysMLRicher support for SoaMLBoth support model to model-to-model transformationBoth support round-trippingEMF / UML2 provides a higher degree of UML conformance than EA's database-based data model.
37Comparison to VisioVisio stensil for UML (has non confirming UML constructs) for SoaML.Validations for BPMN modelling is weak and portability is limitedLimited support for SCM (enterprise version supports sharing through sharepoint)No support for Simulation
38What EA doesn’t do?Windows native. External support available on other platforms??Limited GovernanceFew SCM tools supported (generally enough for most organizations)