job messaging format (jmf) tutorial claes buckwalter, linköping university doug belkofer, efi...
TRANSCRIPT
Job Messaging Format (JMF) Tutorial
Claes Buckwalter, Linköping UniversityDoug Belkofer, EFI
Sunday, April 24, 2005PIA/GATF, Pittsburgh
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 WorkerCommand / Response
Manager WorkerCommand / Response
Acknowledge
Query
Manager WorkerQuery / Response
Manager WorkerQuery / Response
Acknowledge JDF 1.3
Signal
Manager WorkerQuery / Response
Signal
Signal
Signal
Registration
Manager Worker/ManagerRegistration / Response
Command / Response
Worker
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 — hard wired subscriptions to Queries
– Manager requires a HTTP server
– Worker requires a HTTP client
• Base ICS Level 3
– Query, Command, Response and Acknowledge messages
– Manager and worker both require a HTTP client and 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
JMF Query
JMF Query
<?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 Response
JMF Response
<?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>
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:[email protected]
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
New in JMF for 1.3
• Authentication
– Standard Client-server authentication with certificates
over HTTPS
– How should certificates be exchanged and installed?
– Proposal in final stages for JDF 1.3, uses new
RequestForAuthentication message for exchanging
certificates.
– KnownMessages message extended to indicate which
messages are supported via non-authenticated channels
versus those requiring a authenticated channel
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
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.3
References
• JMF messaging– JDF Specification 1.2, Chapter 5
http://www.cip4.org/documents/jdf_specifications/JDF1.2.pdf
– Base ICShttp://www.cip4.org/document_archive/documents/ICS-Base-1.0.pdf
– CIP4's JMF Working Group
• CIP4's Elk Framework– An open source implementation of JMF
messaging with Base ICS Level 3 support
– Project homepage: http://elk.itn.liu.se
Thank you for listening!