Mobile-C: a Multi-Agent Platform for Mobile C/C++ Agents
Mobile-C is an IEEE FIPA (Foundation for Intelligent Physical Agents) standard compliant multi-agent platform for supporting C/C++ mobile agents in networked intelligent mechatronic and embedded systems. Although it is a general-purpose multi-agent platform, Mobile-C is specifically designed for real-time and resource constrained applications with interface to hardware. Mobile agents are software components that are able to move between different execution environments. Mobile agents in a multi-agent system communicate and work collaboratively with other agents to achieve a global goal. It allows a mechatronic or embedded system to adapt to a dynamically changing environment.
Sample Applications

News

MobileC v1.10.8 Released 2009-4-29  

  • Added new Security Module written by Najmus Malik. Use the "--enable-security=yes" option during the configure step to enable the security module. See the demos in demos/hello_world_secure and demos/multi_task_example_secure , as well as Chapter 9 in the User's guide.
  • Added MC_MigrateAgent() and mc_MigrateAgent(). These functions allow an agent to dynamically choose where and when it wants to migrate from within the agent code space.
  • Fixed bug where if an agent has multiple tasks on the same host (in succession), the agent will be renamed due to a spurious name collision.

MobileC v1.10.7 Released 2009-1-9  

  • Changed the way agent migration message files are parsed and sent. Before, the files were not parsed at all before being sent. Now, agent xml files are fully parsed before being sent. This means that the syntax checking for the agent xml files will be more strict. Some agent xml files in the demos have been updated to reflect this.
  • Added more documentation regarding persistent agents and the Ch Mobile-C Package, which is required for agent FIPA ACL communication.

MobileC v1.10.6 Released 2008-12-12  

  • Changed the way agent migration message files are sent. The XML files are now fully parsed into agents before being sent.
  • Fixed a number of memory leaks.

MobileC v1.10.5 Released 2008-11-12  

  • Fixed MC_RetrieveAgent() : The function no longer returns a shallow copy of the retrieved agent, but a pointer to the actual agent.
  • Added a new demo example at "demos/multi_data_retrieval"

MobileC v1.10.4 Released 2008-10-24  

  • Added function MC_CallAgentFunc which takes a variable number of arguments.

MobileC v1.10.3 Released 2008-07-31  

  • Added documentation about Mobile-C and 64 bit architecture machines.
  • Added example for MC_ComposeAgent API function at demos/mc_compose_agent_example/

MobileC v1.10.2 Released 2008-07-11  

  • Fixed a bug regarding large agents and http/tcp protocol causing EOF errors, particularly on Gumstix systems.
  • Added FIPA enumerations to libmc.h so that they may be accessed by including only libmc.h.
  • Updated documentation to reflect previous change.
  • Upgraded included xyssl package from version 0.7 to 0.9. This fixes a Mac compile-time error regarding xyssl.

MobileC v1.10.1 Released 2008-07-01  

  • Mobile-C now communicates successfully with JADE agencies. See the demo located at demos/mc_to_jade_example/ .
  • Bugfixes regarding FIPA message format and compatibility with JADE
  • Other minor bugfixes

MobileC v1.10.0 Released 2008-06-16  

!! Note: v1.10.0 agents are NOT backwards compatible with previous versions of Mobile-C. See note below for details.
  • Added API to implement FIPA compliant ACL communication. New functions include:
    • MC_AclDestroy()
    • MC_AclNew()
    • MC_AclPost()
    • MC_AclReply()
    • MC_AclRetrieve()
    • MC_AclSend()
    • MC_AclWaitRetrieve()
    • MC_AclSetPerformative()
    • MC_AclSetSender()
    • MC_AclAddReceiver()
    • MC_AclAddReplyTo()
    • MC_AclSetContent()
  • Added API function to load agents directly from an xml file into a local agency: MC_LoadAgentFromFile()
  • Modified Agent XML format. Please consult the user's guide for specific details. The new agents will not be backward compatible with older agencies.
  • Added ability for agents to carry persistent data with them from task to task. See details in API functions mc_AgentVariableRetrieve() and mc_AgentVariableSave().
  • Preliminary .NET Binding implemented by Doug Stark .
  • Preliminary testing with Mobilec-C <-> JADE communication using HTTP protocol.

MobileC v1.9.5 Released 2008-04-25  

  • Removed command prompt from many demo client programs.
  • Added support for parsing and handling FIPA compliant ACL messages.
  • Added numerous API function calls to handle the processing of ACL messages, such as MC_AclSend, MC_AclRetrieve, MC_AclReply, etc.
  • Documentation and general polishing of the library, moving towards 2.0.0 release.

MobileC v1.9.4 Released 2008-01-07  

  • Added many functions that were available in Binary space to agent space as well. Some example include:
    • mc_GetAgentID(),
    • mc_GetAgentName(),
    • mc_End(),
    • mc_HaltAgency(),
    • mc_ResumeAgency(), among others.
  • Added missing documentation for some agent-space functions.

More News...