Going Mobile: Mobile Agents Drive Home the Next Generation of Middleware?
By giving “wheels” to conventional middleware, mobile agents have created a new class of intelligent, self-directed agents able to remotely execute processors at the data source and feed information to users. Even better, they manage to do it while reducing network overhead.
Oddly enough, conventional middleware and the American auto of the ’70s and ’80s share a common problem. In both cases, poor engineering and inattention to component fit and systems integration produced vehicles that looked better on paper than they performed in practice.
The haste with which each new capability has been added to middleware has created a sometimes ill-fitting pastiche of components. Those components, because they’ve been assembled in an ad hoc fashion, often fail to operate with the smooth efficiency found in a well-designed, highly integrated application. As a result, such middleware fails to produce the intended IT functionality that moves the enterprise forward.
Worse, these "solutions" are also missing a feature essential to the growing army of disconnected professionals. Disconnected users are mobile users and desktop users who are not actually connected to a network. The feature that is missing is a way to keep them all in touch with vital business information – no matter where workers are, what information they need and more importantly, no matter whether they are logged on or not. The next generation of middleware, mobile agents, will do precisely that.
By giving "wheels" to conventional middleware agents, mobile agents create a new class of autonomous information intermediary – a cybersecretary, of sorts. These intelligent, self-directed agents move themselves as needed to execute processes remotely at the data source, automatically feeding information to users. Even better, they manage to do it while reducing network overhead.
This capability has become especially important in the era of data warehouses and data mining. Clearly, if there are mountains of data to mine, all in remote locations, bringing it back to a home base for analysis can clog networks and delay results. It is far easier and more efficient to have mobile agents mine the data at its source. That capability is a stark contrast to the conventional agents in use today.
Traditional, stationary agents reside at remote databases, scouring them for information. They then download relevant data to a warehouse repository for processing. Aside from the time it takes to sift through data at a single source, data mining may also be a task that requires the consolidation of data from a wide variety of sources, where it may be represented in a variety of forms and languages. Given the limitations of these conventional agents to handle that diversity, the time and complexity involved in sorting through and combining this data presents obvious challenges.
An intelligent mobile agent, on the other hand, should know how to deal with whatever data it finds at the source. In addition to being able to actively search and find what it’s looking for, a mobile agent will also be able to work with the data it finds in that data’s native language and format in order to extract the right answers. Moreover, groups of these agents can work collaboratively, comparing data at one or more information sources, thereby improving the quality of analysis, as well as its speed.
Beyond being highly intelligent, the mobile agents will also be highly independent. Aside from their ability to reprogram their own itineraries, they will be able to work on data at the source asynchronously – without the ongoing blizzard of network communications between itself and the "mother ship" that characterizes remote conventional agents operating in synchronous mode. That fact provides an ancillary, and not insignificant, benefit in dramatically reducing network overhead by eliminating communications traffic that can put severe strains on network resources.
This new class of agent will provide the mobile intelligence that will ultimately transport industry more expeditiously down the road to the much-anticipated Businessware ideal.
Mobile agent architecture provides a new, improved middleware that still supports conventional middleware functions. But by adding a higher level of systems intelligence, integration and performance, mobile agents revolutionize the middleware category. They make it work as never before, helping users get more out of their legacy systems, and providing the foundation for the integrated application environment envisioned by the Businessware concept.
From Good Stock, A Better Variety
A natural outgrowth and corrective to what preceded it, mobile agent technology now in use honors the past while improving upon it. A look at its ancestry demonstrates why.
In the beginning, there was Message Queuing. Adequate for data messaging, it provides an important load balancing function using point-to-point communications. Its basic reliability is highly desirable. The need for users to generate a query for each response needed in return, however, produces higher network traffic levels and slows data access and exchange.
Distributed Transaction technology created multipoint communications that generate even more network overhead. Neither transaction, nor Message Queuing, can encapsulate legacy processes.
Object-Oriented Distributed Process-ing parcels out the processing function to object-agents using the CORBA model: These agents, though, are limited to a pre-defined processing function that is only "live" during the time it is activated by a connected user. It is both incapable of independently changing that function when new situations arise, or of migrating to new data sources to find necessary information.
More recently, Data Access middleware has made its debut in order to link disparate systems and access them in a common way using SQL or OLE to generate the appropriate interface. The problem: There’s only one uniform way to access information for each system source; a separate system-specific layer of code has to be added at the bottom of the "universal" interface in order to access the data at a given site.
In the absence of a true standards setting body for object-based agents, middleware companies so far have only been able to conduct ad hoc efforts to standardize data access. Until a universal standard emerges, developers may have to grapple in isolation with complex API issues in order to bridge the islands of automation that Businessware hopes to link through its integrated application processing goal.
Mobile agent technology can be deployed to support interfaces to existing middleware technologies, such as message queuing, by means of encapsulation. It can also remedy the shortcomings of today’s middleware in a simple, consistent and comprehensive fashion.
The Automatic Bridge
One key to developing mobile agent technology is to use a universally accepted programming language, such as JAVA, to create mobile agents that solve potential interface issues.
While much has been written on JAVA’s "drag" on system performance by JAVA skeptics, those observations sometimes lag reality. In the case of mobile agents using this programming language, they can be designed to reduce the effect of drag. In addition, their performance is improved with today’s higher processor speeds to make these agents and JAVA much more practical tools.
JAVA drag can be reduced significantly with the introduction of increasingly fast processors that now operate at speeds of up to 400 MHz and higher. More importantly, greater efficiency can be achieved through a more judicious use of operating system resources by JAVA (i.e., JAVA isn’t frequently calling the operating system). In contrast, Windows and NT consume a tremendous amount of CPU activity because they are constantly accessing the disk. This more efficient use of resources by JAVA, in fact, allows mobile agents to reduce drag caused by a byte code interpreter by 20 percent.
Along with resolving the basic interface barrier through the use of JAVA, the addition of mobility to the processing capability of this smarter class of agents opens enormous possibilities. These new abilities further compensate for the shortcomings in conventional middleware products that have already been mentioned.
Mobile agents’ ability to process and transmit information at the data source, for example, eliminates half the delay from network-clogging call and response that characterizes message queuing and distributed transaction technologies.
Furthermore, the ability of mobile agents to reconfigure themselves, produce clones and move to new locations to perform ongoing or new functions demonstrates a level of intelligence and utility lacking so far in traditional object technology.
By running in a JVM and communicating with the database system, the mobile agent resembles an application server, but it can instead reside on the database system itself. Most users, though, prefer to have it on something other than a server platform.
JAVA and the JAVA Virtual Machine provide the closest attempts yet at an industry standard interface to build encapsulated, Web-based legacy processes and other tasks that are both operating system neutral and OS-resource independent.
This is all well and good if one is operating with JAVA in a multi-platform environment. But sometimes agents will have to run outside JAVA in order to interface with legacy systems. This means that users will need to be on the lookout for mobile agents that offer a dependable service bridge allowing them to talk in native language to legacy systems such as SAP and Oracle and execute customized services there.
With the option to work in any conventional middleware mode, plus operating in full automatic mobile mode, users are assured that agents will find, forward, execute and store information for later transmission, even during system/network failures or with users in disconnected mode. This is an operational benefit that remains unduplicated in conventional middleware.
RAD, Security/Encryption and More
On highways, speed kills. In application development, the lack of speed can have a similar effect on programmer and business efficiency. That’s why the ideal mobile agent technology will offer rapid application development features. These capabilities should include having key security and other functions automatically incorporated as programmers construct mobile agents. The savings in time will be significant because programmers will no longer be required to program, for example, the APIs that are needed for today’s message-oriented middleware. Access to protected data and other security features will not only be integrated automatically, they will also work transparently.
Security access and control capabilities will increasingly become a non-negotiable demand, too, in mobile agent technology. Companies striving to create applications that span enterprises will depend more and more on computing that uses mobile agents to cross corporate boundaries and be used by business partners to exchange data.
A supplier to a group of distributors, to cite one scenario, might want to make its system available to its distributors in order for them to access and share billing, inventory, order entry and other information. Naturally, the distributors in question should only be able to access information that pertains to them and not get into competitor data. Mobile agents’ anticipated authorization and authentication functions provide a way to permit distributor agents to travel to other systems and access only that information needed by the owner of a duly authorized agent.
Complementing access controls, encryption capabilities will also be a necessity to ensure the highest level of protection against agents that have been modified to circumvent security restrictions. Encrypted digital signatures assigned to user agents would be decrypted at their destination to authenticate the identity of the user and detect signs of tampering.
There is, of course, a cost for security in the cyber world as there is in the "real" world. That cost involves the greater processor overhead required for encryption/decryption, administrative management and password management. Though it exacts a real price in system resources, in context it is a small price to pay for securing a company’s most important asset: its business data.
The drain on system resources, however, is reduced to some degree by mobile agent design delivering a smaller footprint that can run on thin clients. This will be especially important in deploying agents successfully in handheld devices, as well as in embedded systems that will eventually be found in factories, vending machines, public telephones, home appliances and applications yet to be imagined.
When Are Mobile Agents Right?
A thorough inspection of a company’s resources and needs should be examined prior to adding a middleware/mobile agent technology initiative. The convenience these solutions provide is evident in the speed and range of functions that can be incorporated into each mobile agent once an IT department’s specifications have been presented. The essential development component is to build a significant mobile agent processing capability using generic and proprietary rapid development tools.
Mobile agents can be packaged with one or more services to meet performance requirements. Those services can include communications, multiple levels of security, automatic failover, two-phase commit transmission protocol, recovery services and much more. Mobile agents, and their ability to operate with little or no human intervention, will be central in finding data, integrating applications and generating strategic business information for competitive advantage. That capability will take the concept of Businessware from the largely theoretical but clearly desirable, to the demonstrably deliverable.
About the Author:
Reuven Koblick is Deputy Lab Director at Mitsubishi Electric ITA and also acts as Engineering Manager for lab projects. His chief responsibility is the development of Mitsubishi Electric’s electronic messaging product, Concordia. He can be reached at (781) 466-8300 or at firstname.lastname@example.org.