The OODT
grid services
(
product
and
profile
services) use CORBA
or RMI as their underlying network transport. However,
limitations of CORBA and RMI make them inappropriate for
large-scale deployments. For one, both are procedural
mechanisms, providing a remote interface that resembles a
method call. This makes streaming of data from a service
impossible, because there are limitations to the sizes of data
structures that can be passed over a remote method call.
Instead, repeated calls must be made to retrieve each block of
a product, making transfer speeds horribly slow compared to
HTTP or FTP. (Block-based retrieval of profiles was never
implemented, resulting in out of memory conditions for large
profile results, which is another problem.)
Second, both CORBA and RMI rely on a central name registry.
The registry makes an object independent of its network
location, enabling a client to call it by name (looking up its
last known location in the registry). However, this requires
that server objects be able to make outbound network calls to
the registry (through any outbound firewall), and that the
registry accept those registrations (through any inbound
firewall). This required administrative action at
institutions hosting server objects and at the institution
hosting the registry. Often, these firewall exceptions would
change without notice as system adminstrators changed at each
location (apparently firewall exceptions are poorly documented
everywhere).
Further, in the two major deployments of OODT (PDS and EDRN),
server objects have almost never moved, nullifying any benefit
of the registry. Th
is project, OODT Web Grid, avoids the
prolems of CORBA and RMI by using HTTP as the transport
mechanism for products and profiles. Further, it provides a
password-protected mechanism to add new sets of product and
profile query handlers, enabling seamless activation of
additional capabilities.