Definition Channel Data Command

Think of what FTP does? It gets a data connection between 2 computers and processes "get" or "put" commands on the connection. Processing for each of these commands result in the movement of a file (push or pull ) across the data connection A list of properties used in a typical FTP session would be ( IP, userID, password, GET OR PUT, fileName, remoteFileName ). In addition to FTP, if you extend the protocol list to include SSH, SOAP, HTTP, GridFTP, there is not a big change in the list of properties needed to define a connection and to move data on the connection. If you were to wrap all these properties ( keys and values) in a chunk of XML it would be very similar to a ChannelData Command So, the definition for a Channel Data Command is an XML node describing every property needed to build data connections between machines and to move files on the connection. When new data is created, 2 sets of CD commands control the data distribution that runs the full pub/sub circuit. A single CD publish command moves data from the client machine where the data was created to the PostOffice. A set of CD subscribe Commands dispatch copies of data to subscribers from the PO - one command used for each subscriber to the Topic.

Business Semantic - Controls the movement of data

Alot of data is out there. With a simple List of destinations, using this software, you can easily control and re-direct data in your organization or amoung organizations. Whenever you create data, an automatic process gets the data to every other system that needs the data. Data is created and then linked to a dataset event. Used as a wrapper for files (dataSet) or XML (xmlNodeSet), the event's capabilities include directing a series of transport operations affecting the data's subsequent location on the network. Aware of the business semantic of the wrapped data - InvoiceDataSet for example - the event initiates all the infrastructure connections and file movement commands required to get the invoice dataSet sent to every other financial system where it will be needed. Two things are needed to accomplish this :

  1. List of Destinations - where is the data needed
  2. Transport Process - move the data to destination(s)

Channel Data Commands accomplish the 2nd item by controlling the movement of data from a source to a target. A data distribution center or PostOffice is the first stop for the new data, and then the PO forwards data to any subscribers that have expressed their interest in the event. Following standard messaging behavior, the concept of data distribution topic (Topic ) is the mechanism that binds interested designated in the properties of the event. Anywhere that you create data in your business, you can run a simple Java Client program ( an application) in order to issue the event. That simple client program All that is required of the Client software is this information for 2 simple questions : What is your Topic? Where is the data? The latter question has 2 child questions: either What is you FileName? OR What is your XML RootNodeName. movement commands are invoked in response to business data events or due to the arrival at a Servlet of posted requests a designed to process or to consume the commands. As long as the Topic is known, any process that writes data can publish the data by getting an event data wrapper and then firing the event. Clients that generate new data and that want to move that data up to the PO signal a " event.

Architecture - general topic includes commands

Architecture - Feature List

Description Comment
data events trigger things
Client application program creates/fires events
Browser also may be used to fire events - HTTP Request wrapper on an event
handlers consume the data events - standard Java Event propagation model
event handlers dispatch commands to do useful things
event handlers dispatch ChannelData commands
command dispatch decoupled from modules that process (consume) the command
Servlets consume CD commands (HTTP context only)
Thread pools consume CD commands (Client application program context)
protocol determines details for actual data transport ( such as FTP )
Servlets/thread Pools rely on protocol Implementations for data transport
Protocol Implementation sits behind Java Interfaces
Actual data movement via List of alternative implementations (FTP, GridFTP, HTTP, SOAP, SSH)

Events and Listeners as PUB SUB Implementation

Anywhere in the business, on any server, Data is created and then linked to a special kind of event - data-has-been-created-event . Utilizing Listeners - standard modules designed to respond to events - this software launchs activities that move the new data to any and all systems where it is needed. The event-based paradigm means that no scripting or batch jobs (JCL) are needed - the software simply responds to the event and accomplishs the data distribution. A data distribution center or PostOffice is the first stop for the new data, and then the PO forwards data to any subscribers that have expressed their interest in the event. Following standard messaging behavior, the concept of a data distribution Topic is the mechanism that binds listeners to events. Anywhere that data is created in your business, you can run a simple client program ( an application with 4 lines of computer code) in order to trigger the data event. Event handlers then create Channel Data (CD ) commands. CD Commands wrap the process for getting connections and for moving data. Command consumers initiate all the infrastructure connections and file movement commands to get the data everywhere that its supposed to go. Depending on the context, these Commands are consumed either by a Servlet or by a Thread Pool. The actual file transport protocol is determined by a config file declaration listing what type of Factory to use for the implementation of the CD command consumer.

Architecture - Java Source for selected Programs

Program Description
Java Client program data-has-been-created-event Client application program creates and fires the event
FileTopicHandler event-based paradigm, this performs actions in response to data-events
Servlet Program CD Command consumer , note that constructor args include Request and NetworkFileExchangeType an instance of a Channel data command
CreateCDCommand Servlet UI requests to Create and Process a CD command to move data call on this program