280 likes | 420 Views
CISC 889: Agents, Web Services and Grid Computing Fall 2003. Agents for the Grid. By: Sachin Kamboj. Outline. Review Grids Agents Web Services Relation between Grids, Agents and Web Services MyGrid Agent Communication Languages and Models Generic API Ontology Support
E N D
CISC 889: Agents, Web Services and Grid Computing Fall 2003 Agents for the Grid By: Sachin Kamboj
Outline • Review • Grids • Agents • Web Services • Relation between Grids, Agents and Web Services • MyGrid • Agent Communication Languages and Models • Generic API • Ontology Support • Mapping to the XML protocol • Technical Challenges • Conclusions Agents for the Grid
Review (Grid) • A form of distributed computing that involves coordinating and sharing resources across dynamic and geographically dispersed organizations • Shared resources include: • Computing • Application • Data • Storage • Network • Grid computing suggests a computing paradigm similar to an electric power grid: • A variety of resources contribute power into a shared “pool” for many consumers to access on an as-needed basis. Agents for the Grid
Review (Agents) • A computer system situated in some environment that is capable of flexible autonomous action in order to meet its design objectives • Situatedness • Able to perceive its environment through sensory inputs • Perform actions that change it in some way • Autonomous • Able to act without the direct intervention of humans • Flexible • Reactive • Pro-active • Social Agents for the Grid
Review (Web Services) • Self-contained, self-describing modular applications that can be published, located and invoked over the web. • Perform functions that can be anything from simple requests to complicated business processes… • A software system designed to support interoperable machine-to-machine interaction over a network. • Three fundamental requirements to provide or use web services: • Web services must be network accessible to be invoked • HTTP is the de-facto network protocol although may use SMTP • Web services should use XML-based messaging for information exchange… (SOAP is mostly used…) • All specifications for invoking a web service should be available through a service description (WSDL is used for this…) Agents for the Grid
Question? • Please fill in the blanks: Agents □ Grids □ Web Services • ≠ ≠ • ≠ = • = ≠ • = = Agents for the Grid
Answer • The answer would depend on what we mean by the term equal… • Answer the similar question: • Please fill in the blanks: Desktops □ Laptops □ Servers … • Each of these types of computers serve a different purpose: • There is nothing preventing us from running a server on a laptop from a desk… • In such a situation are the three equal? Agents for the Grid
Answer • Agents, Web Services and Grid Computing are all distributed computing paradigms… • All three address different areas of the “distributed computing pie” • Although a lot of the methods overlap • Grids allow processes to access distributed (geographically disperse) resources… • Web services are processes/resources designed to be interoperable over existing web protocols (HTTP, XML, etc…) • Agents build intelligence into the processes/resources. Agents for the Grid
Questions • Can web services, agents and grids be integrated/combined together? • Yes!!! • Already all three address many of the same problems • A lot of the work being done in the grid and web services world has already been done in the agent world… • Why would we want to combine the three? • How do we combine the three? Agents for the Grid
Why use agents on the grid? • Resources are finite • If resources are unavailable, resource consumers (processes) need to be able to adapt/change their requirements or re-plan • Variation in supply and demand • Resource requirements and availability might change dynamically • Simple queuing/scheduling of resources is inappropriate and inefficient • Hence, reactive and pro-active agents are needed to distribute the resources… • Agents adapt to prevailing circumstances and hence provide services that are dynamic and robust Agents for the Grid
Why use agents on the grid? • Grids provide means of locating resources • However, grids at present do not provide means of discovering high-level services… • Services can range from simple methods and procedure calls to more complex signature specifying service types. • Grids do not provide a common ontology for specifying resources and services • They also don’t allow the dynamic creation of ontologies Agents for the Grid
Why use agents on the grid? • Agents allow the integration of multiple information sources in problem solving environments • Agents interact using co-operation and negotiation to achieve common goals • Agents allow the building of computational economies to regulate the supply and demand of resources • Agents allow the creation of market-based economies • Agents act as self interested entities competing on a market where goods such as computational resources are traded. • Allow resources to be distributed fairly… Agents for the Grid
Why integrate with web services? • Web services have emerged as a set of open standards • Defined by W3C • Are ubiquitously supported by IT suppliers and users • Use existing protocols (such as HTTP and XML) • Do not require new protocols to be developed • Allow a large population of existing Internet users to contribute or use resources on a single large grid • For example: SETI@home Agents for the Grid
MyGrid • Purpose is to provide a collaborative and supportive environment that enables geographically distributed biologists to achieve research goals more effectively • Must provide an environment in which distributed bioinformatics applications may be developed • Involves the design of a generic architecture that supports multiple existing protocol, languages and standards and which hopefully will be able to accommodate future developments • Based on SoFAR • Southampton Framework for Agent Research Agents for the Grid
MyGrid • One goal is to develop an abstract communication architecture that can be mapped onto concrete communication technologies: • For openness protocols on the wire are defined • Message formats for each protocol supported are defined • Programming APIs are provided for ease of development • Allow programmers to develop new tools and applications in MyGrid Agents for the Grid
MyGrid • An agent based computing paradigm has been adapted as underpinning the architectural design • Agents: • Are a software engineering unit, typically larger than a class or module which can encapsulate roles and goals • Are capable of complex interactions thus forming multi-agent systems • Communicate using agent communication languages (ACLs) • Structured around a set of: • Message types (performatives) • Message content schemas (ontologies) and • Meta information Agents for the Grid
Agent Communication Language • Consists of three elements: • Performatives • Are communicative acts • They specify the intention of the message • Are used to structure and classify messages • Ontology • An agreed vocabulary with a shared understanding of some domain that is used between two communicating agents • Required so that the receiver agent know what the sender agent intended • Meta-Information • Is the communication context and includes information about the act of communication • Examples include sender, receiver, sent time, message identifier… • Is used by agents to discriminate between messages Agents for the Grid
Agent Communication Model • An ACL does not provide a generic API to communications: • Performing a CORBA method call differs substantially from invoking a service through an apache soap implementation • Solution is to provide an abstract communication model that supports • Startpoint/endpoint pairs to refer to remote objects • A form of method activation to start computations on remote objects • Communication between agents takes place over a virtual communication link defined by a startpoint and an endpoint Agents for the Grid
Generic API • To communicate with an agent, one needs to acquire a startpoint that represents the agent • The startpoint supports a method for each performative defined in the ACL • A communication is initiated by performing a method call on a startpoint, passing as argument the message content and envelope interface Agent { boolean query_if(Predicate p, Envelope e); Predicate[] query_ref(Predicate p, Envelope e); void inform(Predicate p, Envelope e); void uninform(Predicate p, Envelope e); Contract register(Action a, Envelope e); void unregister(Contract c, Envelope e); Contract subscribe(Predicate p, Envelope e); void unsubscribe(Contract c, Envelope e); void request(Action a, Envelope e); } Agents for the Grid
Ontology Support • Ontologies are defined in XML syntax • Concepts are composed of a number of fields and may extend other concepts using single inheritance • Supports primitive concepts and polymorphic vectors • Hence ontologies are organized along a hierarchy • The root of the hierarchy is referred to as a term • As a part of the ontology, notions of equality, matching and subsumption (reasoning over hierarchies) on ontological terms are also defined Agents for the Grid
Ontology Support • Example1: <term name=“Person” extends=“Term”> <field type=“String” name=“title”/> <field type=“String” name=“forename”/> <field type=“String” name=“surname”/> </term> • Example 2: <term name=“Envelope” extends=“Term”> <field type=“AgentTerm” name=“sender”/> <field type=“AgentTerm” name=“receiver”/> <field type=“Time” name=“timestamp”/> <field type=“Integer” name=“identifier”/> <field type=“Integer” name=“reference”/> <field type=“Conversation” name=“conversation”/> </term> Agents for the Grid
Mapping to the XML Protocol Deployment.xml sofar provider: DeMultiplexor http server soap servlet HTTP lookup soap registry Id -> . id url Soap startpoint for B RMI METHOD: Inform Agent B METHOD: Inform Agent A Soap endpoint for B Agents for the Grid
Technical Challenges • Startpoints: • To allow communication, startpoints need to be sent to the agent initiating the communication • Startpoint might be either RMI stubs or Soap stubs • However RMI stubs cannot be serialized over XML • Hence only Soap startpoints can be serialized over the XML protocol layer Agents for the Grid
Technical Challenges • Contracts • An agent offering a service advertises itself by registering with a registry service • The registry service commits to advertising the agent capability and as a proof issues a contract to the agent • As long as the contract remains live, the registry will retain the advertised capability • Contracts are similar to leases as they need to be renewed on a regular basis by “keep-alive”. • If an agent crashes, the keep alive messages will no longer be sent, the lease will not be renewed and the registry entry will be cleared • Java RMI automatically handles contracts and leases… • However SOAP requires the client implementer to implement the lease and contract algorithms Agents for the Grid
Technical Challenges • Class Loading • The ability to load code dynamically is a very important property of a long running multi-agent system. • For example, a registry agent may run permanently on a well known host • As new agents and their associated ontologies get developed, they will register their service in the registry • When these agents are required the code should be loaded dynamically by the registry • XML provides an RPC mechanism without built-in dynamic code loading capability • This limits the scalability of the thus developed code Agents for the Grid
Conclusions • A computational economy may be a mechanism able to allocate resources in a fair and efficient manner in a Grid environment • This requires the use of a marketplace economy based on agents • The dynamic discovery, creation, management and disbanding of virtual organizations require complex agent-based interactions • Agents may be seen as web services • XML protocol is expressive enough to support an Agent Communication Language • ACL can be mapped onto several concrete protocols • A fixed set of performatives combined with an abstract communications model offers a uniform API to programming communications Agents for the Grid
References • Luc Moreau:“Agents for the Grid: A Comparison with Web Services (Part I: Transport Layer)”, in 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02) p. 220 • Arturo Avila-Rosas, Luc Moreau, Vijay Dialani, Simon Miles, Xiaojian Liu: “Agents for the Grid: a Comparison with Web Services (part II: Service Discovery)”, inFirst International Workshop on "Challenges in Open Agent Systems”, AAMAS 2002 Agents for the Grid
Questions? Agents for the Grid