Architectures Computing & 2009-11-06
Architectures Computing &
SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems of software are built and deployed as network-accessible services Focus is placed on the utility of software components, rather than on mechanisms of software The value of an application is measured by it s ability to integrate into it s environment rather than it s functional capabilities Architectures Computing &
SERVICE-ORIENTED COMPUTING (SOC) Software as a Service A service is a piece of well-defined functionality that is available at some network endpoint accessible via various transport protocols and serialization formats always on (no construction & destruction semantics) Focus is placed on the utility of services Architectures Computing &
SERVICE-ORIENTED COMPUTING (SOC) SOC Software Requirements Technology neutral use widely available, standardized technology Loosely coupled minimize formal knowledge required to use a service Location transparent be publicly discoverable provide QoS regardless of location of service or clients Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) An architectural style used in Computing SOA models service actors and relations & interactions between service actors Well-designed SOAs provide flexibility in design and deployment adaptability and integrability in architecture scalability in implementation and deployment SOAs build complete systems using services as distributed and modularized components without regard to service implementation (Composite) applications are built by discovering, invoking, and composing services rather than developing new modules Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) SOA Actors Service providers provide service implementations supply service descriptions provide service support Service registries provide (publicly accessible) service information sources houses service meta-information (service description, service location, service cost metrics, etc) Service clients use service functionality may be individual end-users, organizations, or services Service aggregators aggregate services into new services act as brokers and value-add providers Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) SOA Operations Publication of service description construction of service descriptions publishment of service descriptions in service registry Service selection location of service descriptions selection of a suitable subset of available services Service invocation service invocation semantics establishment (from WSDL) service invocation Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) SOA Operations Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Services as a Virtualization Technology Services can be used without having to worry about service discovery service selection data exchange formats service implementation details Services can be aggregated similar services can be hidden behind a common (adapter) interface services can act as brokers to other services Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Service Usage Patterns Service aggregation building applications and logical services by utilizing capabilities offered by services includes creating adapter interfaces to groups of services and service capability brokering Service composition constructing services by combining existing services Service orchestration creating applications by coordinated use of services focuses on message-level interactions and control flows for individual services Service choreography defines workflows for interactions between services describes system-wide collaborations and interactions in terms of message exchanges Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Service Interfaces & Orchestration Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Layered SOAs SOA projects are often large, involving multiple, disparate organizations and heterogeneous system views SOA deployments will often involve physical and virtual resources owned by multiple parties, and incorporation of various legacy systems To modularize designs and address these issues, SOA systems are often segmented into layers, where working groups collaborate to create limited functionality sets Layered designs work by principle of abstraction, hiding complex functionality and providing customized interfaces in higher layers Applications are typically integrated at high (interface) level rather than a low (implementation) level Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Layered SOAs Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Quality of Service (QoS) QoS refers to the ability of the Web Service to respond to expected invocations and to perform them at the level commensurate with the mutual expectations of both it s provider and it s customers. Delivering QoS on the Internet is a critical and significant challenge because of it s dynamical and unpredictable nature. Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Service-Level QoS Availability Accessability Conformance to standards Integrity Performance Reliability Scalability Security Transactionality Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Service-Level Agreements (SLA) An SLA is a formal agreement (contract) between provider and client, formalizing the details of a service (e.g., content, price, delivery, quality, etc, usually in measurable terms) in a way that meets mutual understandings and expectations of all parties involved. SLAs can be static or dynamic, where the latter adapts to current service provisioning Architectures Computing &
SERVICE-ORIENTED ARCHITECTURES (SOA) Service-Level Agreements (SLA) Purpose Parties Validity Scope Restrictions Service-level objectives Penalties Optional services Exclusion terms Administrations Architectures Computing &
WEB SERVICES Service Interface vs Implementation Service interface describes the service operation semantics (the only part) visible to clients should be language, platform, and technology neutral may be designed and standardized by external parties Service implementation realizes a concrete instantiation of a service may be realized using any technology as long as it adheres to the interface specification may be implemented by other organizations than the interface designers Architectures Computing &
WEB SERVICES Service vs Web Service Service: A software component accessed over a network that provides functionality to a service requester Web Service: A service which publishes a service interface in WSDL and uses a message-driven transport protocol (usually via SOAP / REST over HTTP) are built using a host of XML-based technologies XML (data exchanged) XML Schema (validation of data exchanged) SOAP (XML-serialized transfer protocol) WSDL (Web Service interface description, XML Schema) Uses a deployment descriptor to configure service (XML-based configuration file for the service container) Architectures Computing &
WEB SERVICES Web Service Characteristics Platform-independent Service implementations realized using any platform Interfaces and data expressed in XML Loosely coupled Service implementations hidden behind interfaces Services explicitly self-describing and discoverable Self-contained Service dependencies abstracted by other services Self-describing Interface description provides invocation data - " - and service registries provide semantic metadata Use wide-spread and reliable technology base XML, SOAP, WSDL, HTTP Designed to provide a universal IPC mechanism Architectures Computing &
WEB SERVICES Types of Simple services aka informational services provide service interfaces to software modules tend to provide complete fine-grained operations tend to be stateless tend to communicate using request-response patterns Complex services aka business processes aggregate, compose, or invoke other services tend to provide coarse-grained, multi-step service operations (e.g., event / notification-based state updates) tend to be stateful tend to communicate using delegation & publish-subscribe patterns Architectures Computing &
WEB SERVICES Simple vs Complex Architectures Computing &
WEB SERVICES Service Properties Functional service properties details service operational characteristics e.g., message syntax e.g., service location e.g., service invocation protocol Non-Functional service properties details service quality attributes e.g., service performance metrics e.g., security models supported e.g., service scalability meta-information Architectures Computing &
WEB SERVICES Loose Coupling Coupling is a measure of the degree of dependencies Tightly coupled systems require knowledge of how peers behave requires agreement and shared contexts for interoperation ties interfaces into other system interfaces makes maintenance and development complex small changes likely to affect other modules Loosely coupled systems minimizes knowledge required for interoperation focuses on autonomicity of software modules provides agility and ability to survive evolutionary changes tend to use asynchronous communication models (loose coupling in time) tend to have coarse-grained communication patterns (document style interaction) Architectures Computing &
WEB SERVICES Tight vs Loose Coupling Tight coupling Loose coupling Interaction pattern Synchronous Asynchronous Message style RPC style Document style Message path Hard coded Routed Underlying platform Homogeneous Heterogeneous Binding protocol Static Dynamic (late binding) Objective Reuse Flexibility, applicability Architectures Computing &
WEB SERVICES vs Component Models Components Granularity fine-grained coarse-grained Communication synchronous synchronous / asynchrono Endpoint coupling tight, API-based loose, interface-based Infrastructure homogeneous heterogeneous Interface object level wire format level Invocation explicit naming capability listing Request brokering static static / dynamic Architectures Computing &
WEB SERVICES Web Service Technology Stack Architectures Computing &
NEXT XML Technologies Architectures Computing &