Developers Corner This article highlights support in the Access Grid toolkit for uploading data to and downloading data from the venue server. The AG2 toolkit enables users to share files securely and persistently. The venue acts like a shared file system, in many respects: files can be uploaded, downloaded, and removed. A file is owned by the person who uploaded it. And the file persists in the venue until it is removed. The Venue Client displays the data in the venue as part of the current venue state, and handles user requests for file manipulations. Files are uploaded and downloaded via a GSIHTTP connection to the DataStore. To remove a file, a SOAP call is made to the Venue, which passes the request to its DataStore. As of AG2.1, access to the DataStore API is encapsulated in the DataStoreClient module. This simplifies developer access to the DataStore. One can create a DataStoreClient object using the URL to the venue: DataStoreClient GetVenueDataStore(venueUrl) And then access the DataStore programmatically using the following interfaces. LoadData() Refresh the local data description cache DataDescription GetFileData(filename) Get the data description for the specified file Download(filename,localFile) Download the specified file to the given local file. Upload(localFile) Upload the specified local file RemoveFile(filename) Remove the specified file DataStoreFileReader|DataStoreFileWriter OpenFile(file,mode) Open a file in the DataStore with the specified mode ('r','w'); the return value is determined by the mode. The file will be created when the Reader/Writer is Close'd. [filenames] QueryMatchingFiles(pattern) [filenames] QueryMatchingFilesMultiple(patternList) Find files in the local cache that match the specified pattern. This makes it possible for shared applications and other components to access venue data. The DataStoreClient is currently being used in the SharedPresentation application, and will be utilized in other parts of the code in the future. Developers should note that, while access to the data in a venue is relatively open to the individuals allowed in the venue, access controls may restrict data access considerably in the future. Standalone, interactive use of the DataStoreClient API is exemplified in the module itself. Executing the module directly, the user is presented with an ftp-like interface to the data store. [turam@munich AccessGrid]$ python2 DataStoreClient.py https://localhost:8000/Venues/default DataStore> ls 7lyz.pdb DataStore> get 7lyz.pdb Downloading https://localhost:8006/000000fa3e5ba31b007f00000000000133b/7lyz.pdb DataStore> quit This example is solely intended to exercise the module code, not to provide production functionality. But it serves as a useful example of the simplicity of programmatic access to data stores in AG2.