1 / 44

CERN’s Project Management Platform

CERN’s Project Management Platform. Jurgen De Jonghe CERN / IT-AIS jurgen.de.jonghe@cern.ch. Projects, Timeline. ATLAS Detector 500 MCHF CORE Cost, 150 institutes in 35 countries. 1999. LHC 3.3 BCHF expenditure 12 years. 2002. CNGS 75 MCHF expenditure CERN & Gran Sasso. 2003.

vila
Download Presentation

CERN’s Project Management Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CERN’s Project Management Platform Jurgen De Jonghe CERN / IT-AIS jurgen.de.jonghe@cern.ch

  2. Projects, Timeline • ATLAS Detector • 500 MCHF CORE Cost, • 150 institutes • in 35 countries 1999 • LHC • 3.3 BCHF expenditure • 12 years 2002 • CNGS • 75 MCHF expenditure • CERN & Gran Sasso 2003 • EGEE • 50 MCHF, • 70 partners • 800 project members 2004 2005 CERN wide strategic planning

  3. Concepts * WBS * WorkUnits * * Deliverables Resources • WBS: Work Breakdown Structure, hierarchical list of all the activities to be performed to complete the project. • Workunits: The “Leaves” of the WBS tree. Activity small in size/duration, under responsibility of one person. • use Resources (money, people) • to produce Deliverables

  4. Agenda • Intro: CERN’s Project Management Platform • In-Depth 1: DB infrastructure to track project evolution • In-Depth 2: Excel Upload in a JEE environment

  5. Change Management

  6. Tracking: what is the aim ? • Answer questions • What was changed by whom and when? • What are the emerging project trends? • Who is currently using the system? • How did the application’s data look in the past?

  7. Tracking: requirements • Easy to use, transparent • Robust • Performant • Support Workflow: approval before acceptance of new data • Collaborative: inform project stakeholders of changes • Storage overhead (less important)

  8. XML File for Database Description Tables Views <?xml version="1.0"?> <!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd"> <database name="PPT_EVM" tableTableSpace="tabppt" indexTableSpace="idxppt"> <table name="DOMAIN_LISTS" javaName="DomainLists“ tracking=“true” audit=“true”> <storage initial="50K" next="100K" maxExtents="20"/> <column name="ID" javaName="Id" primaryKey="true" required="true" size="6" type="DECIMAL" sequenceName="S_DOMLIST_ID“/> <column name="CODE" javaName="Code" required="true" size="12" type="VARCHAR“/> <column name="DESCR" javaName="Description" size="60" type="VARCHAR“/> … <foreign-key foreignTable="DOMAIN_LISTS"> <reference foreign="ID" local="PARENT_ID"/> </foreign-key> </table> </database> • Jakarta ‘torque’ + ‘velocity’ templates • Scripts for tracking are generated as pl/sql packages • ANT is used to build Triggers & Stored Procedures

  9. Administrative Information Services Tracking: timeline 10:00 11:30 12:00 Insert into shop(id, descr) values (1, ‘Shop 1’); 10:00 User1 11:30 User2 Update shop set descr = ‘Produkt shop’ where id = 1; 12:00 User3 Update shop set descr = ‘Product shop’ where id = 1; Jurgen De Jonghe CERN/IT-AIS

  10. Tracking: explicit authorization Administrative Information Services Jurgen De Jonghe CERN/IT-AIS Insert into shop(id, descr) values (1, ‘Shop 1’); 10:00 10:30 11:30 12:00 12:30 13:30 14:00 10:00 User1 10:30 PowerUser Authorise; 11:30 User2 Update shop set descr = ‘Produkt shop’ where id = 1; 11:45 PowerUser Reject; 12:00 User3 Update shop set descr = ‘Product shop’ where id = 1; 12:30 PowerUser Authorise; 13:30 User4 Delete shop where id = 1; 14:00 PowerUser Authorise;

  11. Tracking: summary so far Administrative Information Services • Each insert, update or delete on tracked object creates a new version (= row) in the database • Tracking can be with or without authorization • Each version can be in status: new, authorized or rejected • Two timelines: • First timeline shows time when each version was really created and shows all user actions, including rejected actions and delete attempts. • Second timeline shows only authorized versions (as user will normally see it). Jurgen De Jonghe CERN/IT-AIS

  12. Tracking: how does it work? Administrative Information Services SHOP_SRC SELECT ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID INSERT SHOP ‘instead of’ trigger Source Table ID DESCR View for last authorised version UPDATE SHOP_MIR DELETE ID DESCR Mirror Table Jurgen De Jonghe CERN/IT-AIS

  13. Transaction tables

  14. Tracking: Usage Statistics About 1 million transactions for slightly less than 2 million versions

  15. Agenda • Intro: CERN’s Project Management Platform • In-Depth 1: DB infrastructure to track project evolution • In-Depth 2: Excel Upload in a JEE environment

  16. Excel Import/Export

  17. Excel upload: Diagram

  18. Excel Upload: Why Spring Webflow • Definition of the flow in one XML file – the decision-states, action-states (executed code) and the view-states (JSPs shown to the end user) • Possibility to conduct our flow according to the results of the action’s execution (not only in case of error or success) • Simple integration into our Spring Application Framework

  19. Excel Upload: Webflow definition

  20. Excel Upload: JAXB config

  21. JAXB: Java Architecture for XML Binding • Easy to use ( SAX, DOM) • Customizable • Standard • Validation & Round-tripping

  22. Q & A

  23. Backup Slides to follow

  24. Tracking: DB Implementation Administrative Information Services SHOP_CHANGES SHOP_SRC SHOP_PAST ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR ID ID_PREV ID_CHANGED … VERSION IS_CURRENT_VERSION ‘Back to the past’ view SHOP_ALL Versions View Source Table ID DESCR View for last version SHOP SHOP_MIR ID DESCR ID DESCR View for last authorised version Mirror Table Jurgen De Jonghe CERN/IT-AIS

  25. Tracking: All Versions Administrative Information Services 10:00 10:30 11:30 12:00 12:30 13:30 14:00 SELECT * FROM SHOP_ALL WHERE ID = 1; Jurgen De Jonghe CERN/IT-AIS

  26. Tracking: DB Implementation Administrative Information Services SHOP_CHANGES SHOP_SRC SHOP_PAST ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR ID ID_PREV ID_CHANGED … VERSION IS_CURRENT_VERSION ‘Back to the past’ view SHOP_ALL Versions View Source Table ID DESCR View for last version SHOP SHOP_MIR ID DESCR ID DESCR View for last authorised version Mirror Table Jurgen De Jonghe CERN/IT-AIS

  27. Tracking: Changes Administrative Information Services 10:00 10:30 11:30 12:00 12:30 13:30 14:00 SELECT * FROM SHOP_CHANGES WHERE ID = 1; Jurgen De Jonghe CERN/IT-AIS

  28. Tracking: implicit authorization Administrative Information Services Insert into shop(id, descr) values (1, ‘Shop 1’); 10:00 11:30 12:00 13:30 10:00 User1 11:30 User2 Update shop set descr = ‘Produkt shop’ where id = 1; 12:00 User3 Update shop set descr = ‘Product shop’ where id = 1; 13:30 User4 Delete shop where id = 1; Jurgen De Jonghe CERN/IT-AIS

  29. Tracking: Transactions Administrative Information Services • Transactions group user actions • E.g., Changes to 5 workunits and their resources & deliverables • Transaction can have different transaction types. • Transaction can have comments. • Each change of tracked table belongs to some transaction. • Authorised transaction can be rejected later. Jurgen De Jonghe CERN/IT-AIS

  30. Tracking: Application Administrative Information Services • Application is responsible for: • starting and ending transactions • setting the comments • setting type of transaction • Apart from specific screens (trends, history) no other app.code is aware of tracking. Jurgen De Jonghe CERN/IT-AIS

  31. Tracking: Going back to the Past Administrative Information Services • How did the data look one year ago? • There is a possibility to ‘Go back to the past’. • Just call one function in TRANSACTION package and all _PAST views will return data for the desired date. Jurgen De Jonghe CERN/IT-AIS

  32. Similar generated infrastructure:Auditing, Trees, Searching • Auditing: automatically adds fields • creation date/user • last modification date/user

  33. Trees: Concepts * • WBS: Work Breakdown Structure, hierarchical list of all the activities to be performed to complete the project. • Workunits: The “Leaves” of the WBS tree. Activity small in size/duration, under responsibility of one person. • Workunits use Resources (money, people) to produce Deliverables • Other secondary breakdown structures will be used in large projects: • People and monetary resources are also organized in OBS (Organization) • Deliverables are part of the final product, described in PBS (Product) • Individual parts are assembled according to an ABS (Assembly)… WBS * WorkUnits * * Deliverables Resources

  34. Trees: Why • How to retrieve trees quickly from the database • Oracle “CONNECT BY” not ANSI standard, slow, sub-query restrictions • Iterate in Java: slow, not possible as sub-queries • We want a simple/quick query like: select code, description from wbs where b_path like ‘21.1.0.0.%’ order by b_orderintree;

  35. Trees: example WBS

  36. Searching: Simple example Auto-generation of an additional search field:

  37. Searching: more advanced WorkUnits * * Deliverables Resources WorkUnit extended with an extra Search Field: 19418: Supply & deliver series of thyristor converter : 1st batch Holder: A. BEURET Planned Start: 16-Nov-2004 End:16-Nov-2004 Actual Start: 30-Nov-2004 End:30-Dec-2004 Supplies & procurement (under F contracts only) Amount: 286,765 CHF BudgetCode: 96637 Contract F511/00, FF1008091 (IT-3003) Duty travel Amount: 2,000 CHF BudgetCode: 96637 Travel expenses for visiting the firm All other procurement (under M budget) Amount: 20,000 CHF BudgetCode: 96637 Free issues items F511 810A,450V] converters - Batch 1prov. Accepted 4 / 4 Unit Eq. Code: RPTF 16-Nov-2004 until 30-Dec-2004

  38. Tracking: DB Implementation Administrative Information Services SHOP_CHANGES SHOP_SRC SHOP_PAST ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR ID ID_PREV ID_CHANGED … VERSION IS_CURRENT_VERSION ‘Back to the past’ view SHOP_ALL Versions View Source Table ID DESCR View for last version SHOP SHOP_MIR ID DESCR ID DESCR View for last authorised version Mirror Table Jurgen De Jonghe CERN/IT-AIS

  39. Tracking: Tab & View Example Administrative Information Services 10:00 10:30 11:30 12:00 12:30 13:30 14:00 SELECT * FROM SHOP_SRC WHERE ID = 1; Jurgen De Jonghe CERN/IT-AIS

  40. Tracking: DB Implementation Administrative Information Services SHOP_CHANGES SHOP_SRC SHOP_PAST ID DESCR T_PK T_START T_END T_AUTHSTART T_AUTHEND T_WORKID ID DESCR ID ID_PREV ID_CHANGED … VERSION IS_CURRENT_VERSION ‘Back to the past’ view SHOP_ALL Versions View Source Table ID DESCR View for last version SHOP SHOP_MIR ID DESCR ID DESCR View for last authorised version Mirror Table Jurgen De Jonghe CERN/IT-AIS

  41. Tracking: Normal User View Administrative Information Services 10:00 10:30 11:30 12:00 12:30 13:30 14:00 SELECT * FROM SHOP WHERE ID = 1; Jurgen De Jonghe CERN/IT-AIS

  42. Excel Upload: Spring intro • Spring is essentially a technology enabling you to build applications using POJOs. • Through its bean factory concept, Spring is an Inversion of Control (Dependency Injection) container . • Hollywood Principle: "Don't call me, I'll call you.“ • Benefits: • components don't need to look up collaborators at runtime, they're simpler to write and maintain • for the same reasons, application code is much easier to test • most business objects don't depend on IoC container APIs. This makes it easy to use legacy code... an IoC container isn't invasive

  43. Excel Upload: Spring WebFlow • For building web application modules that guide the user through controlled navigations that drive business processes spanning HTTP requests. • A generic flow engine based on a finite-state machine for the execution of a web conversation. • Goals: • Integrates with existing frameworks like Struts, JSF... • Flow definitions should be declarative and understandable by business analysts (easy like a visual diagram, such as a UML state diagram) • Flow definitions should be self-contained. • Reusable modules usable standalone or combined in larger, more complex flows. • Easily testable in isolation.

  44. PPT: a Project Management Platform * * Web Components User Interface Components Analysis reports Ad hoc crosstabs Configurable Business Rules Project Management Domain OLAP Engine Collaborative Events & Alerts Bus Summary Layer Change Management Relational Database

More Related