Service Orientation
اسلاید 1: Service OrientationMain issues:• What’s special about services?• Essentials of service-oriented SE
اسلاید 2: SE, Servic Orientation, Hans van Vliet, ©20082OverviewServices, service description, service communicationService-Oriented Architecture (SOA)Web servicesSOSE: Service-Oriented Software Engineering
اسلاید 3: SE, Servic Orientation, Hans van Vliet, ©20083Italian restaurant analogyRestaurant provides food: a serviceAfter the order is taken, food is produced, served, …: service may consist of other servicesThe menu indicates the service provided: a service descriptionThe order is written down, or yelled at, the cook: services communicate through messages
اسلاید 4: SE, Servic Orientation, Hans van Vliet, ©20084Main ingredientsServicesService descriptionsMessagesImplementation: through web services
اسلاید 5: SE, Servic Orientation, Hans van Vliet, ©20085Other exampleCitizen looking for a house:Check personal data System X Check tax history System Y Check credit history System Z Search rental agencies System A,B …
اسلاید 6: SE, Servic Orientation, Hans van Vliet, ©20086What’s a servicePlatform-independent computational entity that can be used in a platform-independent wayCallable entities or application functionalities accessed via exchange of messagesComponent capable of performing a taskOften just used in connection with something else: SOA, Web services, …
اسلاید 7: SE, Servic Orientation, Hans van Vliet, ©20087What’s a service, cnt’dShift from producing software to using softwareYou need not host the softwareOr keep track of versions, releasesNeed not make sure it evolvesEtcSoftware is “somewhere”, deployed on as-needed basisSaaS: Software as a Service
اسلاید 8: SE, Servic Orientation, Hans van Vliet, ©20088Key aspectsServices can be discoveredServices can be composed to form larger servicesServices adhere to a service contractServices are loosely coupledServices are statelessServices are autonomousServices hide their logicServices are reusableServices use open standardsServices facilitate interoperability
اسلاید 9: SE, Servic Orientation, Hans van Vliet, ©20089Service discoveryService registryService providerService requestorlookupbindpublish
اسلاید 10: SE, Servic Orientation, Hans van Vliet, ©200810Service discoveryRental agency 1Rental agency 2Rental agency 2Municipality systemApartment(immediate, cheap)publishAgency 1Apartment?Rental agreementRental agency 1Rental agency 1
اسلاید 11: SE, Servic Orientation, Hans van Vliet, ©200811Service discoveryDiscovery is dynamic, each invocation may select a different onePrimary criterion in selection: contractSelection may be based on workload, complexity of the question, etc optimize compute resourcesIf answer fails, or takes too long select another service more fault-tolerance
اسلاید 12: SE, Servic Orientation, Hans van Vliet, ©200812Is discovery really new?Many design patterns loosen coupling between classesFactory pattern: creates object without specifying the exact class of the object.
اسلاید 13: SE, Servic Orientation, Hans van Vliet, ©200813Services can be composedService can be a building block for larger servicesNot different from CBSE and other approaches
اسلاید 14: SE, Servic Orientation, Hans van Vliet, ©200814Services adhere to a contract Request to registry should contain everything needed, not just functionalityFor “normal” components, much is implicit:Platform characteristicsQuality informationTacit design decisionsTrust promises?Quality of Services (QoC), levels thereofService Level Agreement (SLA)
اسلاید 15: SE, Servic Orientation, Hans van Vliet, ©200815Service discoveryRental agency 1Rental agency 2Rental agency 1Municipality systemApartment(immediate, cheap)Agency 1Apartment?Rental agreement
اسلاید 16: SE, Servic Orientation, Hans van Vliet, ©200816Services are loosely coupledRental agencies come and goNo assumptions possible Stronger than CBSE loose coupling
اسلاید 17: SE, Servic Orientation, Hans van Vliet, ©200817Services are statelessRental agency cannot retain information: it doesn’t know if and when it will be invoked again, and by whom
اسلاید 18: SE, Servic Orientation, Hans van Vliet, ©200818Services are autonomous, hide their logicRental agency has its own rules on how to structure its processIts logic does not depend on the municipality service it is invoked byThis works two ways: outside doesn’t know the inside, and vice versa
اسلاید 19: SE, Servic Orientation, Hans van Vliet, ©200819Services are reusableService models a business process:Not very fine grainedCollecting debt status from one credit company is not a service, checking credit status isDeciding on proper granularity raises lots of debate
اسلاید 20: SE, Servic Orientation, Hans van Vliet, ©200820Service use open standardsProprietary standards vendor lockinThere are lots of open standards:How services are describedHow services communicateHow services exchange dataetc
اسلاید 21: SE, Servic Orientation, Hans van Vliet, ©200821Services facilitate interoperabilityBecause of open standards, explicit contracts and loose couplingClassical CBSE solutions pose problems:Proprietary formatsPlatform differencesEtcInteroperability within an organization (EAI) and between (B2B)
اسلاید 22: SE, Servic Orientation, Hans van Vliet, ©200822OverviewServices, service description, service communicationService-Oriented Architecture (SOA)Web servicesSOSE: Service-Oriented Software Engineering
اسلاید 23: SE, Servic Orientation, Hans van Vliet, ©200823Service-Oriented ArchitectureArchitecture: the fundamental organization of a system in its components, their relationships to each other and to the environment and the principles guiding its design and evolutionSOA: Any system made out of services?
اسلاید 24: SE, Servic Orientation, Hans van Vliet, ©200824What is SOA?Infrastructure service layerOrchestration/coordination layerBusiness services layerservice busserviceserviceserviceservicelogicalphysical
اسلاید 25: SE, Servic Orientation, Hans van Vliet, ©200825Service busEvent-based messaging engineOrigin: EAI, solve integration problemsOften takes care of:Mediation: protocol translation, data transformation, etcQuality of Service issues: security, reliable delivery of messages, etcManagement issues: logging, audit info, etc.Service discoveryCan be central (broker, hub), or decentral (smart endpoints)
اسلاید 26: SE, Servic Orientation, Hans van Vliet, ©200826Service coordinationOrchestration: central controlChoreography: decentral control
اسلاید 27: SE, Servic Orientation, Hans van Vliet, ©200827OverviewServices, service description, service communicationService-Oriented Architecture (SOA)Web servicesSOSE: Service-Oriented Software Engineering
اسلاید 28: SE, Servic Orientation, Hans van Vliet, ©200828Web servicesImplementation means to realize servicesBased on open standards:XMLSOAP: Simple Object Access ProtocolWSDL: Web Services Description LanguageUDDI: Universal Description, Discovery and IntegrationBPEL4WS: Business Process Execution Language for Web ServicesMain standardization bodies: OASIS, W3C
اسلاید 29: SE, Servic Orientation, Hans van Vliet, ©200829Coordination of Web servicesBPEL4WSWSDLJavaWSDLJavaWSDLJava
اسلاید 30: SE, Servic Orientation, Hans van Vliet, ©200830Web services stackBPEL4WSWSDLUDDIHTTP, FTP, …SOAPcompositiondescriptionmessagesnetworkdiscovery
اسلاید 31: SE, Servic Orientation, Hans van Vliet, ©200831XMLLooks like HTMLLanguage/vocabulary defined in schema: collection of treesOnly syntaxSemantic Web, Web 2.0: semantics as well: OWL and descendants
اسلاید 32: SE, Servic Orientation, Hans van Vliet, ©200832SOAPMessage inside an envelopeEnvelop has optional header (~address), and mandatory body: actual container of dataSOAP message is unidirectional: it’s NOT a conversation
اسلاید 33: SE, Servic Orientation, Hans van Vliet, ©200833WSDLFour parts:Web service interfacesMessage definitionsBindings: transport, format detailsServices: endpoints for accessing service. Endpoint = (binding, network address)
اسلاید 34: SE, Servic Orientation, Hans van Vliet, ©200834UDDIThree (main) parts:Info about organization that publishes the servicesDescriptive info about each serviceTechnical info to link services to implementation
اسلاید 35: SE, Servic Orientation, Hans van Vliet, ©200835UDDI (cnt’d)Original dream: one global registryReality: many registries, with different levels of visibilityMapping problems
اسلاید 36: SE, Servic Orientation, Hans van Vliet, ©200836BPEL4WSThree main parts:Partnerlinks: dependencies between services: who sends what to whomGlobal variablesWorkflow model: “program”BPEL4WS is an orchestration language; executableWS-CDL (Web Services Choreography Description Language) is a choreography language; not executable
اسلاید 37: SE, Servic Orientation, Hans van Vliet, ©200837OverviewServices, service description, service communicationService-Oriented Architecture (SOA)Web servicesSOSE: Service-Oriented Software Engineering
اسلاید 38: SE, Servic Orientation, Hans van Vliet, ©200838SOSE life cycleService orientedanalysisService orienteddesignServicedevelopmentServicetestingServicedeploymentServiceadministration
اسلاید 39: SE, Servic Orientation, Hans van Vliet, ©200839Terminologyservice oriented environment (or service oriented ecosystem)business process + supporting servicesapplication (infrastructure) servicebusiness serviceTask-centric business serviceEntity-centric business servicehybrid service
اسلاید 40: SE, Servic Orientation, Hans van Vliet, ©200840Terminologyorderfulfilmentservicepurchaseorderservicesendutilityservicewrapperservicecustomerprofileservicehybrid servicesbusiness servicesinfrastructure servicesentity-centricverifyPOservicetask-centricnotificationservicehybrid servicesbusiness servicesinfrastructure servicestask centricentity centric
اسلاید 41: SE, Servic Orientation, Hans van Vliet, ©200841Strategies for life cycle organizationTop-down strategyBottom-up strategyAgile strategy
اسلاید 42: SE, Servic Orientation, Hans van Vliet, ©200842Top-down strategyService orientedanalysisService orienteddesignServicedevelopmentServicetestingServicedeployment
اسلاید 43: SE, Servic Orientation, Hans van Vliet, ©200843Top-down SO analysisDefine enterprisebusiness modelsDefine enterpriseservice modelCompose SOAPerform serviceoriented analysisService orienteddesign....step 1step 2step 3step 4step 1step 4step 3step 2
اسلاید 44: SE, Servic Orientation, Hans van Vliet, ©200844Bottom-up strategyModel applicationservices Design applicationserviceDevelopapplicationservicesTestservicesDeployservicesapplication service = infrastructure service
اسلاید 45: SE, Servic Orientation, Hans van Vliet, ©200845SO analysisSO designDevelop servicesTest service operationsDeploy servicesRevisit business(and process) servicesTop-downanalysison-goingalign withcurrent statebusinessmodelsalign withcurrent statebusinessmodelsAgile strategy
اسلاید 46: SE, Servic Orientation, Hans van Vliet, ©200846Service oriented analysisThe process of determining how business automation requirements can be represented through service orientation
اسلاید 47: SE, Servic Orientation, Hans van Vliet, ©200847Goals of SO analysisAppropriateness for intended useIdentify preliminary issues that may challenge required service autonomyDefine known preliminary composition modelsService operation candidatesService candidates (logical contexts)
اسلاید 48: SE, Servic Orientation, Hans van Vliet, ©2008483 Analysis sub-stepsService orientedanalysisService orienteddesignDefineanalysis scopeIdentifyautomationsystemsModelcandidate servicesstep 3step 2step 1...
اسلاید 49: SE, Servic Orientation, Hans van Vliet, ©200849Step 1: Define analysis scopeMature and understood business requirementsS = ∑i Si, where smaller services may still be quite complexCan lead toprocess-agnostic services/service operations (generic service portfolio)services delivering business-specific tasksModels: UML use case or activity diagrams
اسلاید 50: SE, Servic Orientation, Hans van Vliet, ©200850Order Fulfillment Processstartreceive POvalidate POPOvalidTransformPOImportPOSend POto queuestopSendnotificationyesno
اسلاید 51: SE, Servic Orientation, Hans van Vliet, ©200851Step 2: Identify automation systemsWhat is already implemented?encapsulatereplaceModels: UML deployment diagram, mapping tables
اسلاید 52: SE, Servic Orientation, Hans van Vliet, ©200852Order Fulfillment Processstartreceive POvalidate POPOvalidTransformPOImportPOSend POto queuestopSendnotificationyesnoalreadyautomatedby Orderfulfillmentservicesame asprevioussame asprevious(XML -> native format)(currently custom component)service candidate(into accounting sys.)service candidate(currently custom legacy)service candidate(to accounting clerkswork queue)same as previous
اسلاید 53: SE, Servic Orientation, Hans van Vliet, ©200853Step 3: Model candidate servicesHow to compose services?Service (candidates) conceptual modeloperations + service contextsSO principlesFocus on task- and entity-centred servicesModels: BPM, UML use case or class diag.
اسلاید 54: SE, Servic Orientation, Hans van Vliet, ©200854Example service operation candidatesReceive PO documentPO processingserviceValidate PO document(If PO document is invalid,)send rejection notification (and end process)Transform PO document into native electronic PO format<<include>><<include>>...
اسلاید 55: SE, Servic Orientation, Hans van Vliet, ©200855Example business process logicNot service operation candidates if PO document is valid, proceed with the transform PO document stepif the PO document is invalid, end process
اسلاید 56: SE, Servic Orientation, Hans van Vliet, ©200856Task- versus entity-centred servicesTask-centred(+) direct mapping of business requirements(-) dependent on specific processEntity-centred(+) agility(-) upfront analysis(-) dependent on controllers
اسلاید 57: SE, Servic Orientation, Hans van Vliet, ©200857Benefits of business-centric SOAintroduce agilityprepare for orchestrationenable reuse
اسلاید 58: SE, Servic Orientation, Hans van Vliet, ©200858ModelingDefineanalysis scopeIdentifyautomationsystemsModelcandidate servicesstep 3step 2step 1identify agnostic service candidatesfilter out process-specific logicapply SO principlesidentify candidate service compositionsidentify application service operation/service candidatesapply SO principlesrevise operation candidates grouping
اسلاید 59: SE, Servic Orientation, Hans van Vliet, ©200859Entity ModelsCustomerPOEmployeeInvoiceOrder1**111**1111*1*
اسلاید 60: SE, Servic Orientation, Hans van Vliet, ©200860Service modeling guidelinestask-centric business service candidatesreusability of encapsulated logic across processes
اسلاید 61: SE, Servic Orientation, Hans van Vliet, ©200861Service modeling guidelinestask-centric business service candidatesreusability of encapsulated logic within a process...
اسلاید 62: SE, Servic Orientation, Hans van Vliet, ©200862Service modeling guidelinesidentify logical units of work with explicit boundariesSO principle about autonomous services (hiding logic)...
اسلاید 63: SE, Servic Orientation, Hans van Vliet, ©200863Service-oriented design: design sub-stepsService orientedanalysisService orienteddesignCompose SOADesign entity-centric business servicesDesign infrastructure servicesstep 3step 2step 1...Design task-centricbusiness servicesstep 4Design SO business processstep 5
اسلاید 64: SE, Servic Orientation, Hans van Vliet, ©200864Entity-centric business servicesCustomerPOEmployeeInvoiceOrder1**111**111**1*EmailWeekly hoursCustomerHours billed.........Goal: entity-centric business service layer + parent orchestration layerReceive PO documentPO processingserviceValidate PO document(If PO document is invalid,)send rejection notification (and end process)Transform PO document into native electronic PO format<<include>><<include>>...
اسلاید 65: SE, Servic Orientation, Hans van Vliet, ©200865Infrastructure servicesInfrastructure service layerBusiness service layerOrchestration/coordination layerPOprocessingservicePOserviceNotificationserviceVerifyPOserviceTransformservice
اسلاید 66: SE, Servic Orientation, Hans van Vliet, ©200866Task-centric business servicesUML sequence diagramexpress and refine order of invocations implicit in the UML use case diagramReceive PO documentPO processingserviceValidate PO document(If PO document is invalid,)send rejection notification (and end process)Transform PO document into native electronic PO format<<include>><<include>>...Verify POservicePOserviceNotificationserviceget_PO[PO data]send_rejectverify
اسلاید 67: SE, Servic Orientation, Hans van Vliet, ©200867SummaryServices have a long history (telephony)Most important characteristic: dynamic discovery of servicesSOA as architectural styleToday’s Web services mostly syntax-basedKey design decisions in SOSE concern service layering, industry standards, and relevant SO principlesSOSE differentiates from traditional life cycles mainly in the analysis and design phase
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.