service-oriented architecture

Download Service-Oriented Architecture

Post on 20-Jan-2016

55 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Mark Thompson. Service-Oriented Architecture. Software systems are growing more complex Many methodologies will reach their limit Developers need a simple and flexible way to develop applications Service-Oriented Architecture is such a way. Abstract. Introduction - PowerPoint PPT Presentation

TRANSCRIPT

Slide 1

Service-Oriented ArchitectureMark ThompsonAbstractSoftware systems are growing more complexMany methodologies will reach their limitDevelopers need a simple and flexible way to develop applicationsService-Oriented Architecture is such a way

OutlineIntroductionCommon Development ProblemsTerminologyService-Oriented ArchitectureComparison with CBSEAdvantages/DisadvantagesCompanies using SOAConclusionIntroductionSoftware systems are changingNew technologiesNew functionalityTelephone switches (100M LOC), OSes (1000s devs)New software development methodsNew toolsNew processesNew architectures

IntroductionSpace Invaders (1981) Atari 2600

IntroductionCrysis (2007) PC

Common development ProblemsComplexityRedundant and non-reusable codeMultiplicities of InterfacesComplexityBig expectationsCompetitionNew technology/hardwareNeed to keep things as simple as possibleGroup code togetherReuse codeRedundant and Non-Reusable CodeCode written in different languagesDifferent applications with same functionsNeed to make code as reusable as possibleFor all software, not each individual appSetup common interface for all languages

Multiplicities of InterfacesIntegration problemn(n-1) interfaces needed to integrate n apps2(n) new interfaces to add an app

Ex: 4 apps need 12 interfaces

TerminologyServiceGovernanceOrchestrationServiceA single repeatable taskThree main parts:Service implementation: code that performs the taskElementary access details: the address of the service and the protocol to access itContract: description of the task, the interface, and a Quality of Service (QoS)Service (cont.)InterfaceDescribes the exchanged dataThe format of the dataHow the service interactsDoes it report back when finished?Does it report back after a certain amount of time?Does it ever report back?QoS: detailed description of interaction rulesEx: authorizationGovernanceThe way corporations govern themselvesSet of principles and practicesHelps achieve corporations goalSets up a chain of responsibilityGovernance (cont.)Optimal to start at the beginningControls updates to processes and technologiesHelps keeps services consistent and interoperableMost successful when employees, customers, suppliers, and partners all participateOrchestrationCombining services to make an appBest case scenario: little else is neededService-Oriented ArchitectureVideohttp://www.infoworld.com/d/architecture/infoclipz-service-oriented-architecture-soa-899Service-Oriented Architecture

Service-Oriented ArchitectureOverviewSOA PrinciplesXMLOverview[SOA is] an evolutionary approach to building information technology systems that is focused on solving business problems [1][SOA] is a way of organizing software so that companies can respond quickly to the changing requirements of the marketplace [6]

Overview (cont.)Create a collection of servicesEach service is a small, independent projectCan be new or extracted from existing appsOrchestrate services to develop applicationsSOA PrinciplesStandardized Service ContractsLoose CouplingService AbstractionService ReusabilityService AutonomyService StatelessnessService DiscoverabilityService Composability22Standardized Service ContractsContracts designed to specificationConsider optimization and granularityMake services consistent, reliable, and governableAllow for different languages, OSesLoose CouplingEach service should be standaloneOne service can use another, but only through the standard interfaceAllows interchanging a new service for oldAllows internal changes to a serviceService AbstractionHides the low level detailsEasier to understand a serviceEasier to use a servicePromotes loose coupling

Service ReusabilityDevelop services with reuse in mindShortens application development timeLess testing requiredEasier to maintainService AutonomySome control over environment and resourcesOtherwise, may not be able to complete taskIncreases the reliability and predictabilityMay require a level of isolationService StatelessnessRemain as stateless as possibleAffects a services availability and scalabilityMay be necessary to maintain a stateMay be repeatedly called to complete a taskMay need to maintain a conversationMay offset state managing responsibilitiesService DiscoverabilityPrevents rewriting servicesPromotes reuse of servicesOne way is to have a service registryContains all of the servicesContains the service contractsPrivate or publicService ComposabilityDescribes how services work togetherAlso known as orchestrationBreak large problem into smaller tasksServices can complete the smaller tasksIf they cant work together, they need to be modifiedXMLCommon way to interface, but not requiredConvenient way to have self-describing dataIs a string of text with tags to describe data

Ex: Sample XML

Comparison With CBSEBoth use building blocksCBSE more strict, SOA is more flexibleCBSE has models such as DCOM, CORBA, EJBSOA has no requirement for internal structureBoth have loose couplingCBSE has it, but SOA is even looserSOA is platform-independent, language-independentSOA is networked-based

AdvantagesQuicker development timesSimplified developmentReduced redundancy, increased reuseReduced testing timesMore flexible and agileEasier maintenanceDisadvantagesNo guarantee for advantagesMore time spent on architectureNeed to develop many servicesWriting from scratch or extracting can take timeManaging communications between services and debugging them is very complexPossible security problemsPerformance issuesCompanies Using SOA (as of 2006)EbayOver 2 petabytes of dataOver 6 million lines of codeCredits SOA for interoperability between C++ and JavaIBMHas over 70 servicesReduced application inventory from 16,000 to 4,000

Companies Using SOA (cont.)Hewlett-Packard$70 million in savingsCredits SOA for consolidation and reuseSaw $1 million in immediate savingsAmazonOver 60 million customers and 1 million partnersOutgrew their old architectureOther well known companies include: Wachovia Bank, Harley Davidson, Ameriprise Financial, Citigroup, OnStar, and DreamWorks animation

ConclusionServices reduce the amount of redundancyUsing services make the development process quicker and more agileSOA prepares a corporation for the future

References[1] Carter, S. (2007). The New Language of Business. Indianapolis: IBM Press.

[2] Channabasavaiah, K., & Holley, K., & Tuggle, E. (2003, December 16). Migrating to a Service-Oriented Architecture. Retrieved February 17, 2010, from IBM website: http://www.ibm.com/developerworks/library/ws-migratesoa/

[3] Erl, T. (n.d.). SOA Principles: An Introduction to the Service-Oriented Paradigm. Retrieved February 17, 2010, from SOA Principles website: http://www.soaprinciples.com/

[4] Kanagwa, Benjamin, and Ezra K. Mugisa. "A Comparison of Service Oriented Architecture with Other Advances in Software Architectures." Web. 25 Apr. 2010. .

[5] Lawler, J., & Howell-Barber, H. (2008). Service-Oriented Architecture. Boca Raton: Auerbach Publications.

[6] Margolis, B. (2007). SOA for the Business Developer: Concepts, Bpel, and Sca. City: MC Press.

[7] McKendrick, J. (2006, December 17). Ten Companies Where SOA Made a Difference in 2006. Retrieved March 15, 2010, from ZDNet website: http://blogs.zdnet.com/service-oriented/?p=781

Questions?