| Task
Dispatch Manager 1.0:
An
Introduction to Task Dispatch Manager
The
Task Dispatch Manager is a system of software for processing tasks
that manage data within a network. A task within the system
identifies a set of data, and a set of operations to be performed on
that data. These operations include consolidation, conversion, and
conveyance. Data from different sources can be consolidated into a
packet, can be converted from one format to another, and transported
to one or more destinations. The definition of what data to use, how
to structure it, what format it should take, and where it should go
is defined as a Task within the system.
Data
sources can be any disk file. Destinations or what are called
Targets can be an email item, a public folder item in Exchange, a
disk file, or a printer. Data can be converted from or to a number
of supported formats. Data formats include, ASCII Text, Comma
Separated Text files, Tab Delimited Text files, XML data, HTML
tables, RTF files, PDF files, TIF files, Excel spreadsheets, ADO
record sets, Dynamic String Array Objects, Zip files, or Postscript
printer files. Tasks are defined using XML and are processed as a
Task Packet.
Some of the more important properties and methods of the MultiValue Server Definition objects include the following:
|
Elements
|
Attributes
|
Description
|
|
Packet
|
|
Root Task
element.
|
|
|
Version
|
Packet
version number.
|
|
|
Date
|
Date
Packet was generated.
|
|
|
User
|
Name of
user generating Packet.
|
|
|
Application
|
Name of
application that generates Packet.
|
|
|
PacketDescription
|
Optional
description of Packet.
|
|
Segment
|
|
Segment
element of a Task Packet. A Segment defines a set of input
files and a set of outputs. There can be one or more Segments
within a Packet.
|
|
|
Description
|
Description
or subject of Segment. Will be used as subject line for any
Email outputs.
|
|
Source
|
|
Source
element of a Segment. Defines a single input file. There can
be one or more Sources within a Segment.
|
|
|
SourceDataType
|
The data
type of the Source input file. Values: Asc, Csv, Tab, Xml,
Htm,
Rtf, Pdf, Tif, Xls, Ador, Dsa, Zip.
|
|
|
Reference
|
Location
reference to Source file.
|
|
|
Discardable
|
Boolean
flag that indicates if the referenced Source file should be
deleted or not once used.
|
|
Output
|
|
Output
element associated with a Source element. An Output element
defines the output specifications for a Source file. There can
be one or more Output elements for a given Source file.
|
|
|
OutputDataType
|
The type
of data that should be outputted which might involve a
conversion from the source data type. Values: Asc, Csv, Tab,
Xml, Htm, Rtf, Pdf, Tif, Xls, Ador, Dsa, Zip, Ps.
|
|
|
Template
|
Location
reference to a template file to be associated with source data
when converting to an output format.
|
|
Target
|
|
Target
element associated with an Output element. A Target element
defines what type of destination Output Data should be a part
of and one or more locations where the final output should go.
|
|
|
Type
|
The type
of Target associated with a given Output. Values: Email, File,
and Printer.
|
|
|
DocumentMakeup
|
Defines
how the output should be structured within the target. Output
can be appended to the body of the Output or added as an
attachment to the Output. Values: Body, Attachment.
|
|
|
Sender
|
Name of
Sender. If not defined then the User attribute of the Packet
will be used as a default. Necessary for any Email target.
|
|
Location
|
|
Location element associated with a Target element.
Defines the address, path or location where a Targeted Output
should be sent. There can be one or more Locations within a
Target element.
|
|
|
DeliveryReceiptRequired
|
Determines
if an email delivery receipt should be generated (only for
email Targets). Values: Yes or No.
|
|
|
ReadReceiptRequired
|
Determines
if an email read receipt should be generated (only for email
Targets). Values: Yes or No.
|
|
|
Archive
|
Determines
if an a copy of the Output should be placed into a saved
location, such as the “Send To” folder within Exchange
(only for email Targets).
Values: Yes or No.
|
|
|
ConversationTopic
|
Optionally provides a topic name as a way of
categorizing a given Email Target (only for email Targets).
|
|
|
Importance
|
Set the
importance flag for a given Email Target (only for email
Targets). Values: 0, 1, or 2. Default is 1.
|
The
XML Schema for a Task Packet is as follows:
<?xml version="1.0"?>
<xml xmlns:s="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft=com:datatypes"
xmlns:vdm="#VdmSchema">
<s:Schema id="#VdmSchema">
<Attributetype name="DeliverReceiptRequired" dt:type="enumeration" required="no"
dt:values="yes no" default="no" />
<Attributetype name="ReadReceiptRequired" dt:type="enumeration" required="no"
dt:values="yes no" default="no" />
<Attributetype name="Archive" dt:type="enumeration" required="no"
dt:values="yes no" default="no" />
<AttributeType name="ConversationTopic" dt:type="string" required="no" />
<Attributetype name="Importance" dt:type="enumeration" required="no"
dt:values="0 1 2" default="1" />
<ElementType name="Location" content="textOnly" model="closed">
<description>Location definitions</description>
<attribute type="DeliveryReceiptRequired" />
<attribute type="ReadReceiptRequired" />
<attribute type="Archive" />
<attribute type="ConversationTopic" />
<attribute type="Importance" />
</ElementType>
<Attributetype name="Type" dt:type="enumeration" required="yes"
dt:values="email, path, folder, printer" />
<Attributetype name="DocumentMakeup" dt:type="enumeration" required="no"
dt:values="body attachment" default="body" />
<AttributeType name="Sender" dt:type="string" required="no" />
<ElementType name="Target" content="eltOnly" model="closed">
<description>Target definitions</description>
<element type="Sender" minOccurs="1" maxOccurs="1" />
<element type="Location" minOccurs="1" maxOccurs="*" />
<attribute type="Type" />
<attribute type="DocumentMakeup" />
<attribute type=”Sender” />
</ElementType>
<Attributetype name="OutputDataType" dt:type="enumeration" required="no"
dt:values="asc csv tab xml htm rtf pdf tif xls ador dsa zip ps" default="asc" />
<AttributeType name="Template" dt:type="string" required="no" />
<ElementType name="Output" content="eltOnly" model="closed">
<description>Output definitions</description>
<element type="Target" minOccurs="1" maxOccurs="*" />
<attribute type="OutputDataType" />
<attribute type="Template" />
</ElementType>
<Attributetype name="SourceDataType" dt:type="enumeration" required="no"
dt:values="asc csv tab xml htm rtf pdf tif xls ador dsa zip ps" default="asc" />
<AttributeType name="Reference" dt:type="string" required="yes" />
<Attributetype name="Discardable" dt:type="enumeration" required="no"
dt:values="yes no" default="no" />
<ElementType name="Source" content="eltOnly" model="closed">
<description>Dispatch Source</description>
<element type="Output" minOccurs="1" maxOccurs="*" />
<attribute type="SourceDataType" />
<attribute type="Reference" />
<attribute type="Discardable" />
</ElementType>
<AttributeType name="Description" dt:type="string" required="yes" />
<ElementType name="Segment" content="eltOnly" model="closed">
<description>Dispatch Segment</description>
<element type="Source" minOccurs="1" maxOccurs="*" />
<attribute type="Description" />
</ElementType>
<AttributeType name="Version" dt:type="string" default="1.0" required="no" />
<AttributeType name="Date" dt:type="string" required="yes" />
<AttributeType name="User" dt:type="string" required="yes" />
<AttributeType name="Source" dt:type="string" required="yes" />
<AttributeType name="PacketDescription" dt:type="string" required="no" />
<ElementType name="Packet" content="eltOnly" model="closed">
<description>Dispatch Root</description>
<element type="Segment" minOccurs="1" maxOccurs="*" />
<attribute type="Version" />
<attribute type="Date" />
<attribute type="User" />
<attribute type="Source" />
<attribute type="PacketDescription" />
</ElementType>
</s:Schema>
The
following is an example of a task packet.
The task packet would be written out from a “PICK”
process to an NFS mounted drive under a temporary packet file name
of “//PCShare/Exchange/TdmInput/P12459.xml“.
A fetch program would place this Packet into the TDM Input Queue.
The first source file would be written to “//PCShare/Exchange/C12_Tags/message.txt“.
The second file would be written to “//PCShare/Exchange/C12_Tags/Emaitest.csv“.
In this example, the source data, made up of two segments would
output an email composed of the first segment’s Text file and the
second segment’s data as an HTML attachment. The email would be
sent to two addresses. The data from both segments would also be
written to a log file with the same formatting options. The second
segment data would also be written out to a file as an Excel
spreadsheet.
<?xml version="1.0"?>
<xml xmlns:s="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft=com:datatypes"
xmlns:vdm="urn:schemas-vantagepoint-software-com:vdm-data">
<vdm:Packet Version="1.0" Date="12/07/1999" User="Larryw" Source="Rlog"
PacketDescription="Test of Dispatch Manager">
<Segment Description="Test of Email Dispatch">
<Source SourceDataType="asc" Discardable="no"
Reference="//pcshare/exchange/c12_tags/message.txt">
<Output OutputDataType="asc">
<Target Type="email" DocumentMakeup="body" Sender="larryw@vpsoft.com">
<Location DeliveryReceiptRequired="yes">mikewill@ages.com</Location>
<Location DeliveryReceiptRequired="no">iansandl@ages.com</Location>
</Target>
<Target Type="file" DocumentMakeup="body" Sender="Larryw">
<Location>//server/backup/logs/emailtest.txt</Location>
</Target>
</Output>
</Source>
</Segment>
<Segment Description="Test of Email, File, and Excel Dispatch">
<Source SourceDataType="csv" Discardable="yes"
Reference="//pcshare/exchange/c12_tags/emaildata.csv">
<Output OutputDataType="htm" Template="//server/templates/htmreport.tml">
<Target Type="email" DocumentMakeup="attachment" Sender="larryw@vpsoft.com">
<Location>mikewill@ages.com</Location>
<Location>iansandl@ages.com</Location>
</Target>
<Target Type="file" DocumentMakeup="body" Sender="Larryw">
<Location>//server/backup/logs/emailtest.txt</Location>
</Target>
</Output>
<Output OutputDataType="xls">
<Target Type="file" DocumentMakeup="body" Sender="Larryw">
<Location>//server/excel/emailtest.xls</Location>
</Target>
</Output>
</Source>
</Segment>
</vdm:Packet>
</xml>
The
Dispatch Process
The
Dispatch process runs on a dedicated NT Server and utilizes
Microsoft’s Message Queue technology and a number of COM based
conversion components and a data assembly component. Task packets
are written to an input queue where they are read by the main
Dispatch Manager application program. This program parses the XML
data of the packet and starts building output data based on the
assembly and conversion instructions in the XML packet. The Dispatch
Manager program is controlled by a set of parameters stored in the
system registry that determine the input, error, and error
notification queues to use with the MSMQ services, a log directory
of completed tasks, and what output conversion types are valid for
any given source data type.
There
is a separate Fetch program that takes Task packets written to an
NFS mounted directory by Pick-based processes and places them into
the input queue. Otherwise, Task packets are placed directly into
the input queue by other Windows-based applications using a separate
Task Packet Builder Component and program. Once a packet is in the
input queue it will be read by the Task Dispatch Manager program.
The Dispatch Manager parses and validates the packet and starts
executing the instructions found in the XML data stream. Either
Output is generated and routed to the proper destination or, if
errors are encountered, the packet is placed into the error queue
and a notification item is placed into the error notification queue.
There is a separate program that can be used to move a packet in the
error queue back into the input queue for reprocessing once the
error conditions have be corrected.
The
following chart shows the flow of information through the Task
Dispatch Manager:

Click image to expand
Task
Dispatch Manager 1.0 Pricing
Task Dispatch Manager is not sold separately and is only available as part of the mvComponents Suite 2.0.
For additional information or to order a copy of mvComponents Suite
2.0 and arrange for a consultant, please send an E-mail to:
info@vpsoft.com |