Globus Toolkit 3.2: Developer's Guide
Overview
API
Coding Guidelines
Asynchronous Event Handling
Best Practices (coming soon)
Porting Guide (coming soon)
>Samples
Third Party Support
Sample Code
The sample WSDL and XML Schemas are located in <ogsa root>/schema/samples.
The source code is located in <ogsa java root>/<source dir>/org/globus/ogsa/impl/samples.
In the binary distribution, source dir is 'samples', and in the source distribution it is 'src'.
To build the samples, run:
ant samples
Many samples have:
- simple
command line client demos in
<ogsa java root>/<source dir>/org/globus/ogsa/impl/samples/<sample>/client - GUI clients in
<ogsa java root>/<source dir>/org/globus/ogsa/gui
This page has the following topics:
Running the samples with Ant
To run the samples, you'll need Ant (see Support Software.)
- Run the standalone service container by typing:
ant startContainer [-Dservice.port=<port>]
- Run the demo client by typing:
ant gui [-Dservice.port=<port>]
Note: You can set the service.port property in the <ogsa
java root>/ogsa.propertiesfile to change the port the service container will listen on (default is 8080).
Alternatively you can pass in -Dservice.port=<port> on the command line.
To stop the container use ant stopContainer or send it a kill signal.
Overview of Samples
This section briefly describes samples of code that are installed with the Globus Toolkit 3.2:
- Counter
- Notification
- Weather
- Chat
- Registry
- Guide
- Exception
- Array
- Any
Counter
basic A simple counter maintaining the calculated value as state. generate Same as basic counter but defines a Java interface that is used to generate the WSDL for the service. delegation Implementation of the basic counter using the delegation approach. logging Basic counter making use of debug logging. notification Counter demo showcasing use of notifications. secure Basic counter showcasing gsi enabled service. persistent Counter that can recover after a server restart. routable Shows virtual hosting environment routing using our proxy and router framework.
Note: To run this sample you must start up the service container outside of Ant as described in section 2.4 (Quick Start).
Notification
This is a demo designed to showcase notification subscriptions in a gateway service.
Weather
The weather demo shows third party web service integration with a live temperature service. It also shows how to expose your service client GUI dynamically using service data.
This demo shows a Google integration and also demonstrates how RPC/encoded services can be used within our framework.
Chat
This demo illustrates the use of basic notification by providing a simple chat service.
Registry
This demo is a VORegistry service implementing the Registry Port Type and allows remote services to publish their GSHs and service data into a community repository of services.
Guide (off root directory)
Samples discussed in the Core's Java Programming.
Exception
Shows examples of how to use our chained WSDL amd Java exception framework
Array
Demo showing how custom Java objects can be used inside of arrays
Any
Service showing the use of xsd:any extensibility elements from Java.
Service Browser GUI
The Service Browser GUI is designed using the web browser metaphor. You can type in a URL (which is a GSH) to inspect and use a remote service, which will be rendered in the GUI. The GUI framework retrieves the WSDL document for the GSH (displayed in the WSDL tab) and maps Port Types exposed by this WSDL to GUI panes. If an appropriate GUI pane cannot be matched with a given Port Type, a dynamic pane can be used which shapes itself according to the methods exposed by the Port Type.
Note: In this case you will need to add type mappings explicitly
to client-config.wsdd if you use complex types. The encoded counter
sample can be used to showcase this with the dynamic GUI if you enable client
deployment in the build-samples.xml file.
The ServiceGroup Inspection pane displays a list of services exposed by a ServiceGroup service. The entries in this list can be viewed as service links. Double click on an entry to follow the link and render the target service interface in the GUI.
If a factory service is rendered, you can create new transient service instances that will be introspected the same way as described above.