Saturday, September 5, 2009

Agents based Systems, is it real?

In today's market, still we look for reasons to justify the software engineering practice! even in a bunch of core IT guys one term which is still anonymous to us is "software agents" or "agent oriented software engineering".. When we say software engineering we are always referring to the Object Oriented aspect of it and think that OOSE (Object Oriented Software Engineering) is the only form and application of software engineering and it is the end...

Probably because the books written in 1980's on this domain are still valid in our institutions and we always wait for research and practices to be implemented by vendors and learn and implement them once they are a JOB REQUIREMENT!

The story is different in other parts of the world, where the academia comes up with research and aid the vendors to make it a standard and same is going with the software engineering domain.

There the agents have replaced the objects and object orientation is transformed in to agent oriented domains.

(The following paras are applicable to those who understand what Object Oriented S/W Eng is)

So what is a Software Agent?, A Software Agent is a computer program which works toward goals in a dynamic environment (where change is the norm) on behalf of another entity (human or computational), possibly over an extended period of time, without continuous direct supervision or control, and exhibits a significant degree of flexibility and even creativity in how it seeks to transform goals into action tasks..

Where as on the other hand, an Object works in a pre-determinant environment and its just their to perform certain actions based upon the encapsulated attributes and interacts with another objects..

So Agents are meant to work where environment keeps on changing, they develop a notion of learning based upon their experience but objects don't, moreover agents can provide reasoning (which you have seen in AI) which objects don't.. while execution agents have their own thread of control while objects have a single thread of control in the system. Objects always say a "Yes" and "No" is treated as an ERROR while Agents have the right to say "No" based upon the conditions..

Agents are far more liberal and can play a different role in different domains, Objects are invoked while Agents react to the environmental happenings. and many more ...

Software Agents can be considered as enhancement over Software Objects as both don't anything about the system they work and works through encapsulation (hiding their data) interacting with surrounding elements.

Lot of tools supporting modeling and development through AOSE are available but are yet to be commercial, few years down the road this will be the way Programs for Devices & Machines are going to be written..... (continued....)

http://www.comp.nus.edu.sg/~bimlesh/ametrics/findings/Differences%20between%20objects%20and%20agents.pdf

Inspiration from my teacher "Leon Sterling"...

No comments:

Post a Comment