Resource Scheduling Based on Dynamic Dependence
Injection in Virtualization-based Simulation Grid
Hanbing Liu,Hongyi Su, Shouyi Zhan
School of Computer Science and TechnologyBeijing Institute of Technology Beijing, China
Xundong Chai,Yabin Zhang,Baocun Hou,Linqin
Guo,Shuai Fan
Beijing Simulation Center Beijing, China
Abstract—With the grid applied in simulation widely, the traditional grid scheduling can not meet the requirements, which needs to server the appointed domain application not the simple computation jobs. The exiting grid scheduling mechanisms based on the physical computing nodes, which deployed with appointed environment, make the simulation resource usage less flexible and efficient due to the system structure limitation. According to the simulation application requirement, this paper integrated virtualization technology into the exited Simulation Grid to break the static dependence coupling and proposed a dynamic dependence injection scheduling mechanism. Furthermore, some solved key techniques are introduced, mainly including resource discovery and selection algorithm based the simulation resource virtualization encapsulation. This scheduling mechanism has a better efficiency in dynamic deployment, the real-time operation and the capabilities of current networked M&S platform on highly customizable resources sharing, collaboration and fault tolerant. Finally, the conclusion and some further works are given.
Keywords-Virtualization-based Simulation Grid;Scheduling; Dynamic Dependence Injection; Simulation Resource Management; Service-Oriented
I. INTRODUCTION
Now, combining current M&S technology with grid technology, providing a dynamic sharing, autonomy, fault tolerant and collaboration simulation resource environment has become a new trend of networked M&S. Now, more and more simulation projects integrated with grid technology were conducted, such as SF-Express supported by United States Department of Defense [1], Cross-Grid [2], DS-Grid [3], Ness-Grid [4], Federation X Ness-Grid [5] and COSIM-GRID of China [6], etc.
Meanwhile, simulation is an important component of computer science, which using the computing resource to operate the simulation mission. So, a reliable and uniform scheduling mechanism that accesses heterogeneous computing nodes in Simulation Grid must be provided. There are lots of grid scheduling modes and algorithms have been proposed to get a near-optimal schedule [8]. Although the exiting scheduling modes and algorithms performed better than the traditional random or sequential scheduling approaches, they take the computing node as the whole entity which already been statically deployed with the system-oriented and
application-oriented configuration. With the development of simulation application scale, the number of grid environment nodes has to be increased to satisfy the simulation requirement. So, the abundant heterogeneous computing nodes and the computing nodes status dynamic transformation may make the existing scheduling modes and algorithms become more complicated, even trigger the NP problem.
Virtualization technology can be traced back to the end of the 20th century 50's, Christopher Strachey firstly put forward the basic virtualization concept in report “the Time Sharing in Large Fast Computers” in 1959 [7]. Since the 20th century 60s, virtualization technology has been used to take full advantage of the relatively expensive hardware resources. Over time, micro-computers and PC can provide more effective and economical processing capacity, the virtualization technology was no longer widely used. In recent year, with the performance of the PC, the virtualization technology especially the computing system virtualization, which can realize the utilization of computing resources more fully rational, transparent, efficient and customizable, becomes the research hotspot again and develops fast[12]. So, the virtualization technology, which refers to improve the high-level dynamic and efficient resource management, can provide a new way to strengthen the capabilities of current Simulation Grid.
Aiming at integrating virtualization technology into existing grid scheduling mechanism, the remainder of this paper is organized as follows: Section 2 briefly surveys current related work on virtualization-based simulation and grid scheduling mechanism; Section 3 describes the framework of virtualization-based scheduling mechanism; Section 4 focuses on the key technology of mechanism; Section5 takes a application to illustrate the research work; Section6 concludes in a brief discussion of current issues and future work.
II. RELATED WORK
In China, Bo Hu Li first proposed Simulation Grid that is a synthesized multidisciplinary technology and important tool to realize the dynamic share and reuse of various resources in grid/federation safely, collaboratively cooperation, dynamic optimization of scheduling executions, etc. [6].
Due to the resource sharing character, Simulation Grid could be taken as a network-level virtualization. Simulation Proceedings of the 2010 14th International Conference on Computer Supported Cooperative Work in Design
Grid can overcome the shortcomings existing in HLA networkitized M&S application (especially the limitation in the dynamic sharing, autonomy, fault tolerant and collaboration of simulation resource and the security application mechanism) [6]. Moreover, the continuous improvement of computer performance, quantity, type, especially the advent of multi-core processing or redundant computing resources makes existing Simulation Grid need to be strengthening in the following aspects: (1) capability of sharing fine-grained resources (including the CPU core, memory, software and other sub-resources in the node), (2) capability of customizing simulation resource, (3) efficient and transparent capability of support multi-level sharing.
So, based on the research fruits of simulation grid, by combining the virtualization technology and introducing consulting cloud computing model, aiming to strengthen the granularity and flexibility of resource management, a new kind of networked M&S platform is put forward, namely Virtualization-based Simulation Grid. It achieves a scalable and transparent physical framework that can take advantage of the polymerization performance of physical resource to build the virtual image on demand, further to deploy an efficient and customizable simulation environment that can satisfy multi-users dynamic optimization resources cooperation and scheduling, etc., eventually to support the various activities in simulation life cycle (from argumentation, research, design, development, test, execution, evaluation to maintenance and disposal).
Virtualization-based simulation grid prototype architecture that introduced the virtualization technology into the existing Simulation Grid platform is shown in Fig.2, which includes entity resource layer, virtualization resource layer, middleware layer, simulation-oriented core service layer, application portal layer of virtualization-based simulation grid and application layer.
Figure 1. Architecture of Virtualization-based Simulation Grid.
With the development of virtualization, some simulation applications introduce it as a new idea to settle some issues,
such as the BotNet Evaluation Environment (BEE) [9], the VMware ESX-based particle detector simulation system in ATLAS experiment [10] and the complex hydraulic simulation basing on JVM of China [6]. However, the virtualization-based simulation just started generally.
The grid scheduling modes could be classified into three centralized, distributed and hierarchy scheduling model [8]. They are defined by the scheduler and hosts relationship. In additional, various algorithms have been proposed which in recent years each one has particular features and capabilities, such as Min-Min, Suffer and so on [8]. The exiting scheduling modes and algorithms performed better than the traditional random or sequential scheduling approaches. However simulation operation needs the appointed deployment computing environment according to the application requirement besides the computing resource communication and computational capability, the existing scheduling mechanisms only take the computing nodes as the entity into consideration. And simulation resource means any hardware, software and information resources which can promote the M&S relative work. So, with the development of simulation application scale, the existing scheduling mechanisms lack flexible and efficient. For the purpose of increasing simulation execution efficiency and enhancing fault-tolerance ability, simulation scheduling already been investigated by many researchers.
The virtualization technology which is used to break the system application static coupling, gives a new idea for the existing grid scheduling. This scheduling mechanism has been designed to simplify the existing algorithm complication based on the simulation operation characters and get a deep level resource sharing and cooperation.
III. OVERVIEW OF SCHEDULING MODEL
Virtualization-based simulation grid is a common technology for both military application and civil applications, which will bring huge reformation and innovation for M&S application mode, management mode, infrastructure technology, and takes great social effects and economic benefits.
A. Brief of Virtualization-based Simulation Gird Service
The core layer of the virtualization-based simulation grid is simulation-oriented core service (see from Fig1), which bases on the middleware service virtualization service middleware and grid resource service middleware to provides various core services for collaborative simulation experiment execution and applications management. Moreover, the scheduling mechanism is the fundamental and important aspect of the simulation-oriented core service, which invokes the suitable resource responding the request of applications/other components/users directly or indirectly.
In this section, we will present a dynamic dependence injection scheduling mechanism architecture, which introduces the virtualization technology to support distributed, collaborative simulation resource dynamic scheduling.
B. Architecture of the Scheduling mechanism
By introduced the virtualization technology, the scheduling mechanism can be generalized as stages: “Resource Discovery”, “Resource Selection” and “Resource Dynamic Dependence Injection”. (Fig2.)
Figure 2. Architecture of Scheduling Mechanism.
After the “simulation application description” being inserted, they will enter the “resource discovery” unit. In this stage, the aim is to discovery the potential resource according to the certain simulation application, which could be defined as establishing the resource pool. In our framework, the resources are encapsulated by virtualization technology, which are the logical images of entity simulation resources. By receiving information, “Scheduling Selection” unit selects the more appropriate resource. At last the “Dynamic Injection” relies on the resource virtualization encapsulation mapping or application coupling relationship dynamically allocating the entity simulation resources when the simulation execution.
IV. KEY TECHNIQUES UNDERLYING THE PROPOSED
ARCHITECTURE IN MILITARY ORIENTED SIMULATION GRID
A. Simulation Resource Virtualization Mapping
The resource presence is not alone according to the simulation application, they usually have definite application-oriented or system-application-oriented dependence coupling. The virtualization is introduced to break static dependence coupling, shield heterogeneous, etc. and get high efficiency resource management. The virtualization mapping is the basis of our scheduling mechanism, the discovery and injection units rely on the mapping result.
The resource layer of virtualization-based simulation grid, by introducing the virtualization encapsulation, is divided into entity resource layer and virtualization resource layer.
• Entity resource layer which sustains the simulation operation as basic groundwork, including the storage
resource (all types of storage media), equipment resource, model resource, software, etc.
• Virtualization resource layer is the logical view of entity resources, which apply virtualization encapsulation technology to shields heterogeneous, coupling, complex and distributed characteristics of entity resource, to support the multi-granularity, flexibility, transparency and convenient operation mode.
The resources virtualization-based encapsulations in accordance with application-oriented dependence coupling are classified as: physical level, system software level, application software level and simulation-oriented application level. So, a three-hierarchy mapping is built to explain the mapping relationship of the entity and the virtualization resource, which is used to express the dependence coupling.
The first mapping level can be seen from the following equation (1). The VL1 means the first level mapping result, the
letter “V” signs the virtualization encapsulation resource. Moreover, the letter “d” signs the duplicate set of the virtualization resource. 1 P 1 2 n 1 2 n 11 12 1m 21 21 2m 1 2 n S n1 n2 nm 11 12 1m 21 21 2m n1 n2 nm s VL = {R ,R ,....,R } {R ,R ,....,R } vR ,vR ,....,vR vR ,vR ,...,vR = {vR ,vR ,....,vR } ... vR ,vR ,...,vR vR ,vR ,....,vR vR ,vR ,...,vR ... vR ,vR ,...,vR P V ×V ª º « » « » × « » « » ¬ ¼ = {d{vR },d{vR },....,d{vR }}1 2 n S P ª º « » « » × « » « » ¬ ¼ (1)
With the high performance, a single physical entity resource is encapsulated as multi-logical virtualization resources (VP) according to the application requirement and
entity performance, which can improve the resource customization, utilization and reduce management costs, etc. The system level resource is encapsulated as image file (VS). In
this virtualization-based mapping level, we can simplify the simulation environment deploy and improve the physical resource utilization.
Basing on the various function interfaces, the application software resource whole or partly encapsulated as service (Va),
which can support the requirement of simulation-oriented application. So, equation (2) is used to explain this process.
2 1 2 n 1 11 12 1m 21 21 2m 1 n1 n2 nm 11 12 1m 21 22 2m n1 n2 a VL = {R ,R ,...,R } vR ,vR ,....,vR vR ,vR ,...,vR = ... vR ,vR ,...,vR
i{vR },i{vR },....,i{vR } i{vR },i{vR },....,i{vR } =
...
i{vR },i{vR },....,i{v i i a V VL VL × ª º « » « » × « » « » ¬ ¼ 1 1 1 nm , VL R } i i a VL VL ª º « » « » × ∈ « » « » ¬ ¼ (2)
Ra signs the application software resource, and VL1 i
is the subset of VL1 which satisfies the requirement of Ra. In
addition, the letter “i” signs the instance set of the virtualization resource, which could provide the same function or service during the execution. Others symbols signification can see from the illustration of equation (1).
The simulation-oriented application resource is developed or encapsulated as a service (Vo) registered in the grid
environment. It can be illustrated in the following:
3 o 1 2 n 2 1 2 n 2 1 2 n 2 2 2 o o VL = {R ,R ,...,R } ={vR ,vR ,...,vR }
={i{vR },i{vR },...,i{vR }} , VL
i i i i V VL VL VL VL × × × ∈ (3)
Ro means the simulation-oriented application resource and
others symbols signification can see from the illustration of (1) and (2).
B. Virtulizaiton Resource Discovery Stage
1) Virtualization Simulation Resource Description
The simulation resource always belongs to varied distributed units, which concerned with multidisciplinary knowledge, such as mechanics, acoustics, optics and so on. So, in order to achieve efficient resource discovery, scheduling and guarantee the simulation application performance, we should establish the uniform, standard virtualization resource description, which also can be used to registry resource in the virtualization-based simulation environment.
According to the mapping result, we summarize the attributes of the virtualization resource into two categories, one category is function or service can provide for the upper level; another category is the requirement of the lower level. So, the resource in the virtualization-based simulation grid was described as: vrresource =<R {R-info{R-name,R-classification,...,R-address}, R-fundes{fundes,HasInput,HasOutput,...,Init} }}, R {R-precision, R-granularity}, PA CR : 3 2 1 R {VL ,VL ,VL }, R {R-AR,R-SR,R-PR}> MR RA (4)
The set of RPA and RRA respectively represents these two
categories. The set RPA not only includes the
function(R-fundes) which provides for the upper but also the resource basic information(R-info) that in other view could be considered as the function, such as name, classification, etc.. The set RRA mainly includes three levels requirements
including application software aspect(R-AR), the system aspect(R-SR) and hardware aspect(R-PR). In order to eliminate dependence hierarchy and complication, RRA just describe the
proximate level requirement. In our framework we adapt the multi-granularity modeling technology, so, a model could be composed by several sub-levels components. The RCR was
used to explain this relationship and will be used in the scheduling to discovery the multi-level models and schedule composition. The RMR means the existing mapping relations
among the resources, which will be mainly used in resource
scheduling mechanism to define the RRA set. In addition, RRA
and RMR depend on the specific situation, so they may be the
empty set. By the way, in our application, we usually take RPA
as the primary factor to get an application oriented resource view.
2) A Multi-phase Discovery based on Multi-Mapping
The first stage of scheduling takes a multi-phase discovery process, which built on the semantic-based matching [15]. The following is the three-phase:
RPA matching-> RMR examining-> RRA matching
In order to prevent NP problem and guarantee the efficiency, the “RMR examining” step is to check the RMR set
and decide the scale of RRA. From (1-3), we know that if the
corresponding set RMR is not empty, not only means the
resource already got the support of bottom (RRA) or deployed,
but also implies there must be the same resource which RMR is
empty. Moreover, different stages of matching may use different attributes of resources. So, the following pseudo code introduced in the multi-phase discovery process:
Figure 3. Multi-phase Discovery Process.
We take the RPA matching process as example to explain
the matching algorithm. Firstly, assumed the RPA of provided
resource P had
α
attributes, requested resource R(RPA)hadγ
attributes, the resource matching process can be explain in equation(5). PA i PA m PA i PA i PA j m 1 1 j P(R ) R(R ) , i {1,2, , },(i<k ,j {1, 2, , }) (P(R ) ) max (P(R ) , R(R ) ) d k m d j M λ M α γ γ = = = ∈ ≤ ∈ = " "
*
(5)Input: Simulation Application Description Output: Virtualization Resource pool
do matching RPA
if RPA is application oriented if RMR is not Ø then
set RMR =VL3 break;
else set RMR ={R-AR,R-SR,R-PR}
do matching RRA end do RRA if RPA is software oriented if RMR is not Ø then set RMR =VL2 break; else set RMR ={ R-SR ,R-PR } do matching RRA end do RRA if RPA is system oriented if RMR is not Ø then set RMR =VL1 break; else set RMR ={ R-PR} do matching RRA end do RRA end do RPA
d PA i
M (P(R ) ) is the degree of the resource P match request
R, its value [0~1]. In addition, the preciseness of RPA resource
mostly decides by the RCR.
With the development of M&S technology, some resource may be composed by sub-component, so, the RCR should be
taken into account. n i P(RP A)
*
is defined as the RCR set whichcomposes P, n is the composition layers, (5) can be extended to:
PA i PA i PA j PA i PA j 1 1 R(R ) (P(R ) ) max{max (P(R ) , R(R ) ), max (P(R ) , } d d n d j k M M M λ μ = = =
*
(6)After this multi-phase, a virtualization resource pool is be set up according to the specific application.
C. The Resource Dynamic Dependence Injection based on Multi-mapping
This stage is to select the appropriate resource from resource pool and inject it to the entity resources to construct the VMs(Virtual Machines) according to the application requirement. Basing on the mapping relationship, this stage can be regarded as the optimization instantiation of VL1, VL2 and
VL3.
In order to guarantee the performance, especially the real-time capability and load balancing, the simulation operation takes relative optimal performance resource. According to the requirement of simulation application, the capability parameters of the resource performance can be divided into two kinds. One is the matching degree of discovery; another is the parameter obtained by the monitor. The equation (7) calculates the resource performance. M Rd{ PA} is the matching degree and M R{ PA} respectively presents the status of the resource itself such as state, version, computing performance, I/O and so on.
j 1 1 ( , { } )
max
(
)
{
}
m j PA d PA PA i i M ROptimal R
λM R
= ==
∏
¦
(7)To get the optimal resource of the system software level, application software level and simulation-oriented application level, we mainly base on the parameter
M R
d{
PA}
. However,the physical level resource depends on the parameterM R{ PA}, which means commputing performance and communication performance in our application. For computing performance, CPU’s main frequency and memory resource are used to describe it, and signed asCalc node( i) .For communication performance, we consider communication delay and speed of node in the muster is respectively signed as DELAY node node( i, j) and SPEED node node( i, j) . The physical level resource communication performance can be described by (8).
( , ) { ( , ),
( , ) | 1,2, , , }
i j i j
i j
COMM node node DELAY node node
SPEED node node j M i j
=
= " ≠ (8)
The dynamic dependence injection of scheduling is shown in Fig.4., it also can be seen as the simulation resource just-in-time binding or dynamic deployment process.
Figure 4. Dynamic Dependence Injection.
After the dependence injection, the simulation engine imports parameters and invokes simulation execution.
V. AN ILLUSTRATION EXAMPLE
The prototype system is mainly composed of control, multi-body dynamics and hydraulic models, and a variety of tools, such as MATLAB, ADAMS and EASY5, etc.. The users through the portal, which provided by virtualization-based simulation grid, dynamically constructs the simulation applications to carry out various simulation problem solving tasks.
In virtualization-based application system, the simulation model services and software tools are encapsulated based on resource virtualization technology and deployed dynamically in the distributed computing environment (including high-performance computer cluster).All encapsulated resource the platform can generate one or more instance for user who applies for using it. So, even the application number increases, the entity resources number is not more than the static coupling way. And, the injection way can make the resource usage more flexible and efficient. Users can do simulation task many times to complete the optimized design of virtual prototype system.
Input: Resource Pool& Mapping Relationship Output: Dependence Injection
Step1: // Instantiation VL3 1 2 ( d{ }) ( d{ { }, { },..., { n}} )o Max M Vo ←Max M i vR i vR i vR 11 12 1 21 22 2 1 2 { }, { },...., { } { }, { },...., { } ... { }, { },...., { } m m a n n nm a i vR i vR i vR i vR i vR i vR V i vR i vR i vR ª º « » « » ← « » « » ¬ ¼
SelectMax M Va( d{ }) to inject Max M Vo( d{ }) step2: // Instantiation VL2
1 2 n S
{d{vR },d{vR },....,d{vR }} S
V ←
SelectMax M Vs( d{ }) to inject Max M Va( d{ }) step3: // Instantiation VL1
if VL1 is not Ø then
{ }
A R−PR { -R PR of I VL} ( 1)
// “I” means Instantiation set; ”A” means assigned
if A R{ −PR}i≤
¦
Calc R({ −PR}) then Select Max A R PR( { - } ) i to inject Max M Vs{ d( )}else
{ } ( ({ }
{ ( d{ }), ( d{ })}))
Max R PR Max Calc R PR towords Max M Vo Max M Vs
− ← −
Select
( ( { } , {i } ))j
Min COMM Max R−PR A R−PR to inject
{ d( )}
Max M Vs
else
The Fig.5 shows resource number comparison between static coupling scheduling and dynamic dependence injection.
Figure 5. Entity Resource Number Comparision
The injection scheduling mode also has a good load balance performance. In the Fig.6, the DOS console view shows the virtualization resource capability sequence, the system selects vm190, vm191, vm192, vm233 and vm234 as simulation nodes to inject, which has the comparatively low load.
Figure 6. Scheduling Execution of Prototype System
By the virtualization technology, the simulation application dose not need to consider the physical environment, it gets the full and dynamic sharing of resources. So, as compared to the traditional implementation, the development costs can be reduced by 30%, especially with compute-intensive increasing.
VI. CONCLUSION
A virtualization-based scheduling mechanism is proposed and key issues are addressed. According to the simulation application requirements, it introduces the virtualization technology to extend simulation resource scheduling pattern, and develop a transparent, efficient, customization operation dynamic dependence injection mode. Moreover, it simplifies the simulation complexity and improves the efficiency utilization of simulation resources and simulation operation. It was applied in some applications and proved its effectiveness verification. Future work will look into adopting the
virtualization migration technology to improve the existing simulation self-adapt migration mechanism.
ACKNOWLEDGMENT
This paper is supported by National Defense Key Lab, and authors should like to express the sincere thanks to all colleagues for their help and valuable contribution.
REFERENCES
[1] KATARZYNA Z, AL FREDO T R and ZHAO Zhiming, “Grid services for HLA - based distributed simulation frameworks,” Proceeding of European Across Grids Conference. Santiago de Compostela, Spain: Springer - Verlag, 2003,pp.147 -154.
[2] Georgios, Theodoropoulos. DS - grid: large scale distributed simulation on the grid e-science sister project, 2006, http:// www.cs.bham.ac.uk/ research/ project s/dsgrid/.
[3] PEARLMAN L, NEES grid, 2006, http://it.nees.org/support/demos/ system. php.
[4] Magnetar Games,Federation grid, 2006,http://www.federationgrid.org. [5] LI Bohu, CHAI Xudong and DI Yanqiang, “Research on Service
Oriented Simulation Grid,” the Proceedings of ISADS, China, 2005, pp. 7-14.
[6] Bo Hu Li, Xudong Chai and Baocun Hou, “Research and Application on CoSim (Collaborative Simulation) Grid,” Proceedings of MS-MTSA2006,Alberta, Canada, 2006, pp. 13-17.
[7] Strachey C, “Time Sharing in Large Fast Computers,” Proceedings of the International Conference on Information Processing,UNESCO, June 1959.
[8] Lida Zou, Fang-a Liu and Yan Ma, “Grid Service Scheduling Algorithm Based on Marginal Principle”Seventh International Conference on Grid an Cooperative Computing, Oct. 2008,pp.155-184.
[9] Toward Botnet Mesocosms, 2007, http://www.usenix.org/enent/ hothosts07/tech/full_papers/barford/barford.pdf.
[10] Sailer R, Jaeger T and Valdez E, “Building a MAC-based Security Aichitecture for the Xen Opensource Hypervisor,” IBM Research Report RC23629,2005.
[11] R. Chandra, N. Zeldovich, C. Sapuntzakis and M. S. Lam, “The Collective: A Cache-Based System Management Architecture,” In Proceedings of the Second Symposium on Networked Systems Design and Implementation (NSDI 2005), May, 2005,pp. 259-272.
[12] S. A. Herrod (VMware), “The Future of Virtualization Technology,” Keynotes of ISCA 2006, http://www.ece.neu.edu/conf/isca2006 /docs/Herrod-keynote.pdf.
[13] Hanbing Liu, Hongyi Su and Shouyi Zhan, “Research and Application for Distributed File Management System Base on Web in the Distributed Military Oriented Virtual Environment,” Systems Engineering and Electronics, vol. 3,2009.
[14] Hanbing Liu, Hongyi Su and Xudong Cai, “Study on Model Resource Semantic-based Dynamic Discovery in Military Oriented Simulation Grid,” Proceedings of the 2008 12th International Conference on Computer Supported Cooperative Work in Design, April 2008, pp.529-534.
[15] R. Akkiraju, R.Goodwin and P.Doshi, “A Method for Semantically Enhancing the Service Discovery Capabilities of UDDI,”Proceedings of IJCAI Information Integration on the Web Workshop, Acapulco, Mexico, August 2003,pp.27-46.
[16] Yiyou Dong, Jianhua Yang and Zhaohui Wu, “ODSG: An Architecture of Ontology-based Distributed Simulation on Grid, ” In Proceedings of the First IEEE International Multi-Symposiums on Computer and Computational Science (IMSCCS’06 ),Vol. 1, pp.759-765,June 2006. [17] GT 4.0: Information Services, 2006, http://www.globus.org/toolkit