The Elk Project Ola Stering Uppsala University Sunday, November 6, 2005 Strasbourg
The Elk Project An open source Java framework that provides the generic functionality required of a JDF- enabled device Send JDF instances Read JDF instances Device Receive JDF instances Modify JDF instances Create JDF instances Execute JDF instances Receive JMF messages Send JMF messages
The Elk Project Process implementation The Elk Framework Device Print Production Workflow JDF Instances JMF Messages
The Elk Project Consists of two parts –The Elk Framework Mainly specifies interfaces and abstract classes –The reference implementation Concrete implementations of the framework Simulated processes Is deployed as a web application
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 –Queue –Process –Subscription manager –Factory for JDF elements
Incoming Messaging Gateway Outgoing Messaging Gateway Process Job Queue Subscription Manager State Changes Poll for new job HTTP State Changes QueueStatus Processor Message Processors HTTP Architecture Overview Device
Overview of Important Classes org.cip4.elk.device > IncomingJMFDispatcher > JMFProcessor > OutgoingJMFDispatcher > SubscriptionManager dispatches JMF to org.cip4.elk.device > Process org.cip4.elk.queue > Queue org.cip4.elk JDFElementFactory
Reference Implementation Package name: org.cip4.elk.impl Concrete implementations of the classes defined in the Elk Framework: –Servlet for receiving JMF –Outgoing dispatcher for sending JMF –>10 JMF processors –Memory-based subscription manager –Memory-based queue –Approval process, ConventionalPrinting process –MIME package reader
Elk Reference Device Asynchronous HttpOutgoing JMFDispatcher Subscribing Incoming JMFDispatcher ConventionalPrintingProcess MemoryQueue SimpleSubscription Manager KnownMessagesJMFProcessor QueueStatusJMFProcessor HoldQueueJMFProcessor SubmitQueueEntryJMFProcessor OpenQueueJMFProcessor CloseQueueJMFProcessor ResumeQueueJMFProcessor StatusJMFProcessor EventsJMFProcessor StopPersChannelJMFProcessor DeviceConfig FileUtil ElkStartupServlet Dispatching JMFServlet
To Be Done… The Elk Framework –Add/refactor as reference implementation evolves Reference implementation –Full compliance to Base ICS Level 3 –Other ICSs –Add support for all JMF message types –Secure messaging as defined in JDF 1.3 –Full subscription/persistent channel support –Receive MIME –Submit MIME –Full queue support –Device capabilities –More process implementations Volunteers?
Live Demo The reference implementation web application. Send a KnownMessages Query to it to find out what it can do. A GUI for the Elk Device. The Queue and Configuration of the Device can be viewed. HELK – Human operable ELK, a human Device.
Why Elk? The Framework –Implement a JDF Device –Simulate processes The reference implementation –Simulation of processes –Testing, Elk is conformant with Base ICS –Getting to know JDF/JMF
More Information The project web site: –Binaries –Source code –Documentation Javadoc Developers Tutorial Design, UML diagrams Tools used: CIP4 JDFLib-J, Jakarta HttpClient, Servlet API A JDF-enabled Workflow Simulation Tool, Claes Buckwalter, TAGA 2005 Proceedings
Thank you for listening! Ola Stering