Sunteți pe pagina 1din 6

26.

MIDDLEWARE
26.1 INTRODUCTION
26.1.1 DEFINITION

Middleware software is any system software that is not the OS kernel, device drivers
or application software. In an embedded system middleware is system software that
typically sits on either the device drivers or on top of the OS and can sometimes be

incorporated within the OS itself.


It is a layer between the operating system and the application.
Hides the operating systems details from the application developer (CORBA, EJB,

DCOM).
Middleware systems are comprised of abstractions and services.
Specifically, middleware is an abstraction layer generally used on embedded devices
with two or more Applications in order to provide flexibility, security, portability,
connectivity, intercommunication and/or interoperability mechanisms between
applications.
26.1.2 HOW IT WORKS?

Written in some neutral Interface


Definition Language (IDL)
Server

Interface

Fig 26.1 High level overview of Middleware

26.2 SERVICES OF MIDDLEWARE

There are seven different types of services or elements offered by the middleware
layer. More complex embedded systems usually have more than middleware element,
since it is unusual to find one technology that supports all specified application
requirements. In this case, the individual middleware elements are typically selected
based upon their interoperability with each other, so as to avoid later problems in
integration. In some cases integrated middleware packages of compatible middleware
elements are available commercially, off-the-shelf, for use in embedded systems such
as Sun embedded Java solutions, Microsofts .NET Compact Framework, and
CORBA from the Object Management Group(OMG), to name a few. Many
embedded OS vendors also provide integrated middleware packages that run out-ofthe-box with their respective OS and hardware platforms.
26.2.1 DATA MANAGEMENT SERVICES

One example of a middleware supporting these features are CI-Link from Cornut
Informatique in France. CI-Link is a middleware that connects MS-Windows and
Macintosh applications to SQL databases under UNIX. It comes with a high-level
built-in development language which lets you centralise tasks on the server. CI-Link
is compatible with the several relational DBMSs like Oracle, Informix, Ingres and

Progress.
Another database middleware candidate is Accessworks from Oracle Corporation,
in co-operation with Digital. Accessworks provides a desktop API via ODBC, SQL
services, and read/write access to a wide area of databases, etc. Accessworks is
available for the most common client desktops such as MS-DOS, MS-Windows,
OS/2, Macintosh, Open VMS, and UNIX systems.
26.2.2 COMMUNICATION SERVICES

Middleware supporting the communication services can be divided into two different
groups: RPC and messaging systems. RPCs provide facilities for synchronous

procedure calls on remote systems as if they were local.


The most famous RPC toolset is DCE (Distributed Computing Environment) from

OSF, but also available from most UNIX hardware vendors.


Messaging middleware enables distributed applications to send and receive messages
asynchronously using a set of APIs. One example of such a middleware API is
Communications Integrator from Covia Technologies.
26.2.2.1 REMOTE PROCEDURE CALL

One of the most basic form of middleware provides support for transparently

transform procedure calls into remote procedure calls.


With the shift from procedural to object oriented programming, RPCs become have

RMIs (Remote Method Invocations).


RPC/RMI are the most basic service of modern object Request Broker platforms.

Fig 26.2 Remote Procedure Call


26.2.3 OBJECT MANAGEMENT SERVICES

Tools supporting object management services use Object Request Brokers (ORBs)
to provide transparent communications between objects sited on different locations in

a network.
OMGs CORBA is an example of this technology. IONAs ORBIX is the most

famous implementation of CORBA.


In addition to provide communication between objects, CORBA middleware also
provide communication with the WWW, RDBMs and ODBMs.
26.2.3.1 CORBA

A middleware platform that supports a standardized OO architecture for software


applications
- Common Object Request Broker Architecture.
- Open standard - developed by the Object Management
Group.
- CORBA is a component of OMGs Object Management

Architecture.
CORBA supports distributed object computing.
CORBA uses a broker.
- An intermediatory handling requests in a system.
- facilitates communication between clients and server objects.
- separates a components interface from its implementation.

26.3 CORBA ARCHITECTURE

26.2.4 DISTRIBUTION SERVICES


The distribution services can be divided into three categories: location services,
security services, and time services. Tools supporting location services provide a

directory and naming service.


The directory service allows a client to access a remote file, a remote table, or a
remote process without having to know where that object is physically located in the
network.
26.2.5 APPLICATION CO-OPERATION SERVICES

Tools supporting application co-operation services are providing support for a large
number of concurrent users that access transactions programs and services (i.e.
databases, security, workflows), local and distributed load balancing to optimise
performance, and efficiently synchronizing data updates to multiple databases during

a single transaction using standard protocols.


Tuxedo from Novell is an example of a TP monitor providing these features plus
several others. The advantages by using TP monitors are their ability to manage
several thousands of users, concurrent database accesses, and large volumes of data.
26.2.6 PRESENTATION SERVICES

Tools supporting presentation services provide features for mapping GUIs and

transparent printing.
These services are often included in other tools. But there exists dedicated tools for
mapping character based UIs into GUIs.

X Windows is an example of a toolset providing presentation services.

26.3 ADVANTAGES OF MIDDLEWARE

Protocol-independent communication.
Client-server and peer-to-peer data transfer.
Streamlines business processes and helps raise organizational efficiency.

26.4 DISADVANTAGES OF MIDDLEWARE

Performance Overhead.
Loss of Control.
Large and Heavy.

26.5 CONCLUSION

Middleware technologies are very important to succeed with an incremental


migration of legacy systems into client/server systems, but that it is hard to find the
correct tools and people to accomplish the work.

26.7 APPLICATION LAYER SOFTWARE


Programs that help users to solve particular computing problems.
The final type of software in an embedded system is the application software.
Application software sits on top of the system software layer, and is
dependent on, managed, and run by the system software.
It is the software within the application layer that inherently defines what
type of device an embedded system is, because the functionality of an application
represents at the highest level the purpose of that embedded system and does most of
the interaction with users or administrators of that device, if any exists.

Fig 26.4 Application Layer and Embedded Systems model

In general different types of application processing softwares are being installed in


the systems along with the system software packages made by different vendors
according to different category. Some of them are

Proprietary Software
Designed to solve a unique and specific problem.
In-House developed or contract.
Off-The-Shelf Software
An existing software program that can be used without considerable changes

expected.
Customized Package
Blend of off-the-shelf software and internal/contract software development.
Application service provider.
Object Linking and Embedding (OLE).
Dynamic Data Exchange (DDE).
Workgroup application software.

S-ar putea să vă placă și