2.26k likes | 2.99k Views
Introduction to Middleware Technologies. Introduction. The integration of applications within and between business is made possible using middleware technology. . Learning Objectives. Need for Middleware Client/Server Building Blocks Generic Middleware Service-Specific Middleware
E N D
Introduction • The integration of applications within and between business is made possible using middleware technology.
Learning Objectives • Need for Middleware • Client/Server Building Blocks • Generic Middleware • Service-Specific Middleware • RPC Middleware • Message-oriented Middleware (MOM) • Java RMI
Middleware • Till 1980s most of computing was based on central host computers equipped with powerful processors and memory • Users interact with the host through the terminals that capture keystrokes and send the information to the host • Bottlenecks of this architecture are: • Processing power is limited to that of central host system. • Over dependence on the vendor for application software. • Lack of support for GUI and access to multiple dBs • Mainframes are an example of this architecture
Middleware • With the advent of PCs the files are downloaded from the shared location, processed and uploaded back to the file server. • The file server approach had a major drawback as it generated too much n/w traffic. • However, with the emergence of the client/server architecture the computing power for process management was distributed between file and server • For example, the client could query database server using relational database management systems through SQL • The results of the query are send to the client which then manipulates and processes the data.
Middleware • This 2 tier client/server architecture has a scalability limitation as the server is unable to contain the load when the number of users grows beyond a certain limit. • Moreover, any changes in applications or parameters would entail changes at all clients. • To overcome these limitations, middle tier was added between the user system interface client environment and dB management server environment • This middleware provides for connectivity across the heterogeneous platform. • A middleware is in some way analogous to a middleman who acts as a translator between a 2 people speaking different languages.
Middleware • Some of the design constraints of a good client/server system are as follows: • Facility to hide communication details • Language and platform independency • Enable processing on client or server or both • Middleware has emerged as a solution to satisfy these constraints. • Middleware is a distributed s/w that aids in transparent communication between client and server. • It runs on both the client and the server as shown in the following figure
Middleware Middleware Logical View Physical View Middleware Middleware
Middleware • In the client/server model, the client requests for a service to be provided by the server. • A proper s/w glue between client and server system is essential to support all interactions between them. • Middleware serves this purpose. • It plumbs 2 sides of an application and passes information between them. • It is a software that seamlessly integrates two disparate entities – the client and the server. • It includes all software needed to support interactions between the client and the server. • It starts with the client API that invokes the service, covers the transmission of request over the n/w and the resulting response
Middleware • Middleware thus manages the interaction between disparate applications across the heterogeneous computing platforms • Middleware aids in business process integration, application integration, data integration, standards integration and platform integration. • Middleware exists between the application and the OS and network services on a system node in the n/w • Middleware services are sets of distributed software that provide an extension to the functional APIs provided by the OS and n/w services
Middleware(advantages) • This increased functionality allows an application to: • Locate transparently across the n/w, provide interaction with another application or service. • Be independent from n/w services • Be reliable and available • Scale up in capacity w/o losing functionality • Be OS & PL transparent
Middleware-Based Operating System • The OS for distributed computing can be networked OS, distributed OS or middleware-based OS. • Distributed OS • A distributed OS performs the same function as a uni-proccessor OS, but it runs on multiple CPUs • The goal of distributed OS is to hide and manage hardware resources. • It is manages as a single system. • Distributed OS may be multi-processor based or multi-computer based. • Multiple computers are homogenous or heterogeneous is nature.
Middleware-Based Operating System • Distributed OS • Structure Application Application Application Distributed Operating System Services
Middleware-Based Operating System • Networked OS • Distributed OS try to realize full system transparency, whereas in networked OS multiple computers are connected in a network. • The systems can be heterogeneous in nature • The user explicitly maintains an account in each machine • As nodes are independent of each other, they are easily extensible.
Middleware-Based Operating System • Networked OS • Structure Application Application Application Network OS Network OS Network OS
Middleware-Based Operating System • Network OS • The basic difference between a network OS and a distributed OS is that the network OS does not attempt to provide a single image view for any of its services. • Its main goal is to offer local services to remote clients. • The following are the characteristics of networked OS. • The individual nodes are highly autonomous • All distribution of tasks is explicit to the user • It includes software for providing remote access services and file transfer • Data/ device sharing is provided using networks • The advantage of networked OS is its scalability and of distributed OS is its transparency and ease of use
Middleware-Based Operating System • Middleware-Based OS • Distributed OS does not have independent computers and network OS does not have a single coherent view. • Hence a middleware is added on top of network OS to combine the advantages of both distributed and network OS.
Middleware-Based Operating System • Networked OS • Structure Application Application Application Middleware Operating System Services Network OS Network OS Network OS
Middleware-Based Operating System Comparison of distributed, network and middleware-based OSs
Middleware-Based Operating System • Middleware-Based OS (ORBExpress) • Middleware further raises the level of programming of distributed applications, as developers need not worry about the platform or operating systems. • Middleware is classified broadly as general middleware and service specific middleware based in whether it is generic or specifically provides a particular service • Middleware services can be implemented in transaction-processing monitors, message servers, RPCs and Object Request Broker (ORB) or application servers.
Generic Middleware • It acts as a substrate for all client/server interactions. • It is analogous to a common translator who translated from Chinese, Spanish, French and Russian to English. • Such a middleware includes • the communication stacks for client/server communication, • distributed directories for location, • Authentication services for security, • RPCs for accessing remote functionalities & • Queuing services for asynchronous and loosely coupled communication. • Distributed file services and print services fall under this category. • Distributed Computing Environment is an example of generic middleware.
Distributed Computing Environment • In a heterogeneous distributed environment, a common set of distributed services should be available to the applications. • The Open Software Foundation’s DCE is a rich s/w technology that enables the development of distributed applications across heterogeneous systems, taking advantage of open, distributed computing. • DCE is a suite of integrated services available from a vendor neutral source that enables organizations to develop, use an maintain distributed applications across heterogeneous networks. • It is used in WWW, stock markets, telecom services
Distributed Computing Environment Applications Time Service CDS Security Service DFS Diskless Support Remote Procedure Call Thread Service Local Operating System & Transport Service
Distributed Computing Environment • The key services required for supporting distributed applications provided by DCE are • Remote Procedure Call (RPC) • Directory Service • Security Service • Time Service • Threading Service • Distributed File Service • IDL Compiler • Diskless Support
Distributed Computing Environment • Remote Procedure Call (RPC) • RPC between clients and servers facilitates efficient access of resources distributed across the network. • It provides portability and network independence. • At-most-once semantics over a connectionless protocol such as UDP is the default semantics of DCE RPC • The protocol is as follows: • Client sends request packet to server • Server sends response packet to client which acknowledges to the client the receipt of the request packet by the server • Client sends acknowledgement to server indication receipt of the response request
Distributed Computing Environment • Remote Procedure Call (RPC) • Like ONC RPC, DCE RPC solves the problem of different data representations on different systems by translating the local data representations into a common data representation called NDR (Network Data Representation). • This is done using stubs generated by the interface definition language (IDL) compiler using IDL of the objects.
Distributed Computing Environment • Directory Service • It allows clients to identify and locate servers by name. • The DCE directory service is a central repository for information about resources in the distributed system. • It provides a single naming model using X.500 • The information consists of the name of the resource and its associated attributes. • A DCE cell is a group of systems that share a namespace under a common administration. • The DCE directory service consists of 3 parts
Distributed Computing Environment • Directory Service • Cell Directory Service (CDS) • Manages a database of information about the resources in a group of machines called a DCE cell. • It is a high performance distributed service that provides a consistent location-independent method for naming and using resources inside a cell. • Can also be used for communication between cells. • Enables DCE clients to locate compatible servers.
Distributed Computing Environment • Directory Service • Cell Directory Service (CDS) • The directory services supports a hierarchical namespace structure similar to that found in common file systems • It consists of a root directory and a number of sub-directories. • Within each directory, there can reside zero or more leaf entries. • These entries contain structured information about the servers in the cell. • Each directory in the CDS namespace can hold 4 types of entries: • Directories, soft-links, clearinghouses & objects
Distributed Computing Environment • Directory Service • Global Directory Service (GDS) • Implements an international standard directory service and provides a global namespace that connects the local DCE cells into a universal hierarchy. • The GDS client and server are based on the X.500 standard
Distributed Computing Environment • Directory Service • Global Directory Agent (GDA) • The GDA is between the cell and the GDS. • It facilitates inter-operability between cells. • CDS needs to be able to contact at least on GDA to participate in the global naming environment. • GDA helps CDS access names outside a cell. • When CDS determines that a name is not in its own cell, it passes the name to a GDA, which searches the appropriate naming environment (DNS etc.) • The GDA then returns information that enables the original CDS server to contact the CDS server in whose cell the name resides
Distributed Computing Environment • Directory Service • Global Directory Agent (GDA) GDS GDA CDS
Distributed Computing Environment • Directory Service • A directory service programming interface • Both CDS and GDS are accesses using a single directory service API
Distributed Computing Environment • Security Service • It ensures access between clients & servers. • It guarantees authenticity, integrity and privacy in communications. • Its authentication service is based on Kerberos. • Kerberos is a trusted service that validates the identity of a user or service. • After a user is authenticated he must be authorized to use the system resources. • The authorization service provides a simple, consistent way to manage access control information.
Distributed Computing Environment • Time Service • Different components can obtain clocks from different computers. • This service facilitates precise, fault-tolerant synchronization of the system clocks throughout the n/w and reduces the load on the system administrator
Distributed Computing Environment • Threading Service • It provides multiple threads of execution capability • It includes operations to create and control multiple threads of execution in a single process and to synchronize the access to global data within an application • It thus facilitates multiple servers to access multiple clients simultaneously.
Distributed Computing Environment • Distributed File Service • It provides access to files across the n/w in a scalable, transparent, reliable, secure and efficient manner. • As it provides a client/server model, it is easy to use and efficient. • The benefits of the DFS are: • Capability to interoperate with Sun’s Network File System (NFS) • Improvement in performance due to caching of files • Support for small and large group of users • Secure RPC facilitates secure access to user files and directories
Distributed Computing Environment • IDL Compiler • It is a compiler for converting high level interface descriptions of the remote procedures into portable C-language source codes. • Diskless Service • It allows low-cost workstations to use disks on servers.
Service Specific Middleware • It is needed to accomplish a particular client/server type of service. • Some of the service-specific middleware are listed as follows: • Database Middleware: • It allows direct access to data structures and provides interaction directly with databases. • There are database gateways that provide a single system view of heterogeneous dBs. • ETLC packages come under this middleware category • Other examples are ODBC, ORACLE Glue, SQL etc.
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • OLTP Middleware: • Transaction processing monitors provide tools and an environment for developing and deploying distributed applications that have to manage transactions. • This is a type of message queuing, transaction scheduling and prioritization service where the client connects to the middle tier which in turn connects to the back-end dB • The transaction is accepted by the monitor which queues it and then takes responsibility for managing it, thus relieving the client. • It has the ability to connect to different DBMS in a single transaction irrespective of whether it is a flat file or non-relational DBMS. • Examples are:? ATMI, Transactional RPC
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • Communication Middleware • Sun RPC, ONC (Open N/W Connectivity) RPC • RPCs enable the logic of an application to be distributed across the n/w • The distributed program logic on remote systems can be executed like calling a local routine
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • MOM – Message Oriented Middleware • Provides program-to-program data exchange enabling the creation of distributed applications. • MOM in analogous to email in the sense it is asynchronous and requires the recipients of messages to interpret their meaning and to take appropriate action • It increases flexibility of architecture by enabling applications to exchange messages with each other without the need to bother about underlying OS etc. • It is most appropriate for event driven applications • Examples are PEERLOGIC and IBM’s MOM
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • Object-Specific Middleware • CORBA, Microsoft’s DCOM • These include ORBs which enable the objects that comprise an application to be distributed and shared across heterogeneous n/ws. • It facilitates reusability and interoperability of distributed objects
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • Workflow Management Middleware • Can track transactions from launch to landing • Primarily focuses on the management of activity flow in a client/server system
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • Portals • Front end integration through portals facilitates transactions between user’s desktops and back-end systems. • Portals integrate portlets which can work independently
Service Specific Middleware • continued • Some of the service-specific middleware are listed as follows: • Internet-Specific Middleware • It is a type of communication middleware • It includes tools for communication such as HTTP, S-HTTP and SSL.
Client Server Building Blocks • Clients • Thin Clients+ • Fat Clients+ • Runs the client side of the application • It runs on the OS that provides a GUI or an OOUI and that can access distributed services, wherever they may be. • The client also runs a component of the Distributed System Management (DSM) element.
Client Server Building Blocks • Servers • Runs the server side of the application • The server application typically runs on top of some shrink-wrapped server software package. • The five contending server platforms for creating the next generation of client/server applications are SQL database severs, TP Monitors, groupware servers, Object servers and the Web server. • The server side depends on the OS to interface with the middleware building block. • The server also runs DSM component • It may be a simple agent or a shared object database etc.