Job Messaging Format (JMF) Tutorial

Download Report

Transcript Job Messaging Format (JMF) Tutorial

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?
• 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
Acknowledge
JDF 1.3
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 Example
Manager
JMF Query
Worker
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
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:
Position
Content
Content Type
0
JMF message
application/vnd.cip4-jmf+xml
1
JDF job ticket
application/vnd.cip4-jdf+xml
2 to N
Digital assets
Depends on asset
• JMF and JDF refer to other files in the package
using the CID URL scheme: cid:[email protected]
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 nonauthenticated 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 5
http://www.cip4.org/documents/jdf_specifications/JDF1.3.pdf
– Base ICS
http://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 support
http://elk.itn.liu.se
<?xml version="1.0" encoding="UTF-8"?>
<JMF DeviceID="TutorialAudience"
SenderID="Doug"
TimeStamp="2006-11-05T16:20:00-05:00"
Questions?
Version="1.3">
<Query ID="0815" Type="Resource">
<ResourceQuParams ResourceName="Question"/>
</Query>
</JMF>