Monday, October 29, 2007

File Agent Service V0.7

1. Introduction
File Agent Serivce is a web service providing access to the information about community user space. This user space is accessed with Teragrid community certificate. This version provides 7 operations including 3 operations from the previous version.
  • queryDataSpaceInfo
  • registerDataSpaceInfo
  • removeDataSpaceInfo
  • createDataSpace
  • queryUserSpaceConvention
  • registerUserSpaceConvention
  • removeUserSpaceConvention

Section 2 will discribe how to access the service, and each of the operations are described in the section 3.

2. Access to the service
Required jar file:
-FileAgentService.aar and basic jar file for axis2.
Download tarball [48MB contains all the lib and source code].
Service is now up and running on,
http://gridfarm002.ucs.indiana.edu:8080/axis2/services/FileAgentService
The WSDL file is available at,
http://gridfarm002.ucs.indiana.edu:8080/axis2/services/FileAgentService?wsdl
For detail code example, please refer the sample code.

3. Operations
3.1 queryDataSpaceInfo
This operation provides query interface to the data space information. Input parameter is query statement described in WSDL and output parameter is the query result.
Here is how to build an input query for this operation. First, dataspace information includes following items,
  • username : user's portal id
  • host: remote location of the data resource
  • port: port number of the data resource
  • commCertDN: DN of the community certificate that used for this resource
  • protocol: protocol to access this resource
  • LogicalUserSpace: logical user space assigned for the user

Above items are accessible through getter/setter methods of the FASBean object that is included in the FileAgentService.aar file.

For example,
FASBean fb = new FASBean();
fb.setUsername("fiona");
fb.setHost("gridfarm002");
fb.setPort("123");
fb.setCommCertDN("nydb");
fb.setProtocol("gridftp");
fb.setLogicalUserSpace("/home/communityspace/fiona");

For the queryDataSpaceInfo operation, you can build very simple query without knowing any of complicated query language. Specify items that you know exactly. Leave items as null if you are not sure. This operation will process the null item as a wildcard in the query.

For example, if you want to get all the dataspace information about user A in the host GGG, then set the username and host and leave everything else as null. (Just don't set the value).

3.2 registerDataSpaceInfo
This operation registers new data space information. Define FASBean and use it as parameter of this operation. Please refer the sample code.

3.3 removeDataSpaceInfo
This operation removes data space inforamtion. This works very similar to the queryDataSpaceInfo operation. Therefore, if you want to remove all of the information about user A, you should specify username only, and leave all of other itesm null. Please note if you set complete null input parameter to thie operation, it will completely reset your database.

3.4 createDataSpace
[TODO] This operation is almost same with thte registerDataSpaceInfo operation. On top of creating data space information, this operation will access the remote resource and create your's logical space as well.

3.5 queryUserSpaceConvention
This is a utility operation for the advanced users. If the administor wants to organize ther user's logical space with more standard convention, 3.5 ~ 3.7 operations should be very useful.
This operation provides following informations,
  • host: host name of the remote resource
  • port: port number of the remote resource
  • attr: attribution of this convention
  • defaultLoc : convention of the user space
For example, let's assume that an administrator should organize users' data under the community space which is /g/d/commUser. This space is hosted by host A and port 1234. Also this host has multiple mounted resources such as /tg/h/j/hpss for the HPSS server, and /sc/datacatacitor for the High performance data capacitor. The user's space can be organized following way.

host: A
port: 1234
attr: High performance data capacitor
defaultLoc: /sc/datacapacitor/userspace/username

host: A
port: 1234
attr: Network File System
defaultLoc: /g/d/commUser/userspace/username

host: A
port: 1234
attr: HPSS
defaultLoc: /tg/h/j/hpss/userspace/username

Based on these informations, when a new user tries to create a data space, the system can query the convention of the defaultLoc and create the user space accordingly. Also the application can show the attribute of the location so that it can provide more precise information instead encrypted directory path.

You can use this operation in very similar way to the queryDataSpaceInfo. Specify all of the items you know exactly and send the request. The operation will process your query as predicates combined as AND predicates and process non-specified items as wildcard items.

3.6 registerUserSpaceConvention
This operation registers new User space convention. Section 3.5 explains how to organize the community user space using this operation. For more information, please refer the sample code.

3.7 removeUserSpaceConvention
This operation removes user's space convention. For more information, please refer the sample code.

Appendix. Sample Code
Download tarball [48MB contains all the lib and source code]
Sample Code Directory: src/org/ogce/fileagentservice/client
AddNewUserSpace.java
QueryUserSpace.java
RemoveUserSpace.java
ConventionExample.java

No comments: