|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 4 of 5
Assuming the security issues surrounding mobile agents can be adequately addressed, why would you choose a mobile agent solution over more traditional client/server models? Why would you choose mobile agents over mobile code, such as applets or servlets?
In a world in which you have proven distributed processing models, including mobile code, what is the point of mobile agents?
One perspective is put forth by Harrison, Chess, and Kershenbaum in their IBM research paper titled "Mobile Agents: Are they a good idea?" (See Resources below.) Here is a short quote from their paper:
While none of the individual advantages of mobile agents...is overwhelmingly strong, we believe that the aggregate advantages of mobile agents is overwhelmingly strong, because:
a. They can provide a pervasive, open, generalized framework for the development and personalization of network services.
b. While alternatives to mobile agents can be advanced for each of the individual advantages, there is no single alternative to all of the functionality supported by a mobile agent framework.
In other words, the point of mobile agents may not be any individual potential application, each of which could alternatively be implemented using a more traditional distributed processing scheme. Rather, the point may be that mobile agents have so many potential applications. They give you a single, flexible way to implement and reap the benefits of the traditional distributed processing, client/server, and mobile code models.
Another perspective comes from Danny Lange, the inventor of the aglet, who had this to say about aglets:
When I invented the aglet, I was searching for a higher abstraction for network computing. To me the aglet was an answer to some 15-year-old questions I had: What comes after object-oriented programming? What is the next paradigm shift?
The aglet is my key abstraction for "network computing"; not the applet, not the servlet, not RPC, but the aglet. The aglet allows me to think in terms of the "network computer"; not the NC, but all the NCs, PCs, workstations, and mainframes in one space. I don't care where the aglet is running, nor does the aglet care. As we say about the aglet: "Create once, go anywhere".
So mobile agents provide a way to think about solving software problems in a networked environment that fits more naturally with the real world. In the real world, people and objects move from place to place. If you want to get some work done, sometimes you make a phone call, sometimes you send an assistant to the work site, and sometimes you just go yourself.
Object-oriented programming represented a higher level of abstraction than procedural programming. Early proponents of object-oriented programming promised that this higher level of abstraction would make programmers more productive, code easier to understand and maintain, and make possible better development tools. Although opinions may vary as to the extent to which these promises have been fulfilled, for the most part, the software development community has embraced the object-oriented approach.