Welcome to the Strasbourg JDF Tutorial CIP4 Tutorial and Developer Sessions • Sunday November 6 2005 Sofitel Strasbourg • 10.00-12.00: Tutorial • 13.00-18.00: Developer Sessions Tutorial Session Speakers • Henny van Esch - Optichrome • Rainer Prosi - Heidelberg • Markus Schluep – Müller-Martini Outline • Architectural Overview of JDF • Experience with JDF JDF 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 JDF 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 … CIP4 Reference Model Sales Rep Customer Print Buyer Customer Service Rep Negotiation & Quote Create JDF Intent Product Description (with ranges) Creative Professional Job Creation Customer Facility Prepress Prepress Operator Product Description Product Description (Actual values) Create Document Production Scheduling Limited Process Prepress Manager(s) Prepress Limited Process Press Manager(s) Estimating & Order Entry Limited Process Press Operator Base Press Press MIS Extended MIS Postpress Manager(s) Print Shop Manager Print Shop Management Print Shop Postpress Postpress Operator Postpress JDF Encoding • XML Encoding • External references via URI/URL • XML Schema for Data Type Definitions • Extensibility using XML name spaces The 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 The 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 Intent at the Job Root Node • Abstract “ProcessGroup” Nodes or Workflow Group nodes in between • Detailed individual or combined Processes in the Leaf Nodes JDF Node Input (Resources) Output (Resources) Scheduling Time Start End Product Intent vs. Process Modeling • Goal of Product Intent Description – Customers view of the “thing” they want to manufacture – Contract Negotiation – Process Independent Book Contents Cover Reader Pages End Sheets Product Intent vs. Process Modeling • Goal of Process Modeling – Interface between MIS and Production – Process interdependencies – Manufacturing Instruction Details Gray Boxes • Incomplete Model of a Process • The MIS View of the process – It’s 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 Audit 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 Job / Customer Information • CustomerInfo – Map Subcontracting via Localized Customer Information in any JDF Node – Customer ID – Addresses (Delivery, Invoice, …) • NodeInfo – Scheduling – Deadlines – Processing Time Estimation JDF Node simple Example <JDF ID=“N1" Type="Product" JobID="HDM1" JobPartID=“p1” Status=”Waiting" Version=“1.3"> <ResourcePool> <NodeInfo Class="Parameter" Status=”Available“ ID="Link0001" /> <SomeInputResource ID="Link0002" Class="Parameter" Status=”Available"/> <Component ID="Link0003" Class="Quantity" Status=”Unavailable" DescriptiveName="SomeOutputResource"/> </ResourcePool> <ResourceLinkPool> <NodeInfoLink rRef="Link0001" Usage=”Input"/> <SomeInputResourceLink rRef="Link0002" Usage=”Input"/> <ComponentLink rRef="Link0003" Usage=”Output"/> </ResourceLinkPool> <AuditPool/> </JDF> The JDF Node – Node Type • Individual process types and their respective resources are defined: e.g. – Interpreting – Trapping – ConventionalPrinting – DigitalPrinting – Cutting – Folding – Verification – Delivery Combination of JDF Nodes • Don’t 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 Combined vs. ProcessGroup •Combined Node Combined Node Res Res Res1 Res2 •ProcessGroup ProcessGroup Res Res1 Res2 Res JDF 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 JDF RunList Resource Simple Example <RunList ID="Link0003" Class="Parameter" Status=”Available“ PartIDKeys=“Run”> <RunList Run=“1” Pages="0~10"> <LayoutElement ElementType="document"> <FileSpec URL=”File:///File1.pdf” MimeType="application/PDF"/> </LayoutElement> </RunList> <RunList Run=“2” Pages=”12~-1"> <LayoutElement ElementType="document"> <FileSpec URL=”File:///File2.pdf” MimeType="application/PDF"/> </LayoutElement> </RunList> </RunList> JDF 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 JDF 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 JDF 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 Partitioned Resource Common parameters Cyan Separation parameters Magenta Separation parameters Yellow Separation parameters Partitioning and Nodes Partitioned Resources with matching partition keys are connected. Sheet=S1 Sheet=S2 Sheet=S2 Root Output Resource Sheet=S1 Root Input Resource JDF Node Partitioned Ink Resource Example <Ink ID=“InkID" Brand=”ProcessBrand" Class="Consumable" Status=“Available" MediaType="Coated" PartIDKeys="Separation"> <Ink Separation="Cyan"> <Color CMYK="1 0 0 0"/> </Ink> <Ink Separation="Magenta"> <Color CMYK="0 1 0 0"/> </Ink> <Ink Separation="Yellow"> <Color CMYK="0 0 1 0"/> </Ink> <Ink Separation="Black"> <Color CMYK="0 0 0 1"/> </Ink> <Ink Brand=”SpotBrand" Separation="Heidelberg Spot Blau"> <Color CMYK="0.7 0.7 0.3 0.7" ColorantUsage="spot"/> </Ink> </Ink> ResourceLink • 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 linked by multiple ResourceLinks • Defines a process network Parent Node Resource 1 Child Node 1 Child Node 2 Link ResourceRef • 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: Resource+“Ref“ JDF RunList Resource Simple Example with ResourceRef <RunList ID="Link0003" Class="Parameter" Status=”Available“ PartIDKeys=“Run”> <RunList Run=“1” Pages="0~10"> <LayoutElementRef rRef=“L1”> </RunList> <RunList Run=“2” Pages=”12~-1"> <LayoutElement ElementType="document"> <FileSpec URL=”File:///File2.pdf” MimeType="application/PDF"/> </LayoutElement> </RunList> </RunList> <LayoutElement ID=“L1” ElementType="document“ Class="Parameter" Status=”Available“> <FileSpec URL=”File:///File1.pdf” MimeType="application/PDF"/> </LayoutElement> ConventionalPrinting JDF Node Example ExposedMedia (Plate) NodeInfo •Planned StartTime •Planned EndTime Media AuditPool Ink Actual Resource Usage Actual Time Summary ConventionalPrinting InkZoneProfile Parameters Layout (Control Marks) Resource Links Component (including amount) The 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 Node Executability Resource ResourceLink JDF Node Not Available Not Executable Available Resource Links Available Node Executability Resource ResourceLink JDF Node Available Executable Available Resource Links Available Node Executability And Networks Waiting Not Available Available Links Not Executable Available Available Not Available Available Links Node Executability And Networks Running Not Available Available Links Not Executable Available Available Available Available Links Node Executability And Networks Completed Available Available Links Executable Available Available Available Available Links Job Description Models supported by JDF I • Product Definition Book – No Process – Abstract, customer view – Segmentation by Product Components Contents Cover End Sheets • Serial Processing RIP Print Bind Reader Pages Job Description Models supported by JDF II • Parallel Processing Print Bind RIP Print • Overlapping Processing RIP Print Bind Job Description Models supported by JDF III • Iterative Processing – Informal Iterative Processing using Draft Resources – Formal Iterative Processing using JMF Messages Edit Touchup Layout JDF Tree / Network Structure parent JDF node 2 in. 1 2 3 7 1 4 7 A 5 3 6 4 5 6 Process A: 4 + 5 + 6 out. JDF - 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 Spawning + Merging Master JDF Executable Sub-JDF 1 Step 1 Prior to Spawning Executable Sub-JDF 2 Spawning + Merging Master JDF Executable Sub-JDF 1 Locked Sub-JDF 2 Step 2 - Spawned, Prior to Execution Spawned Executable Sub-JDF Spawning + Merging Master JDF Executable Sub-JDF 1 Locked Sub-JDF 2 Step 3 Spawned, After independent Execution Prior to merging Spawned completed Sub-JDF Spawning + Merging Master JDF Executable Sub-JDF 1 Step 4 - After Execution After Merging Merged Sub-JDF 2 JMF 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 JMF Messaging • Used for: – Plug + Play bootstrapping – Snapshots of Job / Device status – Dynamic job update – Job submission and Queue/QueueEntry handling – Capabilities discovery and interchange JMF 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 JMF Message Families • JMF message categories (cont’d) – 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 Example – SubmitQueueEntry message: <JMF DeviceID="SP013" SenderID="MIS1“ TimeStamp="2005-11-05T12:32:48-06:00"> <Command ID="m3829" Type="SubmitQueueEntry"> <QueueSubmissionParams URL="http://jobserver/getJob?job=10047" ReturnJMF="http://jobserver/jmfservice" Priority="50"/> </Command> </JMF> JMF 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 CIP4 Open Source Development Tools • XML Schema • C++ API • Java API • JDF Editor – Visualise JDF + JMF – Send Messages • Elk Project – Reference Device History 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 Experience 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 Experience 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 Why ICS ? JDF A Product A ICS JDF B Interoperability Conformance Specifications Product B Interoperability 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 ICS Document Structure MIS MIS TBD MIS MIS Prepress to Sheet Integ. MIS Prepress Binding Conv. ConvPrint DigiPrint DOMAIN ICS ICS Printing ICS ICS ICS ICS MIS Base ICS Base ICS JDF Specification JDF Tutorial Thank you very much for your attention!