middleware chapter 2 contents chapter 2
play

Middleware Chapter 2: Contents - Chapter 2 Understanding - PDF document

Middleware Chapter 2: Contents - Chapter 2 Understanding middleware Middleware as a programming abstraction Middleware as infrastructure A quick overview of conventional middleware platforms RPC TP Monitors Object


  1. Middleware Chapter 2:

  2. Contents - Chapter 2 � Understanding middleware � Middleware as a programming abstraction � Middleware as infrastructure � A quick overview of conventional middleware platforms � RPC � TP Monitors � Object brokers � Middleware convergence Web services: Concepts, Architectures and Applications - Chapter 2 2

  3. Programming abstractions � Programming languages and almost any form of software system evolve always towards higher levels of abstraction � hiding hardware and platform details � more powerful primitives and interfaces � leaving difficult task to intermediaries (compilers, optimizers, automatic load balancing, automatic data partitioning and allocation, etc.) � reducing the number of programming errors � reducing the development and maintenance cost of the applications developed by facilitating their portability � Middleware is primarily a set of programming abstractions developed to facilitate the development of complex distributed systems � to understand a middleware platform one needs to understand its programming model � from the programming model the limitations, general performance, and applicability of a given type of middleware can be determined in a first approximation � the underlying programming model also determines how the platform will evolve and fare when new technologies evolve Web services: Concepts, Architectures and Applications - Chapter 2 3

  4. The genealogy of middleware Application servers Object Message TP-Monitors brokers brokers Specialized forms of RPC, typically with additional Transactional Object oriented Asynchronous functionality or properties but almost always RPC RPC (RMI) RPC running on RPC platforms Remote Procedure Call: hides communication details Remote Procedure Call behind a procedure call and helps bridge heterogeneous platforms sockets: sockets operating system level interface to the underlying communication protocols TCP, UDP: User Datagram Protocol (UDP) transports data TCP, UDP packets without guarantees Transmission Control Protocol (TCP) verifies correct delivery of data streams Internet Protocol (IP): Internet Protocol (IP) moves a packet of data from one node to another Web services: Concepts, Architectures and Applications - Chapter 2 4

  5. And the Internet? And Java? � Programming abstractions are a key part of middleware but not the only one: � a programming abstraction without good supporting infrastructure (i.e., a good implementation and support system underneath) does not help � Programming abstractions, in fact, appear in many cases in reaction to changes in the underlying hardware or the nature of the systems being developed � Java is a programming language that abstracts the underlying hardware: programmers see only the Java Virtual Machine regardless of what computer they use � code portability (not the same as code mobility) � the first step towards standardizing middleware abstractions (since now the can be based on a virtual platform everybody agrees upon) � The Internet is a different type of network that requires one more specialization of existing abstractions: � The Simple Object Access Protocol (SOAP) of Web services is RPC wrapped in XML and mapped to HTML for easy transport through the Internet Web services: Concepts, Architectures and Applications - Chapter 2 5

  6. Middleware as infrastructure DCE client process server process development environment client server IDL code code IDL sources language specific language specific call interface call interface client stub server stub IDL compiler RPC API RPC API interface RPC run time RPC run time headers service library service library RPC security cell distributed thread protocols service service file service service DCE runtime environment Web services: Concepts, Architectures and Applications - Chapter 2 6

  7. Infrastructure � As the programming abstractions reach higher and higher levels, the underlying infrastructure implementing the abstractions must grow accordingly � Additional functionality is almost always implemented through additional software layers � The additional software layers increase the size and complexity of the infrastructure necessary to use the new abstractions � The infrastructure is also intended to support additional functionality that makes development, maintenance, and monitoring easier and less costly � RPC => transactional RPC => logging, recovery, advanced transaction models, language primitives for transactional demarcation, transactional file system, etc. � The infrastructure is also there to take care of all the non-functional properties typically ignored by data models, programming models, and programming languages: performance, availability, recovery, instrumentation, maintenance, resource management, etc. Web services: Concepts, Architectures and Applications - Chapter 2 7

  8. Understanding middleware To understand middleware, one needs to understand its dual role as programming abstraction and as infrastructure PROGRAMMING ABSTRACTION INFRASTRUCTURE � Intended to hide low level details of � Intended to provide a comprehensive hardware, networks, and distribution platform for developing and running complex distributed systems � Trend is towards increasingly more powerful primitives that, without � Trend is towards service oriented changing the basic concept of RPC, have architectures at a global scale and additional properties or allow more standardization of interfaces flexibility in the use of the concept � Another important trend is towards � Evolution and appearance to the single vendor software stacks to programmer is dictated by the trends in minimize complexity and streamline programming languages (RPC and C, interaction CORBA and C++, RMI and Java, Web � Evolution is towards integration of services and SOAP-XML) platforms and flexibility in the configuration (plus autonomic behavior) Web services: Concepts, Architectures and Applications - Chapter 2 8

  9. Basic middleware: RPC � One cannot expect the programmer CLIENT Client process to implement a complete call to remote procedure infrastructure for every distributed application. Instead, one can use an RPC system (our first example of CLIENT stub procedure low level middleware) Bind � What does an RPC system do? Marshalling Communication Send � Hides distribution behind module procedure calls � Provides an interface definition language (IDL) to describe the Communication services SERVER stub procedure module � Generates all the additional code Unmarshalling necessary to make a procedure Return call remote and to deal with all Dispatcher the communication aspects (select � Provides a binder in case it has a stub) SERVER distributed name and directory remote procedure Server process service system Web services: Concepts, Architectures and Applications - Chapter 2 9

  10. What can go wrong here? INVENTORY CONTROL CLIENT � RPC is a point to point protocol in Lookup_product the sense that it supports the Check_inventory interaction between two entities (the IF supplies_low client and the server) THEN Place_order � When there are more entities Update_inventory interacting with each other (a client ... with two servers, a client with a server and the server with a database), RPC treats the calls as Server 2 (products) Server 3 (inventory) independent of each other. However, New_product Place_order the calls are not independent Lookup_product Cancel_order � Recovering from partial system Delete_product Update_inventory failures is very complex. For Update_product Check_inventory instance, the order was placed but the inventory was not updated, or payment was made but the order DBMS DBMS was not recorded … Inventory Products and order � Avoiding these problems using plain database database RPC systems is very cumbersome Web services: Concepts, Architectures and Applications - Chapter 2 10

  11. Transactional RPC � � The solution to this limitation is to make Simplifying things quite a bit, one can RPC calls transactional, that is, instead say that, historically, TP-Monitors are of providing plain RPC, the system RPC based systems with transactional should provide TRPC support. We have already seen an example of this: Encina � What is TRPC? � same concept as RPC plus … � additional language constructs and Distributed Applications run time support (additional services) to bundle several RPC calls into an atomic unit Encina Monitor � usually, it also includes an interface to databases for making end-to-end transactions using the XA standard Structured Peer to Reliable (implementing 2 Phase Commit) File Peer Queuing � and anything else the vendor may Service Comm Service find useful (transactional callbacks, high level locking, etc.) Encina Toolkit Encina OSF DCE Web services: Concepts, Architectures and Applications - Chapter 2 11

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend