www.1000projects.com
www.fullinterview.com
www.chetanasprojects.com
MIDDLEWARE TECHNOLOGY
ABSTRACT:
Requirements for faster using middleware. This
development cycles, decreased dependency poses hard
development efforts , greater challenges, including latency
software reuse, and better end - hiding, masking partial failures,
to-end control over system information assurance and
resources are motivating the security, legacy integration,
creation and use of middleware dynamic service partitioning and
systems and middleware based load balancing, and end-to-end
architectures. Middleware is quality of service specification
systems software that resides and enforcement. To address
between the applications and these challenges, researchers
the underlying operating and practitioners need to
systems, network protocol stacks, discover and validate
and hardware. Its primary role is techniques, patterns and
to functionally bridge the gap optimizations for middleware
between application programs frameworks, multi-level
and the lower-level hardware and distributed resource
software infrastructure in management, and adaptive and
order to coordinate how reflective middleware
application components are architectures.
connected and how they
interoperate. Furthermore,
middleware enables and
simplifies the integration
of components developed by
multiple technology suppliers.
In this sense middleware systems
are sets of services and
abstractions that facilitate
the development and
deployment of distributed
applications in heterogeneous,
distributed, computing
environments.
Next-generation distributed
applications and systems will
increasingly be developed
www.1000projects.com
www.fullinterview.com
www.chetanasprojects.com
INDEX
1. INTRODUCTION
1.1 INTER-PROCESS COMMUNICATION: A PREAMBLE
2. BRIEF HISTORY OF MIDDLEWARE
3. WHAT IS INVOLVED IN MIDDLEWARE?
4. MIDDLEWARE BASICS
5. PRIMARY APPLICATIONS
5.1 MIDDLEWARE AND COMPUTER TELEPHONY
5.2 JAVA MIDDLEWARE-EVOLVING USE OF EAI TECHNOLOGY
6. BUSINESS CONSIDERATIONS IN SELECTING MIDDLEWARE
7. CONTROLS & SECURITY CONSIDERATIONS
8. CONCLUSIONS
8.1 POTENTIAL CHALLENGES OF MIDDLEWARE
8.2 THE FUTURE OF JAVA MIDDLEWARE
1. Introduction
stack. Further, middleware is a continually
Middleware is a software that functions as a
evolving term.
conversion or translation layer. It is also a
Middleware, or EAI, products enable
consolidator and integrator. Custom-
information to be shared in a seamless real-
programmed middleware solutions have
time fashion across multiple functional
been developed for decades to enable one
departments, geographies and applications.
application to communicate with another
Benefits include better customer service,
that either runs on a different platform or
accurate planning and forecasting, and
comes from a different vendor or both.
reduced manual re-entry and associated data
Middleware, which is quickly becoming
inaccuracies.
synonymous with enterprise applications
Middleware is essential to migrating
integration (EAI), is software that is
mainframe applications to client/server
invisible to the user. It takes two or more
applications, or to Java or internet-protocol
different applications and makes them work
based applications, and to providing for
seamlessly together. This is accomplished
communication across heterogeneous
by placing middleware between layers of
platforms. This technology began to evolve
software to make the layers below and on
during the 1990s to provide for
the sides work with each other .On that
interoperability in support of the move to
broad definition, middleware could be
client/server architectures.
almost any software in a layered software
1.1 INTER-PROCESS 2. Brief History of Middleware
COMMUNICATION: A PREAMBLE
Till 1980 s most of computing was based on
Middleware is also called as Inter-process central host computers equipped
communication. It makes the co-operating with powerful processors and memory.
components of distributed system to interact Users interact with the host through the
through well-defined request/response terminals that captures keystrokes and sends
architecture thus masking the issues related the information to host. A major bottleneck
to heterogeneity, concurrency and for this architecture was that the processing
distribution of components. The role of power was limited to that of central host
middleware is to make application system, over dependence on the vendor for
development easier by: application software, lack of support for
a) providing common programming GUI and access to multiple databases. The
abstractions. mainframes prevalent at that time were
b) masking the heterogeneity and the based on this architecture. With advent of
distribution of underlying hardware PC s the files were downloaded from the
and operating system. shared location,
c) hiding low-level programming processed and uploaded back to file server.
details. This had major drawback as it generated too
Thus middleware allows software engineers much of network traffic. However with
to focus on the actual application emergence of client /server architecture, the
requirements.In recent years standardization computing power or process management
solutions such as OMG.s CORBA(Common was distributed between the client and
Object Request Broker Architecture),SUN.s server.
JMS(Java Messaging For example client could query database
Service),MICROSOFT.s SOAP(Simple server using relational database management
Object Access Protocol) with their system (DBMS) through standard query
implementations have been used in the language (SQL). The results of query are
development of large spectrum of sent to the client, which then manipulates
applications. and processes the data. This two-tier
client/server architecture has limitation as icons, and other GUI elements. In short, an
the number of users grows beyond certain API is a “hook” into software. An API is a
limit, due to the fact that server has to set of standard software interrupts, calls, and
maintain a dialog of connection even when data formats that application programs use
client is idle. Moreover any changes in to initiate contact with network services,
application or parameter would entail mainframe communications programs,
changes at all clients like a change in VAT telephone equipment or program-to-program
rate would need update on all the users communications. For example, applications
workstation. To overcome these limitations use APIs to call services that transport data
middle-tier was added between the user across a network. Standardization of APIs
system interface client environment and at various layers of a communications
database management server environment. protocol stack provides a uniform way to
The middle tier or middleware is now one write applications. This technology is a way
of the emerging technologies in client server to achieve the total cross-platform
paradigm. It provides for connectivity consistency that is a goal of open systems.
across heterogenous platform and for more
generalization of Application Programming FIG: Application Programming Interface
Interface (API) than operating system or (API)
network services.
Application Programming Interface
(API): In order to fully understand
middleware, one must first understand the
concepts surrounding Application
Programming Interfaces (APIs). The API,
3. What is involved in Middleware?
by definition, is a software program that is
used to request and carry out lower-level
Middleware/EAI is very involved and
services performed by the computer’s
complex, and incorporates every level of an
operation system or by a telephone system’s
enterprise system – its architecture,
operating system (Figure:API). In a
hardware, software and processes.
Windows environment, APIs also assist
Middleware involves integration at the
applications in managing windows, menus,
following levels:
Business Process Integration integration development may also be
(BPI): When integrating business necessary, particularly when
processes, a corporation must define, integrating a legacy application with
enable and manage the processes for a newly implemented application.
the exchange of enterprise Data Integration: In order for both
information among diverse business Application Integration and Business
systems. This allows organizations Process Integration to succeed, the
to streamline operations, reduce integration of data and database
costs and improve responsiveness to systems must be tackled. Prior to
customer demands. Elements here integration, data must be identified
include process management, (where it is located), cataloged, and a
process modeling, and workflow, metadata model must be built (a
which involve the combination of master guide for various data stores).
tasks, procedures, organizations, Once these three steps are finished,
required input and output data can then be shared/distributed
information, and tools needed for across database systems.
each step in a business process. Standards of Integration: In order
Application Integration: At this to achieve full Data Integration,
level of integration, the goal is to standard formats for the data must be
bring data or a function from one selected. Standards of Integration are
application together with that of those that promote the sharing and
another application that together distribution of information and
provide near real-time integration. business data – standards that are at
Application Integration is used for, the core of Enterprise Application
to name a few, B2B integration, Integration/Middleware. These
implementing customer relationship include COM+/DCOM, CORBA,
management (CRM) systems that are EDI, JavaRMI, and XML.
integrated with a company's backend Platform Integration: To complete
applications, web integration, and the system integration, the
building Web sites that leverage underlying architecture, software and
multiple business systems. Custom hardware, and the separate needs of
the heterogeneous network must be Be independent from network
integrated. Platform Integration services.
deals with the processes and tools Be reliable and available.
that are required to allow these Scale up in capacity without losing
systems to communicate, both functionality.
optimally and securely, so data can Middleware accomplishes the above tasks
be passed through different via one of the following forms:
applications without difficulty. For 1.Transaction Processing (TP) monitor
example, figuring out a way for an technology : The most basic type of three
NT machine to pass information tier architecture is used in Online
reliably to a UNIX machine is a Transaction Processing Technologies
large task for integrating an entire (OLTP) applications using middle layer
corporate system. consisting of Transaction Processing (TP)
monitor technology. This is a type of
message queuing, transaction scheduling
and prioritization service where the client
4. Middleware Basics
connects to the middle tier viz. TP monitor
As seen above in (Figure :API), middleware
which in turn connects to the back end
works in concert with APIs. Further, it
database. The transaction is accepted by the
exists between the application and the
monitor, which queues it and then takes
operating system and network services on a
responsibility for managing thus relieving
system node in the network. Middleware
the client. It has ability to connect to
services are sets of distributed software that
different DBMS in single transactions
provide a more functional set of APIs than
irrespective of whether it is flat file or non-
does the operating system and network
relational DBMS. This architecture is
services. This increased functionality allows
considerably more scalable than a two tier.
an application to:
Locate transparently across the
network, providing interaction with
another application or service.
routine. For example network printer or
shared folder can be located across the
network as locally attached resource
FIG: Transaction Processing (TP)
monitor technology
2. Message Servers: This implementation,
also known as Message-oriented middleware
(MOM), provides program-to-program data
FIG: Remote Procedure Call (RPCs):
exchange with intelligent messages sent
asynchronously. It is similar to email
exchanged between the programs. It requires 4. Object Request Broker Architecture:
recipient programs to interpret these This refers to specification and
messages and take appropriate action. MOM implementation framework for
increases flexibility of architecture by interoperability and reusability of distributed
enabling applications to exchange messages objects. These initiatives are driven by two
with each other without need to bother about rival camps - Microsoft with COM/DCOM
the underlying operating system or the technology and Object Management Group
processors. MOM is most appropriate for (OMG) with Common Object Request
event-driven applications. Broker Architecture (CORBA). These
defines application program interface (API)
through which various components interact
independent of language or platform.
FIG: Message Servers
3. Remote Procedure Call (RPCs): enables
the logic of application to be distributed
FIG: Object Request Broker Architecture
across the network. Program logic on remote
systems can be executed by simply calling a
5. Application Servers: There is a shared Application Programming Interface (TSAPI)
host on which business logic, computation in NetWare and the Telephone Application
and data retrieval engine resides. The GUI Programming Interface (TAPI) in Windows.
component resides on the front-end client Further, the middleware sits below the user
making this architecture highly scalable, interface and thus, invisible to the user.
secure and lends itself to changes easily. For TSAPI was described by AT&T, its
example in banking scenario in which inventor, as “standards-based API for call
interest rates change frequently. This would control, call/device monitoring and query,
entail changing a parameter only on shared call routing, device/system maintenance
host without change at teller end or at capabilities, and basic directory services.”
database end. TAPI is also called the Microsoft/Intel
Telephony API. As stated above, the API is
FIG: a software program that is used to request
Applic and carry out lower-level services performed
ation by the computer’s operation system or by a
Servers telephone system’s operating system. In the
The fig above shows clients accessing the case of the TAPI, it is the telephone
web server which optimized to serve web system’s operating system. The TAPI set of
pages while application server based on the functions allows windows applications (i.e.
inputs from clients and business decision Windows 2000, NT) to program telephone-
logic residing on it, queries the database. line-based devices such as single and multi-
The results are pushed on the web server for line phones (both digital and analog) and
serving to user browser. modems and fax machines in a device-
independent manner. TAPI essentially does
5. PRIMARY APPLICATIONS for telephony devices what the Windows
printer system did to printers – makes them
5.1 Middleware and Computer Telephony
easy to install and allows many application
Middleware in computer telephony tends to programs to work with many telephony
be software that sits right above that part of devices, irrespective of the device
the operating system that deals with manufacturer.
telephony. This is the Telephone Server
TAPI is an evolutionary API providing products like Active Software's
convergence of both traditional PSTN ActiveWorks and Push Technologies'
telephony and IP Telephony. IP Telephony SpiritWAVE, and hybrid products that build
is an emerging set of technologies which on a DBMS legacy and add server-based
enables voice, data, and video collaboration Java object execution features. Further,
over existing LANs, WANs, and the even among application servers there is
Internet. TAPI enables IP Telephony on the quite a spectrum, including those that are
Microsoft Windows operating system primarily servlet servers as well as those that
platform by providing simple and generic are ORB-based or OODB-based. Drawing a
methods for making connections between line between all these products proves
two or more machines, and accessing any increasingly difficult. The unifying feature,
media streams involved in the connection. however, is that they all attempt to solve the
multitier application deployment problem by
In addition, TAPI also supports standards using Java and Internet technologies.
based H.323 conferencing (these standards The business case to use Java in middleware
define real-time multimedia is compelling. Among the advantages
communications for packet-based networks offered by Java middleware are the
– now called IP Telephony) and IP multicast following:
conferencing. Further, TAPI utilizes the
Windows operating system’s Active The ability of the internet to
Directory service to simplify deployment economically interconnect offices
within an organization, and includes quality and organizations.
of service (QoS) support to improve The need for organizations to
conference quality and network cooperate by sharing data and
manageability. business processes.
The desire to consolidate generic
5.2 Java Middleware – Evolving Use of
services and the management of
EAI Technology
these services.
The desire to provide centralized
Java middleware encompasses application
application management, including
servers like BEA WebLogic, messaging
startup, shutdown, maintenance,
recovery, load balancing, and Since the goal of middleware is to centralize
monitoring. software infrastructure and its deployment,
The desire to use open services and Java middleware is the next logical step in
protocols. the evolution of middleware building upon
The desire to redeploy business logic the client/server roots. Organizations are
at will and unconstrained by now commonly attempting integration
infrastructure; this necessitates using across departments, between organizations,
open APIs and protocols, which are and literally across the world. The key to
widely supported across most building such integration is to leverage the
infrastructure products. existing technology of the internet. The
The need to support cooperating internet has enticed businesses with its
mixed-architecture applications. ability to serve as a global network that lets
The desire to move network and departments and partners interconnect
service infrastructure decisions out efficiently and quickly.
of the application space, so that
system managers can make Java provides a lingo that allows for easy
infrastructure decisions without interconnection of data and applications
being hampered by applications that across organizational boundaries. In a
depend on proprietary protocols or distributed global environment that allows
features. an organization no control over what
The desire to reduce the diversity technology choices partners make, smart
and level of programmer staff skills companies choose open and platform-neutral
needed and minimize the need for standards. Companies cannot anticipate who
advanced tool-building expertise will become their customers, partners, or
within projects. subsidiaries in the future, so it is not always
The desire to leverage object- possible to plan for a common infrastructure
oriented expertise by extending it with partners. In this uncertain situation, the
into the server realm. Hence, newer best decision is increasingly thought to be
object-oriented server products and the use of the most universal and adaptable
object-to-relational bridges. technologies possible.
Java allows for the reduction of the number strategic business factors to be considered.
of programming languages and platforms Normally in an enterprise there are islands
that a staff must understand. This is because of application developed over period of
Java is now deployed in contexts as diverse time. They reside on heterogeneous platform
as internet browsers, stored procedures across various functional units of an
within databases, business objects within organization. As businesses become
middleware products, and client-side competitive, there is crucial need by
applications. business owners to have information on state
of business at any moment. Moreover the
6. Business Considerations in need for better customer service demands
selecting Middleware:
integration of these applications. This is
While middleware increases the level of where middleware has to play an important
abstraction, developers need to be prudent role in Enterprise Integration.
enough in their choice of services in
deciding which components are to placed on
which tier. Though the middleware
7. Controls & Security
implementations are suppose to be platform
Considerations:
independent, many of these are vendor
specific like COM/DCOM from Microsoft.
The scope of middleware deployment is
Thus they need to be compiled for a specific
broad and as such should be tackled from
platform or need an interpreter. The
business perspective rather than from only
availability of development tools like C++,
technical one. When middleware
Visual Basic, Java are key for customized
deployment should focus on these issues:
development middleware services. The
The selection of middleware is a
components in general and those that
crucial decision. While legacy
involve business logic should be easily
systems are web enabled leveraging
replaceable. Another consideration is that a
the power of middleware, certain
good middleware should not be visible to
controls existent may not be relevant
client. It should seamlessly connect the
or has to be reengineered. Data,
client to back end. While these are technical
which hitherto was accessible only to
and aesthetic considerations, there are also
select few in an enterprise, there is a Auditing: Middleware deployments
risk of it being available to malicious irrespective of type of
hackers. implementation should be auditable
Authentication and Authorization: In through logs and reporting tools.
message oriented middleware This includes unauthorized access,
(MOM), as programs communicate enhancing the privilege attempts and
with other programs, messages need application warning messages.
to be authenticated, encrypted and Besides middleware code-review
authorized by MOM managers. As should be done through assistance of
various applications publish their expert application programmers.
messages, due care has to be taken as 8. Conclusions:
which recipient applications can Middleware technology is firmly entrenched
subscribe to these messages. in distributed computing horizon. It is
Similarly in application servers enabler for enterprise application integration
communication with front end in today s state of business at the moment
webserver and back-end database paradigm. While functional units across the
server need to protected from enterprise may operate independently,
unauthorized access and network middleware technology can be leveraged to
eavesdropping provide integrated solution for better
customer service and enhanced management
information services.
8.1 Potential Challenges of Middleware
Middleware product implementations are
unique to the vendor. This results in a
FIG: Authentication and Authorization
dependence on the vendor for maintenance
Similarly in TP monitors, transaction
support and future enhancements. Reliance
context type in database need to be secured.
on vendors, in this manner, could have a
In this, the context or permissions to select,
negative effect on a system's flexibility and
insert, update, delete and execute needs to
maintainability. However, when evaluated
be controlled.
against the cost of developing a unique
middleware solution, the system developer
and maintainer may view the potential
negative effect as acceptable. Also, as Java
and internet protocol middleware
technologies evolve, many of these
potentially detrimental issues will dissolve.
8.2 The Future of Java Middleware
Java technology is still somewhat immature.
On the other hand, we may now be in an era
when products never truly reach maturity
because the underlying technologies on
which they're based change so rapidly. In
fact, there are significant documented
problems with virtually every middleware
product, including those supposedly mature
products that have been on the market for
years. The point is, by the time a vendor
manages to fix problems, new features have
been added. The cycle for adding new
features is now much shorter than it has ever
been. The result is that products do not have
enough time to become stable before they
include the next major feature set. This
problem may be something that continues
into the future. Further, the burden for
determining the strengths and weaknesses of
all chosen products will likely be a vital
component of any application design and
prototype cycle.