Your SlideShare is downloading. ×
SOA-based Systematic Reuse
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SOA-based Systematic Reuse

475

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
475
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 08/14/09 01:13 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • 08/14/09 01:13 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • Transcript

    • 1. SOA-based Systematic Reuse Key Considerations when building service capabilities Vijay Narayanan Systematic Software Reuse Evangelist http:// www.artofsoftwarereuse.com /
    • 2. SOA-based Systematic Reuse Asking the right questions… Is your dominant metaphor Web Services or Service Orientation? Do you facilitate message exchange patterns beyond synchronous request/reply? Are you leveraging existing assets whilst achieving loose coupling? Are service capabilities aligned with enterprise data standards? Do service contracts use consistent names, namespaces, and reuse types and error codes? Are you trying to build the perfect service? Do you build services in the hope that someone will consume them? Are service capabilities aligned with the organization’s problem domain? Do service capabilities reflect domain concepts and not pursue meaningless abstractions? Ask the hard questions early and often! Legacy Asset Leverage MEPs Sample Fill Domain Alignment Agility Lightweight Governance Development Metaphor Legacy Asset Leverage
    • 3. Pursue Service Orientation Metaphor
      • Web services Metaphor
        • Code first development
        • Service capabilities are an after-thought
        • All services are SOAP/HTTP
        • XML is the only data format
        • Bottom up and isn’t governed
        • Development teams may or may not reuse service capabilities
      • Service orientation Metaphor
        • Service capabilities are built, versioned, audited, reused, and consumed
        • Contract first development
        • Service capabilities are transport independent
        • Support multiple data formats (XML, JSON, RSS etc.)
      Development Metaphor
    • 4. Support Multiple Message Exchange Patterns (MEPs)
      • Recognize the need for multiple MEPs
        • Synchronous request/reply for consumers who need on-demand real time access
        • Asynchronous request/reply for consumers who need to wait for long running business processes to complete or they don’t need an instantaneous response
        • Asynchronous publish/subscribe for event driven messaging and ability to support consumers that need notifications based on key milestones occurring in a service.
      MEPs
    • 5. Leverage Legacy Assets for Services
      • Loosen up tight coupling among legacy modules
      • Avoid contract to implementation coupling when leveraging existing legacy services
      • Use a service mediation layer to wrap legacy services - minimize (if not eliminate) consumers from directly accessing legacy services
      • Utilize legacy services as building blocks for complex service compositions
      • Integrate reliable messaging for synchronizing legacy systems with data from master data stores.
      • Be cognizant of unanticipated dependencies to consumers of reusable services (i.e. every consumer is relying on a mainframe system being highly available – does that impact batch windows?
      Legacy Asset Leverage
    • 6. Introduce Lightweight Governance
      • Avoid building redundant service capabilities
      • Align service contracts with data standards
        • Syntactic alignment
        • Semantic alignment
        • Never couple contracts with physical data models; prefer logical ones instead.
      • Utilize consistent naming for namespaces, schema types specifically collections
        • Include service contracts in code reviews.
        • Inconsistent schema types inhibit reuse.
      • Reuse error codes and error handling semantics across service capabilities
      • Gather metrics for reporting and analysis
      • Reuse data entities across service capabilities
        • Avoid inline definition of schema types in WSDL
        • Family of related service capabilities must reuse schema definitions
      Lightweight Governance
    • 7. Pursue Both Agility & Systematic Reuse
      • Create an overall reuse strategy that is relevant to your specific problem domain
      • Align every iteration and release towards the strategic direction. You won’t succeed always but got to push!
      • Deliver services early and often. Use continuous refactoring and code reviews to make service contracts standardized and reduce needless coupling over time.
      • Create a standard service hosting environment for deploying and scaling services.
      • Use software product line practices to manage variation among reusable services
      • Use design patterns and common architecture among services to address horizontal needs and promote service reuse.
      Agility
    • 8. Ensure Domain Alignment and Relevance
      • Don’t build reusable services that vendors or open source solutions already provide
      • Build services that are relevant to your problem domain. Below are a few places to look:
        • Master data management (MDM) solutions require services of varying granularity on top of core enterprise data entities
        • Business processes that require automated steps – business decisions, transactions, governance, sales/distribution – all these process activities require domain relevant services
        • Existing legacy systems that support critical business functions for the enterprise. They might not have the exact service you need but will often provide the foundational capability
      • Services must use domain relevant abstractions:
        • Have your business analysts review contracts (at least at a conceptual level)
        • Avoid building services that expose technical or solution oriented abstractions.
      Domain Alignment
    • 9. SOA-based Reuse Isn’t an Island… SOA needs to co-exist with the enterprise’s overall systematic reuse strategy and needs to evolve in conjunction with existing components, frameworks, patterns, and other assets as part of a holistic approach to achieving reuse. Regardless of particular approach, the goals of systematic reuse – quicker time to market, higher quality, ability to create new solutions, and reducing development costs – remain the same. Systematic Reuse Strategy Components Domain specific Assets Frameworks Services Domain agnostic Assets

    ×