IGE showcases‎ > ‎

IGE Globus Online Client

IGE GO Client 

Ioan Lucian Muntean and Marius Joldos

1  Description of the application

IGE Globus Online Client (named here GOClient) is a Java application based on the Eclipse-plugin and Rich Client Platform technology [1]. The application acts as a client to the Globus Online service [6] for fast, reliable, secure, and high-performance data movement. As described in the Globus Online site presentation, "Globus Online is a fast, reliable file transfer service that makes it easy for any user to move any data anywhere. Recommended by HPC centers and user communities of all kinds, Globus Online automates the time-consuming and error-prone activity of managing file transfers, so users can stay focused on what’s most important: their research".
The main purpose of our work, GOClient, is to simplify the use of Globus Online services without a browser. It also demonstrates a way of using Globus Online client capabilities in Eclipse-based applications.

GOClient users are able to connect to endpoints hosting their data, then to place transfer requests to the Globus Online service. The status of the requests is presented to the user in the application. In its first version, the program uses credentials stored on MyProxy [4] servers.

The current version (March 2013) works on Windows 32 bit. The future release will have packages for Windows 64 bit and Linux 32 bit and 64 bit distributions as well.

The application was elaborated within the frame of the FP7-funded project Initiative for Globus in Europe (IGE) [3]. The authors are working for the Technical University of Cluj-Napoca [5], partner institution in IGE.

2  Usage Example Step-by-Step

2.1  Prerequisites

The user of GO Client needs:

  • User grid credentials stored on a MyProxy server (see myproxy-init man page).
  • User credentials for the Globus Online service (see the globus online Login Page). To register with Globus Online, please proceed as directed in the globus online SignUp page.
  • The user be registered in the gridmap file on the systems used as endpoints. In order to get registered in the gridmap file of a system you intend to use as Globus Online endpoint you should ask the system administrator of that system (endpoint) to register your user.

The application requires the following to be available on the end-user machine:

  • Software: Java JRE 1.6+;
  • A Certification Authority (CA) certificate of the issuer of the user’s grid credentials, installed in the correct location (e.g. .globus\certificates\ folder in the user’s home directory). Examples for grid credentials locations:
    • In case that the operating system used is MS Windows XP and user jim a typical location would be C:\Documents and Settings\jim\.globus\certificates\.
    • For MS Windows 7 and same user a typical location would be C:\Users\jim\.globus\certificates\.
        An example contents of this directory is given in Appendix.
  • Ports 2811 (needed by GridFTP control channel connection) and 7512 (needed for MyProxy interaction) open for incoming connections – i.e. not blocked by firewalls. Ask your system administrator to help you with this matter as well.

2.2  Start GOClient

To start GOClient you should unpack (i.e. unzip) the GOClientxxx.zip (the letters xxx stand for the version numbering of the archive) to a convenient folder, preserving the paths stored in that archive. This ensures that files stay grouped together. Then, select the executable in the folder GOClient, named (for MS Windows) GOClient.exe and run it (double-click on it). A window with the program views, similar to the one shown in Fig. 1 should appear on your Desktop.

2.3  Prepare the connection to the Globus Online Service

In the Configuration Settings window of GO Client (see Fig. 1) the user should enter the following data:

  • The path to the certificate bundle accepted by the Globus Online Service; a locally stored certificate bundle can be loaded by pressing the Ctrl key when the corresponding field has focus, as shown in Fig. 2. You can find the gd-bundle_ca.cert file in the sub-directory named certificates of the application installation folder.
  • The Globus Online user name that will be used by GO Client for the communication with the Globus Online Service;
  • The name and port of the host of the MyProxy service on which the user’s grid credentials are stored;
  • The user name and password needed to retrieve the user’s grid credentials from the MyProxy service.



Figure 1: Initial application window


Figure 2: Selection of CA Certificates

All the fields from Fig. 1 are mandatory. The application configuration is saved when the Save button is pressed (see Fig. 3).




Figure 3: Saving the application credentials configuration


Note: The settings are not persisted on the user machine from one application session to another. A new working session with GO Client requires the user to perform this step again.


2.4  Working with the endpoint list

You can list the available endpoints using the Endpoint List Viewer. There you get a list of available endpoints by pressing the refresh icon. An example result is shown in Fig. 4. The endpoint list can be sorted by endpoint names by clicking on the Name column header. A context menu is available here as shown in Fig. 5. This provides for operations on endpoints, currently: list, creation, activation, and deactivation.




Figure 4: Listing the available endpoints



Figure 5: Endpoint is now selected. Notice the context menu obtain by right-clicking and endpoint.

2.5  Browse the Content of an Endpoint

Type the name of the endpoint in the Endpoint #1 or Endpoint #2 fields and press the left or right refresh button, respectively (see Fig. 6 for loading the content of the left window). 


Figure 6: Loading the left side endpoint information

2.6  Select Source and Destination of the Data Transfer

Use the Globus Online File Transfer View. The steps to perform a transfer are:

  • Write endpoints name in corresponding field (i.e. in Endpoint #1 or Endpoint #2).
  • Write the desired paths in Path #1 and Path #2 (e.g. ~, /tmp/).
  • Select one or more files from one or the other endpoint in the tree window below the endpoint name.

Figure 7 shows an example.


Figure 7: Preparing a transfer

2.7  Initiate and Control the Data Transfer

After performing the steps in section 2.6:

  • Click on transfer button (thick arrow)
  • Check transfer in Transfer List View

Figure 8 shows an example of transfer running.


Figure 8: Transfer started

You can also transfer multiple files. To achieve this:

  • Input the desired source and destination directory names in the Endpoint# fields.
  • Refresh the directory contents by clicking the refresh button
  • Mark the files to transfer
  • Click the transfer button to initiate transfer

An example of such a transfer case is given in Figure 9

Figure 9. Transfer multiple files

3  Troubleshooting

Messages (and also error messages) are displayed in the Error View which can be shown from the general view menu. Table 2 explains what to do when you encounter receive error messages for GOClient.

Table 2: Troubleshooting information
Stage Symptom Solution
After filling the Configuration Settings – usually when you click on the "Refresh endpoint list" button You get an Unexpected exception and Initialization of JGOTransferWrapper stating java.lang.IllegalArgumentException: Password must be at least 6 characters long a) Check if the MyProxy password is filled; and fill it;
b) Check if you have the certificates stored as stated in 
2.1
idem You get an Unexpected exception and Initialization of JGOTransferWrapper stating MyProxy get failed. Caused by java.net.UnknownHostException: "???" Check if you have an active Internet connection; check spelling of MyProxy host name
idem You get an Unexpected exception and Initialization of JGOTransferWrapper stating MyProxy get failed. Caused by org.globus.myproxy.MyProxyException: No credentials exist for username "???" Check spelling of MyProxy user name
idem You get an Unexpected exception and Initialization of JGOTransferWrapper stating MyProxy get failed. Caused by org.globus.myproxy.MyProxyException: X509_verify_cert() failed: certificate has expired Renew MyProxy credentials
idem You get an Unexpected exception and Initialization of JGOTransferWrapper statingMyProxy get failed. Caused by org.globus.myproxy.MyProxyException: Bad password invalid credential passphrase Check spelling of MYproxy password
idem You get an Unexpected exception with detail org.globusonline.JGOTransferException: Endpoint List failure: ClientError.AuthenticationFailed(400 Authentication Failed) on request ’null’ resource ’null’: null Check spelling of Globus Online Username
When you press the "Refresh directory list" button or the "Transfer to" button in the Globus Online File Transfer view You get an Unhandled event loop exception with detail java.lang.ClassCastException: java.util.ArrayList cannot be cast to ... Check endpoint (endpoint name may be misspelled; it may be inexistent; it may be inactive)
When you press the "Transfer to" button in the Globus Online File Transfer view and files are correctly selected for transfer You get an Unhandled event loop exception with detail java.lang.ClassCastException: java.util.ArrayList cannot be cast to ... Ignore the event

4  Communication

Bug reports or feature requests can be submitted as tickets to the Request Tracker of IGE [2] or with an email to the address support@ige-project.eu. In order to submit tickets we kindly advise you to join the European Globus Community Forum (www.egcf.eu) Tickets can be submitted following the procedure described in the Requirements & Issues page.

5  Appendix

An excerpt of a sample contents of .globus\certificates\ directory for an exmaple user named jim and MS Windows XP.

 Volume in drive C has no label.
 Volume Serial Number is 2810-D63C

 Directory of C:\Documents and Settings\jim\.globus\certificates

09/30/2012  03:07 AM    <DIR>          .
09/30/2012  03:07 AM    <DIR>          ..
07/04/2012  02:07 PM             1,448 0119347c.0
07/04/2012  02:07 PM               621 0119347c.namespaces
07/04/2012  02:07 PM             2,238 0119347c.signing_policy
07/04/2012  02:07 PM             1,391 01b5d333.0
07/04/2012  02:07 PM               459 01b5d333.namespaces
07/04/2012  02:07 PM               164 01b5d333.signing_policy
07/04/2012  02:07 PM             1,257 02a45931.0
07/04/2012  02:07 PM               432 02a45931.namespaces
07/04/2012  02:07 PM               287 02a45931.signing_policy
...
07/04/2012  02:07 PM                46 CERN-Root.crl_url
07/04/2012  02:07 PM               334 CERN-Root.info
07/04/2012  02:07 PM               566 CERN-Root.namespaces
07/04/2012  02:07 PM             1,350 CERN-Root.pem
07/04/2012  02:07 PM               284 CERN-Root.signing_policy
07/04/2012  02:07 PM                72 CERN-TCA.crl_url
07/04/2012  02:07 PM               379 CERN-TCA.info
07/04/2012  02:07 PM             2,204 CERN-TCA.pem
07/04/2012  02:07 PM               269 CERN-TCA.signing_policy
...
07/04/2012  02:07 PM                54 DFN-GridGermany-Root.crl_url
07/04/2012  02:07 PM               494 DFN-GridGermany-Root.info
07/04/2012  02:07 PM               783 DFN-GridGermany-Root.namespaces
07/04/2012  02:07 PM             1,294 DFN-GridGermany-Root.pem
07/04/2012  02:07 PM               522 DFN-GridGermany-Root.signing_policy
07/04/2012  02:07 PM                49 DFN-SLCS.crl_url
07/04/2012  02:07 PM               388 DFN-SLCS.info
07/04/2012  02:07 PM               432 DFN-SLCS.namespaces
07/04/2012  02:07 PM             1,257 DFN-SLCS.pem
07/04/2012  02:07 PM               287 DFN-SLCS.signing_policy
...
07/04/2012  02:07 PM                37 GermanGrid.crl_url
07/04/2012  02:07 PM               395 GermanGrid.info
07/04/2012  02:07 PM               498 GermanGrid.namespaces
07/04/2012  02:07 PM             1,631 GermanGrid.pem
07/04/2012  02:07 PM               267 GermanGrid.signing_policy
07/04/2012  02:07 PM                52 Grid-Ireland.crl_url
07/04/2012  02:07 PM               424 Grid-Ireland.info
...
07/04/2012  02:07 PM                37 ncsa-gridshib-ca.crl_url
07/04/2012  02:07 PM               375 ncsa-gridshib-ca.info
07/04/2012  02:07 PM               577 ncsa-gridshib-ca.namespaces
07/04/2012  02:07 PM             1,399 ncsa-gridshib-ca.pem
07/04/2012  02:07 PM               418 ncsa-gridshib-ca.signing_policy
...
07/04/2012  02:07 PM                40 NIKHEF.crl_url
07/04/2012  02:07 PM               442 NIKHEF.info
07/04/2012  02:07 PM               630 NIKHEF.namespaces
07/04/2012  02:07 PM             1,704 NIKHEF.pem
07/04/2012  02:07 PM               342 NIKHEF.signing_policy
07/04/2012  02:07 PM                34 NorduGrid.crl_url
07/04/2012  02:07 PM               415 NorduGrid.info
07/04/2012  02:07 PM               461 NorduGrid.namespaces
07/04/2012  02:07 PM             1,371 NorduGrid.pem
07/04/2012  02:07 PM               176 NorduGrid.signing_policy
...
07/04/2012  02:07 PM                43 PolishGrid.crl_url
07/04/2012  02:07 PM               401 PolishGrid.info
07/04/2012  02:07 PM               404 PolishGrid.namespaces
07/04/2012  02:07 PM             1,468 PolishGrid.pem
07/04/2012  02:07 PM               145 PolishGrid.signing_policy
...
07/04/2012  02:07 PM                42 RomanianGRID.crl_url
07/04/2012  02:07 PM               433 RomanianGRID.info
07/04/2012  02:07 PM               508 RomanianGRID.namespaces
07/04/2012  02:07 PM             1,720 RomanianGRID.pem
07/04/2012  02:07 PM               272 RomanianGRID.signing_policy
...
07/04/2012  02:07 PM                50 TERENA-eScience-SSL-CA.crl_url
07/04/2012  02:07 PM               593 TERENA-eScience-SSL-CA.info
07/04/2012  02:07 PM               397 TERENA-eScience-SSL-CA.namespaces
07/04/2012  02:07 PM             1,684 TERENA-eScience-SSL-CA.pem
07/04/2012  02:07 PM               249 TERENA-eScience-SSL-CA.signing_policy
07/04/2012  02:07 PM                55 TERENAeSciencePersonalCA.crl_url
...
            1109 File(s)        859,824 bytes
               2 Dir(s)   1,335,328,768 bytes free

References

[1]
Clayberg, E., and Rubel, D. Eclipse plug-ins 3rd Ed. Addison-Wesley, 2008.
[2]
IGE Project. IGE request Tracker. Web site, 2012.
[3]
IGE Project. Initiative for Globus in Europe. Web site, 2012.
[4]
Novotny, J. An Online Credential Repository for the Grid: MyProxy. In Proceedings of the Tenth International Symposium on High Performance Distributed Computing (HPDC-10), IEEE Press (2010), , pp. 104–111.
[5]
Technical University of Cluj-Napoca. Technical University of Cluj-Napoca. Web site, 2012.
[6]
University of Chicago. GlobusOnline. Web site, 2012.