Docstoc

Service Oriented Architecture Service Oriented

Document Sample
Service Oriented Architecture Service Oriented Powered By Docstoc
					      Service-Oriented Architecture

Arsitektur Tekologi Informasi
                            Service-Oriented
                              Architecture
                Description : Service-Oriented
                architecture (SOA) is an architectural
                style that formally separates services,
                which are the functionality that a
                system can provide, from service
                consumers, which are systems that
                need that functionality.



Arsitektur Tekologi Informasi
                                Description
     • This separation is accomplished by a
       mechanism known as a service contract,
       coupled with a mechanism for providers to
       publish contracts and consumers to locate the
       contracts that provide the service that they
       desire (diinginkan).
     • Rather than coupling (menggabungkan) the
       consumer with the service in terms of technical
       aspects of invoking (melibatkan) the service,
       SOA separates the contract from the component
       or implementation of that contract.

Arsitektur Tekologi Informasi
                                Description
     • This separation produces an architecture
       in which the coupling between the
       consumer of the service and the modules
       that produce the work is extremely loose
       and easily reconfigured.




Arsitektur Tekologi Informasi
                       Benefits of an SOA
     • SOA can be of enormous (sangat besar)
       benefit to the modern enterprise.
          – It provides an important new avenue
            (kesempatan) for integration of applications.
          – Creating new applications under an SOA
            offers a significant increase in the qualities of
            availability, interoperability, maintainability,
            and reliability (kehandalan) for those
            applications.

Arsitektur Tekologi Informasi
                       Benefits of an SOA
     • SOA benefits flow primarily from breaking
       applications into modules with a well-defined
       interface contract that leads to very loose
       coupling between services and applications.
     • Loose coupling between consumer and provider
       benefits the consumer because consumer
       applications are effectively protected from
       changes in service provider implementations
       and the consumer has a greater choice of
       providers.
Arsitektur Tekologi Informasi
                       Benefits of an SOA
     • It benefits the provider because from an
       implementation of loosely coupled systems
       come applications that map much more closely
       to the business processes that represent a
       company's value proposition.
     • In addition, these applications increase the
       enterprises' competitiveness because they are
       easier to modify to satisfy changing business
       conditions.
     • In addition, applications and work processes
       assembled using an SOA are cheaper to
       maintain.

Arsitektur Tekologi Informasi
                       Benefits of an SOA
     • Organizations that adopt a service-
       oriented philosophy of development will be
       able to handle change more quickly and
       cheaply.
     • SOA can provide a major increase in the
       value of the data and application
       resources of a company by enabling a
       major new mode of integration of these
       assets.

Arsitektur Tekologi Informasi
                       Benefits of an SOA
     • Decreased application development costs
     • Decreased maintenance costs
     • Increased corporate agility
     • Increasing overall reliability by producing
       systems that are more resistant to application
       and equipment failure and disruption.
     • Providing an application upgrade path that is
       considerably cheaper and less disruptive than
       the total application replacement that is the norm
       using monolithic applications.

Arsitektur Tekologi Informasi
     Application development costs are
     reduced for the following reasons:
     • Code reuse is extensive.
     • Most of the code has been thoroughly
       tested.
     • The presentation layer is the only layer
       requiring customization for different
       clients.
     • RAD development via automated code
       generation becomes a possibility.
Arsitektur Tekologi Informasi
            Characteristics of an SOA
        In general, SOAs have the following
        characteristics:
     • Services have well-defined interfaces (contract) and
       policies.
     • Services usually represent a business function or
       domain.
     • Services have a modular design.
     • Services are loosely coupled (Keterikatan yang renggang).
     • Services are discoverable and support introspection.
     • The location of services is transparent to the client.
     • Services are transport independent.
     • Services are platform independent.
Arsitektur Tekologi Informasi
             Services Have Well-Defined
               Interfaces and Policies
     • Well-defined interfaces (contract) are a central
       concept for SOAs. All services publish a
       contract.
     • This contract encapsulates the agreement
       between the client of the service and the service.
     • Contracts are what the consumer peruses when
       searching for a service.
     • The contract contains all the information
       necessary to create an application that is
       capable of accessing the service. Using the
       information in the contract to access and utilize
       the service is called binding.
Arsitektur Tekologi Informasi
             Services Have Well-Defined
               Interfaces and Policies
     • Contracts are a new concept to many IT
       professionals. The old paradigm, carried over
       from procedural programming days from object-
       oriented development (OOD), is that applications
       are a set of classes that provide the desired
       functionality.
     • Classes are organized into inheritance
       hierarchies with subclasses inheriting both data
       members and functionality from their chain of
       parent classes.



Arsitektur Tekologi Informasi
             Services Have Well-Defined
               Interfaces and Policies
     • Applications are built from a collection of classes
       that interact with each other via their functions.
       These functions consist of a hopefully)
       descriptive name and a function signature. The
       function signature states what data type the
       class will return and what data it requires as
       input. Function signatures imply synchronous,
       tightly coupled,procedures called interactions.
     • Classes provide a type to which to bind during
       the compile.
Arsitektur Tekologi Informasi
             Services Have Well-Defined
               Interfaces and Policies
     • This system of classes and subclasses has
       several limitations. Tight (ketat) coupling
       introduces rigidity and makes future
       enhancements harder to implement, which is
       undesirable in a software system of any size. If
       changes are made in the parent, it can affect the
       functionality of the children.
     • Incorporating functionality from more than one
       superclass involves multiple inheritance, which
       introduced even more fragility.
     • Some object-oriented (OO) languages, Java being
       one of them, do not support multiple inheritance.
Arsitektur Tekologi Informasi
                                Web Services
     • Web services have been chosen for in-
       depth discussion because they are a well
       known and extremely important example
       of an SOA implementation.
     • Many enterprises have already started to
       implement Web services, and most others
       have plans to implement them in the
       future.

Arsitektur Tekologi Informasi
                                Web Services
     • Web services are an example of an SOA. One
       very important thing that Web services have
       over most other SOA implementations is that
       they ad here to open standards.
     • The open standards that form the basis of Web
       services theoretically allow any Web service to
       interact with any other Web service.
     • Proprietary protocols, data translation, and
       vendor lock-in become a thing of the past. The
       menu of solutions for your IT problems grows
       enormously (besar/berkembang).

Arsitektur Tekologi Informasi
                                Web Services
     Following are the open standards utilized by Web
       services:
     • The transport protocols HTTP, FTP, and SMTP
     • The messaging protocol SOAP (Simple Object
       Access Protocol)
     • The interface description language WSDL(Web
       Services Description Language)
     • Registry protocols such as UDDI (Universal
       Description, Discovery, and Integration) and
       repositories such as ebXML

Arsitektur Tekologi Informasi
                                Web Services
     • One of the SOA principles is that services
       should be independent of the means of
       transport. Currently, all Web services
       communicate using a single transport: HTTP.
       FTP and SMTP are listed as alternate Web
       services transport modalities, but they are not
       particularly popular because they preclude
       (menghalangi) carrying on a conversation
       between applications.
     • However, HTTP will continue to be the most
       popular transport for Web services messages for
       some time to come.

Arsitektur Tekologi Informasi
                                Web Services
     • HTTP is popular for Web services
       because HTTP messages can pass
       readily through firewalls.
     • When you are contemplating connecting to
       a service physically located in a different
       enterprise, or even in a different location
       within the same enterprise, firewall
       transparency is attractive.

Arsitektur Tekologi Informasi
             What is the SOA life cycle?
     • The core IT assets of any organization
       include its data, legacy systems (current
       system), line-of-business applications,
       packaged applications, and trading
       partners. Each of these resources is a
       service provider responsible for producing
       numerous highly specific outputs, such as
       inventories and customer data.

Arsitektur Tekologi Informasi
             What is the SOA life cycle?
     • Service orientation ties together these disparate
       and autonomous sources of information,
       bridging a wide range of operating systems,
       technologies, and communication protocols.
     • The process by which it does this is an iterative
       one of creating (“exposing”) new services,
       aggregating (“composing”) these services into
       larger composite applications, and making the
       outputs available for consumption by the
       business user.
Arsitektur Tekologi Informasi
             What is the SOA life cycle?




Arsitektur Tekologi Informasi
                                Expose
     • The expose phase of the SOA approach
       focuses on which services to create from
       the underlying applications and data.
       Service creation can be fine-grained (a
       single service that maps to a single
       business process) or coarse-grained
       (multiple services come together to
       perform a related set of business
       functions).
Arsitektur Tekologi Informasi
                                Expose
     • The expose phase is also concerned with
       how the services are implemented. The
       functionality of underlying IT resources
       can be made available natively (secara
       asli) if they already speak Web services,
       or can be made available as Web services
       though the use of an adapter.



Arsitektur Tekologi Informasi
                                Compose
     • Once services are created, they can be
       combined into more complex services,
       applications, or cross-functional business
       processes. Because services exist
       independently of one another as well as of the
       underlying IT infrastructure, they can be
       combined and reused with maximum flexibility.
       And as business processes evolve, business
       rules and practices can be adjusted without
       constraint from the limitations of the underlying
       applications.

Arsitektur Tekologi Informasi
                                Consume
     • Once a new application or business process has
       been created, that functionality must be made
       available for access (consumption) by either
       other IT systems or by end users. The goal of
       the consumption process is to deliver new,
       dynamic applications that enable increased
       productivity and enhanced insight into business
       performance. Users can consume the composed
       service through a number of avenues, including
       Web portals, rich clients, Office business
       applications, and mobile devices.


Arsitektur Tekologi Informasi
                                SOA Issues
     • Implementing an SOA environment will cost time and
       money. Some organizations have no budgetary process
       to finance infrastructure development. In such
       organizations, all information technology development
       projects are developed for and managed by a specific
       customer.
     • This customer assumes all the costs associated with the
       development of the application. If it were decided, under
       this model, to develop an application for a customer
       using an SOA environment, the customer would have to
       assume the entire cost of developing the environment,
       as well as the cost of using it to build the application.
       This system of financing for IT projects punishes
       infrastructure development.
Arsitektur Tekologi Informasi
                                SOA Issues
     • Applications built using an SOA will not only be cheaper to
       develop and have a faster time to market but will be
       significantly less expensive to maintain.
     • Unfortunately, it is a common financial procedure in most
       enterprises to separate the cost of developing an application
       from the cost of maintaining it. It is well known to software
       engineers that the cost of maintaining an application is
       several times more than the cost of developing it. An effective
       method of financing application development is to have the
       customer pay for both development and maintenance costs.
       Using that financial model, what maintenance is really costing
       will become painfully evident to the business side of the
       enterprise. When cradle-to-grave financing is used, the lower
       maintenance costs of SOA applications will become quickly
       evident. Building an SOA and using it to develop applications
       will demonstrate a positive ROI that will more than justify the
       initial outlay required.

Arsitektur Tekologi Informasi
                                SOA Issues
     Distributed architectures such as SOA are at the
       other end of the spectrum when it comes to
       specifying and satisfying SLAs. The plus side is
       as follows:
     • The modular, layered nature of an SOA naturally
       lends itself to setting up parallel,redundant
       athways of communication between the various
       components that are required for the functioning
       of the service. This can help make a server
       resistant to network problems.
Arsitektur Tekologi Informasi
                                SOA Issues
     • The simple, modular nature of the components in the
       service layer lends itself to achieving stated reliability
       levels through clustering of servers.
     • Asynchronous communication can be much more
       tolerant of network disruption than synchronous
       communications.
     • Since services are located and connected to at run-time,
       it is possible for system architects to easily change the
       location of components in response to systems
       architecture changes.
     • Distributed architectures also provide the possibility of
       having applications recover from the unavailability of a
       component by binding to an alternative component,
       perhaps at an alternative location.

Arsitektur Tekologi Informasi
                                SOA Issues
     Following is the negative side:
     • The distributed nature of SOAs makes them very vulnerable
       to network issues. Not just gross network failures that are
       easy to spot, but also slow, easy-to-overlook network
       slowdowns and intermittent congestion.
     • SOAs are hosted on many machines. A seemingly innocuous
       change in the availability any one of a number of computers
       has the potential to disrupt a service.
     • The complex nature of some systems built on an SOA makes
       it very difficult to mathematically derive SLA parameters.
       Unless you have an extremely thorough system to monitor the
       elements of your execution platform, initially any SLA
       numbers will be speculative.
     • Yes, there are numerous ways to tune and tweak SOA
       systems. However, that tuning and tweaking will cost time and
       money.
Arsitektur Tekologi Informasi
                        SOA Management
     • An SOA will eventually become the backbone of
       your business. The business case for it is too
       compelling for it to be otherwise. The more
       central your SOA becomes to your business, the
       more you will require an effective set of
       management tools. The SOA attributes of loose
       coupling and decentralization of service modules
       mandate a centralized control structure. The
       ideal end result is for your SOA to be loosely
       coupled but tightly managed.

Arsitektur Tekologi Informasi
                        SOA Management
         Existing network management tools that are not
         designed for SOA management are inadequate to
         manage an SOA for the following reasons:
     •   They are usually binary in nature; they can tell if an
         application is up or down. Applications are now
         composed of interacting modules; information about the
         health of the modules and of their connections is what is
         required.
     •   They have no awareness of business processes.
     •   They have no understanding of the concept of grouping
         modules into functional units.
     •   They have no way to effectively manage the security
         requirements between the modules in the SOA network.


Arsitektur Tekologi Informasi
                        SOA Management
         SOA management is a complex issue. We suggest examining your
         needs around the following topics before examining SOA
         management solutions:
     •   Performance information
     •   Monitoring and management of running services
     •   Monitoring and management of network issues
     •   Dynamic method for a service to find and bind to its management
         agent or services
     •   Management of SOA security issues
     •   Management of SLAs
     •   Management of the evolution of services and the service life cycle
     •   Management having the capability to be extendable across
         enterprise boundaries




Arsitektur Tekologi Informasi
                      SOA Best Practices
        The following is a short and almost certainly incomplete
        list of SOA best practices. Feel free towrite your own in
        the margins.
     1. Do your business architecture work first. Understand the
        major business processes and how they relate to each
        other. Map the business processes to the data and
        systems architectures. Use that knowledge to plan your
        SOA.
     2. Start small: Build incrementally. Use the first project to
        build the component infrastructure for your SOA. Add to
        your SOA on an ad hoc basis, and document and share
        what you have learned from each SOA project.
     3. When encapsulating existing legacy functionality, use
        the SOA.

Arsitektur Tekologi Informasi
                      SOA Best Practices
     4. Wire in what you have. Leverage the standards-based
        interoperability of the SOA to allow you to integrate your application
        infrastructure.
     5. Architecture is as important to your Web services as to your SOA.
        Use architectural principles to set the contracts that your services
        offer to consumers. Get the grain the size of the service you expose
        in the contract correct. The contract should expose a relatively
        coarse-grained contract and fulfill the contract by aggregating
        several fine-grained components.
     6. Think agile when building services. Make the creation of services an
        opportunity to increase the adaptability and efficiency of your
        organization.
     7. Maximize reuse of components by making them small and cohesive.
     8. Start building in your management tools early in your SOA effort. Do
        not allow yourself to get in the position of being forced to retrofit a
        management solution, at great cost to the business, when your SOA
        suddenly starts behaving poorly.

Arsitektur Tekologi Informasi

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:22
posted:1/20/2012
language:English
pages:37