280 likes | 431 Vues
This tutorial offers an in-depth look at the Job Messaging Format (JMF), as presented by Doug Belkofer during the SB&I WG meeting. It covers various transport protocols for JMF, including file and HTTP methods, as well as MIME packaging. Key topics include JMF message families—commands, queries, responses, and signals—and their operational use in job submission, status updates, and device control. Additionally, it addresses open issues and the practical implications of JMF in job management, along with insights into the structure and handling of messages within the framework.
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?