A Simulation Access Language and Framework For Project Management Applications Jinxing Cheng, PhD Student, Stanford University Gloria T. Lau, PhD Student, Stanford University Kincho H. Law, Professor, Stanford University The 10th International Conference on Computing in Civil and Building Engineering June 2nd-4th, 2004, Weimar, Germany 1 Presentation Agenda 2 Motivation A Simulation Access Language (SimAL) The SimAL Framework and Implementation Efforts Example Demonstration Summary Motivation 3 Paradigm shift in software development Lack of interoperability among different project management tools Difficult to coordinate different applications Integration Coding 1970 1990 2010 (Figure: Courtesy of Professor Gio Wiederhold of Stanford University) The Simulation Access Language (SimAL) 4 Design Goals – Developing a Simple, Easy-to-Use High-level Language – Coordinating Services and Managing Information Flow – Simulating and Comparing Scenarios Major Components – Invocation Statements (SETUP, INVOKE) – Operation Statements (QUERY, UPDATE) – Control Statements (IF-THEN-ELSE, WHILE) – Decision-support Statements (SCENARIO CREATION, SCENARIO COMPARISION, etc.) Operation Statements in SimAL 5 Operation statements include QUERY and UPDATE QUERY statements – SELECT, to query information from the simulation results UPDATE statements – SET, to update project models in simulation tools – DELETE, to delete objects in project models – INSERT, to insert objects in project models e.g., reset the duration of activity ID100 UPDATE(“Set duration = 4 where activityID = ID100”, arho, %%) An Example SimAL Program 6 SimAL ComparisonDemo { psl_svc = SETUP("ServicePsl") query_svc = SETUP("ServiceQuery") p3_svc = SETUP("ServiceP3") update_svc = SETUP("ServiceUpdate") gcl_svc = SETUP("ServiceGCLEstimator") arho = psl_svc.INVOKE("to-psl", %%) cost = gcl_svc.INVOKE("Re-estimate", arho, %%) sn1 = SCENARIO("Original Schedule"){ stat1 = query_svc.QUERY("select finishDate", arho1, %%) sn1.SETSCENARIO(stat1) } Initiate Connections Obtain Cost Information Specify Scenario 1 sn2 = SCENARIO("Expedite Delivery"){ update2 = update_svc.UPDATE("set startDate = 2003-11-20 where activityID = ID210", arho, %%) arho2 = p3_svc.INVOKE("reschedule", update2, %%) Specify stat2 = query_svc.QUERY("select finishDate", arho2, %%) sn2.SETSCENARIO(stat2) } res = COMPARE(sn1, sn2) DISPLAY(res, "Compare Two Scenarios") DISPLAY(cost, “Original Project Cost”) } Scenario 2 Compare Scenarios & Display Results The SimAL Framework 7 User Inputs (SimAL Program, etc.) MS Excel or Web Browser Interface SimAL Preprocess Final Results SimAL Post-Process FICAS SimAL Update and Query Engines Wrappers Project Management Tools FICAS (Flow-based Infrastructure for Composing Autonomous Services) developed by Dr. David Liu Wrapping Project Management Applications Vite SimVision Primavera P3 GeneralCost Estimator Microsoft Project Microsoft Excel Retrieve information from applications Retrieving and Updating Information AutoCAD ADT 4D viewer Feed information into applications P3: Primavera Automation Engine MS Project, MS Excel, GC Estimator, AutoCAD: VBA + application modules Vite SimVision: JDBC 4D Viewer: Plain text P3: Primavera Automation Engine MS Project, MS Excel, GC Estimator: VBA + application modules Vite SimVision: JDBC Ontology Mapping Map concepts into formal PSL ontology Map PSL ontology to concepts in individual software Syntactic Translatiom Convert to PSL format PSL parser PSL Files 8 Invoking Project Management Applications 9 Wrappers developed for each legacy application Standalone and embedded services invoked differently FICAS Invoke Primavera P3 1. FICAS invokes P3 to reschedule the project 3 1 Event Server 2 Invoke GeneralCost Estimator 2. GeneralCost Estimator connects to the Server 3. FICAS sends INVOKE message to the Server 4. Server calls Estimator to re-estimate the cost 4 Communication Agent Wrapper Wrapper GeneralCost Estimator in Microsoft Excel Primavera P3 Example Results – Collaborative Demonstration Tested on the Arnold House Project from Vite Collaboratively demonstrated between Scotland and Stanford 10 Example Results -- Workflow in the Demonstration 11 Dynamically incorporating online weather information The whole process automated Viewing the impact whenever there is a concern Online Weather Information Information of Weather Impact Process Weather Impact Re-Schedule the Project Re-Simulate the Project Scheduling Information (e.g., P3, MS Project, or Database) Workflow in the Weather Demonstration Notify Participants Example Results -- Snapshots from the Demonstration 12 Weather Reports Impact of Weather Information View the Impact on Schedule View the Impact on Task Backlogs Summary 13 Data Integration PSL is used to exchange project information among different applications. Workflow Management and Decision Support A simulation access language (SimAL) and framework to allow users to simulate scenarios involving multiple tasks supported by different software applications. Example Demonstration We demonstrated the system by incorporating online weather information into project management. Acknowledgements 14 Professor Bimal Kumar of Glasgow Caledonian University Dr. David Liu of Mckinsey A Stanford Graduate Fellowship The Product Engineering Program, NIST Center for Integrated Facility Engineering, Stanford University End of Presentation 15 Questions and Comments: Jim Cheng (cjx@stanford.edu)