click below
click below
Normal Size Small Size show me how
1) Web Service & SOA
Web Service & SOA
Question | Answer |
---|---|
System Integration | the task of making different applications work together to produce a unified set of functionality. |
Why System Integration | To support common business processes and data sharing across applications: |
Challenges | – custom developed in house or purchased from third-party vendors. – run on multiple computers (multiple platforms, and maybe geographically dispersed) – not have been designed with integration in mind and are difficult to change |
More Challenges | – Networks are unreliable&slow – every app is different (pr language, O/S, data format),integration solution must interface with all these technologies – Change is inevitable (apps change over time),dependencies must be minimized using loose coupling |
Service-Oriented Paradigm | The service-oriented paradigm to programming utilizes services as the constructs to support the development of rapid, low-cost and easy composition of distributed applications. |
Web Service | a self-describing, self-contained software module available via a network, which completes tasks, solves problems, or conducts transactions on behalf of a user or application,can be discovered using UDDI,HTTP and XML is the basis for Web services |
Services | Composing applications by discovering and invoking network-available services rather than building new applications or by invoking available applications to accomplish some task. |
Direct Processing | Client waits until request is serviced. Service provided as quickly as possible and result is returned. Client and server are synchronized. |
Queued Processing | Request enqueued and client continues execution. Server dequeues request at a later time and enqueues result. Client dequeues result later. Client and server unsynchronized. |
Queued Processing Advantages | – Client can enter requests even if server is unavailable – Server can return results even if client is unavailable – Request will ultimately be served even if T2 aborts (since queue is transactional) |
Remote Procedure Call (RPC) | Semantics can include: – notion that computation may fail (e.g., errors, faults, deadlocks) – blocking or non-blocking – synchronous vs. asynchronous – at least once, at most once, exactly once |
RPC infrastructure must implement | – Server Registration, Binding, Marshalling, Message Send/Receive |
Server Registration | • Use Discovery or Directory Service • Each server registers a service and a version – Service - typically implemented as an integer; a set of well-known services exist – Version - a number used to select which server to use – issue: Load Balancing |
Marshalling | • Assume heterogeneous computing environment • Need to have a consistent set of data types • What about pointers? • What about exceptions? – Exceptions can result from errors at the client site or network problems |
Client stub | – Locates server - sends globally unique name (character string) provided by application to directory services – Sets up connection to server – Marshalls arguments and procedure name – Sends invocation message (uses message passing) |
Server stub | – Unmarshalls arguments – Invokes procedure locally – Returns results |
Connection Set-Up: IDL | • Server publishes its interface as a file written in Interface Definition Language (IDL). • IDL compiler produces header file and server specific stubs • Client stub linked to application |
Directory Services | • Directory (Name) Services provides run-time rendezvous. – Server registers its globally unique name, net address, interfaces it supports, protocols it uses, etc. – Directory service responds with address, protocol |
RPC: Failures | – Possible reasons: communication slow, message lost, server crashed, server slow – Possible actions: resend message, contact different server, abort client, continue to wait – Problem: different actions appropriate to different failures |
ASP (Application Service Provider) | – An ASP hosts the entire application and the customer has little opportunity to customize it beyond the appearance of the user interface – An alternative:ASP is providing a software module that is downloaded to the customer’s site on demand+web |
Informational Services | services of relatively simple nature. They either provide access to content interacting with an end- user by means of simple request/response sequences, or expose back-end business applications to other applications. Examples include: |
Complex services | involves many pre-existing services possibly found in diverse enterprises to complete a multi-step business interaction:Coarse-grained communication implies larger and richer data structures and enables looser coupling, asynchronous communication |
functional service description | details the operational characteristics that define the overall behavior of the service., e.g., how to invoke service, and location where it’s invoked |
non-functional service description | targets service quality attributes,e.g., service metering and cost, performance metrics (response time or accuracy), security, authorization, authentication, scalability, availability, etc. |
Stateless or stateful services: | Services that can be invoked repeatedly without having to maintain context or state they are called stateless. |
Loose coupling | – Coupling indicates the degree of dependency any two systems have on each other – Web services are loosely coupled: they connect and interact more freely (across the Internet). They need not know how their partner applications behave or are implemented |
Service Interface | the operations available, the parameters, data-typing and the access protocols, in a way that other software modules can determine what it does, how to invoke its functionality, and what result to expect in return. |
Service Implementation | The service implementation realizes a specific service interface whose implementation details are hidden from its users. |
Client perspective | - What does it do - How do I use it - Where can I find it? |
Provider perspective | - How to represent it - How to build it - Where to host it - How to publish it |
What is behind a provided web service interface | - Web service orchestration interface - Imported constituent interfaces (outsourced, inhouse) |
Service Model | allows for a clear distinction to be made between |
Service Providers | organizations that provide the service implementations, supply their service descriptions, and provide related technical and business support |
Service Clients | end-user organizations that use some service) – service registry (a searchable directory where service descriptions can be published and searched |
Service-Oriented Architecture | SOA is a logical way of designing a software system to provide services to either end-user applications or to other services distributed in a network, via published and discoverable interfaces. |
Layers in SOA | 1) Business domain 2) Business processes 3) Business services 4) Infrastructure services 5) Component based service realizations 6) Operational systems |
Web Services Technology Stack | 1) UUID - Discovery 2) WSDL - Description 3) SOAP - Message 4) XML - Message 5) HTTP, JMS, SMTP - Transport |
Quality of Service | QoS refers to the ability of a Web service to respond to expected invocations and perform them at the level commensurate to the mutual expectations of both its provider and its customers. |
Service Level Agreements | contract between a provider and client, formalizing the details of use of a Web service (contents, price, delivery process, acceptance and quality criteria, penalties, etc. in measurable terms), mutual understandings and expectations |