/** The agent package is for creating agents, i.e. independent programs that may run anywhere in the network. Jaivox uses these to place any of the different functions within Jaivox anywhere in a network, or within the same computer. The use of agents in the same computer helps keep different functions separate. The only communication between, for example, a speech recognizer and an interpreter will be through sockets. The Java virtual machine of one will not affect the other, helping reduce both memory load on a single virtual machine and also helping isolate bugs. In this implementation, each agent extends Server. A connection between Servers is managed by a Session. When a Server receives a message through a Session, it uses a Responder to understand the message and to produce a response. TestServer is an example of a Server. It has a command line interface to allow users to enter commands to the Server. It uses TestResponder to produce some simple responses to certain queries. The messages sent between Servers is parsed and assembled using the MessageData class. The messages are in a simplified form of the Json format. MessageData handles this simplified format. If you need to use arbitrarily complex Json messages, it is better to use another full-scale Json implementation. */ package com.jaivox.agent;