Service Oriented Architecture SOA v1.0

download Service Oriented Architecture SOA v1.0

of 48

Transcript of Service Oriented Architecture SOA v1.0

  • 8/7/2019 Service Oriented Architecture SOA v1.0

    1/48

    SERVICE ORIENTEDARCHITECTURE

    SOA

  • 8/7/2019 Service Oriented Architecture SOA v1.0

    2/48

    Service Oriented Architecture Pgina 2 de 48

    Enlaces interesantes:- Wikipedia, buscar SOA, pero en ingls- http://arquitecturaorientadaaservicios.blogspot.com/-

    www.microsoft.com/soa

    http://arquitecturaorientadaaservicios.blogspot.com/http://arquitecturaorientadaaservicios.blogspot.com/http://arquitecturaorientadaaservicios.blogspot.com/
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    3/48

    Service Oriented Architecture Pgina 3 de 48

    1http://en.wikipedia.org/wiki/Service-oriented_architecture

    Incomputing,service-oriented architecture (SOA) provides methods forsystemsdevelopmentandintegrationwhere systems group functionality aroundbusinessprocessesand package these asinteroperableservices. ASOA infrastructureallowsdifferent applications to exchange data with one another as they participate inbusiness processes.Service-orientationaims at a loose coupling of services withoperating systems, programming languages and other technologies that underlieapplications[1]. SOA separates functions into distinct units, or services[2], whichdevelopers make accessible over a network in order that users can combine and reusethem in the production of business applications[3]. These services communicate witheach other by passing data from one service to another, or by coordinating an activitybetween two or more services. Many commentators[who?] see SOA concepts as builtupon and evolving from older concepts ofdistributed computing[3][2]andmodularprogramming.

    http://en.wikipedia.org/wiki/Service-oriented_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecturehttp://en.wikipedia.org/wiki/Computinghttp://en.wikipedia.org/wiki/Computinghttp://en.wikipedia.org/wiki/Computinghttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Service_Oriented_Infrastructurehttp://en.wikipedia.org/wiki/Service_Oriented_Infrastructurehttp://en.wikipedia.org/wiki/Service_Oriented_Infrastructurehttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-0http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-0http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-0http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Distributed_computinghttp://en.wikipedia.org/wiki/Distributed_computinghttp://en.wikipedia.org/wiki/Distributed_computinghttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Modular_programminghttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Distributed_computinghttp://en.wikipedia.org/wiki/Distributed_computinghttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-0http://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Service_Oriented_Infrastructurehttp://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/Business_processhttp://en.wikipedia.org/wiki/System_integrationhttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/Systems_developmenthttp://en.wikipedia.org/wiki/Computinghttp://en.wikipedia.org/wiki/Service-oriented_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    4/48

    Service Oriented Architecture Pgina 4 de 48

    1.1Contents[hide]

    1 Descriptiono 1.1 Overviewo 1.2 Introductiono 1.3 Requirementso 1.4 Principleso 1.5 Web services approacho 1.6 SOA and Web service protocolso 1.7 Other SOA conceptso 1.8 SOA definitionso 1.9 Service contracto 1.10 SOA and business architectureo 1.11 SOA and network management architecture

    2 Discussiono 2.1 Benefitso 2.2 Challenges in adopting SOAo 2.3 Criticisms of SOA

    3 Extensionso 3.1 SOA, Web 2.0, and mashupso 3.2 Web 2.0

    4 See also5 References

    1.2[edit] Description1.2.1[edit] Overview

    http://toggletoc%28%29/http://toggletoc%28%29/http://toggletoc%28%29/http://en.wikipedia.org/wiki/Service-oriented_architecture#Descriptionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Descriptionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Overviewhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Overviewhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Introductionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Introductionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Requirementshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Requirementshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Principleshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Principleshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Web_services_approachhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Web_services_approachhttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_Web_service_protocolshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_Web_service_protocolshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Other_SOA_conceptshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Other_SOA_conceptshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_definitionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_definitionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_business_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_business_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_network_management_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_network_management_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#Discussionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Discussionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Benefitshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Benefitshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Challenges_in_adopting_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Challenges_in_adopting_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Criticisms_of_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Criticisms_of_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Extensionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Extensionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA.2C_Web_2.0.2C_and_mashupshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA.2C_Web_2.0.2C_and_mashupshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Web_2.0http://en.wikipedia.org/wiki/Service-oriented_architecture#Web_2.0http://en.wikipedia.org/wiki/Service-oriented_architecture#See_alsohttp://en.wikipedia.org/wiki/Service-oriented_architecture#See_alsohttp://en.wikipedia.org/wiki/Service-oriented_architecture#Referenceshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Referenceshttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=1http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=1http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=1http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=2http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=2http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=2http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=2http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=1http://en.wikipedia.org/wiki/Service-oriented_architecture#Referenceshttp://en.wikipedia.org/wiki/Service-oriented_architecture#See_alsohttp://en.wikipedia.org/wiki/Service-oriented_architecture#Web_2.0http://en.wikipedia.org/wiki/Service-oriented_architecture#SOA.2C_Web_2.0.2C_and_mashupshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Extensionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Criticisms_of_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Challenges_in_adopting_SOAhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Benefitshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Discussionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_network_management_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_business_architecturehttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_definitionshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Other_SOA_conceptshttp://en.wikipedia.org/wiki/Service-oriented_architecture#SOA_and_Web_service_protocolshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Web_services_approachhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Principleshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Requirementshttp://en.wikipedia.org/wiki/Service-oriented_architecture#Introductionhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Overviewhttp://en.wikipedia.org/wiki/Service-oriented_architecture#Descriptionhttp://toggletoc%28%29/
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    5/48

  • 8/7/2019 Service Oriented Architecture SOA v1.0

    6/48

    Service Oriented Architecture Pgina 6 de 48

    interface support, reliability, etc. This article defines SOA and includes detaileddiscussion on several issues that arise when applying SOA toindustrialsystems.

    1.2.2[edit] IntroductionOne can define a service-oriented architecture (SOA) as a group ofservicesthatcommunicate with each other. The process of communication involves either simpledata-passing or two or more services coordinating some activity. Intercommunicationimplies the need for some means of connecting two or more services to each other.

    SOAs build applications out of software services. Services comprise intrinsicallyunassociated units of functionality that have nocallsto each other embedded in them.They typically implement functionality most humans would recognize as a service, suchas filling out an online application for an account, viewing an online bank-statement, orplacing an online booking or airline ticket order. Instead of services embedding calls toeach other in their source code, they use defined protocols that describe how one ormore services can "talk" to each other. This architecture then relies on a businessprocess expert to link and sequence services, in a process known asorchestration, tomeet a new or existing business system requirement.

    Relative to typical practices of earlier attempts to promote software reuse viamodularity offunctionsor by use of predefined groups of functions known asclasses,SOA's atomic-level objects often end up 100 to 1,000 times larger.[citation needed]

    Asoftware developerorsoftware engineerassociates individual SOA objects by usingorchestration. In the process of orchestration, asoftware engineerorprocess engineerassociates relatively large chunks of software functionality (services) in a non-hierarchical arrangement (in contrast to aclass hierarchy) by using a special softwaretool that contains an exhaustive list of all of the services, their characteristics, and ameans to record the designer's choices that the designer can manage and the softwaresystem can consume and use at run-time.

    Underlying and enabling all of this requiresmetadatain sufficient detail to describe

    not only the characteristics of these services, but also the data that drives them.Programmershave made extensive use ofXMLin SOA to structure data that they wrapin a nearly exhaustive description-container. Analogously,WSDLtypically describe theservices themselves, whileSOAPdescribes the communications protocols. Whetherthese description languages are the best possible for the job, and whether they willremain the favorites in the future, remains an open question. In the meantime SOAdepends on data and services that are described using some implementation ofmetadata that meets the following two criteria:

    1. the metadata must come in a form that software systems can use to configuredynamically by discovery and incorporation of defined services, and also tomaintain coherence and integrity

    http://en.wikipedia.org/wiki/Industryhttp://en.wikipedia.org/wiki/Industryhttp://en.wikipedia.org/wiki/Industryhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=3http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=3http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=3http://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/wiki/Subroutinehttp://en.wikipedia.org/wiki/Subroutinehttp://en.wikipedia.org/wiki/Subroutinehttp://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Function_%28computer_science%29http://en.wikipedia.org/wiki/Function_%28computer_science%29http://en.wikipedia.org/wiki/Function_%28computer_science%29http://en.wikipedia.org/wiki/Class_%28computer_science%29http://en.wikipedia.org/wiki/Class_%28computer_science%29http://en.wikipedia.org/wiki/Class_%28computer_science%29http://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Business_process_modelinghttp://en.wikipedia.org/wiki/Business_process_modelinghttp://en.wikipedia.org/wiki/Business_process_modelinghttp://en.wikipedia.org/wiki/Class_hierarchyhttp://en.wikipedia.org/wiki/Class_hierarchyhttp://en.wikipedia.org/wiki/Class_hierarchyhttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Programmerhttp://en.wikipedia.org/wiki/Programmerhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Programmerhttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Class_hierarchyhttp://en.wikipedia.org/wiki/Business_process_modelinghttp://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Software_engineerhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Class_%28computer_science%29http://en.wikipedia.org/wiki/Function_%28computer_science%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Subroutinehttp://en.wikipedia.org/wiki/Service_%28systems_architecture%29http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=3http://en.wikipedia.org/wiki/Industry
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    7/48

    Service Oriented Architecture Pgina 7 de 48

    2. the metadata must also come in a form that system designers can understandand manage with a reasonable expenditure of cost and effort

    SOA has the goal of allowing users to string together fairly large chunks of functionalityto form ad hoc applications that are built almost entirely from existing softwareservices. The larger the chunks, the fewer the interface points required to implementany given set of functionality; however, very large chunks of functionality may notprove sufficiently granular for easy reuse. Each interface brings with it some amount ofprocessing overhead, so there is a performance consideration in choosing thegranularity of services. The great promise of SOA suggests that themarginal costofcreating the n-th application is low, as all of the software required already exists tosatisfy the requirements of other applications. Ideally, one requires only orchestrationto produce a new application.

    For this to operate, no interactions must exist between the chunks specified or withinthe chunks themselves. Instead, the interaction of services (all of them unassociatedpeers) is specified by humans in a relatively ad hoc way with the intent driven by newlyemergent business requirements. Thus the need for services as much larger units offunctionality than traditional functions or classes, lest the sheer complexity ofthousands of such granular objects overwhelm the application designer. Programmersdevelop the services themselves using traditional languages likeJava,C#,C,C++orCOBOL.

    SOA services featureloose coupling, in contrast to the functions that a linker binds

    together to form anexecutable, to adynamically linked libraryor to an assembly. SOAservices also run in "safe" wrappers such asJavaor.NET, and other programminglanguages that manage memory allocation and reclamation, allow ad hoc and latebinding, and provide some degree of indeterminatedata typing.

    As of 2008, increasing numbers of third-party software companies offer softwareservices for a fee. In the future, SOA systems may consist of such third-party servicescombined with others created in-house. This has the potential to spread costs overmany customers and customer uses, and promotes standardization both in and acrossindustries. In particular, the travel industry now has a well-defined and documented

    set of both services and data, sufficient to allow any reasonably competent softwareengineer to create travel-agency software using entirely off-the-shelf softwareservices. Other industries, such as the finance industry, have also started makingsignificant progress in this direction.

    SOA as an architecture relies onservice-orientationas its fundamental designprinciple[4]. In a SOA environment, users can access independent services withoutknowledge of their underlying platform implementation[5].

    SOA relies on services exposing their functionality via interfaces that other applications

    and services can read to understand how to utilize those services.

    http://en.wikipedia.org/wiki/Marginal_costhttp://en.wikipedia.org/wiki/Marginal_costhttp://en.wikipedia.org/wiki/Marginal_costhttp://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/COBOLhttp://en.wikipedia.org/wiki/COBOLhttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Executablehttp://en.wikipedia.org/wiki/Executablehttp://en.wikipedia.org/wiki/Executablehttp://en.wikipedia.org/wiki/Dynamically_linked_libraryhttp://en.wikipedia.org/wiki/Dynamically_linked_libraryhttp://en.wikipedia.org/wiki/Dynamically_linked_libraryhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Data_typinghttp://en.wikipedia.org/wiki/Data_typinghttp://en.wikipedia.org/wiki/Data_typinghttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-3http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-3http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-4http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-4http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-4http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-3http://en.wikipedia.org/wiki/Service-orientationhttp://en.wikipedia.org/wiki/Data_typinghttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Dynamically_linked_libraryhttp://en.wikipedia.org/wiki/Executablehttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/COBOLhttp://en.wikipedia.org/wiki/C%2B%2Bhttp://en.wikipedia.org/wiki/C_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/Java_%28programming_language%29http://en.wikipedia.org/wiki/Marginal_cost
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    8/48

    Service Oriented Architecture Pgina 8 de 48

    1.2.3[edit] RequirementsIn order to efficiently use a SOA, one must[citation needed] meet the following

    requirements:

    Interoperability between different systems and programming languagesprovides the basis for integration between applications on different platformsthrough a communication protocol. One example of such communication isbased on the concept ofmessages. Using messages across defined messagechannels decreases the complexity of the end application, thereby allowing thedeveloper of the application to focus on true application functionality insteadof the intricate needs of a communication protocol.Desire to create a federation of resources. Establish and maintain data flow to a

    federated data warehouse. This allows new functionality developed toreference a common business format for each data element.

    1.2.4[edit] PrinciplesThe following guiding principles define the ground rules for development,maintenance, and usage of the SOA[6]:

    Reuse,granularity,modularity, composability, componentization, portability,

    andinteroperabilityStandards compliance (both common and industry-specific)Services identification and categorization, provisioning and delivery, andmonitoring and tracking

    The following specific architectural principles for design and service definition focuson specific themes that influence the intrinsic behaviour of a system and the style of itsdesign:

    Serviceencapsulation Many web services are consolidated to be used underthe SOA. Often such services were not planned to be under SOA.Serviceloose coupling Services maintain a relationship that minimizesdependencies and only requires that they maintain an awareness of each otherService contract Services adhere to a communications agreement, as definedcollectively by one or more service description documentsService abstraction Beyond what is described in the service contract, serviceshide logic from the outside worldService reusability Logic is divided into services with the intention ofpromoting reuseService composability Collections of services can be coordinated andassembled to form composite servicesService autonomy Services have control over the logic they encapsulate

    http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=4http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=4http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=4http://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Message-oriented_middlewarehttp://en.wikipedia.org/wiki/Message-oriented_middlewarehttp://en.wikipedia.org/wiki/Message-oriented_middlewarehttp://en.wikipedia.org/wiki/Federated_database_systemhttp://en.wikipedia.org/wiki/Federated_database_systemhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=5http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=5http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=5http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-5http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-5http://en.wikipedia.org/wiki/Granularityhttp://en.wikipedia.org/wiki/Granularityhttp://en.wikipedia.org/wiki/Granularityhttp://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Encapsulationhttp://en.wikipedia.org/wiki/Encapsulationhttp://en.wikipedia.org/wiki/Encapsulationhttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Service-oriented_architecture#Service_contracthttp://en.wikipedia.org/wiki/Loose_couplinghttp://en.wikipedia.org/wiki/Encapsulationhttp://en.wikipedia.org/wiki/Interoperabilityhttp://en.wikipedia.org/wiki/Modularity_%28programming%29http://en.wikipedia.org/wiki/Granularityhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-5http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=5http://en.wikipedia.org/wiki/Federated_database_systemhttp://en.wikipedia.org/wiki/Message-oriented_middlewarehttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=4
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    9/48

    Service Oriented Architecture Pgina 9 de 48

    Service optimization All else equal, high-quality services are generallyconsidered preferable to low-quality onesService discoverability Services are designed to be outwardly descriptive so

    that they can be found and assessed via available discovery mechanisms

    [7]

    Service Relevance Functionality is presented at a granularity recognized bythe user as a meaningful service

    The following references provide additional considerations for defining a SOAimplementation:

    SOA Reference Architecture provides a working design of an enterprise-wideSOA implementation with detailed architecture diagrams, componentdescriptions, detailed requirements,design patterns, opinions about standards,patterns on regulation compliance, standards templates etc.[8]Life cycle managementSOA Practitioners Guide Part 3: Introduction to ServicesLifecycleintroduces the Services Lifecycle and provides a detailed process forservices management though the service lifecycle, from inception to retirementor repurposing of the services. It also contains an appendix that includesorganization and governance best practices, templates, comments on key SOAstandards, and recommended links for more information.

    In addition, one might take the following factors into account when defining a SOAimplementation:

    efficient use of system resourcesservice maturity and performanceEAIEnterprise Application Integration

    1.2.5[edit] Web services approachWeb servicescan implement a service-oriented architecture. Web services makefunctional building-blocks accessible over standard Internet protocols independent ofplatforms and programming languages. These services can be new applications or just

    wrapped around existing legacy systems to make them network-enabled.

    Each SOA building block can play one or both of two roles:

    1. Service providerThe service provider creates aWeb serviceand possibly publishes its interfaceand access information to the service registry. Each provider must decide whichservices to expose, how to make trade-offs between security and easyavailability, how to price the services, or (if no charges apply) how to exploitthem for other value. The provider also has to decide what category the service

    should be listed in for a given broker service and what sort of trading partneragreements are required to use the service. It registers what services are

    http://en.wikipedia.org/wiki/Service_discoveryhttp://en.wikipedia.org/wiki/Service_discoveryhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-6http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-6http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-7http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-7http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-7http://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://en.wikipedia.org/wiki/Enterprise_Application_Integrationhttp://en.wikipedia.org/wiki/Enterprise_Application_Integrationhttp://en.wikipedia.org/wiki/Enterprise_Application_Integrationhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=6http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=6http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=6http://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=6http://en.wikipedia.org/wiki/Enterprise_Application_Integrationhttp://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://www.soablueprint.com/whitepapers/SOAPGPart3.pdfhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-7http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-6http://en.wikipedia.org/wiki/Service_discovery
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    10/48

    Service Oriented Architecture Pgina 10 de 48

    available within it, and lists all the potential service recipients. Theimplementer of the broker then decides the scope of the broker. Public brokersare available through the Internet, while private brokers are only accessible to

    a limited audience, for example, users of a company intranet. Furthermore, theamount of the offered information has to be decided. Some brokers specializein many listings. Others offer high levels of trust in the listed services. Somecover a broad landscape of services and others focus within an industry. Thereare also brokers that catalog other brokers. Depending on the business model,brokers can attempt to maximize look-up requests, number of listings oraccuracy of the listings. TheUniversal Description Discovery and Integration(UDDI) specification defines a way to publish and discover information aboutWeb services. Other service broker technologies include for exampleebXML(Electronic Business using eXtensible Markup Language) and those based ontheISO/IEC 11179Metadata Registry(MDR) standard.

    2. Service requesterThe service requester or Web service client locates entries in the brokerregistry using various find operations and then binds to the service provider inorder to invoke one of its Web services. Which service the service-requestersneed, they have to take it into the Brokers, then bind it with respective serviceand then use it. They can access multiple services, if the service providemultiple services.

    1.2.6[edit] SOA and Web service protocolsThis section does notciteanyreferences or sources. Please helpimprove thisarticleby adding citations toreliable sources.Unverifiablematerial may bechallenged and removed. (June 2006)

    Implementors commonly build SOAs usingWeb servicesstandards (for example, usingSOAP) that have gained[when?] broad industry acceptance. These standards (alsoreferred to asWeb Service specifications) also provide greater interoperability andsome protection from lock-in to proprietary vendor software. One can, however,implement SOA using any service-based technology, such asJini,CORBAorREST.

    1.2.7[edit] Other SOA conceptsArchitectures can operate independently of specific technologies[3]. Designers canimplement SOA using a wide range of technologies, includingSOAP,REST,RPC,DCOM,CORBA,Web ServicesorWCF(Microsoft's implementation of Webservice forms a partofWCF). SOA can be implemented using one or more of these protocols and, forexample, might use a file-system mechanism to communicate data conforming to adefined interface-specification between processes conforming to the SOA concept. Thekey is independent services with defined interfaces that can be called to perform theirtasks in a standard way, without a service having foreknowledge of the calling

    http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integrationhttp://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integrationhttp://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integrationhttp://en.wikipedia.org/wiki/EbXMLhttp://en.wikipedia.org/wiki/EbXMLhttp://en.wikipedia.org/wiki/EbXMLhttp://en.wikipedia.org/wiki/ISO/IEC_11179http://en.wikipedia.org/wiki/ISO/IEC_11179http://en.wikipedia.org/wiki/Metadata_Registryhttp://en.wikipedia.org/wiki/Metadata_Registryhttp://en.wikipedia.org/wiki/Metadata_Registryhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=7http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=7http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=7http://en.wikipedia.org/wiki/Wikipedia:Citing_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Citing_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Citing_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/wiki/Wikipedia:Reliable_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Reliable_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Reliable_sourceshttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_%28dates_and_numbers%29#Chronological_itemshttp://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_%28dates_and_numbers%29#Chronological_itemshttp://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_%28dates_and_numbers%29#Chronological_itemshttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/Jinihttp://en.wikipedia.org/wiki/Jinihttp://en.wikipedia.org/wiki/Jinihttp://en.wikipedia.org/wiki/CORBAhttp://en.wikipedia.org/wiki/CORBAhttp://en.wikipedia.org/wiki/CORBAhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=8http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=8http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=8http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/RESThttp://en.wikipedia.org/wiki/RESThttp://en.wikipedia.org/wiki/RESThttp://en.wikipedia.org/wiki/Remote_procedure_callhttp://en.wikipedia.org/wiki/Remote_procedure_callhttp://en.wikipedia.org/wiki/Remote_procedure_callhttp://en.wikipedia.org/wiki/Distributed_Component_Object_Modelhttp://en.wikipedia.org/wiki/Distributed_Component_Object_Modelhttp://en.wikipedia.org/wiki/Distributed_Component_Object_Modelhttp://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecturehttp://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecturehttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Windows_Communication_Foundationhttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecturehttp://en.wikipedia.org/wiki/Distributed_Component_Object_Modelhttp://en.wikipedia.org/wiki/Remote_procedure_callhttp://en.wikipedia.org/wiki/RESThttp://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Erl-2http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=8http://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/CORBAhttp://en.wikipedia.org/wiki/Jinihttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style_%28dates_and_numbers%29#Chronological_itemshttp://en.wikipedia.org/wiki/SOAP_%28protocol%29http://en.wikipedia.org/wiki/Web_servicehttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Reliable_sourceshttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edithttp://en.wikipedia.org/wiki/Wikipedia:Verifiabilityhttp://en.wikipedia.org/wiki/Wikipedia:Citing_sourceshttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=7http://en.wikipedia.org/wiki/Metadata_Registryhttp://en.wikipedia.org/wiki/ISO/IEC_11179http://en.wikipedia.org/wiki/EbXMLhttp://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    11/48

    Service Oriented Architecture Pgina 11 de 48

    application, and without the application having or needing knowledge of how theservice actually performs its tasks.

    Elements of SOA, by Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA. PrenticeHall, 2005

    SOA Meta Model, The Linthicum Group, 2007

    Service-Oriented Modeling Framework (SOMF) Version 2.0

    One can also regard SOA as a style of information systems architecture that enablesthe creation of applications that are built by combiningloosely coupledandinteroperableservices[9]. These services inter-operate based on a formal definition (or

    contract, e. g.,WSDL) that is independent of the underlying platform and programminglanguage. The interface definitionhides the implementationof the language-specificservice. SOA-based systems can therefore function independently of developmenttechnologies and platforms (such asJava,.NETetc). Services written inC#running on.NET platforms and services written in Java running onJava EEplatforms, for example,can both be consumed by a common composite application (or client). Applicationsrunning on either platform can also consume services running on the other as Webservices that facilitates reuse. Managed environments can also wrap COBOL legacysystems and present them as software services. This has extended the useful life ofmany core legacy systems indefinitely, no matter what language they originally used.

    http://en.wikipedia.org/wiki/Loosely_coupledhttp://en.wikipedia.org/wiki/Loosely_coupledhttp://en.wikipedia.org/wiki/Loosely_coupledhttp://en.wikipedia.org/wiki/Interoperablehttp://en.wikipedia.org/wiki/Interoperablehttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-8http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-8http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-8http://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Information_hidinghttp://en.wikipedia.org/wiki/Information_hidinghttp://en.wikipedia.org/wiki/Information_hidinghttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Editionhttp://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Editionhttp://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Editionhttp://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Editionhttp://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29http://en.wikipedia.org/wiki/Microsoft_.NEThttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Information_hidinghttp://en.wikipedia.org/wiki/Web_Services_Description_Languagehttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-8http://en.wikipedia.org/wiki/Interoperablehttp://en.wikipedia.org/wiki/Loosely_coupled
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    12/48

    Service Oriented Architecture Pgina 12 de 48

    SOA can support integration and consolidation activities within complexenterprisesystems, but SOA does not specify or provide a methodology orframeworkfordocumenting capabilities or services.

    High-level languagessuch asBPELand specifications such asWS-CDLandWS-Coordinationextend the service concept by providing a method of defining andsupportingorchestrationof fine-grained services into more coarse-grained businessservices, which architects can in turn incorporate into workflows and businessprocesses implemented incomposite applicationsorportals[citation needed].

    The use ofService Component Architecture(SCA) to implement SOA is acurrentareaof research.

    How can a SOA address interoperability and reusability challenges of computingenvironments and simplify the heterogeneous business and technological landscapesbuilt over decades? SOA introduces another concept to help practitioners tounderstand their complex environments by modeling practices. These disciplines areintroduced by theservice-oriented modelingparadigm[2], a SOA framework thatidentifies the various disciplines that guide SOA practitioners to conceptualize, analyze,design, and architect their service-oriented assets. Thus, theService-OrientedModeling Framework(SOMF) is a work structure, a "map" depicting the variouscomponents that contribute to a successful service-oriented modeling approach. Itillustrates the major elements that identify the what to do aspects of a servicedevelopment scheme. These modeling pillars enable practitioners to craft an effective

    project plan and to identify the milestones of a service-oriented initiative either asmall project, a large-scale business, or a technological venture. SOMF also provides acommon language, a modeling notation to address one of the major intrinsiccollaboration requirements of our times: alignment between business and ITorganizations. This crucial vocabulary, if employed, can also illustrate the followingSOA principles:

    Business TraceabilityArchitectural Best-Practices TraceabilityTechnological Traceability

    SOA Value PropositionSoftware Assets ReuseSOA Integration StrategiesTechnological Abstraction and GeneralizationArchitectural Components Abstraction

    "Service-Oriented Modeling Framework (SOMF) Example".http://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdf.

    "Download SOMF Examples & Language Notation".http://www.modelingconcepts.com/pages/download.htm.

    http://en.wikipedia.org/wiki/Enterprise_architecturehttp://en.wikipedia.org/wiki/Enterprise_architecturehttp://en.wikipedia.org/wiki/Enterprise_architecturehttp://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/High-level_programming_languagehttp://en.wikipedia.org/wiki/High-level_programming_languagehttp://en.wikipedia.org/wiki/BPELhttp://en.wikipedia.org/wiki/BPELhttp://en.wikipedia.org/wiki/BPELhttp://en.wikipedia.org/wiki/WS-CDLhttp://en.wikipedia.org/wiki/WS-CDLhttp://en.wikipedia.org/wiki/WS-CDLhttp://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/Composite_applicationshttp://en.wikipedia.org/wiki/Composite_applicationshttp://en.wikipedia.org/wiki/Composite_applicationshttp://en.wikipedia.org/wiki/Enterprise_portalhttp://en.wikipedia.org/wiki/Enterprise_portalhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Service_Component_Architecturehttp://en.wikipedia.org/wiki/Service_Component_Architecturehttp://en.wikipedia.org/wiki/Service_Component_Architecturehttp://en.wikipedia.org/w/index.php?title=As_if_2008&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=As_if_2008&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=As_if_2008&action=edit&redlink=1http://en.wikipedia.org/wiki/Service-oriented_modelinghttp://en.wikipedia.org/wiki/Service-oriented_modelinghttp://en.wikipedia.org/wiki/Service-oriented_modelinghttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pages/download.htmhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://www.modelingconcepts.com/pdf/SOMF_ANALYSIS_MODELING.pdfhttp://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://en.wikipedia.org/wiki/Service-Oriented_Modeling_Frameworkhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-Bell-1http://en.wikipedia.org/wiki/Service-oriented_modelinghttp://en.wikipedia.org/w/index.php?title=As_if_2008&action=edit&redlink=1http://en.wikipedia.org/wiki/Service_Component_Architecturehttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Enterprise_portalhttp://en.wikipedia.org/wiki/Composite_applicationshttp://en.wikipedia.org/wiki/Orchestration_%28computers%29http://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/WS-Coordinationhttp://en.wikipedia.org/wiki/WS-CDLhttp://en.wikipedia.org/wiki/BPELhttp://en.wikipedia.org/wiki/High-level_programming_languagehttp://en.wikipedia.org/wiki/Frameworkhttp://en.wikipedia.org/wiki/Enterprise_architecture
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    13/48

    Service Oriented Architecture Pgina 13 de 48

    1.2.8[edit] SOA definitionsSOA is a design for linking computational resources (principally applications and data)

    on demand to achieve the desired results for service consumers (either end users orother services). OASIS (theOrganization for the Advancement of StructuredInformation Standards) defines SOA as the following:

    A paradigm for organizing and utilizing distributed capabilities that may be under the

    control of different ownership domains. It provides a uniform means to offer, discover,

    interact with and use capabilities to produce desired effects consistent with measurable

    preconditions and expectations.

    There are multiple definitions of SOA, theOASISgroup and theOpen Grouphave

    created formal definitions with depth that can be applied to both the technology andbusiness domains.

    Open Group SOA Definition(SOA-Definition)[10]OASIS SOA Reference Model(SOA-RM)[11]

    In addition, SOA is an approach to architecture, whereby business services are the keyorganizing principles that drive the design of IT to be aligned with business needs.

    1.2.9[edit] Service contractA service contract needs[citation needed] to have the following components:

    Headero Name Name of the service. Should indicate in general terms what it

    does, but not be the only definitiono Version The version of this service contracto Owner The person/team in charge of the serviceo RACI

    Responsible The role/person/team responsible for thedeliverables of this contract/service. All versions of the contract

    Accountable Ultimate Decision Makerin terms of thiscontract/service

    Consulted Who must be consulted before action is taken onthis contract/service. This is two-way communication. Thesepeople have an impact on the decision or the execution of thatdecision.

    Informed Who must be informed that a decision or action isbeing taken. This is a one-way communication. These people areimpacted by the decision or execution of that decision, but have

    no control over the action.

    http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=9http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=9http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=9http://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/The_Open_Grouphttp://en.wikipedia.org/wiki/The_Open_Grouphttp://en.wikipedia.org/wiki/The_Open_Grouphttp://en.wikipedia.org/w/index.php?title=Open_Group_SOA_Definition&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Open_Group_SOA_Definition&action=edit&redlink=1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-9http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-9http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-9http://en.wikipedia.org/wiki/OASIS_SOA_Reference_Modelhttp://en.wikipedia.org/wiki/OASIS_SOA_Reference_Modelhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-10http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-10http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-10http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=10http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=10http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=10http://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/w/index.php?title=Ultimate_Decision_Maker&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Ultimate_Decision_Maker&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Ultimate_Decision_Maker&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Ultimate_Decision_Maker&action=edit&redlink=1http://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=10http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-10http://en.wikipedia.org/wiki/OASIS_SOA_Reference_Modelhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-9http://en.wikipedia.org/w/index.php?title=Open_Group_SOA_Definition&action=edit&redlink=1http://en.wikipedia.org/wiki/The_Open_Grouphttp://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/wiki/Organization_for_the_Advancement_of_Structured_Information_Standardshttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=9
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    14/48

    Service Oriented Architecture Pgina 14 de 48

    o Type This is the type of the service to help distinguish the layer inwhich it resides. Different implementations will have different servicetypes. Examples of service types include:

    Presentation

    Process Business Data Integration

    Functionalo Functional Requirement (from Requirements Document) Indicates the

    functionality in specific bulleted items what exactly this serviceaccomplishes. The language should be such that it allows test cases toprove the functionality is accomplished.

    o Service Operations Methods, actions etc. Must be defined in terms ofwhat part of the functionality it provides.

    o Invocation Indicates the invocation means of the service. This includesthe URL, interface, etc. There may be multiple invocation paths for thesame service. We may have the same functionality for an internal andsome external clients, each with different invocation means andinterfaces. Examples:

    SOAP REST Events Triggers

    Non-Functionalo Security Constraints Defines who can execute this service in terms of

    roles or individual partners etc. and which invocation mechanism theycan invoke.

    o Quality of Service Determines the allowable failure rateo Transactional Is this capable of acting as part of a larger transaction

    and if so, how do we control that?o Service Level Agreement Determines the amount of latency the

    service is allowed to have to perform its actionso Semantics Dictates or defines the meaning of terms used in the

    description and interfaces of the serviceo Process Describes the process, if any, of the contracted service

    1.2.10[edit] SOA and business architectureSOA has gained ground as a mechanism for defining business services[12]and operatingmodels (e. g.,Business-Agile Enterprise) and thus provide a structure for IT to deliveragainst the actual business requirements and adapt in a similar way to the business.The purpose of using SOA as a business mapping tool is to ensure that the servicescreated properly represent the business view and are not just what technologists think

    the business services should be. At the heart of SOA planning is the process of definingarchitectures for the use of information in support of the business, and the plan for

    http://en.wikipedia.org/wiki/SOAPhttp://en.wikipedia.org/wiki/SOAPhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=11http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=11http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=11http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-11http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-11http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-11http://en.wikipedia.org/wiki/Business-Agile_Enterprisehttp://en.wikipedia.org/wiki/Business-Agile_Enterprisehttp://en.wikipedia.org/wiki/Business-Agile_Enterprisehttp://en.wikipedia.org/wiki/Business-Agile_Enterprisehttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-11http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=11http://en.wikipedia.org/wiki/Representational_State_Transferhttp://en.wikipedia.org/wiki/SOAP
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    15/48

    Service Oriented Architecture Pgina 15 de 48

    implementing those architectures[13]. Enterprise Business Architecture should alwaysrepresent the highest and most dominant architecture. Every service should becreated with the intent to bring value to the business in some way and must be

    traceable back to the business architecture.

    Within this area,IBMannounced SOMA (service-oriented modeling andarchitecture[14]) as the first publicly announced SOA-related methodology in 2004.Since then, efforts have been made to move towards greater standardization and theinvolvement of business objectives, particularly within theOASISstandards group andspecifically theSOA Adoption Blueprintsgroup. All of these approaches take afundamentally structured approach to SOA, focusing more on the Services andArchitecture elements and leaving implementation to the more technically focusedstandards. Another pertinent example isSAP Enterprise Services Architecture, which isfocused on a strict governance process and the use of semantics to improve theusefulness of services in business process innovation.

    1.2.11[edit] SOA and network management architectureThe principles of SOA are currently being applied to the field ofnetwork management.Examples of service-oriented network management architectures are TS 188 001 NGNManagement OSS Architecture fromETSI, and M.3060 Principles for the ManagementOf Next Generation Networks recommendation from theITU-T.

    Tools for managing SOA infrastructure include:

    HP Management Software / Mercury SOA ManagerHyPerformix IPS Performance OptimizerIBM Tivoli Framework

    1.3[edit] Discussion1.3.1[edit] Benefits

    Enterprise architectsbelieve that SOA can help businesses respond more quickly andcost-effectively to changing market conditions[15]. This style ofarchitecture promotesreuse at the macro (service) level rather than micro (classes) level. It can also simplifyinterconnection to and usage of existing IT (legacy) assets.

    In some respects, one can regard SOA as an architectural evolution rather than as arevolution. It captures many of thebest practicesof previous software architectures.In communications systems, for example, little development has taken place of

    solutions that use truly static bindings to talk to other equipment in the network. By

    http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-12http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-12http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-12http://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/OASIS_%28organization%29http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprintshttp://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprintshttp://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprintshttp://en.wikipedia.org/wiki/SAP_Enterprise_Services_Architecturehttp://en.wikipedia.org/wiki/SAP_Enterprise_Services_Architecturehttp://en.wikipedia.org/wiki/SAP_Enterprise_Services_Architecturehttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=12http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=12http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=12http://en.wikipedia.org/wiki/Network_managementhttp://en.wikipedia.org/wiki/Network_managementhttp://en.wikipedia.org/wiki/Network_managementhttp://en.wikipedia.org/wiki/ETSIhttp://en.wikipedia.org/wiki/ETSIhttp://en.wikipedia.org/wiki/ETSIhttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/HP_Management_Software_/_Mercury_SOA_Managerhttp://en.wikipedia.org/wiki/HP_Management_Software_/_Mercury_SOA_Managerhttp://en.wikipedia.org/wiki/HyPerformixhttp://en.wikipedia.org/wiki/HyPerformixhttp://en.wikipedia.org/wiki/IBM_Tivoli_Frameworkhttp://en.wikipedia.org/wiki/IBM_Tivoli_Frameworkhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=13http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=13http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=13http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=14http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=14http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=14http://en.wikipedia.org/wiki/Enterprise_architecthttp://en.wikipedia.org/wiki/Enterprise_architecthttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-14http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-14http://en.wikipedia.org/wiki/Best_practicehttp://en.wikipedia.org/wiki/Best_practicehttp://en.wikipedia.org/wiki/Best_practicehttp://en.wikipedia.org/wiki/Best_practicehttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-14http://en.wikipedia.org/wiki/Enterprise_architecthttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=14http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=13http://en.wikipedia.org/wiki/IBM_Tivoli_Frameworkhttp://en.wikipedia.org/wiki/HyPerformixhttp://en.wikipedia.org/wiki/HP_Management_Software_/_Mercury_SOA_Managerhttp://en.wikipedia.org/wiki/ITU-Thttp://en.wikipedia.org/wiki/ETSIhttp://en.wikipedia.org/wiki/Network_managementhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=12http://en.wikipedia.org/wiki/SAP_Enterprise_Services_Architecturehttp://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-blueprintshttp://en.wikipedia.org/wiki/OASIS_%28organization%29http://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/Service-oriented_modeling_and_architecturehttp://en.wikipedia.org/wiki/IBMhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-12
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    16/48

    Service Oriented Architecture Pgina 16 de 48

    formally embracing a SOA approach, such systems are better positioned to stress theimportance of well-defined, highly inter-operable interfaces[16].

    Some

    [who?]

    have questioned whether SOA is just a revival of modular programming(1970s), event-oriented design (1980s) or interface/component-based design(1990s)[citation needed]. SOA promotes the goal of separating users (consumers) from theservice implementations. Services can therefore be run on various distributedplatforms and be accessed across networks. This can also maximize reuse ofservices[citation needed].

    SOA is an architectural and design discipline conceived to achieve the goals ofincreased interoperability (information exchange, reusability, and composability),increased federation (uniting resources and applications while maintaining theirindividual autonomy and self-governance), and increased business and technologydomain alignment.

    Service-Oriented Architecture (SOA) is an architectural approach (or style) forconstructing complex software-intensive systems from a set of universallyinterconnected and interdependent building blocks, called services.

    SOA realizes its business and IT benefits through utilizing an analysis and designmethodology when creating services that ensures they are consistent with thearchitectural vision and roadmap, and adhere to principles of service-orientation.Arguments supporting the business and management aspects from SOA are outlined in

    various publications[17].

    A service comprises a stand-alone unit of functionality available only via a formallydefined interface. Services can be some kind of "nano-enterprises" that are easy toproduce and improve. Also services can be "mega-corporations" that are constructedas coordinated work of sub-ordinate services.

    Services generally adhere to the following principles of service-orientation:

    abstraction

    autonomycomposabilitydiscoverabilityformal contractloose couplingreusabilitystatelessness

    A mature rollout of SOA effectively defines theAPIof the organization.

    Implementation of services should be treated as separate projects from the largerproject for three reasons:

    http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-15http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-15http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-15http://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-16http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-16http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-16http://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/APIhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-16http://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-15
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    17/48

    Service Oriented Architecture Pgina 17 de 48

    It promotes the concept to the business that services can be delivered quicklyand independently from the larger and slower-moving projects common in theorganization. The business starts understanding systems and simplified user

    interfaces calling on services. This advocates agility.It promotes the decoupling of services from its consuming project. Thisencourages good design where the service is designed without knowing who itsconsumers are.Documentation and test artifacts of the service are not embedded within thedetail of the larger project. This is important when the service needs to bereused later.

    An indirect benefit of SOA is dramatically simplified testing. Services are autonomous,stateless, with fully documented interfaces, and separate from the cross-cuttingconcerns of the implementation. The industry has never been exposed to thiscircumstance before.

    If appropriate test data is defined in the organization, then when a service is beingbuilt, a corresponding stub is built that reacts to the test data. A full set of regressiontests, scripts, data, and responses is also captured for the service. The service can betested as a 'black box' using existing stubs corresponding to the services it calls. Testenvironments can be constructed where the primitive and out-of-scope services arestubs, while the remainder of the mesh are test deployments of full services. As eachinterface is fully documented, with its own full set of regression test documentation, itbecomes simple to identify problems in test services. Testing evolves to merely

    validating that the test service operates according to its documentation, and in findinggaps in documentation and test cases of all services within the environment. Managingdata state of idempotent services is the only complexity.

    Examples may prove useful to aid in documenting a service to the level where itbecomes useful. The documentation of some API's within the Java Community Processare good examples. As these are exhaustive, staff would typically use only importantsubsets. The 'ossjsa.pdf' file within JSR-89 is an example for such a file.JSR-89 SpecDowmload

    1.3.2[edit] Challenges in adopting SOAOne obvious and common challenge faced involves managing servicesmetadata[citationneeded]. SOA-based environments can include many services that exchange messages toperform tasks. Depending on the design, a single application may generate millions ofmessages. Managing and providing information on how services interact is acomplicated task. This becomes even more complicated when these services aredelivered by different organizations within the company or even different companies(partners, suppliers, etc). This creates huge trust issues across teams, and hence SOA

    Governance comes into picture.

    https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developerhttps://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developerhttps://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developerhttps://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developerhttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=15http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=15http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=15http://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Wikipedia:Citation_neededhttp://en.wikipedia.org/wiki/Metadatahttp://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=15https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developerhttps://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=7854-oss_service_activation-1.0-fr-spec-oth-JSpec@CDS-CDS_Developer
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    18/48

    Service Oriented Architecture Pgina 18 de 48

    Another challenge involves the lack of testing in SOA space. There are no sophisticatedtools that provide testability of all headless services (including message and databaseservices along with web services) in a typical architecture. Lack of horizontal trust

    requires that both producers and consumers test services on a continuous basis. SOA'smain goal is to deliver Agility to Businesses. Therefore it is important to invest in atesting framework (build or buy) that would provide you with the visibility required tofind the culprit in your architecture in no time. The Business Agility requires from SOAservices to be controlled by the business goals and directives as defined in theBusinessMotivation Model(BMM)[18].

    Another challenge relates to providing appropriate levels of security. Security modelsbuilt into an application may no longer suffice when the capabilities of the applicationare exposed as services that can be used by other applications. That is, application-managed security is not the right model for securing services. A number of newtechnologies and standards are emerging to provide more appropriate models forsecurity in SOA. SeeSOA Securityentry for more information.

    As SOA and theWS-* specificationspractitioners constantly expand, update and refinetheir output, there is a shortage of skilled people to work on SOA-based systems,including the integration of services and construction of services infrastructure.

    Interoperability becomes an important aspect of SOA implementations. The WS-Iorganization has developedBasic Profile(BP) andBasic Security Profile(BSP) toenforce compatibility[19]. Testing tools have been designed by WS-I to help assess

    whether web services are conformant with WS-I profile guidelines. Additionally,another charter has been established to work on the Reliable Secure Profile.

    Significant vendor hype exists concerning SOA; this can create expectations that maynot be fulfilled. Product stacks continue to evolve as early adopters test thedevelopment and runtime products with real-world problems. SOA does not guaranteereduced IT costs, improved systems agility or faster time-to-market. Successful SOAimplementations may realize some or all of these benefits depending on the qualityand relevance of the system architecture and design[20][21].

    SOA efforts are routinely initiated by internal IT delivery organizations, and some ofthese improperly introduce concepts to the business so it remains misunderstood. Theadoption starts meeting IT delivery needs instead of those of the business, so theresult is an organization with superlative laptop provisioning services, instead of onethat can quickly respond to market opportunities. Business Leadership also becomesconvinced that the organization is executing on SOA well.

    As one of the most important benefits of SOA is its ease of reuse. Thereforeaccountability and funding models must ultimately evolve within the organization. Abusiness unit needs to be encouraged to create services that other units will use.

    Conversely, units must be encouraged to reuse services. This requires a few newgovernance components:

    http://en.wikipedia.org/wiki/Business_Motivation_Modelhttp://en.wikipedia.org/wiki/Business_Motivation_Modelhttp://en.wikipedia.org/wiki/Business_Motivation_Modelhttp://en.wikipedia.org/wiki/Business_Motivation_Modelhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-17http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-17http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-17http://en.wikipedia.org/wiki/SOA_Securityhttp://en.wikipedia.org/wiki/SOA_Securityhttp://en.wikipedia.org/wiki/SOA_Securityhttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/w/index.php?title=Basic_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Security_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Security_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Security_Profile&action=edit&redlink=1http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-18http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-18http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-18http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-19http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-20http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-20http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-20http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-20http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-19http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-18http://en.wikipedia.org/w/index.php?title=Basic_Security_Profile&action=edit&redlink=1http://en.wikipedia.org/w/index.php?title=Basic_Profile&action=edit&redlink=1http://en.wikipedia.org/wiki/List_of_Web_service_specificationshttp://en.wikipedia.org/wiki/SOA_Securityhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-17http://en.wikipedia.org/wiki/Business_Motivation_Modelhttp://en.wikipedia.org/wiki/Business_Motivation_Model
  • 8/7/2019 Service Oriented Architecture SOA v1.0

    19/48

    Service Oriented Architecture Pgina 19 de 48

    Each business unit creating services must have an appropriate supportstructure in place to deliver on its service level obligations, and to supportenhancing existing services strictly for the benefit of others. This is typically

    quite foreign to business leaders.Each business unit consuming services accepts the apparent risk of reusingservices outside their own control, with the attendant external projectdependancies, etc.An innovative funding model is needed as incentive to drive these behaviorsabove. Business units normally pay the IT Organization to assist during projects,and then to operate the environment. Corporate incentives should discountthese costs to service providers, and create internal revenue streams fromconsuming business units to the service provider. These streams should be lessthan the costs of a consumer simply building it the old-fashioned way. ----

    1.3.3[edit] Criticisms of SOASome criticisms[22]of SOA depend on the assumption that SOA is just another term forWeb Services. For example, some critics[who?] claim SOA results in the addition of XMLlayers, introducing XML parsing and composition. In the absence of native or binaryforms ofRemote Procedure Call(RPC), applications could run slower and require moreprocessing power, increasing costs. Most implementations do incur these overheads,but SOA can be implemented using technologies (for example,Java BusinessIntegration(JBI)) that do not depend on remote procedure calls or translation throughXML. At the same time, there are emerging, open-source XML parsing technologies,such asVTD-XML, and various XML-compatible binary formats that promise tosignificantly improve the SOA performance[23][24][25].

    Stateful services require both the consumer and the provider to share the sameconsumer-specific context, which is either included in or referenced by messagesexchanged between the provider and the consumer. This constraint has the drawbackthat it could reduce the overall scalability of the service provider because it might needto remember the shared context for each consumer. It also increases the couplingbetween a service provider and a consumer and makes switching service providers

    more difficult.

    Another concern is that WS-* standards and products are still evolving (e. g.,transaction, security), and SOA can thus introduce new risks unless properly managedand estimated with additional budget and contingency for additionalProof of Conceptwork.

    Some critics[who?] feel SOA is merely an obvious evolution of currently well-deployedarchitectures (open interfaces, etc).

    A SOA being an architecture is the first stage of representing the system componentsthat interconnect for the benefit of the business. At this level a SOA is just an evolution

    http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=16http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=16http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&section=16http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-21http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-21http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-21http://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Remote_Procedure_Callhttp://en.wikipedia.org/wiki/Remote_Procedure_Callhttp://en.wikipedia.org/wiki/Remote_Procedure_Callhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/VTD-XMLhttp://en.wikipedia.org/wiki/VTD-XMLhttp://en.wikipedia.org/wiki/VTD-XMLhttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-22http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-24http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-24http://en.wikipedia.org/wiki/Proof_of_Concepthttp://en.wikipedia.org/wiki/Proof_of_Concepthttp://en.wikipedia.org/wiki/Proof_of_Concepthttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Proof_of_Concepthttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-24http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-22http://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-22http://en.wikipedia.org/wiki/VTD-XMLhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/Java_Business_Integrationhttp://en.wikipedia.org/wiki/Remote_Procedure_Callhttp://en.wikipedia.org/wiki/Wikipedia:Avoid_weasel_wordshttp://en.wikipedia.org/wiki/Web_Serviceshttp://en.wikipedia.org/wiki/Service-oriented_architecture#cite_note-21http://en.wikipedia.org/w/index.php?title=Service-oriented_architecture&action=edit&