What Is Middleware?
What Is Middleware?
Operating System
Operating System
Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
Custom-programmed middleware solutions have been developed for decades to enable one application to communicate with another that either runs on a different platform or comes from a different vendor or both.
Today, there is a diverse group of products that offer packaged middleware solutions.
AP 04/03
Middleware API
Middleware API
Middleware
Middleware
Operating System
(Proceses, Communication, Memory Management)
Operating System
(Proceses, Communication, Memory Management)
Network
AP 04/03
Technical Detail
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.
AP 04/03
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
AP 04/03
Database Server
First product to be called middleware. Sitting between the requesting client program and the databases, it ensures that all databases are updated properly.
AP 04/03
TP Monitors Characteristics
Tend to do far more than coordinate and monitor transactions across multiple data resources.
Enhance the performance, reliability, and scalability of server-side systems. TP monitors establish a framework for creating server-side applications. A TP monitor can reliably and efficiently manage the resources needed by applications that conform to the TP monitors rules.
CICS (Customer Information Control System) and IMS/TM (a message-based transaction manager) are the transaction processing workhorses of the mainframe environment. On UNIX systems, BEAs TUXEDO, BEAs TOP END, and IBMs Encina are the most widely used TP monitors.
AP 04/03
Messaging Middleware
Common interface and transport between applications.
Stores the data in a message queue if the target machine is down or overloaded May contain business logic that routes messages to the appropriate destinations and reformats the data as well. Similar to an e-mail messaging system, except that it is used to send data between applications.
AP 04/03
In conjunction with the Component Object Model (COM), Microsoft introduced its own messaging system, Microsoft Message Queue Server (MSMQ).
MSMQ and MQSeries offer much the same functionality.
AP 04/03
Distributed Processing
Distributed object systems such as CORBA, DCOM and EJB enable processes to be run anywhere in the network. They differ from messaging middleware in that they cause processes (components/objects) to be executed in a synchronous fashion rather than sending data asynchronously.
AP 04/03
Object Request Brokers (ORBs) enable the objects that comprise an object-oriented application to be distributed and shared across heterogeneous networks.
Extending the procedural programming model of RPC, Distributed object systems such as CORBA, DCOM, .NET, and EJB enable processes to be run anywhere in the network.
AP 04/03
Database Middleware
Database Middleware provides a common interface between a query and multiple, distributed databases. Using either a hub and spoke architecture or a distributed architecture it enables data to be consolidated from a variety of disparate data sources
AP 04/03
Common Interfaces
Universal Computing
Browser and Java negate the requirement for a single operating system and hardware environment.
AP 04/03
Usage Considerations
The main purpose of middleware services is to help solve many application connectivity and interoperability problems. However, middleware services are not a panacea:
There is a gap between principles and practice. Many popular middleware services use proprietary implementations (making applications dependent on a single vendor's product). The sheer number of middleware services is a barrier to using them. To keep their computing environment manageably simple, developers have to select a small number of services that meet their needs for functionality and platform coverage. While middleware services raise the level of abstraction of programming distributed applications, they still leave the application developer with hard design choices. For example, the developer must still decide what functionality to put on the client and server sides of a distributed application.
AP 04/03
Component architectures focus primarily on component packaging and cross-language interoperability. Remoting architectures focus primarily on support for remote method invocation on distributed objects.
AP 04/03
Remoting Architectures
Open Software Foundations Computing Environment (DCE) (OSF) Distributed
which actually is a distributed processing environment based on the Remote Procedure Call (RPC) paradigm (purely procedural)
Object Management Groups (OMG) Common Object Request Broker Architecture (CORBA).
The notion of component packaging and deployment has only recently been added to CORBA 3.0.
AP 04/03
Component Architectures
Microsofts Component Object Model (COM)
addresses packaging and deployment of binary component as well as crosslanguage interoperability
JavaBeans and Enterprise Java Beans (EJB) component models introduced by SUN Microsystems. Both, COM and EJB address remoting to some extend:
the COM model has been extended to Distributed COM (DCOM) using an extended version of DCE RPC as transport. EJB supports client/server communication based on Java Remote Method Invocation (RMI). RMI is special as it integrates closely with the Java language without requiring a special Interface Definition Language (IDL) to describe component interfaces accessible for remote invocations.
In an evolutionary sense, Microsofts .NET is the newest and most advanced component architecture available in the market today.
AP 04/03
AP 04/03
AP 04/03
ORB Interfaces
AP 04/03
Java-to-IDL Mapping
this mapping allows Java RMI objects to interoperate over the network like CORBA objects using CORBA object references.
XML/Value mapping
standardizes the representation of an XML document as a collection of native CORBA types.
Real-Time CORBA
extends the CORBA architecture with resource control mechanisms for realtime applications running on a real-time operating system in a controlled environment.
Fault-Tolerant CORBA
standardizes redundant software configurations and systems that give CORBA robust and reliable performance (when run on redundant hardware).
Minimum CORBA
defines a small-footprint CORBA configuration that is aimed at embedded and card-based systems.
AP 04/03
AP 04/03
COM Characteristics
COM is a very mature component architecture that has many strengths.
Thousands of third-party ActiveX controls (in-process COM components) are available in the market today. Microsoft and other vendors have built many tools that accelerate development of COM-based applications.
Advanced services such as Microsoft Transaction Server (MTS) and Microsoft Message Queuing Server (MSMQ) support development of enterprise multi-tier systems.
Microsoft has been using the name COM+ to identify the bundling of the COM runtime with those services.
AP 04/03
AP 04/03
.NET Characteristics
Distributed Computing:
.NET provides a remoting architecture that exploits open Internet standards, including the Hypertext Transfer Protocol (http), Extensible Markup Language (XML), and Simple Object Access Protocol (SOAP).
Componentization:
.NET extends the previous COM component model but provides a significantly simpler way to build and deploy components.
Enterprise services:
.NET supports the development of scalable enterprise applications without writing code to manage transactions, security, or pooling.
Maturity factors:
Although .NET is a relatively new framework, it builds upon the mature COM+ technology and services.
AP 04/03
AP 04/03
New Capabilities
Recent middleware frameworks, like the CORBA 3.0 Component Model (CCM), or the Microsoft .NET framework, allow the expression of non-functional component properties.
such as resource requirements, timing and security constraints, or faulttolerance assumptions on the component level using language constructs (like C# and .NET attributes) or component meta-data (like CCMs deployment descriptors).
Aspect-Oriented Programming (AOP) is a relatively new discipline that focuses on cross-cutting concerns
targeting many components of a system simultaneously and non-functional component properties.
AP 04/03