Description of this example

We are now going to start working on a more elaborate delegation example which uses two services:

In our example, PhysicsService will be responsible for undertaking an extremely complex calculation. For this, it will need to invoke MathService several times. However, there's a catch:

This all means that, for the example to work, PhysicsService must invoke MathService using the O=Globus,OU=GT3 Tutorial,CN=Borja Sotomayor credential. Since PhysicsService is running in a container that has a different set of credentials (those of the globus user), PhysicsService will only be able to access MathService if the client application (run by the borja user account) delegates its credentials.

In fact, to show that this is all true, we will test PhysicsService without delegation and with delegation.

The following is an illustration summarizing the whole example:

As shown in the illustration, PhysicsService has a single method getAnswerToLifeTheUniverseAndEverything which will be invoked by the client application. This method, in turn, will invoke the add method in MathService several times.