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