210 likes | 351 Views
SOA and MDA Hand-in-Glove or Square-Peg, Round-Hole?. David Piper Principal Consultant. Agenda. Service Oriented Architecture Focus Architecture, Requirements, Solutions, Services MDA Focus Purpose and Structure Capabilities Uniting SOA and MDA Architecture, Requirements, Solutions,
E N D
SOA and MDAHand-in-Glove orSquare-Peg, Round-Hole? David Piper Principal Consultant
Agenda • Service Oriented Architecture Focus • Architecture, Requirements, Solutions, Services • MDA Focus • Purpose and Structure • Capabilities • Uniting SOA and MDA • Architecture, • Requirements, • Solutions, • Services • Sample SOA-MDA Pattern SOA and MDA
Business Technical Solution Solution Solution Solution Solution Service Service Service Service Service Service Project Project Project Data Service Catalogue SOA Focus – Model Stereotypes «Architecture» «Requirements» «Service» «Solution» SOA and MDA
Business «Architecture» Technical «Architecture» Project «Requirements» Architectures and Requirements As-Is Process To-Be Process Global Constraints SOA and MDA
Existing «Solution» New «Solution» Project «Requirements» Requirements and Solutions Delta Use Cases Requirements New Use Cases SOA and MDA
Service Catalogue New «Solution» Solutions and Service Catalogue Re-used Services Existing «Solution» New Service Specs SOA and MDA
«Service» «Service» «Service» Service Catalogue Service Catalogue and Services Implemented Services Service Specifications SOA and MDA
Analyze Code Test Deploy MDA Focus – Abstraction Gap Complex business process Model – Code Gap Complex technology (.Net, J2EE etc..) SOA and MDA
MDA Focus – Levels of Abstraction Computation Independent Model An expression of the business domain independent of the use of systems to support the processes. Platform Independent Model A design for the implementation of solutions to support the processes which is independent of the platform used for the implementation. Platform Specific Model A detailed design for the implementation of a solution which takes into account the details of the implementation platform and from which a high proportion of code can be generated. Implementation Code The code, specific to the implementation environment. SOA and MDA
MDA Capability – Model Transformation • Pattern based transformations applied within and across levels of abstraction • True synchronization between levels of abstraction allowing related models to be maintained in-step CIM PIM PSM Code SOA and MDA
Unifying SOA and MDA SOA and MDA
MDA and… Architectural Models Data Technical Business Computation Independent Model Business Process Business Rules… Platform Independent Model Technical Requirements Technical Patterns Interface Definitions Process-ServiceDependency Corporate Data Model Platform Specific Model Base Classes Utilities Technical Services Physical Data Model Implementation Code Class Libraries Database Definition SOA and MDA
MDA and… Requirements Models Project Computation Independent Model Business Process Business Rules… Use Cases Abstract Class Model… Interaction Model Platform Independent Model Platform Specific Model Implementation Code SOA and MDA
MDA and… Solution Models New/Existing Computation Independent Model Use Cases Abstract Class Model PIM Service Interfaces Interaction Model… Platform Independent Model PSM Service Interfaces User Interface Class Model Interaction Model… Platform Specific Model Implementation Code User Interface Code Service Interface References SOA and MDA
MDA and… Service Models New/Existing Computation Independent Model PIM Service Interface Abstract Class Model Interaction Model… Platform Independent Model PSM Service Interface Design Class Model Interaction Model… Platform Specific Model Implementation Code Service Code Dependee Service References SOA and MDA
Unified Architecture - Completed SOA and MDA
SOA and MDA – Transformations… • Extend the reach of MDA • Different transformations • Model stereotype specific • SOA specific transformations • Service Internal Architecture • Loose Coupling • Legacy Wrapping • Data Service Wrapping • … • Service Catalogue and MDA • Recognise levels of abstraction • Publish/Reuse as appropriate level SOA and MDA
«interface» IAddress GetAddress( in addressSummary : ..AddressIdentifier, out addressDetail : ..AddressDetail ) GetPostCode( in addressDetail : ..AddressDetail, out addressSummary : ..AddressIdentifier ) e Loose Coupling Pattern – PIM • PIM Features tight coupling • Using explicitly defined types • Focus on ability to trace through the model • Review impact of changing requirements SOA and MDA
e «schema» AddressDetail «interface» Street : string IAddress Area : string GetAddress( in addressSummary : string, out addressDetail : string ) City : string GetPostCode( in addressDetail : string, out addressSummary : string ) Country : string AddressIdentifier : AddressIdentifier 1 e e «schema» AddressIdentifier PropertyNumber : unsigned int 0..1 PropertyLetter : string PropertyName : string FlatNumber : unsigned int PostCode : PostCode e 1 «schema» PostCode AreaCode : string 0..1 SubAreaIndex : string WalkPrefix : unsigned int WalkCode : string Loose Coupling Pattern – PSM • <?xml version="1.0" encoding="utf-8" ?> • <xs:schema targetNamespace="http://selectbs.com/Addressee.xsd" • elementFormDefault="qualified“ • xmlns="http://selectbs.com/Addresee.xsd" • xmlns:xs="http://www.w3.org/2001/XMLSchema" > • <xs:element name="addressDetail"> • <xs:complexType> • <xs:sequence> • <xs:element ref="addressIdentifier" minOccurs="0" maxOccurs="1"/> • </xs:sequence> • <xs:attribute name="street" type="xs:string" use="required"/> • <xs:attribute name="area" type="xs:string" use="optional"/> • <xs:attribute name="city" type="xs:string" use="required"/> • <xs:attribute name="country" type="xs:string" use="required"/> • </xs:complexType> • </xs:element> • ... • </xs:schema> • PSM Features loose coupling • Use of XML Schema (perhaps SOAP…) • Runtime enforced typing SOA and MDA
Conclusions • SOA and MDA • Different focus of attention • Model Stereotype (role) for SOA • Abstraction level for MDA • Combining the two approaches • Maintains separation of concerns for SOA • Maintains unbroken traceability for MDA • Opportunity to take advantage of both sets of benefits • Extended transformations to support • SOA and MDA • Patterns focused on stereotype and abstraction SOA and MDA
Thank you… …For Listening. For more information about MDA, Select Solution for MDAand the industry leading service-oriented development process Select Perspective why not visit Select Business Solutions at booth 7? Alternatively visit our website: www.selectbs.com You can also contact the presenter: Email: david.piper@selectbs.com Skype: dbpiper Mobile: +44 7965 552231 SOA and MDA