300 likes | 319 Views
Learn how to model a Service-Oriented Architecture (SOA) effectively using Rational Unified Process (RUP) and UML 2.0. Discover challenges, goals, and solutions for successful implementation. Explore demos and examples for practical insights.
E N D
Developing an SOA with RUP and UML 2.0 Giles Davies
Agenda • What is SOA? (Very quickly!) • What are the challenges in modelling an SOA? • Solution: Goals • Solution: RUP for SOA • Demo • Solution: UML Profile for Software Services • Demo • Example IBM Software Development Platform SOA Toolset • Review
What is …..? … a service? A repeatable business task – e.g., check customer credit; open new account … service orientation? A way of integrating your business as linked servicesand the outcomes that they bring … service oriented architecture (SOA)? An IT architectural style that supports service orientation … a composite application? • A set of related & integrated services that support a business process built on an SOA
Why is this different to similar claims in the past? • Broadly adopted Web services ensure well-defined interfaces. • Before, proprietary standards limited interoperability • Business and IT are united behind SOA (63% of projects today are driven by LOB)* • Before, communication channels & ‘vocabulary’ not in place Organizational Commitment Standards • SOA services focus on business-level activities & interactions • Before, focus was on narrow, technical sub-tasks • SOA services are linked dynamically and flexibly • Before, service interactions were hard-coded and dependent on the application • SOA services can be extensively re-used to leverage existing IT assets • Before, any reuse was within silo’ed applications Degree of Focus Connections Level of Reuse *Source: Cutter Benchmark Survey
What are the challenges in modelling an SOA • SOA is being increasingly adopted, but: • How do you model a SOA? • What level of abstraction is suitable? • What modelling techniques should be used? • Are traditional OOAD techniques suitable? • Which tools should can/should be used?
Solution: Goals • Provide new method and model support for SOA • Consistency • Guidance • Model at a level of abstraction above implementation technologies • Higher level than the various Web Services specifications • SOA concepts to be first-class elements • Model to be extensible • Provide deliverables: • RUP for SOA plug-in • Model support • Documented • Available within toolset
Solution: RUP for SOA • A published and supported plug-in for RUP • Adds additional: • Workflow details, • Activities, • Concepts, • Guidelines
Key New Activities • Identify Services • Performed by the Software Architect within the Analysis & Design and Refine the Architecture workflows. • Output is the Service Model • Defines candidate services • Service Design • Performed by the Designer within the Analysis & Design and Design Services workflows. • Refines the Service Model • New viewpoints: Message, Service and Collaboration
Key new concept: Service Portfolio • An application is a configuration of services • Meets business requirements • Projects no longer bound the development cycle • Discovery • Draw from portfolio during elaboration • Publishing: • Contribute to portfolio during construction
Key new concept: Service Partitioning • Use UML 2 Composite Structure notation for partitions • Remove the physical limitations of packages - ownership • Provide logical groupings of services • Permits services to contribute to multiple partitions
Key new concept: Service Composition & Choreography • Service Choreography: • Composite service based applications • Service collaboration • BPEL • “Orchestration” • Services as Composite Structures • May be recursively composed of other services • Specifying Service Behaviour • Guidance
Key new concept: Message Design • Messages are more suitable than parameters in an SOA: • Services are intended to have large granularity • Services are loosely coupled • Services are often asynchronous • Provides an overview of: • Message exchange patterns • Relationship between messages and domain models • Granularity • Performance
<<Service Provider>> • Extends Class • Provides one or more services • Has no attributes or operations • Contains <<Service>> elements • Property location specifies end-point location • e.g. http://services.abc.com
<<Service>> • Extends Port • End-point for service interaction • Definition of interactions is part of <<Service Specification>> • Property for binding type • e.g. SOAP-HTTP, SOAP-JMS
<<Service Specification>> • Extends Interface • <<Service Specification>> defines interactions that the <<Service>> provides • Provides one or more operations • May be more than one <<Service Specification>> for a <<Service>> • All operations are public (mandatory) • Each operation may consume no more than one <<Message>> • Each operation may produce no more than one message
<<Message>> • Extends class • A container for actual data which has meaning to the service and the consumer • Has no operations • Property for encoding form (e.g.: SOAP-literal, SOAP-rpc, ASN.1)
<<Service Partition>> • Extends class • Represents either a logical boundary • Tiers • Functionality • Or a physical boundary • Geographical locations • May have associated qualities and constraints • Has no attributes or operations • Contains either <<Service>> elements or nested <<Service Partition>> elements
UML Profile for Software Services • Not just documentation • The profile is available to download • There is a plugin for IBM Rational Software Architect/Modeler that includes a Service Design Model template
Using IBM Rational & WebSphere tools together in SOA Publish and Reuse Components IBM Rational Application Developer ExistingServices Service Portfolio RAS Repository IBM Rational Software Architect UDDI Server Component Toolkits RAS WSDL Requirements and Use Cases IBM Rational Requisite Pro Service Design Component Toolkits Use Cases UML IBM WebSphere Process Server IBM WebSphere Portal Server IBM WebSphere Integration Developer Static and Dynamic Models .WAR UML IBM WebSphere Business Modeler BPEL (deployable) Business Process “As Is” “To Be” BPEL (model) BPEL Toolkit IBM Rational ClearCase (Configuration Management) IBM Rational ClearQuest (Change Management) BuildForge (Continuous Integration)
Review • Challenges: • How do you model a SOA? • What level of abstraction is suitable? • What modelling techniques should be used? • Are traditional OOAD techniques suitable? • Which tools should can/should be used?
Resources • Modeling service-oriented solutions • http://www-128.ibm.com/developerworks/rational/library/jul05/johnston/ • UML 2.0 Profile for Software Services • http://www-128.ibm.com/developerworks/rational/library/05/419_soa/ • UML Profile for Software Services, RSA Plug-In • http://www-128.ibm.com/developerworks/rational/library/05/510_svc/ • RUP Plug-In for SOA V1.0 • http://www-128.ibm.com/developerworks/rational/library/05/510_soaplug/
Thank You Giles Davies giles.davies@uk.ibm.com