Table of Contents
Globus XIO is an extensible input/output library written in C for the Globus Toolkit. It provides a single API (open/close/read/write) that supports multiple wire protocols, with protocol implementations encapsulated as drivers. The XIO drivers distributed with 4.0 include TCP, UDP, file, HTTP, GSI, GSSAPI_FTP, TELNET and queuing.
In addition, Globus XIO provides a driver development interface for use by protocol developers. This interface allows the developer to concentrate on writing protocol code rather than infrastructure, as XIO provides a framework for error handling, asynchronous message delivery, timeouts, etc.
The XIO driver-based approach maximizes the reuse of code by supporting the notion of a driver stack. XIO drivers can be written as atomic units and stacked on top of one another. This modularization provides maximum flexibility and simplifies the design and evaluation of individual protocols.
Features new in release 4.0
- UDT driver.
- Mode E Driver
- Telnet Driver
- Queuing Driver
- Ordering Driver
- Dynamically loadable drivers.
Other Supported Features
- Single API to swappable IO implementations.
- Asynchronous IO support.
- Native timeout support.
- Data descriptors for providing driver specific hints.
- Modular driver stacks to maximize code reuse.
- TCP, UDP, file, HTTP, telnet, mode E, GSI drivers.
Deprecated Features
- GSSAPI_FTP driver now distributed with the GridFTP Server
The API for GlobusXIO has not changed to any significant degree since its introduction. All other usability issues relate to the compilation and installation of the libraries and are therefore subject to the usability of the installation tools found at the Toolkit Downloads page.
Protocol changes since GT version 3.2
- None.
API changes since GT version 3.2
-
globus_xio_stack_copy
added to the API. This allows a user to duplicated a configured stack. -
globus_xio_driver_set_eof_received
added to the driver API. This function allows drivers to have multiple outstanding reads at one time. -
globus_xio_driver_eof_received
added to the driver API. Working in conjunction withglobus_xio_driver_set_eof_received
to allow drivers to have multiple outstanding reads. - Users can now pass in a NULL callback for timeouts and it is assumed that when time expires the user wants the operation to timeout. Previously a user callback was required where the user would decide if they wanted the timeout.
XIO depends on the following GT components:
- Globus Core
- Globus Common
- Globus GSSAPI
Tested Platforms for XIO:
Linux
- Mandrakelinux release 10.1
- SuSE Linux 9.1 (i586)
- Debian GNU/Linux 3.1
- Red Hat Linux release 9
SunOS
- SunOS 5.9 sun4u sparc SUNW,Sun-Fire-280R
MacOS
- Darwin Kernel Version 7.9.0
Additionally all platforms supported by GT4.0 Platforms
Associated standards for XIO:
Adoption of standards in XIO is determined by the drivers. All drivers distributed by XIO are compliant with the protocol they implement.
Click here for more information about this component.