Skip to main content

Middleware Technologies

By<br/> C.Narendra
CLIENT/SERVER CONCEPTS
The Client Server Architecture
The Internet revolves around the client-server architecture. The computer runs software called the client and it interacts with software known as the server located at a remote computer.

The client is usually a browser such as Internet Explorer or Netscape Navigator. Browsers interact with the server using a set of instructions called protocols. These protocols help in the accurate transfer of data requests made through requests from a browser and responses from the server. There are many protocols available on the Internet. The World Wide Web, which is a part of the Internet, brings all these protocols under one roof. The protocols like HTTP, FTP, Telnet, email etc. through browser.
Engineering Study Material
A computer or device on a network that manages network resources.

Example:
  1. File server is a computer and storage device dedicated to storing files. Any user on the network can store files on the server.
  2. Print server is a computer that manages one or more printers.
  3. Network server is a computer that manages network traffic.
  4. Database server is a computer system that processes database queries.
A single computer can execute several programs at once. A server in this case could refer to the program that is managing resources rather than the entire computer.

A network architecture in which each computer or process on the network is either a client or a server. Servers are powerful computers or processes dedicated to managing

Disk drives means file servers, Printers means print servers, or Network traffic means network servers.
Engineering Study Material
Clients are PCs or workstations on which users run applications. Clients rely on servers for resources, such as files, devices, and even processing power.

Another type of network architecture is known as a peer-to-peer architecture because each node has equivalent responsibilities. Both client/server and peer-to-peer architectures are widely used, and each has unique advantages and disadvantages.

Advantages:
  1. In most cases, a client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network.
  2. So one of advantages of this model is greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change.
  3. This independence from change is also referred to as encapsulation.
  4. All the data is stored on the servers, which generally have better security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data.
  5. Since data storage is centralized, updates to that data are much easier to administrators than what would be possible under a P2P architecture.
  6. Under a P2P architecture, data updates may need to be distributed and applied to each "peer" in the network.
  7. Which is both time-consuming and error-prone, as there can be thousands or even millions of peers.
  8. Many advanced client-server technologies are already available which were designed to ensure security, user friendly interfaces, and ease of use.
  9. It works with multiple different clients of different specifications.
Disadvantages
  1. Networks traffic blocking is one of the problems related to the client-server model.
  2. As the number of simultaneous client requests to a given server increases, the server can become overloaded.
  3. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network.
  4. Comparing client-server model to the P2P model, if one server fail, clients’ requests cannot be served but in case of P2P networks, servers are usually distributed among many nodes. Even if one or more nodes fail, for example if a node failed to download a file the remaining nodes should still have the data needed to complete the download.
Two Tier Architecture
On a logical level the typical client/server architecture is best described as two tier, simply because it only consists of two parts working together. In other words: The client directly talks to the server.
Engineering Study Material
The division point between the client and the server within the application can vary depending on the capabilities of the tools used. At one extreme, the workstation is used only to perform the display portion of the presentation component, and the server performs most of the presentation logic and all of the business and data access logic.

This leads to a fat server and can be found e.g. in typical web-applications where the browser has to cope with HTML. At the other extreme, most of the application resides on the workstation, and the server only performs the actual data access services. This leads to a fat client. In net-technologies this is being realized by the use of Java-applets.
Engineering Study Material
The GUI development tools allow faster development and deployment of applications. By offloading much of the application processing to the desktop workstations, the server systems do not need to be as large. The hardware-independent database systems allow easy portability between systems, effectively breaking the hold of hardware lock-in.

The two-tiered model works effectively as long as simple applications are developed, exactly one relational database is accessed, and a small user base is supported. But as applications become more complex, in terms of business algorithms processed

Without the tight security controls provided by a centralized environment, each client application must enforce its own security process. Since the relational databases can be accessed from a number of different clients, each database must also enforce its own security process.

Therefore application users may need to repeatedly login to various systems in the course of running the application. Since each database provides its own proprietary network protocol, the client application has to maintain different sessions with each database being accessed.

Due to more complex client applications, the size of the application increases; the client hardware platform has to increase in terms of processing power and memory. In addition, as the number of users accessing the database increases, the server hardware platform requires higher capacity.

Two tier software architectures were developed in the 1980s from the file server software architecture design.

Advantages
  1. The advantage of the two-tier design is its simplicity.
  2. The Top Link database session that builds the two-tier architecture provides all the Top Link features in a single session type, thereby making the two-tier architecture simple to build and use.
Disadvantages
  1. The most important limitation of the two-tier architecture is that it is not scalable, because each client requires its own database session.
  2. Not suitable for dispersed, heterogeneous environments with rapidly changing business rules.
  3. Because the bulk of the application logic is on the client, there is the problem of client software version control and new version redistribution.
  4. Security can be complicated because a user may require separate passwords for each SQL server accessed.
The two tier architecture is intended to improve usability by supporting a forms-based, user-friendly interface. Finally this type of distributed architecture requires minimal operator intervention, and is frequently used in non-complex, non-time critical information processing systems.

Three Tier Architecture
Three-tier architecture introduces a server (or an "agent") between the client and the server. The role of the agent is manifold. It can provide
  • Translation services (as in adapting a legacy application on a mainframe to a client/server environment).
  • Metering services (as inacting as a transaction monitor to limit the number of simultaneous requests to a given server).
  • Intelligent agent services (as in mapping a request to a number of different servers, collating the results, and returning a single response to the client.
A three tier distributed client/server architecture includes a user system interface top tier where user services (such as session, text input, dialog, and display management) reside.
Engineering Study Material
The third tier provides database management functionality and is dedicated to data and file services that can be optimized without using any proprietary database management system languages. The data management component ensures that the data is consistent throughout the distributed environment through the use of features such as data locking, consistency, and replication. It should be noted that connectivity between tiers can be dynamically changed depending upon the user's request for data and services.

The middle tier provides process management services (such as process development, process enactment, process monitoring, and process resourcing) that are shared by multiple applications. The middle tier server (also referred to as the application server) improves performance, flexibility, maintainability, reusability, and scalability by centralizing process logic. Centralized process logic makes administration and change management easier by localizing system functionality so that changes must only be written once and placed on the middle tier server to be available throughout the systems.

File server
In telecommunication, the term file server has the following meanings:
  • A form of disk storage that hosts files within a network; file servers do not need to be high-end but must have enough disk space to incorporate a large amount of data. Many people mistake file servers for a high-end storage system, but in reality, file servers do not need to possess great power or super fast computer specifications.
  • A computer program, that allows different programs, running on other computers, to access the files of that computer
  • In common parlance, the term file server refers specifically to a computer on which a user can map or mount a drive or directory so that the directory appears to be on the machine at which the user is sitting. Additionally, on this type of file server, the user can read or write a file as though it were part of the file system of the user's computer.
Files and directories on the remote computer are usually accessed using a particular protocol, such as SMB, CIFS, NFS (Network file system), AppleTalk or their mutations.
  • Although files can be sent to and received from most other computers unless their primary function is access by the above means, they are generally not considered file servers as such.
Memory Requirements
File servers have historically been instrumental in pushing up the demand for RAM. The Novell NetWare file server [operating system], which dominated the market for file servers at the time of greatest growth in demand, read the entire FAT table into RAM on boot, enabling rapid access to files. Whilst this guaranteed maximum performance, it also required large quantities of memory.

This in turn drove demand for UPS devices (also known as the "Uninterruptible Power Supply" devices) as it became more and more apparent that power outages could cause loss of data. This has become less of an issue in recent years with faster disk access times. However, these, too, have in part been driven by file serving requirements.

File and Print
Traditionally, file and print services have been combined on the same computers due to similar computing requirements for both functions. Usually, such computers are distinct from application and database servers, which have different, usually more processor-intensive, requirements. However, as computing power increases and file serving requirements remain relatively constant, it is more common to see these functions combined on the same machine.

Security
File servers generally offer some form of system security to limit access to files to specific users or groups. In large organizations, this is a task usually delegated to what is known as directory services such as Novell's NDS or Microsoft's Active Directory.

These servers work within the hierarchical computing environment which treat users, directories, computers, applications and files as distinct but related entities on the network and grant access based on user or group credentials. In many cases, the directory service spans many file servers, potentially hundreds for large organizations. In the past, and in smaller organizations, authentication can take place directly to the server itself.

Database Server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server model. The term may also refer to a computer dedicated to running such a program. Database management systems frequently provide database server functionality, and some DBMS's (e.g., MySQL) rely exclusively on the client-server model for database access. Database Master Servers are central and main locations of data while Database Slave servers are synchronized backups of the master acting as proxies

Server Types
There are several kinds of database servers which include:
  • Flat file database servers
  • Relational database servers
  • Object database servers
  • Object relational database servers
The most popular today are Relational Database Management Systems (RDBMS). However, object database servers may someday overtake the relational database servers.

Object Server
An object server is a process that provides an address space, contact points and runtime services to the local representatives that it hosts. The object server also manages a local representative's access to local resources such as local disks and networking resources. Besides simply hosting LRs, a Globe object server also has a remotely accessible interface that allows other local representatives, other Globe object servers, or administrators to request services from it. These services include the creation and destruction of Globed objects and their replicas.

Up until the mid-90s, the basis for network-capable applications had been mostly provided by client/server architectures. Over the past few years these have been increasingly replaced by three-layer architectures (three-tier) consisting of a presentation logic for displaying and acceptance of entries on the client (layer 1), a business logic (layer 2) and data storage, usually in the form of a relational database (layer 3).

Object servers are used to make the business logic available to different kinds of clients in a distributed environment. Such clients can be a native GUI, a web client, another server, etc. Spell caster is an object server that serves objects to clients in a platform and programming language neutral way. Thus it is ideal for occupying the middle layer of a modern three-tier software architecture.

Web Server
A computer, including software package that provides a specific kind of service to client software running on other computers. More specifically, a server is a computer that manages and shares web based applications accessible anytime from any computer connected to the Internet.

Transaction Servers:
With a transaction server, the client invokes remote procedures that reside on the server with an SQL database engine. These remote procedures on the server execute a group of SQL statements. The network exchange consists of a single request/reply message (as apposed to the database server’s approach of one request/reply message for each SQL statement in a transaction). The SQL statement either all succeeds or fail as a unit. These grouped SQL statement are called transaction.

With a transaction server, you create the client/server application by writing the code for both the client and server component. The client component usually includes a graphical user Interface (GUI). The server component usually consists of SQL transaction against a database. These applications are called online transaction processing, or OLTP. They tend to be mission-critical applications that require a 1-3 second response time 100% of the time. OLTP applications also require tight controls over the security and integrity of the database. Two forms of OLTP will be discussed in this book. TP lite, based on the stored procedures provided by database vendors, and TP Heavy, based on the TP monitors provided by OLTP vendors.

Groupware Servers:
Groupware address the management of semi-structured information such as text, image, mail, bulletin boards, and the flow of work. These client/server systems place people in direct contact with other people. Lotus notes is the leading examples of such a system, although a number of other applications—including document management, imaging, multiparty applications, and workflow—are addressing some of the same needs. Specialized groupware software can be built on top of a vendor’s canned set of client/server APIs. In most cases, applications are created using a scripting language and form-based interfaces provided by the vendors. The communication middleware between the client and the server is vendor-specific. Eventually, the internet will become the middleware of choice of groupware.

Object servers:
With an object server the client/server application is written as a set of communicating objects. Client objects communicate with server objects using an Object Request Broker (ORB). The client invokes a method on a remote object. The ORB locates an instance of that object server class, invokes the requested method, and returns the results to the client object. Server objects must provide support for concurrency and sharing. The ORB brings it all together. After years of incubation, some “Real Life” commercial ORBs are now in production. Examples of commercial ORBs that comply with the Object Management Group’s CORBA standard include Digital’s Object Broker, IBM’s SOM 3.0, Sun’s NEO, HP’s ORB plus, Expersoft’s Powerbroker, Iona’s Orbix, and Post Modern’s Black Window. However, CORBA is not the only game in town. As we go to press, Microsoft is getting ready to ship its own ORB, which it calls Distributed COM (DCOM) or network OLE.

Web Servers:
The World Wide Web is the first truly intergalactic client/server application. This new model of client/server consists of thin, portable, “Universal” clients that talk of super fat servers. In its simplest incarnation, a web server returns documents when clients ask for them by name. The client and servers communicate using an RPC-like protocol called HTTP. This protocol defines a simple set of commands; parameters are passed as strings, with no provision for typed data. The Web is being extended to provide more interactive forms of client/server computing. In addition, the Web and distributed objects are starting to come together. Java is the first manifestation of this new Object Web.

FAT Client
A Fat Client model places more functions on the client side. For example, database and file servers. In both the file server and database server models, the clients know how the data is organised and stored in the server side. It is used to decision support and personal software.

FAT Server
The Fat server model places more functions on the server side. For example, web server, transaction server and groupware server. It tries to minimize network interchanges by create more abstract level of service Fat server, used of mission-critical applications.
Engineering Study Material

MIDDLEWARE
In the computer industry, middleware is a general term for any programming that serves to "glue together" or mediate between two separate and often already existing programs. A common application of middleware is to allow programs written for access to a particular database to access other databases.

Typically, middleware programs provide messaging services so that different applications can communicate. The systematic tying together of disparate applications, often through the use of middleware, is known as enterprise application integration.

Software that connects two otherwise separate applications. For example, there are a number of middleware products that link a database system to a Web server. This allows users to request data from the database using forms displayed on a Web browser, and it enables the Web server to return dynamic Web pages based on the user's requests and profile.

The term middleware is used to describe separate products that serve as the glue between two applications. It is, therefore, distinct from import and export features that may be built into one of the applications. Middleware is sometimes called plumbing because it connects two sides of an application and passes data between them. Common middleware categories include:
  • ESBs
  • TP monitors
  • DCE environments
  • RPC systems
  • Object Request Brokers (ORBs)
  • Database access systems
  • Message Passing
Middleware, on the other hand, is defined as the software layer that lies between the operating system and the applications on each site of the system in a distributed computing system (Object Web consortium). More generally, the term is used to describe Web servers, application servers, content management systems, and similar tools that support the application development and delivery process. Middleware is the enabling technology of Enterprise Application Integration (EAI) and consequently integral to service-oriented computing.

Current middleware in general is challenged to support adaptively and dependability while maintaining scalability and mastering complexity. Of course dependability and adaptively can not simply be added to a system like a plug-in module. Rather, middleware needs architectural principles and sound methodologies, as well as appropriate container services, service coordination and composition standards, and possibly consideration of software aspects to help application developers to integrate their services with a configurable distributed middleware instead of reinventing the wheel each time.

While the immediate need of middleware support for Service-Oriented Architectures (SOA) is evident, current approaches and solutions mostly fall short by primarily providing support for the EAI aspect of SOC only and do not sufficiently address composition support, service management and monitoring.

Moreover, non-functional properties (like dependability and security) and Quality of Service (QoS) need to be addressed not only by interfacing and communication standards, but also in terms of integrated middleware support. But what makes these issues so different in a SOA setting? Why - for instance - is traditional middleware support for transaction processing different to transaction processing in SOA, reflecting different types of atomicity needs? One answer lies in the loose coupling, high dynamicity and flexibility during run-time, enabled by a significant increase of meta-data, like explicit requirement- and constraint-negotiation during run-time.

Middleware is connectivity software that consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. Middleware is essential to migrating mainframe applications to client/server applications and to providing for communication across heterogeneous platforms.

This technology has evolved during the 1990s to provide for interoperability in support of the move to client/server architectures (see Client/Server Software Architectures). The most widely-publicized middleware initiatives are the Open Software Foundation's Distributed Computing Environment (DCE) , Object Management Group's Common Object Request Broker Architecture (CORBA), and Microsoft's COM/DCOM (see Component Object Model (COM), DCOM, and Related Capabilities) [Eckerson 95].

As outlined in Figure, middleware services are sets of distributed software that exist between the application and the operating system and network services on a system node in the network.
Engineering Study Material
Figure: Use of Middleware

Middleware services provide a more functional set of Application Programming Interfaces (API) than the operating system and network services to allow an application to
  • locate transparently across the network, providing interaction with another application or service
  • be independent from network services
  • be reliable and available
  • scale up in capacity without losing function
Middleware can take on the following different forms:
  • Transaction processing (TP) monitors, which provide tools and an environment for developing and deploying distributed applications.
  • Remote Procedure Call (RPCs), which enable the logic of an application to be distributed across the network. Program logic on remote systems can be executed as simply as calling a local routine.
  • Message-Oriented Middleware (MOM), which provides program-to-program data exchange, enabling the creation of distributed applications. MOM is analogous to email in the sense it is asynchronous and requires the recipients of messages to interpret their meaning and to take appropriate action.
  • Object Request Brokers (ORBs), which enable the objects that comprise an application to be distributed and shared across heterogeneous networks. there is no single point of failure in the system.
Published date : 04 Mar 2015 12:04PM

Photo Stories