Transcript EMM
Enterprise Message Model Secret Sauce for SOA Success Dave McComb June 29 2006 7/17/2015 © 2006 Semantic Arts, Inc 1 Two main approaches to Planning SOA • Edges in: Use discovery technology to understand existing interfaces and rationalize them • Center out: define a shared semantic model of interaction and base message traffic off of this (EMM) 7/17/2015 © 2006 Semantic Arts, Inc 2 “Edges In” Approach • Start from existing services • Create a formal definition of the service – Get beyond keywords • Design Time • Run Time 7/17/2015 © 2006 Semantic Arts, Inc 3 Standard Web service cycle Register Find Service Registry Search for Service 1. Register WSDL 3 WSDL Service Provider 6. Process Request 7. Reply 2. UDDI Service Consumer 5 SOAP 8 SOAP 4 Compose Request based on WSDL 9. Consume Info Bind 7/17/2015 © 2006 Semantic Arts, Inc 4 Build a service Taxonomy Semantic Angle Register Find Service Registry Search for Service 1. Register WSDL 3 WSDL Service Provider 6. Process Request 7. Reply 2. UDDI Service Consumer 5 SOAP 8 SOAP 4 Compose Request based on WSDL 9. Consume Info To make it easier to find service you need Bind 7/17/2015 © 2006 Semantic Arts, Inc 5 Semantic Angle Register Find Service Registry Search for Service 1. Register WSDL 3 WSDL Service Provider 6. Process Request 7. Reply 2. UDDI Service Consumer 5 SOAP 8 SOAP 4 Compose Request based on WSDL 9. Consume Info Bind Deconstruct WSDL (OWL-S, WSDL/S, WSMO or USDL) 7/17/2015 © 2006 Semantic Arts, Inc 6 Semantic Angle Register Find Service Registry Search for Service 1. Register WSDL 3 WSDL Service Provider 6. Process Request 7. Reply Service Code that actually does something 7/17/2015 2. UDDI Service Consumer 5 SOAP 8 SOAP Bind © 2006 Semantic Arts, Inc 4 Compose Request based on WSDL 9. Consume Info Build and use a “side effects” ontology 7 Semantic Angle Register Find Service Registry Search for Service 1. Register WSDL 3 WSDL Service Provider 6. Process Request 7. Reply Service Code that actually does something 7/17/2015 2. UDDI Service Consumer 5 SOAP 8 SOAP Bind © 2006 Semantic Arts, Inc 4 Compose Request based on WSDL 9. Consume Info Run time discovery, based on one of the three 8 Center Out Approach Alternate Approach: Rather than having each provider build services and hope consumers can find them Define the kinds of services the enterprise will want, and pre-define the interfaces to them 7/17/2015 © 2006 Semantic Arts, Inc 9 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 10 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 11 Event Model Diagram Event : Receive Medical Bill Medical Bill Denial Notification Provider Identity Claimant identity Treatment Denial Notification Denial notification Claim Claimant Claim Pricing Tables Treatment Authorizations Open Claims Treatment Authorizations Service Price Treatment Accumulator Capture Electronic Bill Roles : Frequency : Description Capture Paper Bill Validate Provider Roles : Frequency : Description Valid provider? Validate Claimant Roles : Frequency : Description Valid Claimant ? Validate Treatment Roles : Frequency : Description Price Bill Valid treatment ? Pay Bill Roles : Frequency : Description Roles : Frequency : Description Paper Bill Roles : Frequency : Description Medical Bill Payment Provider Identity Provider Identity Payee/Providor Claimant identity Claimant identity Amount Treatment Account Medical Bill Treatment Treatment Accumulator s Amount Treatment counts Treatment Treatment code Justification Claim 7/17/2015 © 2006 Semantic Arts, Inc 12 Capture External Events <Document> <Element> Define the events which originate outside the enterprise, to which the enterprise must respond, as well as the actions that the enterprise will take that will be felt outside. At this point we are merely cataloging the events, not designing the messages. <Element> <Document> <Element> <Document> <Element> <Element> <Element> <Document> <Document> <Element> <Element> <Element> <Element> <Document> <Element> <Element> <Document> <Element> <Element> <Document> <Document> <Document> <Element> <Element> <Element> <Element> <Element> <Element> Enterprise Systems <Document> <Element> <Document> <Element> <Element> <Document> <Element> <Element> <Element> <Document> <Element> <Element> <Document> <Element> <Element> 7/17/2015 © 2006 Semantic Arts, Inc 13 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 14 Application partitioning techniques • Examine existing partitioning. CVP 60 EMPLOYEE FREIGHT 50 SHIP QUALITY PRODSCHED PRODENT PRICE INTERFACE INV ORDER PRICE PRODENT 40 30 ORDER PRODSCHED 20 INV Programs QUALITY 10 INTERFACE SHIP FREIGHT SYS SHIP PRICE PRODENT INV ORDER INTERFACE ENUM FREIGHT CVP CVP EMPLOYEE DATAWHSE QUALITY 0 EMPLOYEE DATAWHSE • Data access analysis. DATAWHSE Tables Updates Independent Mecdical Exam Medical Provider Employer Notification Employer Claimant • Business event analysis. Report Of Accident Employer Services Assign To Risk Class Record Claim Claims Managment Verify Claim Determine Time Loss Benefits Schedule Payments Approve Medical Benefits Claimant Claim Benefit Approval Payment Person Claimant Claimant Claim Employer Claim Employee Claims Manager Employer Claim Event Make Payment Claimant Claim Medical Benefit Benefit Time Loss Injury Accident 7/17/2015 © 2006 Semantic Arts, Inc 15 The “one data base, one application” rule. • The application’s dependence on your data structures is your tightest coupling, as measured by the number of references. • Therefore, in practice, all the apps that share a database should be considered a single app until proven otherwise. 7/17/2015 © 2006 Semantic Arts, Inc 16 Data Access Analysis # Of Updates CVP DATAWHSE 60 EMPLOYEE ORDER PRICE PRODENT PRODSCHED QUALITY SHIP 40 30 ORDER Program Programs Groups 20 INV 10 INTERFACE FREIGHT 0 Updates 7/17/2015 © 2006 Semantic Arts, Inc PRODENT PRICE ORDER INTERFACE FREIGHT ENUM DATAWHSE CVP CVP EMPLOYEE DATAWHSE INV EMPLOYEE SYS INV 50 SHIP QUALITY PRODSCHED PRODENT PRICE SHIP INTERFACE QUALITY FREIGHT Table Tables Groups 17 Event Based Partitioning Stimulus Data Flow Process Data Flow Process Data Flow Process Response Data Flow Ref: Creating Customer Focused Organizations; Brian Dickinson 7/17/2015 © 2006 Semantic Arts, Inc 18 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 19 What makes a good shared service ? (Some things are worth sharing, some things just aren’t.) 7/17/2015 © 2006 Semantic Arts, Inc 20 Service Oriented Architecture “The SOA models the business as a collection of selfcontained services that are available across the enterprise that can be evoked through standard protocols both internally and externally.” (Hohpe) Our Focus • Services are course grained collections of functionality rather than small components. • Services are partitioned out of their applications to eliminate duplicated functionality. • Services are runtime shareable functions. 7/17/2015 © 2006 Semantic Arts, Inc 21 Types Of Service • Business Services Business Applications Core business functionality – Accounts Receivable – Accounts Payable • Business-Neutral Services – – – – – Inbound Correspondence Outbound Correspondence Work Flow External Data Interchange Information Delivery • Infrastructure Services Business Services Provide application level functions that relate to a specific business task Business Neutral Services Application level functions applicable across multiple business functions Infrastructure Services Provide applications or other services with core services that are not specific to a particular application or business function. – Security – Rules Engine Ref: Gregor Hohpe. Web Services pathway to a Service Oriented Architecture, www.thoughtworks.com 7/17/2015 © 2006 Semantic Arts, Inc 22 Partitioning for Reusability – Shared Services Business Application Info Deliv. Data Exch. Rules Inbound Outbound Security Business Application Business Application Info Deliv. Rules Inbound Outbound Security Workflow Workflow Core Business Function 7/17/2015 Core Business Function © 2006 Semantic Arts, Inc Business Application Info Deliv. Info Deliv. Data Exch. Data Exch. Rules Rules Inbound Inbound Outbound Outbound Security Security Workflow Workflow Core Business Function Core Business Function 23 Identifying Candidate Services ELELEVATOR INSPECTION & TRACKINGLicensing & Permits The System provides automated procedures to create, maintain, and track WA Conveyance and Owner/Location Information, allows for the entry and logging of inspection and re-inspection reports; generates invoices, operating permits, inspection and re-inspection notices; assists in the orderly collection of accounts receivables; and prints Accounts related Receivable reports and listings. Functions include automated renewal, certification, record keeping and report generation. In 2000, there were 10,678 inspections conducted and over $1,366,600 Information Delivery in fees collected. -------------------FUNCTION Mission Critical: Yes Customer: Specialty Compliance Strategy: Elevator Program Category: Financial, Agency Specific Function Points / Users: 1573 / 23 Interfaces: none Implementation Date: 07/01/1990 -------------------TECHNOLOGY DBMS: ISAM-FAST Language: COBOL,PERL,TRANSACT,MICROFOCUS OS: UNIX Platform: HEWLETT-PACKARD 9000 Workflow -------------------SUPPORT Manager: # of FTEs: 1.5 -------------------NOTES This is a central office application only, not used by regional offices. Cash receipts are posted here and in EPIRRS. This is currently being re-written in Sybase/Delphi and will be called "ELVTR". Core 7/17/2015 © 2006 Semantic Arts, Inc 24 Identifying Candidate Services ELELEVATOR INSPECTION & TRACKINGLicensing & Permits The System provides automated procedures to create, maintain, and track WA Conveyance and Owner/Location Information, allows for the entry and logging of inspection and re-inspection reports; generates invoices, operating permits, inspection and re-inspection notices; assists in the orderly collection of accounts receivables; and prints Accounts related Receivable reports and listings. Functions include automated renewal, certification, record keeping and report generation. In 2000, there were 10,678 inspections conducted and over $1,366,600 Information Delivery in fees collected. 15% Common Licensing and Permitting code 20% Accounts Receivable functionality 15% Information Delivery (Reporting) -------------------FUNCTION Mission Critical: Yes Customer: Specialty Compliance Strategy: Elevator Program Category: Financial, Agency Specific Function Points / Users: 1573 / 23 Interfaces: none Implementation Date: 07/01/1990 20% Custom Workflow -------------------TECHNOLOGY DBMS: ISAM-FAST Language: COBOL,PERL,TRANSACT,MICROFOCUS OS: UNIX Platform: HEWLETT-PACKARD 9000 Workflow -------------------SUPPORT Manager: # of FTEs: 1.5 30% Core Business Logic -------------------NOTES This is a central office application only, not used by regional offices. Cash receipts are posted here and in EPIRRS. This is currently being re-written in Sybase/Delphi and will be called "ELVTR". Core 7/17/2015 © 2006 Semantic Arts, Inc 25 Identifying Candidate Services • Event Modeling – – – – Validate candidate services. Gather frequency and volume statistics. Outline interface messages. Primarily business users. • Service Requirement Sessions – Refine technical requirements. – Primarily application developers. 7/17/2015 © 2006 Semantic Arts, Inc 26 Service Requirements • Functionality – The superset of functionality for the service across the enterprise. • Interface – Service messages. • Quality of Service – Availability. – Response Time. • Demand Scenarios – How will the service be invoked. 7/17/2015 © 2006 Semantic Arts, Inc 27 Service Contract • Service Level Agreement • Pre and post conditions • Security Impositions Service Interface Messages Definitions Syntax / Signature • Availability • Response Time Contract Ref: Modeling For SOA Richard Veryard CBDI Journal Feb 2003 Cost per use $ and resources Logical Contract Quality Of Service Contract Semantics / Logic Semantics / Vocabulary Commercial Contract Enterprise Enterprise Message Model Message Definitions Model Definitions 7/17/2015 © 2006 Semantic Arts, Inc 28 Partitioning for Reusability – Shared Services Business Application Core Business Function Information Delivery Service 7/17/2015 External Data Interchange Service Business Application Business Application Core Business Function Rules Service Core Business Function Outbound Corr. Service © 2006 Semantic Arts, Inc Inbound Corr. Service Business Application Core Business Function Security Service Workflow Service 29 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 30 Application Ontology • Essentially an ontological representation of the application schema Tenant ElevatorBill Type Elevator size, type etc etc 7/17/2015 © 2006 Semantic Arts, Inc 31 Enterprise Ontology • What everyone in the enterprise could be expected to agree with Organizational Role Medical Provider Party Employer Organization Personal Role Person Claimant Payment Claim Event 7/17/2015 Injury Accident Vocational Guidance © 2006 Semantic Arts, Inc Claims Manager Financial Transaction Claim Medical Treatment Employee Medical Payment Reciept Time Loss Payment Employer Premium 32 Enterprise Ontology/ Semantic Model • A lot like an Enterprise Data Model – Focus on shared information – Focus on resolving level of abstraction issues 7/17/2015 © 2006 Semantic Arts, Inc 33 Gist: an Upper Ontology IntellectualProperty GeoRegion PhysicalMatter Active PhysicalDiscreteItem GeoPoint Artifact Constraint Query Generative Template Assertion Efferent Sensor Calculation LivingThings Person Time Legal Entity Landmark Instant Interval Substance Process UnitOfMeansure Language UoCount Text ID Category Domain OrdianlCat Temporal UoDistance Media PlannedActivity UoMass Picture HistoricalActivity UoTime NominalCat Video Audio Transaction UoEMF Offer UoLight Transfer Commitment Directive DurableTemporalRelationships Communique ExchangeRate UoTemp RatioUnit Ownership Observation ProductUnit Measurement Recording Description RightToAlter RightToView Agent (Person OR ActiveObject) Subject (Large union of classes) Property (owned by a legal entity) Membership Rights RightToCopy Currency Measure CategoricalDimension Symbol Collection Extensional Intensional RightToTraverse RightToDestroy Hypothesis Expectation RightToExtract RightToTransfer Context Freely available at gist-ont.com or ontologies.semanticarts.com/gist 7/17/2015 © 2006 Semantic Arts, Inc 34 Worked Example: Disambiguation Legal Entity GeoRegion ? Legal Entity Legal Entity GeoRegion GeoRegion Country Administrator Region Political Entity Country 7/17/2015 Jurisdiction Country © 2006 Semantic Arts, Inc 35 Worked Example: approximate agreement Legal Entity Upper Ontology Enterprise Ontology IP Person Agreement Party Invoice Customer Elevator terms Tenant Category Document Terms Substantiation ElevatorBill Type Elevator size, type etc etc 7/17/2015 © 2006 Semantic Arts, Inc 36 Mapping across abstraction levels Single_Family_Loan Loan Loan Id Loan Type Loan Amt Code Loan Amount A1 SF $350,000 01 $250,000 B2 MF $2,250,0000 <<restriction>> SF_Loan LoanType"SF":string Multi_Family_Loan Code Loan Amount 02 $1,200,0000 Single_Family_Loan LoanId :string LoanAmount :string Loan LoanId :string LoanAmount :string LoanType :string <<restriction>> MF_Loan: LoanType"MF":string 7/17/2015 © 2006 Semantic Arts, Inc Multi_Family_Loan LoanId :string LoanAmount :string 37 Common Subject Projections - Claimant ClaimantID Identifier View PersonID FirstName Standard View MiddleName LastName BirthDate DeathDate SSN Claimant ResidenceID ClaimantID ResidedFromDate Complete record ResidedToDate StreetAddress Residence City PhyscialLocation State Zip Country MarriageDate DivorceDate PersonID FirstName MiddleName LastName BirthDate DeathDate SSN Spouce MaxOccurs: unbounded ResidenceID Person ResidedFromDate ResidedToDate Summary View StreetAddress Residence City PhyscialLocation State Zip Country LegallyResponsibleFromDate Basic identifying information LegallyResponsibleToDate Person PersonID FirstName MiddleName LastName BirthDate ClaimantID DeathDate SSN Child MaxOccurs: unbounded Claimant ResidenceID Person ResidedFromDate ResidedToDate PersonID StreetAddress Residence City SSN PhyscialLocation State Zip Country FirstName DependentFromDate LastName DependentToDate PersonID FirstName MiddleName MiddleName LastName BirthDate BirthDate DeathDate Claimant SSN Person Person ResidedFromDate Dependent ------------- Choice ------------- ResidedToDate AddressLine StreetAddress StreetAddress Residence MailboxNumber City PhyscialLocation State Zip Country PrimaryContactAddress MailingAddress City ContributionAmount This needs definition. Is this at the time of the accident ? State DependentType Zip AddressLine Needs defintion ------------- Choice ------------StreetAddress PrimaryContactAddress MailingAddress Country MailboxNumber City State Zip Country ------------- Choice ------------Description ------------- Choice ------------- EmailAddress TelephoneNumber FaxNumber WebAddress AddressLine StreetAddress SecondaryContactLocation MaxOccurs: unbounded MailingAddress MailboxNumber City State Zip Country 7/17/2015 © 2006 Semantic Arts, Inc 38 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 39 Event Analysis and Message Modeling Independent Mecdical Exam Medical Provider Employer Notification Employer Claimant Report Of Accident Employer Services Assign To Risk Class Record Claim Claims Managment Verify Claim Determine Time Loss Benefits Schedule Payments Approve Medical Benefits Claimant Claim Benefit Approval Make Payment Payment Person Claimant Claimant Claimant Claim Employer Claim Claim Employee Claims Manager Employer Claim Event Medical Benefit Benefit Time Loss Injury Accident 7/17/2015 © 2006 Semantic Arts, Inc 40 Organizational Role Medical Provider Party Employer Personal Role Organization Person Claimant Employee Financial Transaction Claim Payment Claim Event Medical Treatment Medical Treatment Vocational Guidance Injury Accident Medical Provider Organization Medical Payment Reciept Time Loss Payment Medical Payment Claim Medical Provider Employer Claims Manager Claim Claim Event Employer Premium Claimant Medical Treatment Claimant Medical Payment Claims Manager Person Claim Employee Employer Medical Treatment Medical Provider Injury Accident Vocational Guidance 7/17/2015 © 2006 Semantic Arts, Inc All messages are hierarchical projections of the semantic model. 41 Organizational Role Medical Provider Party Employer Personal Role Organization Person Claimant Employee Financial Transaction Claim Payment Claim Event Medical Treatment Medical Treatment Vocational Guidance Injury Accident Medical Provider Organization Medical Payment Reciept Time Loss Payment Medical Payment Claim Medical Provider Employer Claims Manager Claim Claim Event Employer Premium Claimant Medical Treatment Claimant Medical Payment Claims Manager Person Claim Employee Employer Medical Treatment Medical Provider Injury Accident Vocational Guidance 7/17/2015 © 2006 Semantic Arts, Inc 42 Common Exchange Model Organizational Role Medical Provider Party Employer Organization Personal Role Person Claimant Payment Claim Event Vocational Guidance Injury Accident Policy Management Claims Medical Treatment Medical Payment Medical Provider Employer Claims Manager Claim Claim Event Accounts Payable Claimant Medical Treatment Medical Payment Employer Premium Accounts Receivable Medical Payment Claimant Organization Reciept Time Loss Payment Health And Safety Claim Medical Provider Claims Manager Financial Transaction Claim Medical Treatment Employee Person Claim Employee Employer Medical Treatment Medical Provider Injury Accident Vocational Guidance Information Delivery Service 7/17/2015 External Data Interchange Service Rules Service Outbound Corr. Service Set of canonical messages derived from a common semantic model Inbound Corr. Service © 2006 Semantic Arts, Inc Security Service Workflow Service 43 Enterprise Message Modeling Methodology (E3M) Capture External Events Event Analysis Existing Partitioning Partition Applications Design Canonical Messages 7/17/2015 Define Service Requirements Design Service Message Interface Elicit Semantic Model Define Information Sets Publish Canonical Messages Partition Services Message Related © 2006 Semantic Arts, Inc Partitioning Related 44 Summary • There are two ways to skin the SOA cat: – From the edges in – From the center out • You may find you have to do an edges in strategy – If so, there are some techniques that will help organize the chaos • If you opt for a center centric approach, following the methodology presented here should save a lot of heartache 7/17/2015 © 2006 Semantic Arts, Inc 45