Monday, 1 October 2012

Middleware




Today, industries need to transform their client/server infrastructures into services-oriented setups to stay competitive. Focus of IT has shifted from a technology-centric approach to a flexibility-driven approach measured in time-to-delivery and ability to change.
Though it is universally accepted that service-oriented architectures implementations lead to quantifiable benefits, yet in practice, their adoption has been sluggish. The strategy to remedy this situation is via 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. In essence, Middleware is a computer software that interconnects software components or applications. This software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. Middleware is especially integral to modern information technology based on XML, Web services, and service-oriented architecture. 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.
  
How middleware evolved
Till 1980 s most of computing was based on central host computers equipped with powerful processors and memory. Users interact with the host through the terminals that captures keystrokes and sends the information to host. A major bottleneck for this architecture was that the processing power was limited to that of central host system, over dependence on the vendor for application software, lack of support for GUI and access to multiple databases. The mainframes prevalent at that time were based on this architecture. With advent of PC s the files were downloaded from the shared location, processed and uploaded back to file server. This had major drawback as it generated too much of network traffic. However with emergence of client /server architecture, the computing power or process management was distributed between the client and server.

For example client could query database server using relational database management system (DBMS) through standard query language (SQL). The results of query are sent to the client, which then manipulates and processes the data. This two-tier client/server architecture has limitation as the number of users grows beyond certain limit, due to the fact that server has to maintain a dialog of connection even when client is idle. Moreover any changes in application or parameter would entail changes at all clients like a change in VAT rate would need update on all the users’ workstation. To overcome these limitations middle-tier was added between the user system interface client environment and database management server environment. The middle tier or middleware is now one of the emerging technologies in client server paradigm. It provides for connectivity across heterogeneous platform and for more generalization of Application Programming Interface (API) than operating system or network services.

2.1. Application Programming Interface (API): In order to fully understand middleware, one must first understand the concepts surrounding Application Programming Interfaces (APIs). The API, by definition, is a software program that is used to request and carry out lower-level services performed by the computer’s operation system or by a telephone system’s operating system.

In a Windows environment, APIs also assist applications in managing windows, menus, icons, and other GUI elements. In short, an API is a “hook” into software. An API is a set of standard software interrupts, calls, and data formats that application programs use to initiate contact with network services, mainframe communications programs, telephone equipment or program-to-program communications. For example, applications use APIs to call services that transport data across a network. Standardization of APIs at various layers of a communications protocol stack provides a uniform way to write applications. This technology is a way to achieve the total cross-platform consistency that is a goal of open systems.



If you need full seminar report on any one of above topic, please mention the topic at below comment box