Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIP4 Tools The CIP4 JDF APIs Java C++ The CIP4 JDF Editor CheckJDF Elk.

Similar presentations


Presentation on theme: "CIP4 Tools The CIP4 JDF APIs Java C++ The CIP4 JDF Editor CheckJDF Elk."— Presentation transcript:

1 CIP4 Tools The CIP4 JDF APIs Java C++ The CIP4 JDF Editor CheckJDF Elk

2 Reasons for an open source JDF API
JDF uses XML as a Database, not as a Markup Language lots of ID-IDREF linking Inheritance by nesting Enhanced Validation in addition to XML Schema Use of the same code base simplifies interoperability between vendors Compile-time code validation through type safe classes instead of generic string based calls Same spec interpretation through a common high level code base Providing an open source API reduces barriers to adapting a JDF workflow

3 Technical Requirements
Platform independent Mapping of new C++ interfaces to preexisting JAVA interfaces thread safety Not thread-safe other than standard xerces Support any character encodings Unicode inside

4 Xerces Open source validating XML parser
Freely usable in commercial code C++ and Java version exist Validating and non-validating parsers Schema based on SUN and IBM XML parsers Use version 2.2 or higher in C++ 2.4 in JAVA download site:xml.apache.org

5 NameSpaces in the JDFLib (DOM Standard)
Namespaces (DOM Lvl1/Lvl2) are supported! Prefix != NameSpaceURI: Example: xmlns:HDM=“ Prefix Handling: GetElement(“HDM:MoonPhase”); XMLNS Handling: GetElement(“MoonPhase”,” Mixed XMLNS / Prefix handling is not supported GetElement(“MoonPhase”,”HDM”); GetElement(“HDM:MoonPhase”,” Mixing DOM lvl 1 and 2 may be hazardous to your code: <JDF:JDF ID=“i1” JDF:ID=“i2”>

6 High Level Design Features
Xerces provides both SAX and DOM Parsers JDF requires an object tree in memory in order to navigate links / references ==> Use the DOM implementation as base (C++) No pointers, only lightweight DOM wrapper classes. (C++) Standard Template Library Strings Vectors Maps (C++) gracefully handles Null elements nullElement.GetAttribute(“foo”) returns “”; Java implementation relies on standard Java interfaces

7 Type-Safe Code Generator
Java and C++ are generated Schema still has limits: requires element ordering or unlimited Cardinality nesting support not available API validation is always stronger than Schema validation Based on standard schema with additional meta-data (annotations) Naming Conventions based on the JDF Specification Schema Generator Automatic Classes

8 JDF Parser Class Layers
DOM_Element: Xerces KElement: STL String wrapper JDFElement: First JDF specific layer JDFResource: Resource Abstraction layer JDFAutoRunList: Automatic Schema-Generated RunList Abstraction layer JDFRunList: Hand-Coded

9 Additional Open Source Utilities (C++ Only – Included in Java.xxx)
Not directly parser related Simplify JDF implementation Mime Handling HTTP Message Client interface SSL Support PNG Support PNG GreyScale Separations File IO abstraction

10 CIP4 JDF Editor Java based tool to display JDF and JMF
Validating Based on JDFLib-J Mac and Win version Pros very nice Process view free Future improved Process view CheckJDF validation

11 Screenshot JDF editor

12 JDF Validators check complete context, links CheckJDF
future: CIP4 JDF Editor

13 CheckJDF CIP4 DOS tool to check against Pros Cons
schema (Xerces parser, XML limitations) JDF rules (more strict) Correct links between resources Name mangling Unlinked Resources Links that reference Nirvana Correct Partitioning Misspelt separation names Pros check if file is valid or not (or nearly valid) Cons output is difficult to read in case of errors also available as service on CIP4 website

14 Web based CheckJDF 1.2

15 CheckJDF output Output of the XERCES schema validation follows:
error Datatype error: Type:InvalidDatatypeValueException, Message:Value 'Ready' is not in enumeration . error ID attribute 'RNL00O_D' was referenced but never declared ********************************************************** Output of checkJDF proper follows: dangling ResLink: <RunListLink xmlns=" ProcessUsage="Document" Usage="Input" rRef="RNL00O_D"/> Warning: Separation Name not in ColorPool: Zwart !!! InValid Element: /JDF/ResourcePool[1]/ColorPool[1] ColorPool !!! Invalid Attribute: Status = Ready !!! InValid Element: /JDF/ResourcePool[1]/ColorantControl[1] ColorantControl !!! Invalid Element - (potential reference to invalid element): ColorPoolRef !!! InValid Element: /JDF/JDF[1]/JDF[1]/JDF[3]/ResourceLinkPool[1]/RunListLink[1] !!!

16 Elk A JDF Device Framework based on CIP4’s JDFLib-J
Claes Buckwalter CCMT, Linköping University, Sweden

17 Claes Buckwalter M.Sc. in Media Technology and Engineering 1997-2003
Print production Ph.D. Student ? Workflow and process automation in the printing industry

18 Centre for Creative Media Technology
Linköping University LiU Linköping Institute of Technology LiTH Department of Science and Technology ITN Centre for Creative Media Technology CCMT Located at Campus Norrköping

19 Elk A JDF Device Framework based on CIP4’s JDFLib-J

20 Goal To design and implement an application framework, in Java, that provides the basic services needed by a JDF device and that allows pluggable JDF device implementations.

21 Deliverables An application framework for JDF devices
Default implementations of services Conformance with: Base Conformance ICS MIS Base Conformance ICS, level 3 A JDF device implementation based on the application framework Simulate the behavior of a process

22 The Elk Framework Package name: org.cip4.elk
Interfaces and abstract classes that specify the services needed by a Device: Incoming/outgoing message dispatchers JMF processors/handlers JMF servlet Queue Process Subscription manager Factory for JDF elements

23 Incoming JMF Dispatcher
JMF Command/Query/Signal Synchronous Asynchronous Incoming JMF Dispatcher Registers subscriptions KnownMessages Processor QueueStatus Processor SubmitQueueEntry Processor Status Processor Events Processor Other JMF Processors Events Events Queue Poll for new job Process Subscription Manager Dispatches subscription queries Acknowledge Signal Signal Outgoing JMF Dispatcher JMF Acknowledge/Signal JDF

24 Reference Implementation
Package name: org.cip4.elk.impl Concrete implementations of the classes defined in the Elk Framework: Dispatching JMF servlet Synchronous message dispatchers 10 JMF processors Memory-based subscription manager Memory-based queue Approval process MIME package reader Tool for accessing URLs (http, https, file, ftp)

25 Approval Device KnownMessagesJMFProcessor QueueStatusJMFProcessor
HoldQueueJMFProcessor Dispatching JMFServlet Subscribing Incoming JMFDispatcher ResumeQueueJMFProcessor MemoryQueue CloseQueueJMFProcessor OpenQueueJMFProcessor ElkStartupServlet SubmitQueueEntryJMFProcessor ApprovalProcess DeviceConfig StatusJMFProcessor FileUtil EventsJMFProcessor StopPersChannelJMFProcessor SynchronousHttpOutgoing JMFDispatcher SimpleSubscription Manager

26 Test Tools Command-line client for sending JMF, JDF and MIME
Proxy support HTTPS support Servlet for testing MIME-sending clients

27 To be done... The Elk Framework Reference implementation
Refactor JMFProcessor into 3 interfaces SignalProcessor QueryProcessor CommandProcessor More inter-device events Add/refactor as reference implementation evolves Reference implementation Add support for all (38) JMF message types Asynchronous messaging Full subscription/persistent channel support Receive and submit MIME Full queue support Better process implementation

28 Timeline T&I 2004-09-15 T&I 2004-10-06 A simple JDF process 
HTTP JMF server  HTTP JMF client HTTP protocol fetcher  Full queue support T&I JMF Subscription service  MIME packages  Reading CID protocol fetcher (Device capabilities)

29 Release 0.5 A binary and source release will be posted on the project web site this week

30 Live Demo Send a KnownMessages query to it Send MIME packages to it


Download ppt "CIP4 Tools The CIP4 JDF APIs Java C++ The CIP4 JDF Editor CheckJDF Elk."

Similar presentations


Ads by Google