Service Layers 605.702 Service Oriented ArchitectureJohns-Hopkins University Montgomery County Center, Spring 2009 Session 6, Lecture 6: March 4, 2009 Instructor: T. Pole
Agenda • Required Reading for This Week • Chapter 9: Service Layers • Today’s Presentation • Update on Chapter 8 • Today’s Lecture • Text CH 9 • Class Assignments • Exercise #4, Implementing a Service Composition • Review for Mid Term Exam • Mid Term is next week Wednesday March 11, 2009
Ch 8 Principles of Service Orientation • Additional notes on Chapter 8 have been added to the lecture notes for last week, Lecture 5 2/25/09 • Check these notes in reviewing for the mid term exam next week
Chapter 9: Service Layers • 9.1 SO and Contemporary SOA • Review table 9.1: how SOA characteristics are influenced by Web Service specs and SO principles • 9.2 Service Layer Abstraction • The service layer is between the application layer and the business process layer (see Ch 8) • The implementation of the service interface layer is sub-divided into layers following one of several different models • 9.3 Application Service Layer • 9.4 Business Service Layer • 9.5 Orchestration Service Layer • 9.6 Agnostic Services • 9.7 Service Layer Scenarios
9.2 Service Layer Abstraction • Figure 9.2 shows the SOA layers WITHIN the single Service Interface Layer of the Enterprise Architecture • Business Process Layer Processes of the Enterprise, not just the IT systems • Service Interface Layer • Orchestration Layer • Business Service Layer • NOT the Business Process Layer • Application Service Layer • NOT the Application Layer • Application Layer Legacy and Service Implementations
9.3 Application Service Layer • Sits within the Service Interface Layer, and integrates with the Application Layer below • Solution (Meaning business process) agnostic, are more generic and usually reusable across multiple biz processes • Can also be used to integrate other application services • Mixture of custom and COTS products • Hybrids may cross the line between business and application logic
9.4 Business Service Layer • Business services can be mapped to small grained or low level specific business processes and entities • Business oriented services can be • Entity Centric • Task Centric • Not both, but a business service layer can be a mix of both. Usually will be primarily one or the other
9.5 Control or Orchestration Service Layer • Introduces another type or service, the process service (aka but not synonymous with the controller service) • Directly relates to a business process • Controls other business, hybrid and application/utility services to automate a process • Can be implemented in “non-technical” languages, e.g. BPEL
9.6 Agnostic Services • Agnostic in this context can mean not bound to any one process • e.g. an entity based service can be used by multiple biz processes that involve that entity • e.g. a utility service is by definition a generic reusable service not bound to any business entity: task or entity based • Exist with the application service layer or the business layer
9.7 Service Layer Scenarios • There is no one layered model for the Service Interface Layer, some options are: • Single hybrid layer • Common, doesn’t evolve well, brittle • Hybrid over utility • Also common among mature software developers, reuse driven • Biz task centric over utility • Often the goal for mature business centric developers • Task centric over entity centric over utility • Common among mature systems, flexible, adaptable • Orchestration over hybrid over utility • Better then single hybrid, but extending to new orch. difficult • Orchestration over task centric over utility • Flexible, evolves well, flexibly adjusts to change
Exercise #4: Implementing a Service Composition TestConsumerUI SEAM Index ------------------ Register Asset FindAssetClassifyAsset TextIndexer ------------------ IndexDocQueryIndex DocManager ------------------ StoreDoc GetDoc ClassifyAsset
Exercise #4 Interface: Services and Operations • SEAMIndex Service (New Service and Functions) • AssetID RegisterAsset( string AssetAsText ) • AssetID FindAsset( string Title, string Author ) • bool ClassifyAsset( string AssetID, string Class) • TextIndexer Service (Wraps Legacy Component) • Bool StatusFlag IndexDoc( string DocAsText ) • AssetID QueryIndex( string Title, string Author ) • DocManager Service (Wraps Legacy Component) • AssetID StoreDoc( string DocContent ) • string GetDoc( string DocID ) • bool ClassifyDoc( string DocID, string Classification )
Legacy Components API • Supplied as C# Functions • TextIndexerAppLibrary • bool IndexTerms( string Content ) • String FindDocs( string Title, string Author ) • DocManagerAppLibrary • string Store( string DocContent ) • string Retrieve( string DocID ) • bool Categorize( string DocID, string Category )
Integrating Legacy Apps • Download complete applications assemblies from class web site • Integration Stubs available now • Fully functional projects will be published next week • Add as projects to your solution
Review for Mid Term Exam • Review of the previous lectures • Q&A for Chapters 1 – 9 • Review of Implementing Web Services and SOA Designs in Visual Studio/ASP.Net • Additional Notes
SOA Implementation via Web Services in ASP.Net • Exercise #1: Web Service Consumers • Web Reference • What is it doing? • What is its purpose? • Exercise #2: Building a Web Service • What does a Visual Studio Web Service project generate? • Exercise #3: Publishing a Web Service • What is published to the remote site?
Additional Notes: Service Oriented’ness • When designing a service oriented architecture, ask yourself: • Is communication among services and consumers like a phone conversation or the exchange of standard forms • If it is like a phone call interview, it is chatty and not service oriented. • A service is being performed, but each interaction in the system is only a piece of the complete service • If it is like an exchange of standard forms, and all the information required to perform the service is on that single initial form, and the information required is returned in a equally complete single form, it is service oriented • Example: You need to determine if several checks you’ve written have cleared the bank.
Not Service Oriented • Call the bank, the operator ask what your need is. • You respond you wish to verify if these checks have cleared • They ask you to identify your account and your person. • They validate your identity and ask which checks: which numbers and what dates. • You give them the check information, one check at a time. • They verify each one at a time.
Service Oriented • You fill out a form which includes your account information, personal identifiers, the service you want performed (verify checks have cleared), and the numbers of the checks. • The response is another form listing the state of all the checks you have asked to have verified.
The Difference? • They both perform the same business process • They both have the same accuracy and completeness • One is a complete service performed in one single step, and is service oriented • The other is performed by many related interdependent steps, and is not
Summary • Session 7: 3/11/09 • Mid Term Exam • Introduction of Class Week • Spring Break the following week • Exercise #4 is due 3/25/09 • Specifications for Class Project will be presented