TimeTable Publisher Frank Purcell TriMet TransITech February 14, 2007.

Slides:



Advertisements
Similar presentations
DOCUMENT TYPES. Digital Documents Converting documents to an electronic format will preserve those documents, but how would such a process be organized?
Advertisements

Raptor Technical Details. Outline Workshop structured by Raptor workflow – Raptor Event model. – ICA log file parsing – ICA/MUA event storage – ICA event.
1 Actuate Corporation © 2010 THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE.
Apache Struts Technology
Stat-JR: eBooks Richard Parker. Quick overview To recap… Stat-JR uses templates to perform specific functions on datasets, e.g.: – 1LevelMod fits 1-level.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Using JavaServer Pages Harry R. Erwin, PhD CIT304/CSE301.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Technical Tips and Tricks for User Support Mike Gardner
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Java Server Pages Russell Beale. What are Java Server Pages? Separates content from presentation Good to use when lots of HTML to be presented to user,
Matt Masson| Senior Program Manager
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
SQL Reporting Services Overview SSRS includes all the development and management pieces necessary to publish end user reports in  HTML  PDF 
4.01B Authoring Languages and Web Authoring Software 4.01 Examine webpage development and design.
Oracle XML Publisher Integration with PeopleSoft By, Mr. Venkat.
DEiXTo.
Oracle Application Express Summary. © 2009 Oracle Corporation Oracle APEX Roadmap APEX Introduced Interactive Reports Basis for Audit Vault Reporting.
Web Design Basic Concepts.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Client/Server Architectures
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Christopher Jeffers August 2012
WorkPlace Pro Utilities.
XForms: A case study Rajiv Shivane & Pavitar Singh.
RtReports in Action Barry Higgins Automation & Control Engineer.
Oracle Application Express 3.0 Joel R. Kallman Software Development Manager.
Traditional Web Based Application Structure Frameworks define how the application is designed, organised and deployed across various tiers.
GDT V5 Web Services. GDT V5 Web Services Doug Evans and Detlef Lexut GDT 2008 International User Conference August 10 – 13  Lake Las Vegas, Nevada GDT.
TimeTablePublisher T3 Webinar Frank Purcell May 14, 2008.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
OracleAS Reports Services. Problem Statement To simplify the process of managing, creating and execution of Oracle Reports.
JBoss at Work JAW Motors Application Chapter 1-3 Jeff Schmitt October 9, 2006.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Peoplesoft XML Publisher Integration with PeopleTools -Jayalakshmi S.
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
ColdFusion MX Rob Filardo and Lindsay Matteo A Brief History ColdFusion 1.0 was created in 1995 by Adam Berrey in order to help HTML programmers create.
CakePHP is an open source web development framework. It follows Model-View- Controller and is developed using PHP. IT is the basic for user to create.
Fall CIS 764 Database Systems Design L8. Web ….
Webcommerce Computer Networks Webcommerce by Linnea Reppa Douglas Martindale Lev Shalevich.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
TimeTable Publisher High Level Design Frank Purcell Location Based Services Group August 15, 2006.
1/22/08 RTR Project Presentation to TPTF RTR Project Michael Daskalantonakis & Brian Cook.
Database Server Concepts and Possibilities Lee Lueking D0 Data Browser Workshop April 8, 2002.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
The business logic engine for Microsoft IIS Speaker T.M. Arnett.
TimeTablePublisher History and Current Status Open Source Software Benefits and Potential Technical Support T3 Webinar May 14, 2008 Bibiana McHugh.
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
2 Copyright © 2011, Oracle and/or its affiliates. All rights reserved. BI Publisher: Technology and Architecture.
Chapter 6 Chapter 6 Server Side Programming (JSP) Part 1 1 (IS 203) WebProgramming (IS 203) Web Programming.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
APACHE STRUTS ASHISH SINGH TOMAR ast2124. OUTLINE Introduction The Model-View-Controller Design Pattern Struts’ implementation of the MVC Pattern Additional.
Apache Struts Technology A MVC Framework for Java Web Applications.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
TriMet Time Table Creation Process with TTPUB
J2EE Platform Overview (Application Architecture)
DotNetNuke® Web Application Framework
Unit 6-Chapter 2 Struts.
Design and Maintenance of Web Applications in J2EE
Lecture 1: Multi-tier Architecture Overview
JavaServer Faces: The Fundamentals
Presentation transcript:

TimeTable Publisher Frank Purcell TriMet TransITech February 14, 2007

Presentation Overview Brief History of the Project Introduction to the TimeTable Publisher Project Status & Learnings Next Steps?

History Transit Forum Workshop – October 2005 Origins: Dynamic Timetable Generator DTG Chosen as a trial open source project last October Polly Okunieff deserves credit for this earlier work Replaces Legacy TriMet Started March First release September 2006

What System that produces Timetables in various formats. Raw scheduling data requires preparation for public use that is normally a very tedious and time-consuming manual process for most transit agencies. The TimeTable Publisher is a single system that takes raw scheduling data as input from various sources, and output s timetables into various formats for public use.

W EB P RINT P RODUCTION Information Flow Raw Schedule Data TimeTable Configuration PDF MS Excel Adobe InDesign XML Schedule Writer Marketing TimeTable Publisher HTML PDF Proofing

Screen Shots – Configure & PDF

The TimeTable Publisher Addresses the Following Problems Common Data Standard: Google Transit Feed Spec (with minor enhancement), if it’s widely adopted by agencies, will provide the ideal common input format. Raw scheduling data is not intended for human consumption, and would appear incomplete without further processing (eg: Configure concept). Publishing Needs – the engine produces: oHTML & PDF for the Web oAdobe InDesign XML for Print oPotentially Others (easily any text file format)

Project Status Internal Release at TriMet TM Marketing dept. are Configuring for Print Production & Web Future project phase will address Operations Group needs. King County Metro and WA-DOT Google Transit Feed Spec as a Common File Format Keeping it simple for now – not using any Configuration. Tim Moore & Mike Berman (K ING Co.) and Marcy Jaffe (WA-DOT) Looking to Release to Open Source Which Open Source License? Where to Host as an Open Source Project? Resource Requirements?

Learnings Pros & Cons P ROS C ONS Google File Format is a key enabler to wider adoption. Timetable issues and needs are the similar between agencies. No showstoppers yet encountered. Working together with Tim, Marcy and Mike has been great. Configuration is Complex Requires some amount of technical skill to install & run. Java application, so the more experience with Java and Java Web Application Servers, the smoother the implementation.

Next Steps Open Source What Open Source License? Where to Host the Project? What roles and responsibilities are needed to move forward? WHO? What is the role of vendors? Technical What are other agencies requirements? Visit Us:

END

Sequence – Rendering a TimeTable View / Controller Raw Schedule TimeTable FreeMarker (html) iText (pdf) Configure Customer 4

Components of the Application Schedule Data Import oThe TimeTable Publisher can source data from both a database or from a set of files (eg: CSV or XML). oThe system has built-in functionality to read the Google Transit Data Feed CSV format (the data format being used for Google Transit). oCustom data adapters can also be built. These adapters extend and reuse existing system interfaces in an effort to reduce the work necessary to get a custom data format into the system. Configure Tools oMore esoteric configuration parameters are controlled via structured data files in the CSV (comma separated value) format. oThe entire configuration can be viewed and edited with common desktop applications (eg: Microsoft Excel). oA user interface is provided to allow the user to build timetables out of raw scheduling data. o A web tool allows the user to edit which timepoints appear on a table. This web tool also provides a view into the complete configuration.

Components of the Application Output Tools (includes batch and real-time generation of data). Timetables are published in the following data formats: XML, XML (for direct import into Adobe InDesign), HTML, PDF, Text oThe TimeTable Publisher can act as either a web application in real time, and/or run as an offline batch file processor, where a ZIP file of timetables is published in one or more of the file formats above. oA command line tool is provided to create a ZIP file of timetables in their specified format. A web based batch generator (tool to generate ZIP files via a web interface) is similar to the command line batch file generator. oWeb based interface for a real-time view of the data oOutput in PDF or HTML (could be a customer facing web application) Diff Tool: used to perform various comparisons between two service dates to determine the changes made and differences between the two schedules. Multi Agency Tool: Design goal is for multiple transit agency use. This tool is not tied to TriMet's data model -- there is a generic model of a timetable that TriMet's data (and potentially other agencies’ data) is translated into. Minimal effort (e.g., little to no coding) to get another agency's scheduling data flowing through this system and generating timetables. Google Transit: With the advent of Google Transit -- and more importantly, multiple agencies generating data for Google Transit in a common format -- this tool will leverage the Google Transit Feed Specification file format (which Google intends to make an open standard) as a primary data input for raw scheduling data.

Presentation Layer Data Object Layer Configuration Layer Persistence Layer – Raw Scheduling Data Swimlane – TriMet Print Prep Configure Interface TimeTable TriMet TimeTable TRANS Define Time Points Define Footnotes Freemarker/iText (web) etc… Processing Steps: 1.The Configure Interface creates a TriMet instance of TimeTable 2.The TriMet TimeTable object / code queries raw data from DB. 3.Marketing (IDP) will be actively creating & editing a configuration that defines the timetable look. 4.Marketing uses a web-app interface, which renders TimeTable objects into either HTML (FM) or PDF (iText). 5.When timetables are ready for print, XML files are generated & zipped. 6.CS (Designers) pick up the XML, and import into InDesign for print layout Freemarker (XML) Creative Services Zip File Adobe InDesign XML TimeTables 4 5 6

Presentation Layer Data Object Layer Configuration Layer Persistence Layer – Raw Scheduling Data Swimlane – TriMet Print Prep Configure Interface TimeTable TriMet TimeTable TRANS Define Time Points Define Footnotes etc… Processing Steps: 1.The Configure Interface creates a TriMet instance of TimeTable 2.The TriMet TimeTable object / code queries raw data from DB. 3.Marketing (IDP) will be actively creating & editing a configuration that defines the timetable look. 4.Marketing uses a web-app interface, which renders TimeTable objects into either HTML (FM) or PDF (iText). 5.When timetables are ready for print, XML files are generated & zipped. 6.CS (Designers) pick up the XML, and import into InDesign for print layout Creative Services Zip File Adobe InDesign 5 6 IDPDesigner PDF File (proofing) 4 2

Web DestinationPresentation Layer Data Object Layer Configuration Layer Persistence Layer – Raw Scheduling Data Swimlane – TriMet Website trimet.org Batch HTML & PDF Generation TimeTable TriMet TimeTable iText (PDF) TRANS Define Time Points Define Footnotes Freemarker (HTML) etc… Zip File CRON Processing Steps: 1.The Batch Process creates a TimeTable instance for each of our routes / directions / service keys. 2.The TriMet TimeTable object / code queries raw data from DB. 3.That data is filtered by an IDP (Marketing) defined configuration, which culls time points, adds footnotes, footnotes trips, etc… 4.Each TimeTable is sent to view objects which render PDF / HTML 5.A resulting zip file is eventually picked up and moved to trimet.org

Web DestinationPresentation Layer Data Object Layer Configuration Layer Persistence Layer – Raw Scheduling Data Swimlane – TriMet Website trimet.org Batch HTML & PDF Generation TimeTable TriMet TimeTable TRANS Define Time Points Define Footnotes etc… Zip File CRONCustomer Processing Steps: 1.The Batch Process creates a TimeTable instance for each of our routes / directions / service keys. 2.The TriMet TimeTable object / code queries raw data from DB. 3.That data is filtered by an IDP (Marketing) defined configuration, which culls time points, adds footnotes, footnotes trips, etc… 4.Each TimeTable is sent to view objects which render PDF / HTML 5.A resulting zip file is eventually picked up and moved to trimet.org

Java Libraries Used WhereTechnologyComment HTML & XML FreeMarker Essential tool: templating language for Java. You put Java beans (or collections of beans) on the FreeMarker stack, and dispatch control to your FreeMarker template. Within the template, you mix static text & markup with content from your beans (in this case TimeTable interface objects), to build a page. FreeMarker is run both as POJO to batch generate content, as well as within TimeTable Pub’s online configure & view tools FreeMarker Servlet Part of FreeMarker – allows templates to be used as dynamic web pages, where control hits servlet first & template second, ala the MVC Model 2 pattern. Java Script A fair amount of Java Script was used in the Configure Tool. PDFiText Java library for generating PDF files. Like FreeMarker templates, iText code understands how to traverse the objects that make up our abstract TimeTable data interface. Data Tier OpenCSV Great little library for reading & writing CSV files. Hibernate Object to relational binding, used in this project to read data from the database. Main advantages are 1) queries return data into java objects, as opposed to clunky result-sets, 2) built-in object caching and connection pooling, 3) automated code-generation of bindings.

Construction Technologies Used WhenTechnologyComment Development Eclipse Really need an editor with auto-completion and refectoring tools, especially using hibernate. Plus, Eclipse has is a database viewer, hibernate binder (big time saver), revision control, and a J2EE debugger etc… Just a vital tool. emacs Quick & dirty editor that complements Eclipse. Build Time Apache Ant The entire build, from code-gen to compile to.war deployment is handled by Ant…making the build process easily repeatable. Hibernate Tools Hibernate Tools is used to reverse engineer relational tables into objects and their O/R bindings, freeing up a lot of time that would otherwise be spent on building & maintaining plumbing code. Run Time Hibernate Converse with a database entirely via JavaBeans. Java 5.0 Heavy use of Generics (eg: Parametized Types / Templates), to add type clarity to Container objects. 5.0 Enums are also a used quite a bit. An Annotation used sparingly (but these are very cool in certain circumstances).