® IBM Software Group SOA – Implementing Services and Solutions Dr. Donald F. Ferguson IBM Fellow, SWG Chief Architect, dff@us.ibm.com busapest 23-Mar-16 © 2006 IBM Corporation IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Agenda Introduction A sample business problem SOA and Web services Context and major trends Business Process/Performance Management Summary, Discussion and Challenges, and “A Grand Challenge!” budapest 23-Mar-16 2 IBM Software Group © 2006 IBM Corporation SOA -Implementing Services and Solutions Example: Complexity is Forcing Change Mainframe PC/NT apps Unix apps 3rd Party Interface AIS Reports Depository Banks Vendor Setup Budget Analysis Tool AIS Calendar Vendor Maintenance Insertions Orders Due Dates General Maintenance Broadcast Filter Stores & Mrkts Process Servers (Imaging) Printer Maintenance NEW Soundscan NPD Group AIG Warranty Guard Mesa Data S20-Sales Polling Printer PO I13- Auto Replenishment I06 - Customer Order S01 - Sales Corrections I17 Customer Perceived In-Stock UAR - Universal Account Reconciliation Sterling VAN Mailbox (Value) Roadshow I15 Hand Scan Apps I06 Warehouse Management Print Costing Invoice App E13 E3 Interface Fringe PO Smart Plus M03 - Millennium 3.0 Smart Plus Launcher S04 - Sales Posting S07 - Cell Phones P16 - Tally Sheet I03 Return to Vendor D01 Post Load Billing M02 - Millennium S06 - Credit App Equifax Stock Options I12 Entertainment Software P15 EES Employee Change Notice L02-Resource Scheduling (Campbell) A04 - Cust Refund Chks Resumix AAS P01Employee Masterfile P09 - P17 Cyborg Frick Co CTS ACH V02-Price Marketing Support CTO2.Bestbuy. com V04-Sign System Prodigy Banks - ACH and Pos to Pay I10 Cycle Physical Inventory I04 Home Deliveries U18 - CTO I02 Transfers B01 - Stock Status Spec Source SKU Tracking Intercept E02-Employee Purchase S08 - Vertex Sales Tax I11 Price Testing I09 Cycle Counts Scorecard - HR I01 PO Receiving V03- Mkt Reactions S03-Polling K02 Customer Repair Tracking ASIS I18 SKU Rep Arthur Planning I07 Purchase Order Ad Expense G02 - General Ledger Store Scorecard Sign System Texlon 3.5 NARM U16-Texlon SKU Selection Tool I35 Early Warning System I55 SKU Information ELT PowerSuite SKU Performance L60 MDF Coop I05 Inventory Info V01-Price Management System I35 - CEI Rebate Transfer X92-X96 Host to AS400 Communication Supplier Compliance S02 Layaways NPD, SoundScan Spec Source P09 Bonus/HR Washington, RGIS, Ntl Bus Systems S11 - ISP Tracking POS Plan Administrators (401K, PCS, Life, Unicare, Solomon Smith Barney) Store Monitor L01-Promo Analysis 1 E01-EDI P14 On-line New Hire Entry Cobra S09 - Digital Satellite System I14 Count Corrections Store Budget Reporting Valley Media B02 Merchandise Analysis CopyWriter's Workspace BMP - Bus performance Mngt EDI Coordinator Merch Mngr Approval Batch Forcasting Ad Measurement AIMS Admin AIMS Journal Entry Tool Kit A05 - AP Cellular Rollover AIMS Reporting Ad Launcher S05 - House Charges Optika PSP C02 - Capital Projects Data Warehouse (Interfaces to and from the Data Warehouse are not displayed on this diagram) US Bank Recon File Connect 3 ICMS Credit SiteSeer In-Home Repair Warranty Billing System OTHER APPS - PC AP - Collections/Credit TM - Credit Card DB F06 - Fixed Assets Star Repair Connect 3 PDF Transfe Connect 3 Reports Cash Over/ Short Cash Receipts/Credit Misc Accounting/Finance Apps - PC/NT COBA (Corp office Budget Assistant) PCBS(Profit Center Budget System) Merchandising Budget INVENTORY CONTROL APPS - PC Code Alarm Debit Receivings Devo Sales Display Inventory In Home Junkouts Merchandise Withdrawal Promo Credits RTV Accrual Shrink AP Research - Inv Cntrl AP Research-Addl Rpts Book to Perpetual Inventory Close Out Reporting Computer Intelligence Data Count Corrections Cross Ref for VCB Dnlds Damage Write Off Debit Receivings DFI Vendor Database Display Inventory Reconcile Display Inventory Reporting INVENTORY CONTROL APPS - PC DPI/CPI IC Batching Inventory Adj/Count Correct Inventory Control Reports Inventory Levels Inventory Roll Merchandise Withdrawal Open Receivings PI Count Results PI Time Results from Inv Price Protection Sales Flash Reporting Shrink Reporting SKU Gross Margin SKU Shrink Level Detail USM VCB Downloads ACCTS REC APPS - PC 990COR Bad Debt Beneficial Fees Beneficial Reconcile JEAXF JEBFA JEBKA JEDVA JESOA JEVSA JEVSF NSF TeleCredit Fees Prepared by Michelle Mills Actual Application Architecture for Consumer Electronics Company budapest 23-Mar-16 3 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation A Sample Business Problem – HW PO/Supply Chain Manual Entry Manufacturing and Tracking Warehouse Customer POs for PCs, SAN, … Assembly Customer System Shipping Warehouse/ Staging budapest 23-Mar-16 4 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation What is …..? Actually a set of reusable operations … a service? … service orientation? A repeatable business task – e.g., check customer credit; open new account A way of integrating your business as linked services and the outcomes that they bring … service oriented architecture (SOA)? … a composite application? An IT architectural style that supports service orientation A set of related & integrated services that support a business process built on an SOA budapest 23-Mar-16 5 IBM Software Group SOA -Implementing Services and Solutions What’s this “Service Thing?” Resource optimizations algs. Message M1, M2,Simulation, … … NIC, … … Data faultMsg1 intensive, … Op1, inMsg1, outMsg1, WSDL © 2006 IBM Corporation “That’s my simul. package!” Op2, inMsg2, outMsg2, faultMsg2 ……… EJBs IMS ERP, CRM, … CICS “.NET. I like it.” budapest 23-Mar-16 6 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation SOA and Web Services SOA is an architectural style following some principles Input and output messages completely describe behavior No private signaling or shared data. Coarse grain interactions, unlike OO. Self-describing, cataloged, well-defined messages etc. SOA “resonates” because many customers have been doing it for years. SOA codifies a set of best practices for Message Driven Processing (MQ). SessionBeans and the Transfer Object Pattern CICS TP Systems … … Web Services are a set of standards for SOA Enable interoperability between infrastructure (middleware), and between different development tools. Eliminates the need to integrate the infrastructure before integrating business logic to form new, composite applications. SOAP/HTTP WSDL, WS-Policy, specific policy assertions, BPEL4WS Like “Diplomatic French” or “Esperanto” budapest 23-Mar-16 7 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Some Challenges and Trends Challenges Seams between “people activities,” “information integrated” and “automated SOA activities” Choice may change in a solution over time Reusable solution templates with customization/configuration. Policy and rules Information – Processes are a mix of “documents,” “people” and choreography. Rich information model – PO, Customer, … … Legacy integration Federated/decentralized control and goals Service identification, factoring, etc Some trends SOA and Web services, obviously. Improved but fragmented formal modeling standards Coming together of IT processes and business processes (MUWS) Coherent models for EDA and {BPM, EAI} Domain standards Governance. budapest 23-Mar-16 8 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Business Process and Performance Management: Model – Assemble – Deploy – Manage/Monitor Discover Construct & Test Compose This presentations focus Gather requirements Model & Simulate Design A “better napkin” Financial transparency Business/IT alignment Process control Charge back Who saw what and did what for whom? Covered a little. Integrate people Integrate processes Manage and integrate information A little. Manage applications & services Manage identity & compliance Monitor business metrics budapest 23-Mar-16 9 IBM Software Group SOA -Implementing Services and Solutions Modeling © 2006 IBM Corporation Business Objects (Logical Data Model) Process Model Content/Docs Process and Data States KPIs Scores Policy/Reqs xxx MUST yyy zzz CANNOT qqq Messages Organization budapest 23-Mar-16 10 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Model BPM is more than process Business Objects, Content Model (e.g. scans) Business and object state Organization (people) Model in “business user” Interaction terms and concepts, not Policy XSD or com.payroll. Why Model?… Key Performance Indicators (KPIs)/ Slow, time consuming, … … Observation, Events Real programmers “extreme” program Business Vocabulary Standards matter Runtime interoperability Federated tools Portability Monitoring and reporting Evolution, Substitutability Currently a bit of a mess UML E-R WSDL, BPEL, … BPMN SBVR …… Standards are more than runtime protocols Well, everyone models White boards, PowerPoint, … Design Time Napkins, crayons, … … What does company A’s tools give to B’s? How does the caller know invocation seqs? Why model formally? What CA’s does the service support? Precise notation Programmers don’t guess Portability Reliable hand-off (“structure," code here”) Flexible placement over disparate product Traceable and change management choices Decouple BPM from infrastructure evolution budapest 23-Mar-16 11 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Service Components • Required Interfaces • Events • Policy Points •…… ESB Stub Prolog Types JMS/MQ HTTP IIOP …… “Resources” Messages Port Types Operations Bindings Container Impl. “Abstract Process” “Business State” BPEL ABO CICS TP JAVA SQL …… Policy Control Descriptors Deployment Descriptors budapest 23-Mar-16 12 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Service Components “Web services describes the outsides. How do you implement a service? How do you compose services?” Encapsulate Components for Reuse; All look the same from outside Components may be wired together and aggregated via flow Business Objects are the data flowing on wires between Components Enable type, role and skills specific tools. Policy Interface: How to call this component Component Java Interface WSDL Port Type Reference: What this components calls Uniform Representation of Encapsulated Implementation Java Interface WSDL Port Type Business Process Business State Machine Business Rule Human Task Interface Map Selector Java SQL XQuery budapest 23-Mar-16 13 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Service Components “Web services describes the outsides. How do you implement a service? How do you compose services?” Encapsulate Components for Reuse; All look the same from outside Components may be wired together and aggregated via flow Business Objects are the data flowing on wires between Components Enable type, role and skills specific tools. Policy Interface: How to call this component Component Java Interface WSDL Port Type Reference: What this components calls Uniform Representation of Encapsulated Implementation Java Interface WSDL Port Type Business Process Business State Machine Business Rule Human Task Interface Map Selector Java SQL XQuery budapest 23-Mar-16 14 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Assembling Services – Modules and Subsystems UDDI, Service Registry Project, SCCS ad hoc exchange, …… May “drill into” a specific component’s details get Approved Approved/ Denied Simple wiring metaphor and tools. Unaware of “how” the component works. If Approved then Send letter offering gold If NOT Approved Send letter offering Credit counseling service budapest 23-Mar-16 15 IBM Software Group © 2006 IBM Corporation SOA -Implementing Services and Solutions Services Oriented Architecture and Mediations Credit Card Service Commerce Service Found a CC Service Needs a CC Service Transform Route Augment Side Effect Policy Selection Matching But it’s not quite right. Darn Mediation budapest 23-Mar-16 16 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation SCA, SOA and Event Driven Architectures --------------------------------------------------------------------- Wiring is a simple model but is limited Implements --------------------------------------------------------------------- --------------------------------------------------------------------- Transparent Mediation Emit Event --------------------------------------------------------------------- Topics Filter Analyze Rules Subscription Filter --------------------------------------------------------------------- budapest 23-Mar-16 17 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Customizing Services – A “Design Pattern” Bind using • Date/Time • Application Version • Message Predicate •… … Required “Services” document POVs Simple rule templates Java, JavaScript Rule Engines Decision Table Decision Tree …… Call Prolog Types Mediate Messages Port Types Operations Just another “service” Impl Web Service Binding (Find) Bindings POV = Impl. Model for calling a service, e.g. JAX RPC Stub, BPEL Invoke Control Descriptors Deployment Descriptors budapest 23-Mar-16 18 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Some Perspective Haven’t we heard this before? OO, RPC, MDP, … …? There are some differences XML is language neutral; previous approaches implied a language model. WSDL and XML are more forgiving of changes Supports RPC and message/document approaches from beginning Common type model for applications/servers, message systems and DBs Builds on Internet protocols already deployed for “Web browsing.” Uniform model for events/pub-sub, message routing and RPC More focus on logical behavior – WSDL, Policy, etc. SOA component model derives from business modeling, making MDD simpler and eliminating “spooky transformations!” budapest 23-Mar-16 19 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation The Role of the Container Policy Declarations Security Header Reliable Messaging Header Atomic Transaction Header The Impl. SOAP Message double This is fragile, changes over time, complex for business programmers, error prone, etc. deposit(Message m) { checkForDuplicate(m.seqNo); registerForTransaction(m.context); isCAValid(m); checkSignature(m); updatePerformanceInfo(); balance += m.amount; // … … updatePerformanceInfo(); } budapest 23-Mar-16 20 IBM Software Group © 2006 IBM Corporation SOA -Implementing Services and Solutions The Role of the Container Security Header Reliable Messaging Header Atomic Transaction Header SOAP Message Wrapper The Impl. Before After Container Check Certificate Challenge etc. Security Ack. Retransmit Reliability Transactions Container is a set of policy driven functions. Interceptor pattern for business logic and “stubs.” Before and After factoring of code. budapest 23-Mar-16 21 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Services and Components There is a set of standards (emerging) for formally representing a service component’s behavior WSDL, XSD BPEL, UML WS-Policy WS-ResourceFramework There is an emerging, extensible set of service component kinds that provide a natural mapping for model elements Process, Business State Machine, Selector Eliminates the “miracle happens here” model High level, portable implementations emerging Support for very dynamic Structural composition Behavioral composition Configuration/customization Bridge to existing skill sets. budapest 23-Mar-16 22 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Services and Components Composefor and customize There is a set of standards (emerging) formally without seeing impl. representing a service component’s behavior WSDL, XSD BPEL, UML WS-Policy WS-ResourceFramework Technology or details. There is an emerging, extensible set of service component kinds that provide a natural mapping for model elements Process, Business State Machine, Selector Eliminates the “miracle happens here” model High level, portable implementations emerging Support for very dynamic Structural composition Behavioral composition Configuration/customization Bridge to existing skill sets. This “BPM” solution is a set of documents enabling a “wiki like” BPM evolution. budapest 23-Mar-16 23 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation IBM End-to-End Architecture B2B Interactions “Portal” Service Enterprise Service Bus: Transform, Route, Notify, Augment, Side Effect Workflow Business Act. EIS Adapter “Script” POJO SSB Distinguished Services Information Mgmt XML DB budapest 23-Mar-16 24 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Information as a Service – An Example of Going Beyond Process Tools & Applications Dashboards Insightful Relationships Standards based: e.g., XQuery, JSR170, JDBC, Web Services... Data & Content Insight In-line, Real-time Master Data Information as a Service Master Data, Entity Analytics, Decision Portals, Exec Dashboards, Industry Data Models Extracted or Real-Time (Information Virtualization) Heterogeneous Applications & Information DB2 abc… IBM Content Manager xyz… Oracle budapest 23-Mar-16 and more… 25 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Why Use Information Services in SOA? Customer Exists? Receive Account Info Customer Exists? Create Info Receive Account Info Create Info Why use Information Server/Services? Efficiency Sophisticated clean/link/… … functions Simplifies process design Reuse in other processes, as well as applications, portal, … … budapest 23-Mar-16 26 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Portal = Single User Experience Application Integration Siebel Sales Accounts Opportunities •Unified point of access •Single Sign On •Role Based Access Data Integration RDMS Opportunity Sales Teams (DB2) •Security •Portlet Communication •Themes and Page Aggregation PeopleSoft HR Employee Records •User Profile Services •Framework for integrating other applications budapest 23-Mar-16 27 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Business Process/Performance Manage/Monitor SOA infrastructure monitoring Dynamic and policy driven “Transparent” to application logic Sense – Respond – Act via MUWS Observation/Performance Modeling Observation points are part of modeling Define scorecard view of Key Performance Indicators SOA event infrastructure and event database Enables Dashboard, monitoring, management. Ability to intervene in deployed processes Set situational triggers and notifications Dynamically respond to these alerts Supporting continuous process improvement Monitor in-flight business processes Make process modifications based upon real-time data sent back to the Modeler for simulations budapest 23-Mar-16 28 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation Summary and Directions SOA and Web services offer tremendous promise Web services currently focuses on the externals, which limits flexible construction of business processes and composite apps. A complete architecture is necessary Components for assembly Method guidance, design patterns, templates Integration with people, information and events There are many open areas Governance Web 2.0 Explosion of casual programmers in the workplace Modeling support for Recipes, Patterns and Templates Service/component identification, factoring, good “size,” … … budapest 23-Mar-16 29 IBM Software Group SOA -Implementing Services and Solutions © 2006 IBM Corporation A Grand Challenge There is good and improving models for Process, Information and State, Events Components Use cases Component collaboration … … Policy is where we are the most “broken” Examples “All POs over $10,000 must be approved by regional sales manager.” “An employee cannot close a customer complaint that he created or marked complete.” “Business class is authorized for flight more than 8 hours or overnight.” We typically write these down in text. Programmers read the text and write code. Can we do better? Many domains have nascent business vocabularies, e.g. law, dentistry We write specs with nascent “grammars,” e.g. MUST, CANNOT, RECOMMEND Documents are often simple combinations of policy Nested lists (Decision Trees) Tables/Forms (Decision Tables) Hyperlinks (Decision Flows) Can we improve hand-offs and traceability for rules and codes through structured language, business vocabularies budapest 23-Mar-16 30