An agent-based infrastructure and toolkit to develop inter-operable, intelligent, multi-agent systems for Web service composition (WSC) and provisioning. JADE JADE (Java Agent DEvelopment) is a software framework and middle-ware enabling technology for developing multi-agent systems. As a FIPA (Foreign Investment Promotion Agency) compliant agent platform, JADE provides an implementation for the following components: 1. Agent Management System (AMS). This agent is responsible for controlling access to the platform, authentication and registration of participating agents. 2. Directory Facilitator (DF). This agent provides a yellow page service to the agents in the platform. 3. Agent Communication Channel (ACC). This agent provides a white page service. It also supports interagent communication and inter-operability within and across dierent platforms. JADE also provides an implementation of the full FIPA communication model, i.e., agent interaction protocols (AIPs), FIPA Agent Communication Language (ACL), SL content language, ontology support and, transport protocols. In JADE, agent communication involves the exchange of ACL messages between agents. ACL has a formally dened semantics and pragmatics which avoid any ambiguity derived from the usage of the language. ACL messages within the same platform are exchanged encoded as Java objects. However, when the communicating agents belong to dierent platforms the ACL messages are converted from/into string format. AIPs describe communication patterns as legal sequences of messages exchanged between agents. Many common AIPs are supported in JADE. Agent communication languages such as FIPA ACL distinguish between content languages, and ontologies. The former, describe how the content of a message is encoded to be transmitted between two agents. Thus, content languages are typically domain independent. The latter, describe the vocabulary used and some of its semantics. By default, JADE provides support for three content languages: (i) LEAP, i.e., a lightweight binary representation, wellsuited for embedded applications; (ii) FIPA SL, i.e, a rich (human-readable) text encoding for messages; and (iii) Java codec, i.e., an ecient Java encoding for exchanging messages within the same platform. Additionally, JADE supports user-dened content languages based on external ontology. In particular, it provides generic XML/RDF(Resource description Framework) codecs for ACL message content based on XML/XML Schema and RDF/RDF Schema. JADE also provides some built-in support for some FIPA-based ontologies.