Taming Development and Data Chaos in Military Logistics: The ICIS Experience With Lightweight Languages Gary Kratkiewicz BBN Technologies Geoffrey Knauth.

Slides:



Advertisements
Similar presentations
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 1 Introduction to Perl and CGI.
Advertisements

Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Web-based Gene Network Analysis in five minutes. Alex Williams.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Introduction to Web Based Application. Web-based application TCP/IP (HTTP) protocol Using WWW technology & software Distributed environment.
Active Server Pages Chapter 1. Introduction Understand how browsers and servers interacted when the Web was young Understand what early Internet and intranet.
SCRIPTING LANGUAGE. The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these,
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.
Russell Taylor Lecturer in Computing & Business Studies.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Web-Enabling the Warehouse Chapter 16. Benefits of Web-Enabling a Data Warehouse Better-informed decision making Lower costs of deployment and management.
November 2011 At A Glance GREAT is a flexible & highly portable set of mission operations analysis tools that increases the operational value of ground.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Server Side Scripting Norman White. Where do we do processing? Client side – Javascript (embed code in html) – Java applets (send java program to run.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Presented by: Lan Nguyen.  Started as cooperation with:  World Wide Web Consortium  Web Hypertext Application Technology Working Group  The future.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
Team 1 Jesus Weibo Mina Yunming. Client’s Needs  Short term, medium term, long term plans  Simulation of energy system to provide affordable future.
Software Development Stephenson College. Classic Life Cycle.
Introduction to Internet Programming (Web Based Application)
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
20-753: Fundamentals of Web Programming 1 Lecture 1: Introduction Fundamentals of Web Programming Lecture 1: Introduction.
CS101 Introduction to Computing Lecture Programming Languages.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
1 Welcome to CSC 301 Web Programming Charles Frank.
Slide 12.1 Chapter 12 Implementation. Slide 12.2 Learning outcomes Produce a plan to minimize the risks involved with the launch phase of an e-business.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
RUBRIC IP1 Ruben Botero Web Design III. The different approaches to accessing data in a database through client-side scripting languages. – On the client.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Java for networking Module Introduction Data Communications Communication architecture Application.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Online Voting System by Sanghun Chi ECE345. Introduction Traditional voting system inefficient. Takes time and human resources. Does not give an instant.
JavaScript Invented 1995 Steve, Tony & Sharon. A Scripting Language (A scripting language is a lightweight programming language that supports the writing.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Chapter 10 Application Development
Section 10.1 Define scripting
Project 1 Introduction to HTML.
Project 1 Introduction to HTML.
Section 17.1 Section 17.2 Add an audio file using HTML
CS101 Introduction to Computing Lecture 19 Programming Languages
Introduction to Programming the WWW I
Application with Cross-Platform GUI
PHP / MySQL Introduction
Section 10.1 YOU WILL LEARN TO… Define scripting
COCOMO Models.
and Program Development
Information Retrieval and Web Design
From Use Cases to Implementation
Presentation transcript:

Taming Development and Data Chaos in Military Logistics: The ICIS Experience With Lightweight Languages Gary Kratkiewicz BBN Technologies Geoffrey Knauth BAE Systems

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth2 ICIS Background Web-based software system Analyzes future combat and humanitarian operations Measures ability of Defense Logistics Agency to satisfy wartime requirements for following items: Fuel Food Replacement items (repair parts, clothing, medical items, etc.) Identifies potential problems When will I run out of stock? What should I buy today for tomorrows needs? Do I have adequate sources & transportation?

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth3 Accomplishments Early Web-based DOD system Saved over $100 million By computing reduced inventory needs for fuel and food Adopted as part of DOD doctrine Months of calculations reduced to hours What-if capability leads to better decisions Short analyses expanded role to crisis action Used in military operations to: Assess readiness Compute operational requirements

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth4 Development Notes Started in 1994 Grew from small prototype to large system in 4 phases User interface moved to Web in stages from 1996 to 1999 Approximately a third of code is in Lightweight Languages Significant data issues

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth5 Data, Data, Data Large amounts of data input files; 200 different formats Gigabytes of input and output per analysis Hundreds of analyses “active” Data management issues Received from many different agencies Regular and irregular updates Meandering formats Duplication between analyses: Computations Intermediate & output files

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth6 1. Prototype ICIS – 1994/1995 Original prototypes completely coded in Tcl/Tk Vague, rapidly changing, and conflicting requirements Less than 1 MB of data Ease of developing/tailoring lightweight prototypes greatly contributed to initial success

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth7 2. Production ICIS – 1995/1996 Lots of data: approaching 1 GB Addition of (mostly) well-specified computational modules Real use with classified data in mid-1996 Mix of languages: Tcl/Tk for GUI and glue for module execution Perl for data preprocessing C/C++ for computational modules

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth8 3. Web ICIS – Address remote access issues Moved to Web in stages On server: Tcl/Tk – glue for module execution Perl – data preprocessing C/C++ and Java – computational modules Perl and C++ – dynamic generation of HTML and JavaScript In browser: HTML – static GUI elements JavaScript – form-based GUI elements Java AWT applets – interactive GUI elements

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth9 4. Redesigned Web ICIS – 2001/2002 Improve GUI and better manage data Data approaching 1 TB On server: JScheme – managing data & module execution (sophisticated “glue”) Perl – data preprocessing C/C++ and Java – computational modules In browser: HTML – static GUI elements JavaScript (much less) – simple GUI elements Java AWT applets – more complex GUI elements Java Swing applets – most complex GUI elements JScheme for understanding scenario

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth10 Source Code Evolution

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth11 Summary of Lightweight Language Use in ICIS Rapid prototyping LL replaced by HL: completely for computations, partially for GUI Highly iterative, innovative design & development LL used in Data Set Manager, patent pending Processing of meandering data Gluing together heavyweight modules LL replaced with more sophisticated LL Building little languages Test code

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth12 JScheme — Application Flexibility Interpreter for debugging Scripts for component functionality Can be a server for execution management of multiple tasks Example implementation: BBN’s Data Set Manager

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth13 User Asks ICIS Questions User interaction with ICIS is web-based User defines composite scenario User specifies results of interest ICIS runs the assessment Numerous modules might be run It might take a while… Results appear in browser Example: “How much Fuel do I need?”

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth14 An Example Small Assessment

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth15 Problems Obvious approach of using shell scripts and files doesn’t cut it here Too much data Many computations recomputed needlessly

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth16 A Full ICIS Assessment Does Many Computations The readable version of this graph takes up a large wall.

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth17 Data Set Manager Data is described by features, not file names A module spec describes Inputs and outputs of a module Process relationships with other modules Modules can be implemented in any language A module spec is applied to a composite scenario to produce an execution script The script is executed All computations are memoized

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth18 Execution Management Needs Dynamic Capabilities Data Set Manager takes full advantage of Scheme

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth19 Implementing the Data Set Manager in JScheme was fairly easy because: Quasiquote was used to go from module spec to execution script A full language was required to write module specs Executing the script was just walking a tree structure

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth20 Murphy Strikes Start Goal Mistrial!

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth21 MVC: JScheme = M+C, Java = V Show Details Try Again Generate User Options Draw graph from knowledge of assessment state

LL2 - November 9, Gary Kratkiewicz & Geoffrey Knauth22 Data Set Manager — Conclusion Core implementation is 3804 lines of JScheme code Supported by 287 lines of Perl, 102 lines of SQL ICIS Module specs add another 1853 lines of JScheme Current APIs for other languages are: 688 lines of C 496 lines of Perl 356 lines of Java (1 class) 120 lines of JScheme BBN has applied for two patents