DISSERTATION PROPOSAL A Software Framework for Collaborative Development of Structural Analysis Code Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 Outline Motivations and Objectives (Why) Introduction: System Overview (What) On-line Element Services (How 1) Distributed Element Service Dynamic Shared Library Element Service On-line Data Access System (How 2) Summary: Next Step Collaborative Finite Element Program Environment Users Network (Internet or Others) development stage W/I Element migration to core for collaborative use CORE DEVELOPMENT MODEL (OpenSees) Library classes: ModelBuilder Domain classes Element library Solver library Nonlinear strategies etc... Check-in/Check-out W/I Element Object Wrapper/ Interface (W/I) Solution Strategies: Linear Algebra Operations -linear direct/iterative solvers, eigensolvers, nonlinear solvers, etc.. Analysis Strategies Staggered Scheme, LocalGlobal Analysis Scheme, Simplified Analysis and Modeling, etc.. migration to core for collaborative use Database For output and post-processing Workstations, Parallel Computers, Distributed Networked Workstations Motivation and Objective Develop a software framework that would allow engineers and users to easily access the analysis platform. Provide a plug-and-play environment where researchers and developers can build incrementally on each other’s successes. Bring the state-of-the-art computing methodologies into the state-of-practice in structural engineering analysis. Internet Database OpenSees CORE New Developments Distributed Models Outline Motivations and Objectives (Why) Introduction: System Overview (What) Collaborative System Architecture Client Client Internet Internet Finite Element Compute Engine OpenSees Registry Data Server Interface LAN (Local Area Network) Workstation Parallel Computer Workstation Parallel Computer Element Server 1 Internet Element Server 2 Server Modules Analysis Core Mechanics of the Collaborative Framework Submit Analysis Model 2 Perform Analysis SERVER INTERFACE 3 THE ANALYSIS CORE 7 WEB-BASED CLIENT 4 REGISTRY 8 6 5 1 Results ON-LINE ELEMENT SERVICE Example of a Sample Client Internet File Submission for Analysis Model Analysis Results Outline Motivations and Objectives (Why) Introduction: System Overview (What) On-line Element Services (How 1) Distributed Element Service Dynamic Shared Library Element Service Registration and Naming Service There are Two types of on-line Element Services: 1. Distributed services (RPC, Java RMI or CORBA) 2. Download dynamic shared library (FTP or HTTP) Distributed Element Service Distributed Element Service: Interaction Diagram G3 (C++) Classes QuadBuilder (C++) QuadElement (C++) QuadElement Client (java) QuadElement Server (java) QuadElement (java) Stiff (C, Fortran) buildFE_Model() QuadElement() formElement() formElement() new() calculateStiff() calculateStiff() return getStiff() getStiff() getStiff() getStiff() OpenSees Core Element Service Dynamic Shared Library Element Service Dynamic Shared Library: Pros and Cons Advantages: Flexibility: Dynamic execution at run-time; the server is able to run different services with the same interface. Extendibility: Easily extended to incorporate new modules (even after installation); enhance software maintenance and upgrade. Ownership: library source code controlled by its developer; facilitate bug-fixing and version control. Disadvantages: Platform Dependency: Not all operating systems support dynamic loading and binding. Security: Intrusion (virus, etc..) due to dynamic binding of “foreign” code from other site. Overhead: Minor overhead cost due to file download and dynamic binding. Outline Motivations and Objectives (Why) Introduction: System Overview (What) On-line Element Services (How 1) Distributed Element Service Dynamic Shared Library Element Service On-line Data Access System (How 2) On-line Data Access OpenSees can be turned into Application Server that resides in the middle layer for handling communication between Web Server and Database as well as incorporating Analysis logic and functionalities. Web Client Presentation Server Application Server Browser WebServer AppServer Data Server Database Dynamic HTML With JavaScript Pages Apache With Tomcat Java Servlet ORACLE ODBC OpenSees 8i Stored Procedure On-line Data Access Web Server 1 6 5 2 3 OpenSees CORE 4 Database ODBC Engine 0 Outline Motivations and Objectives (Why) Introduction: System Overview (What) On-line Element Services (How 1) Distributed Element Service Dynamic Shared Library Element Service On-line Data Access System (How 2) Summary: Next Step Benefits of Distributed Service The framework provides a means of distributing services in a modular and systematic way. Users can select appropriate services and can easily replace a service if superior service becomes available. It provides a easy way to integrate legacy code as one of the modular services in the infrastructure. It alleviates the burden of managing a group of developers and their source code. The participants can write their code based on the common communication protocol. Next Step Idea / Plan Prototype try Product Implementation Distributed System: Standardize element interface Further implement registration and naming service Improve distributed element services Data Access System: Finalize the data access system design Improve performance of data query Provide web-based user interface for data query Component Based Modeling: Identify a component reference model Model components and frameworks with UML Comments and Suggestions Are Welcomed!