1 Towards an Agent enabled Gird environment Nguyen Thanh Thuy, Le Dang Hung, Dao Tran Minh, Nguyen Xuan Vinh, Le Thi Phuong HPCC - HUT
2 Content Globus Toolkit JADE Agent frameworks Integrating JADE Agents into Globus based Grid environment Applications in HPCC-HUT Grid Conclusion and Future work
3 Introduction about GC with Globus Toolkit GC: enables the sharing, selection, and aggregation of geographically distributed heterogeneous resources for solving large-scale problems in science, engineering, and commerce. Globus Toolkit (GT): the leading open source toolkit used today to build Grid environments.
4 Introduction about GC with Globus Toolkit (cont) GT: lets people share computing power, database, and other tools securely online across corporate, industrial, and geographic boundaries without sacrificing local autonomy. includes software services and libraries for resource monitoring, discovery, and management, plus security, file management, data management, communication, and portability.
5 JADE Agents framework JADE (Java Agent DEvelopment frameworks): is a framework fully implemented in Java language simplifies the implementation of multi-agent systems through a middle-ware that complies with FIPA specifications and through a set of graphic tools that supports debugging and deployment phases.
6 Integrating JADE Agents into Globus based Grid environment The necessity The main difficulties Related work Our approach
7 The necessity Resources in Grid environment: heterogeneous geographically distributed dynamically changed Agent technologies’ abilities: autonomy co-operate reaction migration
8 The main difficulties Globus Toolkit To build a Grid Service: extends class GridServiceBase or use operation providers A Grid Service lives in Globus Grid Service container JADE framework To build an Agent: extends class Agent and setup some behaviors An Agent lives in JADE platform 2 platforms use different standard formats of message
9 The main difficulties (cont) What is the solution that can ease the communication and interaction between objects living within these two separate environments?
10 Related work SoFAR project: considers an Agent as a service by means of using Web service facilities to expose agent features
11 Our approach - HAGS We consider a Grid Service as an Agent and add Agent’s behaviors into the service Hybrid Agent – Grid Service Core idea: writing a Grid Service that extends the Agent class!!! Simple!!!
12 HAGS – Design and Implementation Preparation The HAGS The Auto Setup Agent Grid Service
13 HAGS - Preparation Copy six main libraries of JADE (jade.jar, iiop.jar, crimson.jar, http.jar Base64.jar, jadeTools.jar) into Globus Toolkit library directory ($GLOBUS_LOCATION/lib)
14 HAGS Extends Agent class Agent Uses operation providers Grid Service Some important methods: initialize(): create a non-main container and connect it to the default main container of JADE platform initialize() setup() and takedown(): just setup code as for ordinary agents preDestroy(): order the agent to delete itself
15 HAGS - The Auto Setup Agent Grid Service Automatically setup the whole JADE platform along with the grid service container Can recognize when the grid service container is going to be shut down and automatically shut down the agent platform as well is successfully implemented ready-to-use
16
17
18 Applications in HPCC-HUT Grid HPCC-HUT Grid Application: Weka The multi agent system as a grid information service Agent as a resource manager Agent as a resource broker
19
20 Conclusion and Future work Results: Idea and technical details of completing an HAGS system Successful implementation in BKGrid 2005 Drawbacks: The agent communication hasn’t been really controlled yet security problems!!! The overhead caused by the whole agent system to the grid environment
21 Conclusion and Future work (cont) Future work: Solve the drawbacks Experiment the HAGS system in larger Grid environments
22 Thank you very much!
23 public void initialize(GridServiceBase base) throws GridServiceException { this.base = base; AgentContainer ac = null; Runtime rt = Runtime.instance(); // Create a default profile ProfileImpl p = new ProfileImpl(false); try { // Create a new non-main container, connecting to the // default main container (i.e. on this host, port 1099) ac = rt.createAgentContainer(p); // Create a new agent AgentController t2 = ac.acceptNewAgent("Broker "+System.currentTimeMillis(),this); // fire-up the agent t2.start(); } catch (Exception e2) { e2.printStackTrace(); } } BackBack