Title: Welcome to the Strasbourg JDF Tutorial
1Welcome to the Strasbourg JDF Tutorial
2CIP4 Tutorial and Developer Sessions
- Sunday November 6 2005
- Sofitel Strasbourg
- 10.00-12.00 Tutorial
- 13.00-18.00 Developer Sessions
3Tutorial Session Speakers
- Henny van Esch - Optichrome
- Rainer Prosi - Heidelberg
- Markus Schluep Müller-Martini
4Outline
- Architectural Overview of JDF
- Experience with JDF
5JDF on One Slide
- JDF is a Graphic Arts Job Ticket Data
Interchange Format Specification - JDF is not an
Application or System - JDF is encoded in XML
- Content is referenced, not embedded
- JDF is extensible
- JDF is based on semantic structures originally
defined by - Adobe PJTF
- CIP3 PPF
- JDF Job Definition JMF Messaging JDF
Capabilities define the JDF Framework
6JDF on Another Slide- Goals and Requirements -
- Why?
- Automation increases Efficiency
- Information allows for informed decisions
- We have a digital content workflow with a paper
based management workflow that is not useful! - What?
- Describe a Job in the graphic arts from the view
point of - Technical Applications
- Management Information Systems
- Customers
- Collect data that is relevant to a Job from
origination to delivery - How?
- See next Slides
7CIP4 Reference Model
8JDF Encoding
- XML Encoding
- External references via URI/URL
- XML Schema for Data Type Definitions
- Extensibility using XML name spaces
9The Building Blocks of the JDF Framework
- JDF Node
- Description of a Process, Process Group or
Product - JDF Resource
- Description of a parameter set or physical entity
- JDF ResourceLink
- Link between JDF Nodes (processes) and Resources
- JDF Capabilities Descriptions
- Limitation of a JDF interface
- JMF Messages
- Real time data interchange format
10The JDF Node
- Description of a generic Process
- The Verb in JDF
- Do something at a given time
- Structured container for Scheduling and Auditing
- One JDF node type for both Products and Processes
- Less Precise Product Intentat the Job Root Node
- Abstract ProcessGroup Nodes or Workflow Group
nodes in between - Detailed individual or combined Processes in the
Leaf Nodes
11Product Intent vs. Process Modeling
- Goal of Product Intent Description
- Customers view of the thing they want to
manufacture - Contract Negotiation
- Process Independent
12Product Intent vs. Process Modeling
- Goal of Process Modeling
- Interface between MIS and Production
- Process interdependencies
- Manufacturing Instruction Details
13Gray Boxes
- Incomplete Model of a Process
- The MIS View of the process
- Its only important if it affects the cost!
- Thus, parameters not affecting costs are not
important - Exact Process execution is potentially undefined
- Ordering of steps is not necessarily predefined
- Detailed Work Steps may be left out
- E.g. MIS knows RIPping, but not Trapping or
ColorSpaceConversion
14Audit Objects
- Logging of Job Execution
- Actual times
- Start time
- End time
- Phases
- Logging of Late Changes
- Resources (used 85g Paper instead of 80g)
- Consumables
- Status Summary
- Event Log
15Job / Customer Information
- CustomerInfo
- Map Subcontracting via Localized Customer
Information in any JDF Node - Customer ID
- Addresses (Delivery, Invoice, )
- NodeInfo
- Scheduling
- Deadlines
- Processing Time Estimation
16JDF Node simple Example
- ltJDF IDN1" Type"Product" JobID"HDM1"
JobPartIDp1 StatusWaiting" Version1.3"gt - ltResourcePoolgt
- ltNodeInfo Class"Parameter"
StatusAvailable ID"Link0001" /gt - ltSomeInputResource ID"Link0002"
Class"Parameter" StatusAvailable"/gt - ltComponent ID"Link0003" Class"Quantity"
StatusUnavailable" DescriptiveName"SomeOutputRe
source"/gt - lt/ResourcePoolgt
- ltResourceLinkPoolgt
- ltNodeInfoLink rRef"Link0001" UsageInput"/gt
- ltSomeInputResourceLink rRef"Link0002"
UsageInput"/gt - ltComponentLink rRef"Link0003"
UsageOutput"/gt - lt/ResourceLinkPoolgt
- ltAuditPool/gt
- lt/JDFgt
17The JDF Node Node Type
- Individual process types and their respective
resources are defined e.g. - Interpreting
- Trapping
- ConventionalPrinting
- DigitalPrinting
- Cutting
- Folding
- Verification
- Delivery
18Combination of JDF Nodes
- Dont recreate a new Process Type for
Permutations of known Processes! - Create combinations of multiple defined processes
into one process, e.g. - online finishing printing folding cutting
- in-RIP trapping trapping RIPping
- Three types of Combination Nodes
- Combined Node All internal interfaces are hidden
- Smart multi-function device
- ProcessGroup Internal nodes are accessible
- Without Sub elements (Gray Box)
- MIS view
- With Sub elements
- Workflow group in a department
- Subcontract
19Combined vs. ProcessGroup
Combined Node
Res
Res
Res1
Res2
ProcessGroup
Res
Res
Res1
Res2
20JDF Resources
- Specification of Parameters of
- Product Intent description
- Logical Entities, e.g RIP Parameters, Imposition
setup - Physical Entities, e.g. Media, Devices, Plates
- Based on Adobe PJTF and CIP3 PPF
- Intent Resources for product intent nodes
- Prepress Adobe PJTF
- Press, Finishing CIP3 PPF
- Internal to JDF or External Links to well-defined
Formats - Thumbnails, Preview Files, ICC Profiles, Content
Data
21JDF RunList Resource Simple Example
- ltRunList ID"Link0003" Class"Parameter"
StatusAvailable PartIDKeysRungt - ltRunList Run1 Pages"010"gt
- ltLayoutElement ElementType"document"gt
- ltFileSpec URLFile///File1.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
- lt/RunListgt
- ltRunList Run2 Pages12-1"gt
- ltLayoutElement ElementType"document"gt
- ltFileSpec URLFile///File2.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
- lt/RunListgt
- lt/RunListgt
22JDF Resources - Intent Resources
- Parameters are not attributes but rather
structured Span Elements with the following
attributes - Range list of allowed values
- Names
- Numbers
- Ranges of Numbers / Strings
- OfferRange list of proposed values
- Preferred one preferred value
- Actual The selected value from Range or
Preferred
23JDF Resources - Details
- Special handling of multiple Parts, e.g.
- Sheets
- Separations
- Amounts
- Tiles
- Versions
- Redo one part of a large resource
- Only the yellow plate of the front surface of
sheet 17 - Parallel processing of partitioned resources
- Selection of devices / operators
24JDF Resources - Partitioning
- One Resource may specify multiple entities
- Multiple Partition type levels, e.g. Sheet,
Side, Separation - Inheritance model
- specify common attributes once
- Overwrite individual attributes / elements
- Select individual or multiple parts with a
ResourceLink
25Partitioning and Nodes
Partitioned Resources with matching partition
keys are connected.
26Partitioned Ink Resource Example
- ltInk IDInkID" BrandProcessBrand"
Class"Consumable" StatusAvailable"
MediaType"Coated" PartIDKeys"Separation"gt - ltInk Separation"Cyan"gt
- ltColor CMYK"1 0 0 0"/gt
- lt/Inkgt
- ltInk Separation"Magenta"gt
- ltColor CMYK"0 1 0 0"/gt
- lt/Inkgt
- ltInk Separation"Yellow"gt
- ltColor CMYK"0 0 1 0"/gt
- lt/Inkgt
- ltInk Separation"Black"gt
- ltColor CMYK"0 0 0 1"/gt
- lt/Inkgt
- ltInk BrandSpotBrand" Separation"Heidelberg
Spot Blau"gt - ltColor CMYK"0.7 0.7 0.3 0.7"
ColorantUsage"spot"/gt - lt/Inkgt
- lt/Inkgt
27ResourceLink
- Bind a Resource to a Node
- Define Resource Usage (input or output)
- Link to a Subset / Part of a Resource
- E.g. Cyan Plate of the Front of Sheet 1
- Define the Amount
- Allow reuse of Resources by multiple processes
- One resource may be linkedby multiple
ResourceLinks - Defines a process network
28ResourceRef
- Used to reference a Resource from within another
JDF element. - Resource
- CustomeInfo
- May contain Part elements to select individual
partitions - Equivalent to an inline occurence of the
referenced resource - Name mangling ResourceRef
29JDF RunList Resource Simple Example with
ResourceRef
- ltRunList ID"Link0003" Class"Parameter"
StatusAvailable PartIDKeysRungt - ltRunList Run1 Pages"010"gt
- ltLayoutElementRef rRefL1gt
- lt/RunListgt
- ltRunList Run2 Pages12-1"gt
- ltLayoutElement ElementType"document"gt
- ltFileSpec URLFile///File2.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
- lt/RunListgt
- lt/RunListgt
- ltLayoutElement IDL1 ElementType"document
Class"Parameter" StatusAvailablegt - ltFileSpec URLFile///File1.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
30ConventionalPrinting JDF Node Example
ConventionalPrinting
ExposedMedia (Plate)
- NodeInfo
- Planned StartTime
- Planned EndTime
Media
AuditPool Actual Resource Usage Actual Time
Summary
Ink
InkZoneProfile
Resource Links
Component (including amount)
Parameters Layout (Control Marks)
31The JDF Node Execution Requirements
- A Node is executable when all required input
resources are available - Serial Processing -- Standard
- Parallel Processing -- Partial Resources
- Overlapping Processing -- Pipes
- Iterative Processing -- Draft Resources
- Node dependencies allow process configuration
- A proof node can create an Approval which is
needed for the press node to operate
32Node Executability
Resource ResourceLink JDF Node
Not Available
Not Executable
Available
Resource Links
Available
33Node Executability
Resource ResourceLink JDF Node
Available
Executable
Available
Resource Links
Available
34Node ExecutabilityAnd Networks
Waiting
Available
Not Available
Links
Not Executable
Available
Links
Available
Available
Not Available
35Node ExecutabilityAnd Networks
Running
Available
Not Available
Links
Not Executable
Links
Available
Available
Available
Available
36Node ExecutabilityAnd Networks
Completed
Available
Available
Links
Executable
Available
Links
Available
Available
Available
37Job Description Models supported by JDF I
- Product Definition
- No Process
- Abstract, customer view
- Segmentation by Product Components
- Serial Processing
RIP
Print
Bind
38Job Description Models supported by JDF II
- Parallel Processing
- Overlapping Processing
Print
Bind
RIP
Print
39Job Description Models supported by JDF III
- Iterative Processing
- Informal Iterative Processing using Draft
Resources - Formal Iterative Processing using JMF Messages
Edit
Touchup
Layout
40JDF Tree / Network Structure
41JDF - Spawning and Merging
- Spawn individual nodes of the JDF Tree for
independent processing - Parallel Processing
- Subcontracting
- Support for Partitioning e.g. only sheet 1
- Merge back after processing
- Retain information source Context
- Audits
- Modified Resources
42Spawning Merging
Master JDF
Executable Sub-JDF 1
Executable Sub-JDF 2
Step 1 - Prior to Spawning
43Spawning Merging
Master JDF
Executable Sub-JDF 1
Locked Sub-JDF 2
Step 2 - Spawned, Prior to Execution
Spawned Executable Sub-JDF
44Spawning Merging
Master JDF
Executable Sub-JDF 1
Locked Sub-JDF 2
Step 3 - Spawned, After independent Execution Pr
ior to merging
Spawned completed Sub-JDF
45Spawning Merging
Master JDF
Executable Sub-JDF 1
Merged Sub-JDF 2
Step 4 - After Execution After Merging
46JMF Messaging
- Real-time data interchange format
- Small XML structures
- JDF is referenced via URL, not bound into message
- Idea is to minimize network traffic and delay
transmission of data until it is actually needed
47JMF Messaging
- Used for
- Plug Play bootstrapping
- Snapshots of Job / Device status
- Dynamic job update
- Job submission and Queue/QueueEntry handling
- Capabilities discovery and interchange
48JMF Message Families
- JMF messages fall into five categories
- Command
- Receiver is instructed to take an action, or to
modify the state of something - Query
- Receiver is instructed to return information
about something. No action is taken, no states
are changed - Response
- Used to immediately return result of command or
query - Synchronous messaging command/query and
response are exchanged on same open connection
49JMF Message Families
- JMF message categories (contd)
- Acknowledge
- Used to return the result of a command after some
time has passed - Asynchronous messaging empty response returned
immediately on same connection as command with
indication that Acknowledgement will be sent
later - Signal
- Used to send notifications of events or change in
status - Typically result of a query with a subscription
embedded in it - Subscription sets up persistent channel
- Registration
- Request for commands
- Used to set up triangular workflows
- E.g. MIS tells prepress to send a Command to Press
50Example SubmitQueueEntry message
- ltJMF DeviceID"SP013" SenderID"MIS1TimeStamp"2
005-11-05T123248-0600"gt - ltCommand ID"m3829" Type"SubmitQueueEntry"gt
- ltQueueSubmissionParams URL"http//jobserv
er/getJob?job10047" - ReturnJMF"http//jobserver/jmfservice"
- Priority"50"/gt
- lt/Commandgt
- lt/JMFgt
51JMF Message Types
- Examples of JMF message that fall within the six
categories - Command
- SubmitQueueEntry, AbortQueueEntry,
ReturnQueueEntry, HoldQueue, ResumeQueue - Query
- KnownControllers, KnownDevices, Status
- Response
- Various related to various commands/queries
- Acknowledgement
- Various related to various commands/queries
- Signal
- Status, Resource, Occupation
- Registration
- Resource
52CIP4 Open Source Development Tools
- XML Schema
- C API
- Java API
- JDF Editor
- Visualise JDF JMF
- Send Messages
- Elk Project
- Reference Device
53History of JDF
- 1999 Adobe, Agfa, MAN and Heidelberg form the
GAT initiative with the goal of defining a job
ticket for the Graphic Arts that also integrates
MIS. - 2000 The CIP3 Consortium takes ownership of the
standard. - 2001 JDF 1.0 is released.
- 2002 JDF 1.1 is released.
- Ambiguities/Bugs found in implementation were
removed - Additional Processes were added
- Consistency between diverse areas was enhanced
- 2004 JDF 1.2 is released
- More additional processes
- Even more mature and consistent
- 2005 First set of ICS documents are published
- JDF 1.3 is released
54Experience with JDF - Advantages
- Single grammar for specifying job data in the
graphic arts industry - Integration of Production, Customer and MIS
- Multiple views for Production, Customer and MIS
- Definition of production networks
- Combined Processes
- Defined communication protocol, not only data
structures - Extensible Model
- Interaction with other Standards in GA
55Experience with JDF - Challenges / Obstacles
- Number of processes in the graphic arts
- Creative
- Prepress
- Press
- Finishing
- Fulfillment
- Complexity of the standard
- Size of the Specification
- Moving from the Abstract Idea to a Concrete
Implementation - Flexibility of the Specification
- Unclear Role of Production networks in
Interfacing with Devices - private extensions
- Definition of abstract coordinate systems
- Legacy System Longevity
56Why ICS ?
JDF A ICS JDF B
Product A
Product B
InteroperabilityConformanceSpecifications
57Interoperability Conformance Specifications
- Define a set of Interoperability Conformance
Specifications ICS - The term JDF Compliant does not immediately
imply that two arbitrary applications will
communicate. - Sending RIP instructions to a Folding Machine is
not useful - Two applications that comply with a given ICS
will communicate in a meaningful way. - Product Certification will be based on ICS
Compliance - Avoid multiple, incompatible JDF Dialects
58ICS Document Structure
59JDF Tutorial
Thank you very much for your attention!