Title: Welcome to the Quebec JDF Tutorial
1Welcome to the Quebec JDF Tutorial
2Tutorial Session Speakers
- Henny van Esch - Optichrome
- Rainer Prosi - Heidelberg
3Outline
- Architectural Overview of JDF
- Experience with JDF
4JDF 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 ICS Documents define the JDF
Framework
5JDF on Another Slide- Goals and Requirements -
- Why JDF?
- Automation increases Efficiency
- Digital information reduces errors compared to
paper job jackets - Information allows for informed decisions
- We have a digital content workflow with a paper
based management workflow there is room for
improvement! - What does JDF enable?
- Setup 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 - Business Data
- Technical Data
6CIP4 Reference Model
7JDF Encoding
- XML Encoding
- External references via URI/URL
- XML Schema for Data Type Definitions
- Extensibility using XML name spaces
8The Building Blocks of the JDF Framework
- JDF Node
- Description of a Process, Process Group, Gray Box
or Product - JDF Resource
- Description of a parameter set or physical entity
- JDF ResourceLink
- Link between JDF Nodes and Resources
- JDF Capabilities Descriptions
- Limitation of a JDF interface
- JMF Messages
- Real time data interchange format
- ICS Documents
- Specification of Limits of the JDF for individual
purposes
9The 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 Gray Box nodes
in between - Detailed individual or combined Processes in the
Leaf Nodes
10Product Intent vs. Process Modeling
- Goal of Product Intent Description
- Customers view of the thing they want to
manufacture - Contract Negotiation
- Process Independent
11Product Intent vs. Process Modeling
- Goal of Process Modeling
- Interface between MIS and Production
- Process interdependencies
- Manufacturing Instruction Details
12Gray 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
13Audit Objects
- Logging of Job Execution
- Actual times
- Start time
- End time
- Job Phases
- Logging of Changes
- Resources
- used 85g Paper instead of 80g
- Used Roll inventory 123, not 456
- Consumables
- Actual Amounts produced or consumed
- Status Summary
- Event Log
14Job / Customer Information
- CustomerInfo
- Map Subcontracting via Localized Customer
Information in any JDF Node - Customer ID
- Addresses (Delivery, Invoice, )
- NodeInfo
- Scheduling
- Deadlines
- Processing Time Estimation
15JDF 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
16The JDF Node Node Type
- Individual process types and their respective
resources are defined e.g. - Interpreting
- Trapping
- ConventionalPrinting
- DigitalPrinting
- Cutting
- Folding
- Verification
- Delivery
17Combination 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
18Combined vs. ProcessGroup
Combined Node
Res
Res
Res1
Res2
ProcessGroup
Res
Res
Res1
Res2
19JDF 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
20JDF RunList Resource Simple Example
- ltRunList ID"Link0003" Class"Parameter"
StatusAvailable PartIDKeysRungt - ltRunList Run1 Pages"0 10"gt
- ltLayoutElement ElementType"document"gt
- ltFileSpec URLFile///File1.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
- lt/RunListgt
- ltRunList Run2 Pages2 -1"gt
- ltLayoutElement ElementType"document"gt
- ltFileSpec URLFile///File2.pdf
MimeType"application/PDF"/gt - lt/LayoutElementgt
- lt/RunListgt
- lt/RunListgt
21JDF 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
22JDF Resources - Details
- Special handling of multiple Parts, e.g.
- Sheets
- Separations
- Waste
- 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
23JDF 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
24Partitioning and Nodes
Partitioned Resources with matching partition
keys are connected.
25Partitioned 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
26ResourceLink
- 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 - Links define the process network
27ResourceRef
- Used to reference a Resource from within another
JDF Element - May contain one Part element to select individual
partition - Equivalent to an inline occurence of the
referenced resource - Name mangling ResourceRef
28JDF RunList Resource Simple Example with
ResourceRef
- ltRunList ID"Link0003" Class"Parameter"
StatusAvailable PartIDKeysRungt - ltRunList Run1 Pages"0 10"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
The ResourceRef
Inline Resource
The Referenced Resource
29ConventionalPrinting 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)
30The 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
31Node Executability
Resource ResourceLink JDF Node
Not Available
Not Executable
Available
Resource Links
Available
32Node Executability
Resource ResourceLink JDF Node
Available
Executable
Available
Resource Links
Available
33Node ExecutabilityAnd Networks
Waiting
Available
Not Available
Links
Not Executable
Available
Links
Available
Available
Not Available
34Node ExecutabilityAnd Networks
Running
Available
Not Available
Links
Not Executable
Links
Available
Available
Available
Available
35Node ExecutabilityAnd Networks
Completed
Available
Available
Links
Executable
Available
Links
Available
Available
Available
36Job Description Models supported by JDF I
- Product Definition
- No Process
- Customer view
- Segmentation by Product Components
- Serial Processing
RIP
Print
Bind
37Job Description Models supported by JDF II
- Parallel Processing
- Overlapping Processing
Fold
Bind
Print
Fold
38Job Description Models supported by JDF III
- Iterative Processing
- Informal Iterative Processing using Draft
Resources - Formal Iterative Processing using JMF Messages
Edit
Proof
Layout
39JDF Tree / Network Structure
40JDF - 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
41Spawning Merging
Master JDF
Executable Sub-JDF 1
Executable Sub-JDF 2
Step 1 - Prior to Spawning
42Spawning Merging
Master JDF
Executable Sub-JDF 1
Locked Sub-JDF 2
Step 2 - Spawned, Prior to Execution
Spawned Executable Sub-JDF
43Spawning 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
44Spawning Merging
Master JDF
Executable Sub-JDF 1
Merged Sub-JDF 2
Step 4 - After Execution After Merging
45JMF 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 - Send potentially interesting information as soon
as it is available
46JMF Messaging
- Used for
- Snapshots of Job / Device status
- Dynamic job update
- Job submission and Queue/QueueEntry handling
- Capabilities discovery
- Plug Play bootstrapping (Future)
- Generally used within an Intranet
47JMF Message Families
- JMF messages fall into six 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
48JMF 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
49Example SubmitQueueEntry message
- ltJMF DeviceID"SP013" SenderID"MIS1TimeStamp"2
006-05-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
50JMF 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
51JDF Capabilities Ahead
- Interoperability
- Capabilities
- Workflow
- PPDs and Schemas
- Capabilities Theory
- Capabilities Overview
52Its all about Interoperability !!!
If you dont know about capabilities, you wont
be able to interoperate
53Its all about Interoperability!!
But if you do, you can use the right tools
54What are Capabilities?
- Capabilities allow actors in the workflow to
determine what some other actor can do...
55What are Capabilities?
Of course, theres no requirement that any of the
actors actually be people
56Who are the actors?
- Job submission utilities (both to a print shop
and within the print shop) - Print shops
- MIS systems
- Prepress workflow managers
- Applications
- Individual pieces of equipment
- Operators of offline equipment
- And the list goes on
57What can Capabilities be used For?
- Determining what products a print shop could
produce. - Allows the creation of JDF Intent (product
descriptions). - Determining what equipment is available in a
shop. - Allows MIS systems to take JDF Intent and
determine production steps to produce job. - Creating a UI to allow configuration of job
processing for a piece of equipment or
application. - Preflighting a JDF before processing by a JDF
consumer.
58An example workflow
RIP
Color Adjust
Prepress Workflow Controller
Trap
Impose
59An example workflow
RIP
Color Adjust
Ask for capabilities
Prepress Workflow Controller
Trap
Impose
60An example workflow
Capabilities File
RIP
Color Adjust
Prepress Workflow Controller
Trap
Impose
61An example workflow
RIP
Color Adjust
Prepress Workflow Controller
Trap
Impose
62An example workflow
RIP
Color Adjust
The JDFPDF
Prepress Workflow Controller
Trap
Impose
63Official Warning
Details Ahead!!
64What about PPDs and Schemas?
- PPDs (PostScript Printer Driver)
- Provide basic capabilities information about a
printer - Allow printer options to be configured by
specifying PostScript snippets - Provide a simple constraints mechanism for UI
- Allow controls to be localized (but typically
just for the advanced dialog)
65What about PPDs and Schemas?
- Schemas
- Describe the aggregated capabilities of JDF
(processes resources) - Do not support constraints definitions
- Do not support localizations
- Do not allow a device to specify a subset of the
aggregated capabilities
66So what are Capabilities?
- XML-based
- Of course
- The capabilities description directly reflects
the structure of the JDF itself. - Constrains a device implementation against the
schema - Either the JDF schema or an extension schema
- Does not require the schema to be used to work
67But that's not all !!!
68Capabilities Theory
- JDF defines a Capabilities Model based on....
- A Device is the Thing that executes one or more
JDF Nodes - A JDF Node is defined by its resources resource
links - e.g. A Press has a set of allowed Media and a
set of press parameters
69Capabilities Theory
- JDF Parameters are either.....
- independent of one another, or
- can be expressed as a list of allowed independent
sets - e.g. a Scanner can scan at 1000 dpi grayscale, or
500 dpi color - May be further constrained by logical boolean
expressions - The Device can print Duplex
- The Device can print Transparencies
- Setting Duplex and Transparency at the same time
is constrained
70 Capabilities Theory
- Performance may be specified
- Maximum Average
- Depending on further Job parameters
- Allow specification of current and persistent
capabilities - Define defaults and (un)/supported features
- JMF messages for plug and play in heterogeneous
environments - Specify Localization
71Device Parameter Space
Area covered by device capabilities
Restriction to 3 dimensions for display purposes
only
72Capabilities Overview
- Feature Macros (JDF 1.2)
- Allows a set of multiple JDF controls to be
represented by a single abstract control in a
user interface. - ScannerQuality (draft, good, best)
- sets resolution, color mode,
73Capabilities Overview
- Localizations (JDF 1.2)
- Feature names and individual values can be
localized (even true and false) - Also used with constraints to provide localized
descriptions (for UI) of the error described when
the constraint test fails
74Capabilities Overview
- Feature Availability (JDF 1.2)
- The feature is installed on the device and is
available for use. - The feature has not been installed on the device.
- The feature has been installed on the device, but
may not be used until licensed. - The feature is installed and licensed on the
device, but has been disabled.
75Capabilities Overview
- UI Hints (JDF 1.2)
- Feature grouping
- Unit type
- Angle, length, weight,
- Whether a feature should be displayed
- The feature should be displayed.
- The feature should not be displayed.
- The feature should be displayed only for
administrators. - The feature should be conditionally displayed.
- The feature should be displayed only in vendor
support situations. - Icons to represent the device
76Capabilities Overview
- JMF (Job Messaging Format) capabilities
- Which JMF messages are supported
- Specifics for each message
- JMF Bootstrapping for Device Discovery
77Capabilities Overview
- Performance Data
- Minimum/Maximum/Average setup time
- Minimum/Maximum/Average cleanup time
- Average/Worst case run rate
78Capabilities Link the Workflow Together !
79PrintTalk www.printtalk.org
- JDF describes the product to be produced
- PrintTalk describes the business context of the
product - Request For Quote
- Quotation
- Purchase Order
- Invoice
- Change Order
- PrintTalk also contains Pricing Information
80CIP4 Open Source Development Tools
- XML Schema
- C API
- Java API
- JDF Editor
- Visualise JDF JMF
- Send Messages
- Update or Validate JDF JMF
- Elk Project
- Reference Device
- Alces Project
- Reference Manager
- CheckJDF JDF Validator web service
- FixJDF - JDF update web service
81History 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
82Experience 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
83Experience 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
84Why ICS ?
JDF A ICS JDF B
Product A
Product B
InteroperabilityConformanceSpecifications
85Interoperability 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
86ICS Document Structure
87ICS documents
- Provide the basis for certification
- Ensure that products MUST read / write / accept
certain conditions - Interoperability between applications
- Limited functionality in the initial ICS versions
- Additional functionality is optional but not
certifiable - Multiple levels
- More functionality will be added in future ICS
versions
88Read Write Conformance
- JDF Specification Describes the valid
cardinality of parameters in a JDF or JMF
instance - ICS Specifies conformance requirements for an
application or device - W Must write. The application only conforms, if
it always writes the parameter - W? May Write. Not a Conformance requirement
- W? Conditional write conformance. External
conditions exist the require an application to
write. - !W Must NOT write. The application does not
conform, if it writes the parameter. - R Must read. The Information must be parsed and
appropriately processed - R? May Read. Not a Conformance requirement
89JDF Tutorial
Thank you very much for your attention!