In seiner Präsentation geht Torsten Winterberg, Direktor Strategie & Innovation darauf ein, was einen guten Service ausmacht und welche Ziele mithilfe eines guten Service erreicht werden.
2. Aboutme… torsten.winterberg@opitz-consulting.com Position@OPITZ CONSULTING DirectorStrategyand Innovation Head of Competence Center SOA Community Speaker: Jax, W-Jax, OOP, DOAG, OOW, SOA Symposium,… Author of several SOA/BPM relatedarticlesandbooks Head of SOA Special Interest Group (SIG) of the German Oracle User Group (DOAG) (togetherwith Hajo Normann) Oracle AceDirector Background Java EE developer, coachandarchitect Startedfirst Oracle BPEL PM project in 2004
12. Buildingtheenterprise: Vision Processoptimization Processcontrolling Processdesign Process Management Process Monitoring Process Implementation Workflow/BPM/BAM ESB/EDA/BRE Services Applications Service Delivery Service Request Middleware Database Storage Infrastructure (The „Grid“)
19. Service usage scope Scope Typical WS-Attributes: Document style, industry standard data formats Organisations Document style, enterprise data formats Company Document or RPC style, LOB data representations Department Function call, RPC or RMI Application internal Granularity loose tight degree of coupling Copyright Oracle Corp.
20. „Good“ services: businessandtechnicalview Public/private aspect Loose couplingandvisibility We have been applying service orientation to help organizations consistently deliver sustainable business value, with increased agility and cost effectiveness, in line with changing business needs.
25. Produktion Verkauf F&E Rohstoffeingang Produktgenehmigung Domäne Top-Down Service Service Service Service Service Service API Komponenten DB Dateien Anwendungen Business aspectsof a „good“ service:Options forfinding a service Bottom-Up
26. Erl – Cutting of a serviceisimportant, but canbechanged! Compatible Change The existing capability is not renamed. Instead, a new capability with a new name is added alongside the original capability, thereby preserving compatibility with both consumers A and B.
27. Erl – cuttingof a serviceisimportant, but canbechanged! Servicedecomposition The original, coarse-grained invoice service is decomposed into three separate services, one of which remains associated with general invoice processing but only encapsulates a subset of the original capabilities.
28. Erl – Cutting of a serviceisimportant, but canbechanged! Proxy capability By preserving the existing capability and allowing it to act as a proxy for the relocated capability logic, existing consumers will be less impacted.
29. Erl – Cutting of a serviceisimportant, but canbechanged! Terminationnotification The service contract includes a standardized statement that communicates when it is scheduled for termination. As a result, the consumer does not attempt to invoke it after the contract has been terminated.
30. Business aspectsof a „good“ service:Service design Findabilityandusagethroughnamingconventionsanddescriptions Strong businessfunctionallitynameoftheservice Principle: Service discoverability
31. Business aspectsof a „good“ service:Service design Understandabilitythroughgoodcoherence
33. Business aspectsof a „good“ service:Servicedesign An ESB canbeusedas a translator ESB APP 1 Business EntityService PrivaterEntityService EBS APP 2 Enrich Transform Validate APP 3 GenerierterService Kontrakt (WSDL) Validate Enrich Transform and Operate UmwandlungderDatenvom Common Modell in das Proprietäre – visa versa ÖffentlicherService Kontrakt (WSDL) Data Sources
34. Business aspectsof a „good“ service:Servicedesign BOM als semantisches Datenmodell Einheitlicher Sprachgebrauch Vermeidung von Missverständnissen und Redundanzen Vereinfachte Kommunikation (Technisch) einheitliche Datenformate Definition von nicht strukturierten Datentypen Extern-definierte Datentypen (BLZ, KontoNr) Stabile Datentypen eines Datenmasters (KundenNr, VertragsNr) Klärung von Verantwortung Zuordnung von Daten zu Domänen zu Rollen/Systemen/…(Datenmaster)
35. Business aspectsof a „good“ service:Service classification Service categorization
36. Executable business processes and business rules Business process models Business Rule Service (Entscheidung) <Rule Engine, Java> Business Process Service <BPEL, BPMN 2.0> Business Process (flow of a process) EPC or BPMN in BPA Suite Business Rule Service (Validierung) <Rule Engine, Java, Schematron> Business Activity Service <BPEL, BPMN 2.0, ESB> Business process step (activity) (what happens here) EPC , BPMN or UML Business Objects Business Entity Service <BPEL, BPMN 2.0, ESB> Implementation of a Process step (activity) (how is this done) EPC, BPMN or UML Integration Integration Process <BPEL, BPMN 2.0, ESB> Public Services (registered in Registry) X Adapter <ESB> Adapter <ESB> Private Services X Systeme Service A System A System B
37. CarRentalBPS Farben und Linienals Kopiervorlage A Start aggregateCustomerDataBAS ReadCustomerData CustomerBES readCustomerDatau.a. A ReadCustomerData Private Integration Service A CRM 1 readCustomerFromCRM1 Private Service A Car- Rental readCustomerFromCarR. Private Service A „Good“ Customer? A readRentalHistoryBAS Details obmittedhere CarsAndPrices A ConfirmationCust? calculateIf GoodCustomerBAS DecidesaboutimplementationasRuleorSub-Prozess WriteCrmInfos or Rule Engine calculateIfGoodCustomerBRS WriteInvoice calculateIfGoodCustomerBPS Workflow Service MessageToCustomer End
38.
39. Fassade auf Implementierung (Private Services)Public Business Services sind eine Enterprise-SOA Governance-Dimension, d.h. sie motivieren applikationsübergrei-fende Richtlinien bezüglich Life Cycle und Schnittstellen-Design: Tausche Daten nur im kanonischen Format aus etc. Public Service Technische Querschnitssfunktionalität, die global eingesetzt wird. Beispiele: Zentrale Logging-, Print-, oder Security-Services Utility Service Keine Zuordnung zu Business und Utility-Logik Lokale / Applikations-bezogene Governance-Dimension Public Services werden mit Private Services implementiert. Dies sind private, lokale „Klumpen an Funktionalität“: Es ist aus Sicht der Public Services egal, in welcher Sprache, mit welchen Applikationsarchitekturen und Design Pattern sie realisiert sind. Ihre Beschreibung im Interface ist nicht notwendigerweise standardisiert. Sie weisen entweder keine oder lokal begrenzte Governance im Lifecycle auf. Beispiele: „Right-Klick-Java-Service“, Controller-EJB, SIEBEL_Customer_Service. Private Service
40. Business aspectsof a „good“ service:Errorhandling Description ofbusinessexceptions Therecanbemorethanone Theynormallydon‘tleadtotermination Replycanbetheservicereplyincludingthebusiness fault Make a testsuiteavailableforbusinessfaults Usecase Name Result / Goal Actor Pre-condition Normal applicationflow 1 2 3 Exceptions 1a 1b 2a Post-condition
41. Business aspectsof a „good“ service:Summary Servicedesign: Functionalitymatchesrequirements Findability and usage through naming conventions and descriptions Understandabilitythroughgoodcoherence Usage of canonical data formats Service classification: Service categorization Error handling: Description ofbusinessexceptions Make a testsuite available for business faults
43. Technical aspectsof a „good“ service: Technical compliance Interoperability Communication Errorhandling
44. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Degreeofstatelessness
45. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Participation in compensations
46. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Existenceofversioningconcepts
47. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Characteristicofidempotency
48. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Structurellassemblyof a WSDL-file Checklist in magazineand www.soapark.tv
49. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Adherencetoprojectstandards Checklists 4-eyes CI …
50. Technical aspectsof a „good“ service:Adherenceoftechnicalcompliance Adherenceto WS-* Standards (whereuseful!!)
51. Technical aspectsof a „good“ service:Interoperability WS-I conformity Always check!!!!
52. Technical aspectsof a „good“ service:Interoperability Service canbeused in different securityconcepts
53. Technical aspectsof a „good“ service:Interoperability Noexpositionofinternalgenerics
54. Technical aspectsof a „good“ service:Communication Decouplingfromcommunicationprotocol
55. Technical aspectsof a „good“ service:Communication Asynchronouscommunicationpattern Collect Data P P P P P P P Process (withoutuserinteraction) reply Start process A A A A A A A A minutestoweeks 1..10 seconds Process Runtime: asyncsync/ fast async MEP:
56. Technical aspectsof a „good“ service:Errorhandling Description oftechnicalexceptions There can be more than one Leads always to termination Reply can be the service reply or the technical fault Universally valid range of numbers for standard faults and special ranges for each service Make a technical testsuite available
57. Technical aspectsof a „good“ service:Summary 1/2 Technical compliance: Degreeofstatelessness Participation in compensations Existenceofversioningconcepts Characteristicofidempotency Structurell assembly of a WSDL-file Adherencetoprojectstandards Adherenceto WS-* Standards Interoperability: WS-I conformity Being integrable in different security concepts No exposition of internal generics
58. Technical aspectsof a „good“ service:Summary 2/2 Communication: Decouplingfromcommunicationprotocol Ifuseful: Asynchronouscommunicationpattern Errorhandling: Description oftechnicalexceptions Make a technical testsuite available
60. Conclusion Identificationof a „good“ publicserviceto: Askforrework Deliverhighqualitywork Goal: Elimination ofuncertainty Increasethequalityour SOA landscapes Further reading Checklists in videosection on: www.soapark.tv SOA-Spezial: http://it-republik.de/jaxenter/news/SOA-Spezial-Ready-For-Change-051440.html
61. Contact: Torsten Winterberg DirectorStrategy & Innovation Head of Competence Center SOAOracle ACE Director OPITZ CONSULTING GmbHKirchstr. 6, 51647 Gummersbach, GermanyPhone: +49 2261 6001 0torsten.winterberg@opitz-consulting.com