What are some of the alternatives to Web Services in implementing exchanges?
There are many information sharing and system integration architectures to choose from. Web services (i.e., the use of SOAP over HTTP and standards based on SOAP, such as the WS-I Basic Profile, WS-I Basic Security Profile, WS-Security, WS-Reliable Messaging, WS-Addressing, etc.) is not the only viable approach.
Message Queuing (MQ) approaches offer one alternative. In an MQ approach, the sending system forms a message (in the justice world, this should be a GJXDM-conformant message) and uses a software component to place the message in a queue. Often, this queue is "local" to the sending system-either on the same computer or a "nearby" computer that shares a very reliable network with the sending system. The queue at the sending end identifies the destination of the message and sends it to a second queue at the destination, where the message remains until it is retrieved by the destination system. Often, the message is not deleted from the queue at the sending end until it receives confirmation of receipt at the destination queue, thus implementing "reliable delivery" of the message.
MQ approaches require software and hardware infrastructure to support the message queues. The software infrastructure generally makes available application programming interfaces (APIs) that allow developers to place messages in and retrieve messages from queues. These APIs can be proprietary to the manufacturer of the software infrastructure, or they can follow API standards developed by industry consortia (such as the Java Message Service (JMS) APIs.)
File Transfer is a second alternative approach. A file transfer involves a sending system writing a file (in the justice world, this should be a GJXDM-conformant information exchange package serialized to a file) to a local or remote file system. Writing to a remote file system generally involves a file transfer protocol such as FTP or S/FTP (secure FTP). When the file arrives at the destination, the destination system reads and processes it.
Writing and reading transferred files can be accomplished by developing software or using import/export capabilities of a database platform. When developing software for this purpose, developers often use tools such as the .NET XML serialization libraries or Java libraries such as JAX-B or XML Beans.