1 / 23

SOA Delivery Strategies and Service Oriented Analysis I

SOA Delivery Strategies and Service Oriented Analysis I. 605.702 Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2008 Session 10, Lecture 8: March 26, 2009 Instructor: T. Pole . Agenda. Required Reading This Week Chapter 10: SOA Delivery Strategies

kiaria
Download Presentation

SOA Delivery Strategies and Service Oriented Analysis I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOA Delivery Strategies and Service Oriented Analysis I 605.702 Service Oriented ArchitectureJohns-Hopkins University Montgomery County Center, Spring 2008 Session 10, Lecture 8: March 26, 2009 Instructor: T. Pole

  2. Agenda • Required Reading This Week • Chapter 10: SOA Delivery Strategies • Chapter 11: Service Oriented Analysis Part I: Introduction • Today’s Lecture • Pre-Project Exercise 4B • SOA Deliver Strategies and Service Oriented Analysis

  3. Exercise 4B Overview • Based on Exercise 4 • Demonstrate implementation skills needed for completing the class project • Most (but not all) of the design work is given to you, you need to make a few final design decisions and build the services

  4. Skills Required in this Exercise • Building web services with VS2008 • New control service • SEAMIndex Service • Utility, legacy application wrapping services • TextIndexer Service • DocManager Service • Consuming C# Class Libraries in VS2008 • TextIndexer and DocManager class libraries

  5. Exercise Requirements (1 of 2) • Implement the three services • SEAMIndex Service • Controls the three MEP’s • TextIndexer Service (wrap legacy TextIndexer app) • Creates a word index of a document, and allows subsequent searches for docs based on the words those docs contain. Does NOT store the document • DocManager Service (wrap legacy DocManager app) • Stores documents, produces a unique ID for each Doc stored (also used by TextIndexer to identify the docs it indexes), allows them to be classified or “tagged”, and to be searched for buy those classifications, and to retrieve by its unique ID

  6. Exercise Requirements (2 of 2) • Satisfy the two use cases/transactions: • Ingest (index, classify and store) documents/assets • Search for documents/assets by indexed words in the content of the assets, and/or by terms it is classified by, returning a list of the unique ID’s of matching assets/documents • Subsequently, access assets/documents by their unique ID • Implement a client/text driver application

  7. Exercise #4: Implementing a Service Composition TestConsumerUI SEAMIndexService ------------------ Register Asset FindAssetClassifyAsset GetAsset TextIndexerService ------------------ IndexDocQueryIndex DocManagerService ------------------ StoreDoc GetDoc GetAsseIDs ClassifyAsset

  8. Exercise #4: Message Exchange Pattern for Ingest Asset MEP #1 SEAMIndexService ------------------ Register Asset FindAssetClassifyAsset GetAsset TextIndexerService ------------------ IndexDocQueryIndex 2 1 DocManagerService ------------------ StoreDoc GetDoc GetAsseIDs ClassifyAsset 3

  9. Exercise #4: Message Exchange Pattern for Find and Access Asset (optional) MEP #2 SEAMIndexService ------------------ Register Asset FindAssetClassifyAsset GetAsset TextIndexerService ------------------ IndexDocQueryIndex 1 3 DocManagerService------------------ StoreDoc GetDoc GetAsseIDs ClassifyAsset 2

  10. Sequence: Ingest Asset • Register the metadata describing the asset • The indexing of the textual content is processed by the TextIndexer legacy application • The classification of the asset is processed by the DocManager legacy application • The content is stored in the DocManager • The unique Asset ID is generated by DocManager when the Asset is stored.

  11. Sequence: Search for and Access Asset • One or both of: • Submit classification based query to DocManager which returns a list of matching asset’s DocID’s • Submit text classification based query to TextIndexer which returns a list of matching asset’s DocID’s • Select an asset to retrieve and submit its DocID to DocManager to retrieve it • Exercise #4 Interface: Services and Operations • SEAMIndex Service (New Service and Functions) • bool {status of success} RegisterAsset( string AssetAsText ) • string[] {Asset IDs} FindAsset( string QueryString, string Clasification ) • bool {status flag} ClassifyAsset( string AssetID, string Class) • string {asset as text} GetAsset( string AssetID ) • TextIndexer Service (Wraps Legacy Component) • Bool {Status Flag} IndexDoc( string DocAsText, string AssetID ) • string[] {array of matching asset ID’s} QueryIndex( string QueryString ) • DocManager Service (Wraps Legacy Component) • string {Doc ID} StoreDoc( string DocContent ) • string {Doc as text} GetDoc( string DocID ) • string[] {array of matching asset ID’s} GetAssetIDs (string Classification) • bool {success flag} ClassifyDoc( string DocID, string Classification )

  12. Changes from Ex 4 interface spec • AssetID return type replaced by string type • string[] FindAsset( string Title, string Author ) changed to FindAsset( string Query String, string Clasification) • Replaces two values for Title and Author fields with one string containing a single word text query (Google style search) to be searched for and one • Changes return type to an array of string Asset IDs instead of one AssetID • Removed requirements for XML/XSD types • Adds argument to IndexDoc for a string AssetID, which is the ID used to identify the Doc indexed for future searches • Changes return of QueryIndex from AssetID[] to string[] • Changes return type of StoreDoc from AssetID to string

  13. Legacy Components API • Supplied as C# Functions • All SOAP interfaces for the Web Services wrapping these, will have the same interface signatures • TextIndexer Service (Wraps Legacy Component) • bool {Status Flag} IndexDoc( string DocAsText, string AssetID ) • string[] {array of matching asset ID’s} QueryIndex( string QueryString ) • DocManager Service (Wraps Legacy Component) • string {Doc ID} StoreDoc( string DocContent ) • string {Doc as text} GetDoc( string DocID ) • string[] {array of matching asset ID’s} GetAssetIDs (string Classification) • bool {success flag} ClassifyDoc( string DocID, string Classification )

  14. TextIndexer Legacy Component • The current (3/20/09) version is only a “stub” to develop against • QueryIndex: Always returns a list of the same two AssetID’s • IndexDoc: If the input parameter DocAsText contains the term “Correct” OR if the ASsetID equals “Asset03” it will return true, otherswise false

  15. DocManager Legacy Component • The current (3/20/09) version is only a “stub” to develop against • ClassifyDoc: If you send the classification term “Good Classification”, the method will return true, otherwise false • GetAssetID: Will always return a list of the same three AssetID’s • GetDoc: Will always return the same tiny document, as a string of characters • StoreDoc: Will always return the DocID “ Doc03”

  16. Example Building a Web Service that Consumes Legacy Apps • Create Service • Create Test Client • Add Legacy Apps to Service Projects • Integrating App Functions and Exposing them as Operations • Consider Refactoring • Consuming Legacy App Functionality through Utility Service

  17. Integrating Legacy Apps • Download the client/test driver application project from the class web site • Integration Stubs available are used by the client/test driver, and when you rebuild the client/test driver, you will now have those available on your PC • Add this client/test driver project to your Exercise 4B solution

  18. Ch 10 Delivery Strategies • Overview • 10.1 SOA Delivery lifecycle phases • Series of steps required to construct the services for a given service oriented solution • 10.2 Top Down Strategy • Analysis first approach, aligned with biz model • 10.3 Bottom Up Strategy • Create service to fulfill application requirements • 10.4 Agile Strategy • Biz analysis concurrent with service design & dev.

  19. 10.1 SOA Delivery Life Cycle • Typical system development phases • Service Oriented Analysis • Service Oriented Design • Service Development • aka Creation Implementation • Service Testing • Service Deployment • Service Administration • Operation, Monitoring and Maintenance

  20. 10.2 Top Down Strategy • Analysis First Approach • Assume that business requirements have already been collected • Probably derived from existing business process definitions • Business model driven • Can result in high quality, organizationally agile, evolvable SOA implementation • Requires substantial pre-work (business process engineering, etc.)

  21. 10.3 Bottom Up Strategy • Encourages creation of services specifically for application centric needs • Integration is often the primary motivation • Services are built as needed • Approach used by majority of “SOA” development projects • But not really service oriented

  22. 10.4 Agile Strategy • Combination of the two: top down and bottom up • Initial top down analysis • Followed by iterations through the rest of the life cycle • Some services are being developed while additional analysis is being performed for future changes to existing services, and creation of new services. • Best fit for fulfilling immediate needs while minimizing impact on organization’s business model and service oriented qualities of the architecture.

  23. Ch 11 Service Oriented Analysis Part I - Introduction • Determine the scope of the SOA • Analysis of requirements • Derive additional functional requirements • Derive system level requirements • Identification of business processes that will be automated in the SOA • Map out the (candidate) service layers • Identify individual service operations modeled as candidate services • Chapter 11 Structure • Intro to SOA Analysis • Benefits of a Biz Centric SOA • Deriving Biz Services • Analysis process defined in chap’s 11 and 12

More Related