PALM-3000 Software Architecture T. TRUONG Team Meeting #7 27 February 2008.

Slides:



Advertisements
Similar presentations
Distributed Processing, Client/Server and Clusters
Advertisements

A component- and message-based architectural style for GUI software
Remote Procedure Call (RPC)
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Distributed Processing, Client/Server, and Clusters
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Chapter 16 Client/Server Computing Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Technical Architectures
MSc IT UFIE8K-10-M Data Management Prakash Chatterjee Room 3P16
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Threads Clients Servers Code Migration Software Agents Summary
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
Lecture 23: Software Architectures
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
Interpret Application Specifications
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
5 Creating the Physical Model. Designing the Physical Model Phase IV: Defining the physical model.
Inventory Management System With Berkeley DB 1. What is Berkeley DB? Berkeley DB is an Open Source embedded database library that provides scalable, high-
Course Instructor: Aisha Azeem
Database System Architectures  Client-server Database System  Parallel Database System  Distributed Database System Wei Jiang.
Distributed Systems: Client/Server Computing
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Database Management Systems (DBMS)
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Conceptual Architecture of PostgreSQL PopSQL Andrew Heard, Daniel Basilio, Eril Berkok, Julia Canella, Mark Fischer, Misiu Godfrey.
Selecting and Implementing An Embedded Database System Presented by Jeff Webb March 2005 Article written by Michael Olson IEEE Software, 2000.
Chapter 8 Windows Outline Programming Windows 2000 System structure Processes and threads in Windows 2000 Memory management The Windows 2000 file.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
1 Chapter 3 Database Architecture and the Web Pearson Education © 2009.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
OpenACS: Porting Oracle Applications to PostgreSQL Ben Adida
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
NoSQL Databases Oracle - Berkeley DB. Content A brief intro to NoSQL About Berkeley Db About our application.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Processes Introduction to Operating Systems: Module 3.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
We will focus on operating system concepts What does it do? How is it implemented? Apply to Windows, Linux, Unix, Solaris, Mac OS X. Will discuss differences.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Presented by: Tim Fleck.
TSS Database Inventory. CIRA has… Received and imported the 2002 and 2018 modeling data Decided to initially store only IMPROVE site-specific data Decided.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
TinyOS and nesC. Outline ● Wireless sensor networks and TinyOS ● Networked embedded system C (nesC) – Components – Interfaces – Concurrency model – Tool.
Module 3: Operating-System Structures
The Client/Server Database Environment
#01 Client/Server Computing
Operating Systems and Systems Programming
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Software models - Software Architecture Design Patterns
Design Components are Code Components
Outline Chapter 2 (cont) OS Design OS structure
#01 Client/Server Computing
Presentation transcript:

PALM-3000 Software Architecture T. TRUONG Team Meeting #7 27 February 2008

PALM-3000 Agenda Architectural Goals Constraints and Strategies System Architecture Database Architecture GUI Architecture Toolchain

PALM Architectural Goals Ranked in order of decreasing importance: Performance –Split-phased, active-message based architecture, improved database engine. Modular construction –Component based architecture. Flexible composition –Interface-driven, distributed architecture. Reliability –No dynamic memory allocation after initialization. Extensibility –Table driven command processor, component based architecture Maintainability –Automated document generation similar to JavaDoc.

PALM-3000 Architectural Constraints & Strategies Within the schedule and budget constraints for 2009 delivery. Reuse existing code wherever appropriate. Incorporate publicly available proven toolchains and libraries. Incremental delivery if necessary.

PALM-3000 Software Context Overview P3K AO TCS Science Instruments LGS BTO Control Data AOOperator

PALM Architectural Highlights The PALM-3000 software architecture is… Component-based Interface-driven Split-phased Distributed Active-message-based

PALM-3000 Component-Based Architecture Similar to objects –Define functions and allocate state. –State variables are strictly private. Different from objects –Components are singletons – can’t instantiate them. –Modeled after hardware – can’t instantiate control regs and output pins. –Code reuse via templates and parameterized interface. Use purely local namespace –A calls C and B calls C. Yet A and B refer to different implementations of C. Encourage modular design

PALM-3000 Interface-Driven Architecture Components interact via bidirectional interfaces An interface = {commands} U {events} –Command = function to be implemented by the interface’s provider. Calls down the component graph. –Event = function to be implemented by the interface’s user. Calls up the component graph. A component must implement the events in order to call the commands of the interface. A component may use or provide multiple interfaces. Separate construction from composition. Enable dynamic composition. Allow underlying implementations to be replaced easily.

PALM-3000 Split-Phased Architecture Invocation and completion split into two separate phases of execution –For a long-running operation, the call returns immediately. The called abstraction issues a callback (event) when it completes. Fully event-driven Keep the system responsive –There is never a situation when an application needs to take an action but all of its threads are tied up in blocking calls Save memory –Determining the exact stack size is difficult in case of a blocking operation. The OS often chooses a very conservative and therefore large size. –Creating large variables on the stack is rarely necessary.

PALM-3000 Distributed Component Architecture Based on proxy components –Shield the client/user components from the fact that the underlying components are remote. All components have proxy capability. Use common library to enable proxy capability.

PALM-3000 Active-Message-Based Architecture Active Messages provide the enabling mechanism for low-latency remote procedural calls. Provide messaging functionality for proxy components.

PALM-3000 Implementation View

PALM-3000 Database Architectural Highlights Consists of two main components –AODR: Data recorder component. –AODS: Data server component. Provides publish-subscribe capability. Embeddable, in-memory, not client-server –Components may link directly into the application. –Run in the same address space as the application. –No interprocess-communication required.

PALM-3000 Database Architectural Highlights (Continued) Simple function-call API –Simple key/value lookup and store. –No query language (SQL) to parse. –No execution plan to produce. –Not a relational database –API binding for C, Java,and IDL language. Data stored in application-native format –No translation or mapping required. Configurable Cache –Provides fast access to memory-resident data. –Minimizes data stores to disk. –Exploits temporal locality of reference.

PALM-3000 Database Architectural Highlights (Continued) High concurrency –Multiple processes (readers and writers) on a single machine, or multiple threads in a single process, can all use the same database concurrently. Transactions and recovery –Permit multiple changes appear at once. –Guarantee the database is complete and usable after a system or application crash. Hot backups –Support backups while the database is in use, using standard Unix utilities (dump, tar, cpio, cp, …) Nothing more than key/value lookups with cache management plus transaction and locking support

PALM-3000 Graphical User Interface Support multiple GUI clients –One controller with multiple viewers. Thin Java clients –No automation logic. –Decouple automation logic from GUI logic. XML-based user interface –Develops much faster and more easily than in ordinary Java. –Allows data binding (properties updated in real-time as values of expressions change). –Supports powerful CSS stylesheet (enables skinning). –Separates logic from presentation.

PALM-3000 Open Source Toolchain nesC –A component-oriented programming language, C-extension. –Compiler is an extension of GCC. –Compiler outputs C code or object code. nesdoc –Generate code documentation using simple tags. –Same concept as JavaDoc. –Can generate a component graph using dot. Berkeley DB –“The most efficient, most scalable, and fastest database engine available today.”