Bob DeAnna

Subscribe to Bob DeAnna: eMailAlertsEmail Alerts
Get Bob DeAnna: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Java EE Journal, OSGi, SOA & WOA Magazine

J2EE Journal: Article

Next-Generation Intelligent, Mobile, Widely Distributed Applications

Solving tomorrow's software development challenges today

We are on the cusp of the next giant step in software applications. It's a new frontier that is there for the bold of mind to embrace. This new caliber of applications will be hugely beneficial to mankind, the quality of our lives, and the safety and security of our nation. These applications will be pervasive and impact every aspect of our lives…how we work, learn, communicate, get medical care, travel, shop, and play.

Today's development environment demands next-generation tools that will empower corporations and organizations to build the next generation of intelligent, mobile, interoperable, killer applications. These applications will be intelligent, self-learning, widely distributed, and dynamic, and run on multiple wireless networks, as well as embedded or wireless (edge) devices while maintaining interoperability with many different enterprise systems.

Let's review the current environment in the commercial, government, and consumer arenas today, and we'll see why the stage is set for these next-generation applications and the software platform that they will require.

Today's Environment of Expectations
The demand on technology infrastructures, networks, and applications has reached a critical mass where we are more and more dependent on our application infrastructures to conduct our daily business activities. As the nature of work becomes increasingly distributed geographically and edge computing prospers, the bar for performance has been set exceedingly high. Evidence of this fact abounds:

DEVICES
Estimates have the number of handheld and embedded devices entering the market exceeding one billion per year. This includes PDAs, smart-phones, portable entertainment devices, and other embedded/wireless devices in our homes, automobiles, and workplaces.

DATA
The amount of information and data being passed over wireless and wired networks is exploding due to the enormous increase in "edge" devices. These devices have increasing storage capacities and produce and aggregate an ever-expanding amount of information. Professionals and consumers also want to be able to share this information often in a dynamic fashion, with peers and peer groups, not just on their desktop or through their enterprise database. Another obvious reason for this information explosion is the exponential growth of the Internet and the increasingly dynamic terabytes of information contained on it, streamed from it, and the volume of devices accessing it.

NETWORKS
Today's networks, particularly wireless networks, are unreliable and/or not powerful enough to adequately handle the loads that are on them now, and will be put on them in the near future. There are also many existing and emerging wireless protocol standards that are geared for particular uses and geographic areas, ranging from telco networks, wide area networks, local area networks and personal area networks.

APPLICATION SOFTWARE STACKS
Applications today are still predominantly client/server applications, with rigid business intelligence. They are too reliant on networks and/or too centralized. The vast majority of today's applications are also not adaptive or self-learning.

CORPORATE CONSOLIDATION
Corporate mergers and acquisitions have wreaked havoc on traditional information technology systems. The combined IT divisions must integrate their applications and software, but nothing is consistent. Systems are standardized on a variety of different enterprise software stacks, servers, and mobile devices. Some people call this "the hairball."

Next-Generation Applications
To move forward, the next generation of applications will be different. They will be developed on a platform that allows for decentralized, intelligent, mobile, high-performance, transaction-based applications. The platform will have to be seamlessly interoperable with the hardware and software technologies of today to pave the way for next-generation solutions for commercial, government, and consumer development.

These applications will provide quantum leaps in real-time intelligence capabilities and coordination among widely distributed groups, as well as offer greatly increased productivity and cost savings. In this paradigm, data will be gathered on edge devices, rapidly turned into actionable knowledge, and distributed efficiently to ad hoc, possibly dynamically assembled groups of interested participants, devices, and enterprise systems.

Mobile software components (agents) residing on these edge devices will continuously learn from the data they get and interpret. This can cause them to respond differently and possibly assemble and communicate with an ever-changing audience, forming a distributed knowledge-sharing network. But these killer applications will need a next-generation software platform that will have to meet a long list of requirements to operate seamlessly in the complex, widely distributed environment we find today.

Next-Generation Attributes
We believe that a software platform must meet certain requirements to provide the highway on which tomorrow's applications will operate. Specifically, the next-generation platform must:

1.  Increase Productivity and Extensibility via Seamless .NET, Java, and Legacy Interoperability
Next-generation applications must seamlessly operate in .NET, Java, and any combination thereof in a high-performance way. Creating remote mobile software components, or agents, in either language will leverage pre-existing code and increase programmer productivity. There is also a need for seamless integration with external systems and applications.

2.  Increase Network Survivability and Mobility
Next-generation applications have to be able to process data at the source to minimize network traffic and handle unreliable and/or limited network connections and adjust to hardware failures or CPU load. The software components or agents running on edge devices have to be able to reconfigure themselves dynamically to use a communication protocol that best matches the capabilities of their current network connection. They also have to be able to move to nearby nodes if device failure is imminent due to battery failure, disk failure, etc.

3.  Provide a Single Unified Platform for .NET and Java
Next-generation applications can't be limited to a single development environment and programming language. Furthermore, the exact same API would be provided to both .NET and Java developers. This would greatly increase programmer productivity and let developers from both "camps" work together easily and share software.

4.  Decentralized Messaging
Next-generation applications have to be able to communicate to groups of devices/systems without a centralized messaging server. They must support multiple levels of granularity for the intended audience of a given message. They must also support passing messages over standard centralized messaging servers for integration with enterprise and legacy systems. More specifically, there has to be seamless integration with Microsoft's Message Queue (MSMQ), Java's Message Server (JMS), Object Management Group (OMG)'s Data Description Service (DDS), and CORBA's Notification Service.

5.  Mobile SOA Architecture
Next-generation applications must provide a Service Oriented Architecture. SOA creates an environment where loosely coupled mobile agents can communicate with any Web Service client and vice versa. These services have to be accessible via a centralized Web Service Container such as Microsoft's Internet Information Services (IIS) and those provided in the Java world, but they must also be accessible in a decentralized fashion directly to agents, exposed as Web Services, that are running on edge and wireless devices. The location of intelligent mobile agents and the Mobile Web Services they expose must be irrelevant to the Web Service client. Finally, all agents have to be accessible by a Service Description, in a yellow-pages directory, ideally one that is Universal Description, Discovery, and Integration (UDDI)-compliant.

6.  Transactional at the Edge
Next-generation applications must extend transactions from the enterprise to include edge devices to allow for distributed but coordinated tasks among peers, peer groups, and the enterprise. To do so, support must be provided so intelligent agents running on the edge can participate in enterprise transaction managers such as those provided in .NET's IIS, Java's Transaction Service, and OMG's Object Transaction Service.

7.  Wireless/Embedded Device Support
Next-generation applications must be able to run, in some form, on all devices. To do so, the next-generation platform must be pervasive and supported on these same devices. Intelligent mobile agents also have to be able to run in the popular embedded software stacks such as Microsoft's Compact Framework, Java's Micro Edition, and OSGI Containers on a wide range of embedded operating systems such as Windows Mobile, Symbian, and Linux.

8.  AI Rules Integration
Next-generation applications have to comprise intelligent agents that gather data, respond quickly based on this data as it changes, produce and distribute knowledge, and possibly initiate other agent activities. The underlying rules engine must be easy-to-use, provide very high performance against potentially large rule sets, and be available in .NET and Java.

9.  Security
Next-generation applications must provide a high level of security to ensure privacy and protection from rogue/viral clients and mobile agents. This will involve security agents and agent managers that provide capabilities above and beyond the current encryption, authentication, and authorization that are currently employed in today's centralized client/server applications.

10.  Database Integration
Next-generation applications must provide a simple way to access databases, regardless of the type of database, be it relational, object, XML, and either a multi-user enterprise database or single-user embedded one. This has the obvious benefit of increased programmer productivity and results in consistent database access software.

11.  Extensive Management, Monitoring, and Self-Healing
Next-generation applications will run on many nodes and devices, and thus the ability to monitor and manage the agents on the devices is imperative. These agents have to be able to monitor themselves, and the nodes they run on, while providing a self-healing, preventive capability to pre-empt agent failure.

12.  Extend and Simplify .NET, J2EE, and CORBA
Next-generation applications have to integrate easily and seamlessly and be interoperable with the popular enterprise software stacks. There should be one distributed platform that unites these stacks. Microsoft technologies, including .NET, have been successfully developed with ease-of-use in mind. One could argue that the same can't be said with Java Enterprise (J2EE) and CORBA. The next-generation software platform will provide for an easy-to-use, high-performance way for intelligent agents to communicate regardless of what enterprise software stack they reside on, and have the freedom to move between stacks.

Next-Generation Benefits
A software platform that meets these requirements brings revolutionary capabilities and ease of use to today's application architects. It gives them maximum flexibility to develop dynamic, intelligent, and decentralized applications in .NET and Java on the devices and servers they need to target. Additionally, the extensive protocol support - in combination with its multi-language support and SOA - allows the intelligent mobile agents in these applications to access systems written in any language. They can also be accessed by systems written in any language in a variety of ways and messaging techniques, be they centralized or decentralized.

By leveraging the AI rules integration and the pervasive mobile agents residing on any and all targeted devices and servers, organizations could create applications that provide real-time intelligence, coordination, and capabilities not found today.

There is great deal of momentum behind enterprises moving toward the .NET architecture, but there's a lot of Java, CORBA, and mainframe systems in many of these same organizations. A very similar situation exists in the device world. Windows Mobile is gaining speed and acceptance among device makers, but devices running Symbian, embedded Linux, and even PalmOS will always exist.

This unifying platform will allow next-generation applications to exist seamlessly in this diverse software environment and the increasingly diverse wired and wireless networks they are running on. This platform would provide the capability to create a new set of applications that are distributed knowledge and problem-solving networks with dynamic and ad hoc participants using different devices and enterprise software systems.

It's not hard to see where this could be of great benefit in the domains of disaster recovery, terrorist response, and homeland security to name only a select few applicable areas in the government. In the commercial arena, the energy, transportation, insurance, education, telecom, healthcare, and finance industries are obvious verticals that could create vast new opportunities with such a platform. Indeed there's not a vertical in the commercial, government, or consumer arena that could not create revolutionary new capabilities with such a platform to leverage and use.

Just Around the Bend
This next-generation platform might be much closer to reality than you think. So let your creative mind take charge and start envisioning the revolutionary, world-changing applications that can be developed with these new capabilities. And it will be extremely profitable to those who create them. It's indeed extremely exciting, inspiring, and motivating to think about and work toward this unifying platform and the killer applications it will enable.

More Stories By Bob DeAnna

Bob DeAnna joined Recursion Software in January 2006 and is responsible for directing product strategy and, most notably, leading the architecture and positioning of Voyager, the company’s intelligent pervasive distributed computing platform. Through his guidance the product has been enhanced to include native support for .NET, CF, Android, RETE-based rules engines, embedded databases, and the ability to run on nearly 20 embedded and mobile device platforms. Bob brings more than 24 years of experience in software architecture, development and mentoring. His expertise is in distributed application frameworks such as JEE, CORBA, .NET and ATMI. Bob holds a Bs in mechanical engineering from Rutgers University and a continuing education degree in C/C++ and Unix Programming from New York University.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.