[ Home | Blog | Books | Glossary | Links | Manifesto | Search | Contact ]
March 13, 2010 (previous version)
The technology sector has evolved significantly since I originally wrote this page in 2004, but software agent technology has stagnated somewhat, at least from a commercial perspective. Research continues, but the great hopes for software agent technology, including my own, have been deferred.
For example, the European Commission AgentLink initiative published its Agent Technology Roadmap in 2004 and an update in 2005, but there have not been any updates in the five years since then.
A lot of the effort in software agents field was simply redirected to the Semantic Web, Web Services, and plug-ins for Web browsers and Web servers. Rather than seeing dramatic advances in intelligent agents, we have seen incremental improvements in relatively dumb but smart features embedded in non-autonomous Web software such as browsers and server software.
To be sure, there remains quite a bit of activity on the academic research front with quite a number of academic conferences focused primarily on software agent technology, but with even more conferences focused on the Semantic Web.
In late 2005 I attempted to write up a much more detailed vision of where I thought software agent technology was headed, entitled The Consumer-Centric Knowledge Web - A Vision of Consumer Applications of Software Agent Technology - Enabling Consumer-Centric Knowledge-Based Computing. The key point was that development of a successful software agent ecosystem depends critically on the development of an extremely rich data infrastructure that I called the Consumer-Centric Knowledge Web. We are certainly not there and not even started, but ongoing developments in the Semantic Web and the Linked Data movement at least hint that progress is being made on the need for a rich data infrastructure that agents can thrive in.
Ray Kurzweil attracted a lot of attention with his vision of a human-computer Singularity in his book The Singularity Is Near: When Humans Transcend Biology back in 2005, but even his vision continues to limp along and appear no closer than it did when he proposed it five years ago, science fiction movies such as The Matrix and Avatar notwithstanding. In fact, I would suggest that the vision is even less near than originally anticipated as a result of the difficulties encountered in making progress. Who knows, maybe a few key breakthroughs in coming years could turn the tide, but progress is likely to remain slow nonetheless. Open question: Is there an interesting subset of the Singularity that could be developed in the near term that would dramatic accelerate the development and adoption of software agent technology? Or, is the maturation of software agent technology in fact a de facto requirement for the evolution of the Singularity?
The cloud computing metaphor for computing out on the Internet is gradually taking root, but is still far short of an environment in which robust and even marginally intelligent software agents are likely to be found. Distributed processing is indeed taking off in the cloud, with companies such as Amazon offering commercial services such as Amazon Elastic Compute Cloud (EC2) and Amazon Web Services (AWS), but there is still no sign of truly intelligent agents or even truly autonomous agents.
New application-level protocols such as SPARQL and JSON that facilitate data access across the Internet continue to pop up, but once again still no sign of true software agents.
Network bandwidth available to client nodes was quite limited when agents were originally proposed. That made it desirable for agents to "move" away from the client nodes towards the servers where data and services resided. That meant the the agents needed to carry application intelligence with them. But all of that has changed with the advent and widespread adoption of broadband network access, even for cheap handheld mobile wireless devices. Now, application intelligence can remain on the client node and data anywhere in the world can simply be accessed directly from the client node. This one factor alone may have taken much of the wind out of the sails of the software agent movement.
In 2007 Professor James Hendler asked the question "Where are all the (intelligent) agents?" (also here.) He surveys the Internet landscape much as I have but in more specific detail and summarizes the situation as "The infrastructure needs of intelligent systems are now being met by a combination of Semantic Web, Linked Data, Web Services and Rule-based systems." But he concludes by simply re-asking the original question: "So where are all the agents???" My short response is that the infrastructure still has a long way to go. We are making good progress, but we still are not "there" yet.
Adoption of the Java programming language as a de facto standard for heavy duty server applications has enabled some agent-like applications and capabilities, but we still are not seeing anything resembling an agent-oriented ecosystem, but simply lots of large java applications. There are agent-oriented toolkits for Java such as JADE, but they simple do not have a critical mass of capabilities to give the software agent movement real, credible traction in the commercial world.
Small applications that run on mobile phones are now a hot area for development. Their intelligence will be rather limited, but should grow over time. Such applications may never completely supplant the conception of software agents, but will subsume a lot of the attention. Personally, I think the real potential is still agents running autonomously out on the cloud, but with a client user interface on the mobile device or interfacing with larger applications running on servers. As people gradually realize how limited "dumb" mobile applications really are, maybe that will begin to inspire and incite a renewed push in software agent technology.
Trends to follow:
How soon will these trends converge to finally enable a true software agent ecosystem? I keep saying two to five years, but since 1998 I have been consistently overly-optimistic (a fancy word for wrong), so I'll simply say five to ten years.
One of the key problems facing the software agent community is that a lot of the technologies have proven to be overly-complicated and and that complexity has dramatically deterred adoption. Somehow, eventually, some brilliant young geniuses will finally break through this logjam of complexity in much the way that HTML and HTTP broke through the complexity of online services to give users the Web, but we simply are not there yet.
I hate to say it, but for now the field of software agents remains primarily in the research labs and the heads of those envisioning its future. There have been many research projects and many of them have made great progress, but the number of successful commercial ventures is still quite limited (effectively nonexistent.) There are still many issues and unsolved problems for which additional research is needed.
A number of early efforts that showed great promise have fallen by the way side. Part of the problem is that we don't yet have a sufficient number of field-proven examples of applications where software agent technology was the key to success. People see all this neat new technology, but are somewhat baffled as to how it can be used, how it should be used, and how to actually use it today.
Some earlier efforts in software agents have morphed and lost their "agent" label as they have been integrated into other sub-fields of software. For example, IBM is now into Autonomic Computing and Business Rules. We now talk about Web Services and Grid Computing. Some of this "loss" may be natural and reflect a maturing of the field. In some cases "agent" was simply a jargon/marketing buzzword anyway. And in some cases it may simply reflect a lack of a clear understanding of how the field of software agent technology is defined.
There is also the question of how an agent-based software system contrasts with other forms of distributed software systems. In other words, why use agents rather than simply standard operating system processes or threads or Java plug-ins and TCP/IP or HTTP or "REST" communications? Or, how should we conceptualize the contrast between traditional views of agents and the newer concepts of web services and grid computing?
Maybe ultimately enough agent-like capabilities will be assimilated into typical applications so that a distinct category called a software agent is no longer necessary. Possibly, but although that will likely happen to some extent, merely hard-wiring agent-like capabilities into a non-agent infrastructure is unlikely to deliver the grand magnitude of promise that should be possible in a pure-agent infrastructure and ecosystem.
-- Jack Krupansky
[ Home | Blog | Books | Glossary | Links | Manifesto | Search | Contact ]
Updated: March 13, 2010 07:46:49 PM -0500
Copyright © 2010 John W. Krupansky d/b/a Base Technology