Skip to main content

Classes of Middleware

By<br/> C Narendra
General Middleware
It includes communication stacks, distributed directories, authentication services, network time, remote procedure calls and queuing services. It also includes distributed file and print services.

Service-specific middleware
  • Database-specific middleware
  • OLTP- (On Line Transaction Processing) middleware
  • Groupware-specific middleware
  • Object-specific middleware
  • Internet-specific middleware
  • System management-specific middleware
Client/Server Building Blocks
Building blocks are
  1. Client
  2. Middleware
  3. Server
Different types of arrangement of building blocks are
  1. Client/server for tiny shops and nomadic tribes. This building block implementation that runs the client, the middleware software, and most of the business services on the same machine.
  2. Client/server for small shops and departments. A classic Ethernet client/single-server building block implementation. It is used in small shops, departments, and branch offices.
  3. Client/server for intergalactic enterprises. It is a multi-server building-block implementation of client/server. The servers are heterogeneous with different types of services.
  4. Client/server for a post-scarcity world. It transforms every machine to both client and server.
REMOTE PROCEDURE CALL
What Is RPC
RPC is a powerful technique for constructing distributed, client-server based applications. It is based on extending the notion of conventional or local procedure calling, so that the called procedure need not exist in the same address space as the calling procedure.

The two processes may be on the same system, or they may be on different systems with a network connecting them. By using RPC, programmers of distributed applications avoid the details of the interface with the network.

The transport independence of RPC isolates the application from the physical and logical elements of the data communications mechanism and allows the application to use a variety of transports.

RPC spans the Transport layer and the Application layer in the Open Systems Interconnection (OSI) model of network communication. RPC makes it easier to develop an application that includes multiple programs distributed in a network.

How RPC Works?
An RPC is analogous to a function call. Like a function call, when an RPC is made, the calling arguments are passed to the remote procedure and the caller waits for a response to be returned from the remote procedure.

Figure shows the flow of activity that takes place during an RPC call between two networked systems. The client makes a procedure call that sends a request to the server and waits. The thread is blocked from processing until either a reply is received, or it times out. When the request arrives, the server calls a dispatch routine that performs the requested service, and sends the reply to the client. After the RPC call is completed, the client program continues. RPC specifically supports network applications.

A remote procedure is uniquely identified by the triple: (program number, version number, procedure number) the program number identifies a group of related remote procedures, each of which has a unique procedure number.

A program may consist of one or more versions. Each version consists of a collection of procedures which are available to be called remotely. Version numbers enable multiple versions of an RPC protocol to be available simultaneously. Each version contains a number of procedures that can be called remotely. Each procedure has a procedure number.

Messaging
RPC is an easy and popular paradigm for implementing the client-server model of distributed computing. An RPC is initiated by the client sending a request message to a known remote server in order to execute a specified procedure using supplied parameters.

A response is returned to the client where the application continues along with its process. There are many variations and subtleties in various implementations, resulting in a variety of different (incompatible) RPC protocols.

The key concept to understand is the blocking of the client, or waiting time, while the server application responds with the required information. It is a communication requiring a specific identity or address of the server and specific knowledge of the server's application - including known parameters necessary for invoking the procedure and of the output to be returned.

Fig. Remote Procedure Calling Mechanism

Peer To Peer:
A peer-to-peer (or P2P) computer network is a network that relies primarily on the computing power and bandwidth of the participants in the network rather than concentrating it in a relatively low number of servers. P2P networks are typically used for connecting nodes via largely adhoc connections. Such networks are useful for many purposes.

Sharing content files containing audio, video, data or anything in digital format is very common, and real-time data, such as telephony traffic, is also passed using P2P technology.

A pure peer-to-peer network does not have the notion of clients or servers, but only equal peer nodes that simultaneously function as both "clients" and "servers" to the other nodes on the network. This model of network arrangement differs from the client-server model where communication is usually to and from a central server.

A typical example for a non peer-to-peer file transfer is an FTP server where the client and server programs are quite distinct, the clients initiate the download/uploads and the servers react to and satisfy these requests. Peer-to-peer networks are generally simpler, but they usually do not offer same performance during heavy loads.

Peer-to-peer is a communication model, in which each party has the same capabilities and either party can initiate a communication session. Other models with which it might be contrasted include the client/server model and the master/slave model.

On the Internet, peer-to-peer (referred to as P2P) is a type of transient Internet network that allows a group of computer users with the same networking program to connect with each other and directly access files from one another hard drives.

Napster and Gnutella are examples of this kind of peer-to-peer software. Major producers of content including record companies have shown their concern about what they consider illegal sharing of copyrighted content by suing some P2P users.

Meanwhile, corporations are looking at the advantages of using P2P as a way for employees to share files without the expense involved in maintaining a centralized server and as a way for businesses to exchange information with each other directly.

The earliest peer-to-peer network in widespread use were the Usenet news servers, which communicated with one another as peers propagating Usenet news articles over the entire Usenet network, which in particular in the earlier days of Usenet also used UUCP to extend even beyond the Internet. However, these news servers also acted as client-server when the individual users accessed the local news server to read and post articles.

Some networks and channels, such as Napster, OpenNAP, or IRC use a client-server structure for some tasks (e.g., searching) and a peer-to-peer structure for others. Networks such as Gnutella or Freenet use a peer-to-peer structure for all purposes and are sometimes referred to as true peer-to-peer networks. Although Gnutella is greatly facilitated by directory servers that inform peers of the network addresses of other peers.

Peer-to-peer Architecture
Peer-to-peer architecture is a type of network in which each workstation has equivalent capabilities and responsibilities. This differs from client/server architectures where some computers are dedicated to serving the others.

Peer-to-peer networks are generally simpler but they usually do not offer the same performance under heavy loads. The P2P network itself relies on computing power at the ends of a connection rather than from within the network itself. The concept of peer to peer is increasingly evolving to an expanded usage as the relational dynamic active in distributed networks, i.e. not just computer to computer, but human to human.

P2P is often mistakenly used as a term to describe one user linking with another user to transfer information and files through the use of a common P2P client to download MP3s, videos, images, games and other software. This, however, is only one type of P2P networking. Generally, P2P networks are used for sharing files, but a P2P network can also mean Grid Computing or instant messaging.

Users can choose how many member connections to seek at one time and determine which files they wish to share or password protect.

Types of P2P Networks
Peer-to-peer networks come in three flavors. The category classification is based on the network and application.

(I)Collaborative Computing
Also referred to as distributed computing, it combines the idle or unused CPU processing power and/or free disk space of many computers in the network. Collaborative computing is most popular with science and bio-tech organizations where intense computer processing is required.

Examples of distributed computing can be found at GRID.ORG where United Devices is hosting virtual screening for cancer research on the Grid MP platform. This project has evolved into the largest computational chemistry project in history. United Devices has harnessed the power of more than 2,000,000 PCs around the world to generate more than 100 teraflops of power. Most of the distributed computing networks are created by users volunteering their unused computing resources to contribute to public interest research projects.

(II)Instant Messaging
One very common form of P2P networking is Instant Messaging (IM) where software applications, such as MSN Messenger or AOL Instant Messenger.For example, allow users to chat via text messages in real-time, while most vendors offer a free version of their IM software others have begun to focus on enterprise versions of IM software as business and corporations have moved towards implementing IM as a standard communications tool for business.

(III)Affinity Communities
Affinity communities is the group of P2P networks that is based around file-sharing and became widely known and talked about due to the public legal issues surrounding the direct file sharing group, Napster. Affinity Communities are based on users collaborating and searching other user's computers for information and files.

Operation of peer-to-peer networks
One possible classification of peer-to-peer networks is according to their degree of centralization:

Pure peer-to-peer:
1* Peers act as equals, merging the roles of clients and server
1* There is no central server managing the network
1* There is no central router

Hybrid peer-to-peer:
1* Has a central server that keeps information on peers and responds to requests for that information.
1* Peers are responsible for hosting available resources (as the central server does not have them), for letting the central server know what resources they want to share, and for making its shareable resources available to peers that request it.
1* Route terminals are used addresses, which are referenced by a set of indices to obtain an absolute address.

Some examples of "pure" peer-to-peer application layer networks designed for file sharing are Gnutella and Freenet.

Unstructured and structured P2P networks
The P2P overlay network consists of all the participating peers as network nodes. There are links between any two nodes that know each other: i.e. if a participating peer knows the location of another peer in the P2P network, then there is a directed edge from the former node to the latter in the overlay network. Based on how the nodes in the overlay network are linked to each other, we can classify the P2P networks as unstructured or structured.

An unstructured P2P network is formed when the overlay links are established arbitrarily. Such networks can be easily constructed as a new peer that wants to join the network can copy existing links of another node and then form its own links over time.

In an unstructured P2P network, if a peer wants to find a desired piece of data in the network, the query has to be flooded through the network in order to find as many peers as possible that share the data. The main disadvantage with such networks is that the queries may not always be resolved. Flooding also causes a high amount of signaling traffic in the network and hence such networks typically have a very poor search efficiency. Most of the popular P2P networks such as Napster, Gnutella and KaZaA are unstructured.

Structured P2P networks overcome the limitations of unstructured networks by maintaining a Distributed Hash Table (DHT) and by allowing each peer to be responsible for a specific part of the content in the network. These networks use hash functions and assign values to every content and every peer in the network and then follow a global protocol in determining which peer is responsible for which content. This way, whenever a peer wants to search for some data, it uses the global protocol to determine the peer(s) responsible for the data and then directs the search towards the responsible peer(s).

Some well-known structured P2P networks are:
2* Chord
3* Pastry
4* Tapestry
5* CAN.
6* Tulip

How Peer-to-peer File-sharing Clients Work
Once you have downloaded and installed a P2P client, if in case you are connected to the Internet you can launch the utility and you can get logged into a central indexing server. This central server indexes all users who are currently online connected to the server. This server does not host any files for downloading.

The P2P client will contain an area where you can search for a specific file. The utility queries the index server to find other connected users with the file you are looking for. When a match is found the central server will tell you where to find the requested file. You can then choose a result from the search query and your utility, then attempt to establish a connection with the computer hosting the file you have requested. If a successful connection is made, you will begin downloading the file. Once the file download is complete the connection will be broken.

A second model of P2P clients works in the same way but without a central indexing server. In this scenario the P2P software simply seeks out other Internet users using the same program and informs them of your presence online, building a large network of computers as more users install and use the software.

P2P Security Concerns
One major concern of using P2P architecture in the workplace is network security. Security concerns stem from the architecture itself. Today we find most blocking and routing handles by a specific server within network, but the P2P architecture has no single fixed server responsible for routing and requests. The first step in securing your P2P network is to adopt a strict usage policy within the workplace. In securing your network against attacks and viruses, there are two main strategies where focus is on controlling the network access or the focus is put on controlling the files.

A protocol-based approach is where system administrators use a software or hardware solution to watch for and block intrusive network traffic being received through the P2P clients. A second method of protection is a software solution which would provide file surveillance to actively search for files based on their type, their name, their signature or even their content.

P2P at Work
P2P is not only popular with home users but many small business have come to rely on this cost-effective solution for sharing files with co-workers and clients. P2P promotes the ease of working together when you're not physically located in the same office. In just seconds updated files and data can be shared with peers and confidential files can be blocked for security.

Additionally, companies can also block access to Internet music and video files to assist in maintaining a work-oriented P2P network. Not only does this keep the company free and clear from legal issues regarding music downloading and sharing but it also keeps the corporate bandwidth usage down.

Advantages of peer-to-peer networks
An important goal in peer-to-peer networks is that all clients provide resources, including bandwidth, storage space, and computing power. Thus, as nodes arrive and demand on the system increases, the total capacity of the system also increases. This is not true of a client-server architecture with a fixed set of servers, in which adding more clients could mean slower data transfer for all users.

The distributed nature of peer-to-peer networks also increases robustness in case of failures by replicating data over multiple peers, and in pure P2P systems by enabling peers to find the data without relying on a centralized index server. In the latter case,
Published date : 03 Mar 2015 06:01PM

Photo Stories