280 likes | 414 Views
Job Messaging Format (JMF) Tutorial. Doug Belkofer , EFI Chair, SB&I WG Alt. Chair of MIS & JMF WGs Sunday, October 7, 2007 Foster City. Overview. Transport protocols for JMF JMF Message families JMF over HTTP MIME packaging Open issues in JMF. What is a JMF Message?.
E N D
Job Messaging Format (JMF) Tutorial Doug Belkofer, EFI Chair, SB&I WG Alt. Chair of MIS & JMF WGs Sunday, October 7, 2007Foster City
Overview • Transport protocols for JMF • JMF Message families • JMF over HTTP • MIME packaging • Open issues in JMF
What is a JMF Message? • An XML document contained in • a file written to a folder • the body of a HTTP request or HTTP response • Some usages • Job submission • Snapshots of job and device status • Dynamic job update • Queue support
Transport Protocols for JMF • File Protocol • JMF is written to and read from a folder in a file system • Unidirectional • Asynchronous • HTTP Protocol • JMF is sent in the body of a HTTP request/response • Bidirectional • Synchronous and asynchronous • Required by Base ICS Level 2 and 3 • Optionally secure with HTTPS
JMF Message Families • Command — requests a state change • Query — requests information • Response — synchronous reply to a Command or Query • Acknowledge — asynchronous reply to Command (and Query in 1.3) • Signal — a response to a subscribed Query • Registration — tell the receiver to send Commands to a specified URL (new in 1.3)
Command Manager Worker Command / Response Manager Worker Command / Response Acknowledge
Query Manager Worker Query / Response Manager Worker Query / Response JDF 1.3 Acknowledge
Signal Manager Worker Query / Response Signal Signal Signal
Registration Manager Worker/Manager Worker Registration / Response Command / Response Command / Response Command / Response
Message Types • Bootstrapping (still under construction) • Plug & play Pressroom • Device Information • Consumable Level • Status • Settings • Currently executing jobs • Job Status / Progress Messages • Job Phase • Job Progress • Events • Job Modifications - NewJDF
Message Types continued • Queue Handling • Set Priority • Reorder / Group jobs • Hold / restart queued jobs • Abort running Job • Job Submission • Submission via HTTP • JDF + Content in MIME package • File Based JDF submission • hot folder • URL
Message Types continued • Device Control • Startup • Shutdown • Resource Modification • Flush Resources
Pipes • Pipe Interactions • models the phone call from operator to operator • Start Production • Stop Production • High Water / Low Water marks • Individual Resource Requests • Resource Changes for iterative processing
Messages vs. Audit Elements • JMF Messages • Transports Job information in quasi real time • Methods defined for • Unidirectional Signals • Bi-directional Query-Response Pairs • Immediate Synchronous Responses • Delayed Asynchronous Responses • Audit Objects • Logs actual, post-facto job properties in the JDF • Resource Usage and Modifications • Process Times • Events • Logged in the JDF Job Ticket • Transported inside the Job Ticket
Levels of JMF Messaging • Base ICS Level 1 • No messaging • Base ICS Level 2 • Signal messages — either hard wired Query subscriptions or Query subscriptions embedded in JDF • Manager requires both HTTP client & server • Worker requires a HTTP client • Base ICS Level 3 • Query, Command, Response and Acknowledge messages • Manager and worker both require a HTTP client & server
JMF over HTTP • JMF messages are transported in the body of a HTTP POST request or HTTP response • JMF Command, Query, Signal and Acknowledge are sent in a the body of a HTTP POST request • JMF Response is sent in the body of a HTTP response
JMF over HTTP • If the HTTP POST body contains a • JMF Query or Command • The HTTP response body contains a JMF Response • JMF Signal or Acknowledge • The HTTP response body is empty • If the HTTP body contains a JMF message the HTTP header Content-type must be set to application/vnd.cip4-jmf+xml
JMF Query JMF Response <?xml version="1.0" encoding="UTF-8"?><JMF SenderID="JMFTransmitter" TimeStamp="2005-01-23T10:10:03+01:00" Version="1.2" xmlns="http://www.CIP4.org/JDFSchema_1_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Query ID="0815" Type="Status" xsi:type="QueryStatus"/></JMF> JMF Query <?xml version="1.0" encoding="UTF-8"?><JMF SenderID="No ID configured" TimeStamp="2005-01-23T10:10:10+01:00" Version="1.2" xmlns="http://www.CIP4.org/JDFSchema_1_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Response ID="R0815" Type="Status" xsi:type="ResponseStatus" refID="0815"> <DeviceInfo DeviceStatus="Idle"> <Device Class="Implementation" DeviceID="Elk" ID="Elk1234" KnownLocalizations="En" ModelName="Elk" Status="Available"/> </DeviceInfo> </Response></JMF> JMF Response JMF Example Manager Worker
MIME Packaging • A JMF message may be bundled in a MIME encoded package together with a JDF job ticket and other digital assets • The MIME package is sent in the body of a HTTP POST request • The HTTP header Content-type must be multipart/related
MIME Packaging • The content in the MIME package must be in the following order: • JMF and JDF refer to other files in the package using the CID URL scheme: cid:file.pdf@cip4.org
New in JDF 1.3 • New message family “Registration” • Allows directing commands to be sent to a particular place • Examples: • MIS that is not interested in resource commands indicating availability of plates can direct prepress to send those commands directly to the press control system • Vice-versa – can direct prepress to send them to MIS
New in JMF for 1.3 • Authentication • Standard Client-server authentication with certificates over HTTPS • How should certificates be exchanged and installed? • Manual process • KnownMessages message extended to indicate which messages are supported via non-authenticated channels versus those requiring a authenticated channel
JDF 1.3 ICS • With JDF 1.2, JMF conformance requirements were defined mainly in the Base ICS, and built upon in other ICS’s • With JDF 1.3, JMF has been broken out into its own ICS • De-couples Base requirements from JMF, allowing easier definition of workflows that don’t require JMF • JMF ICS defines many more messages, with message itself being optional, but if supported, must conform to specific requirements • Allows more interoperability between systems that go beyond the minimum requirements • Encourages use of KnownMessages query to determine supported messages • Allows other ICS’s that want to require a specific message to simply reference definition in JMF ICS
Coming in JMF 1.4 • RequestForAuthentication • Approved proposal for JDF 1.4, uses new RequestForAuthentication messages for exchanging certificates. • Reliable signals • Proposal in development • Resource synchronization • Proposal in development
Open Issues in JMF • Discovery • Some discovery is possible, once you know how to contact other controllers/devices • Missing part is auto-discovery of how to contact other controllers/devices • Proposal has been made to use ZEROCONF for this, postponed until we have a champion to lead the effort • Will not make JDF 1.4
References • JMF messaging • JDF Specification 1.3, Chapter 5http://www.cip4.org/documents/jdf_specifications/JDF1.3.pdf • Base ICShttp://www.cip4.org/document_archive/documents/ICS-Base-1.0RevB.pdf • CIP4's JMF Working Group Wiki page http://www.cip4.org/intern/wiki/JMF • CIP4's Elk Framework • An open source implementation of JMF messaging with Base ICS Level 3 supporthttp://elk.itn.liu.se
<?xml version="1.0" encoding="UTF-8"?><JMF DeviceID="TutorialAudience" SenderID="Doug" TimeStamp="2006-11-05T16:20:00-05:00" Version="1.3"> <Query ID="0815" Type="Resource"> <ResourceQuParams ResourceName="Question"/> </Query></JMF> Questions?