Developing Applications with the CSI Framework A General Guide.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
Advertisements

How to Build Multi- threaded Applications in.NET Mazen S. Alzogbi Technology Specialist Microsoft Corporation.
Database Architectures and the Web
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
The road to reliable, autonomous distributed systems
Computer Systems/Operating Systems - Class 8
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Interpret Application Specifications
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Apache Tomcat Web Server SNU OOPSLA Lab. October 2005.
Peter Hinrichsen TechInsite Pty Ltd Rolling your own Object Persistence Framework (OPF) Please consider the following questions:
1 Guide to Novell NetWare 6.0 Network Administration Chapter 11.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
Cloud computing for internet emulator. Professor Muthucumaru Maheswaran Team Members Mia Hochar Simon Foucher David El Achkar David El Achkar Marc Atie.
Exploiting Windows 2000 Kyle Marsh Software Design Engineer Windows Evangelism Microsoft Corporation
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
1 Hammad Khan. COURSE CONTENTS.NET Framework And C# SQL Server 2008 ADO.NET LINQ ASP.NET Dynamics Data ASP.NET MVC framework 2 Advance C# Concepts Windows.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
1 Introduction to Microsoft Windows 2000 Windows 2000 Overview Windows 2000 Architecture Overview Windows 2000 Directory Services Overview Logging On to.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Hands-On Microsoft Windows Server Implementing Microsoft Internet Information Services Microsoft Internet Information Services (IIS) –Software included.
Processes Introduction to Operating Systems: Module 3.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
A XML 1 An XML Driven Graphical User Interface and Application Management Toolkit Matthias Clausen (DESY & SLAC) Piotr Bartkiewicz (DESY & FPNT/AGH) Alexei.
Multithreaded Programing. Outline Overview of threads Threads Multithreaded Models  Many-to-One  One-to-One  Many-to-Many Thread Libraries  Pthread.
System Components ● There are three main protected modules of the System  The Hardware Abstraction Layer ● A virtual machine to configure all devices.
Imagine Creating Software Without a Single Line of Code!
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Chapter 13Oracle9i DBA II: Backup/Recovery and Network Administration 1 Chapter 13 Network Administration and Server-side Configuration.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Linux Operations and Administration
.NET Mobile Application Development XML Web Services.
CEG 2400 FALL 2012 Windows Servers Network Operating Systems.
EJB Enterprise Java Beans JAVA Enterprise Edition
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
WEB TESTING
Introduction to threads
Chapter 3: Windows7 Part 5.
Windows 2008 Overview Lecture 1.
Asynchronous Task (AsyncTask) in Android
Current Generation Hypervisor Type 1 Type 2.
ODBC, OCCI and JDBC overview
Netscape Application Server
LOCO Extract – Transform - Load
Self Healing and Dynamic Construction Framework:
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Chapter 3: Windows7 Part 5.
Apache Tomcat Web Server
Working at a Small-to-Medium Business or ISP – Chapter 7
Software models - Software Architecture Design Patterns
Multithreaded Programming
Presentation transcript:

Developing Applications with the CSI Framework A General Guide

Framework Overview Developed over 10 years (since 1999) Represents over two man-years development effort Object-oriented application framework Targets Win32 applications Can be used with Delphi Can be used with Windows 2000 and above Specifically targeted at multi-threaded multi- tiered/distributed applications

Framework Goals Fundamental goal of the framework is to provide all necessary software “plumbing” for application development Secondary goal of the framework is to do this in a way that enables scalable development across threads and processes

Using the Framework Latest version can be downloaded from the ADUG web-site Follow the installation guide to install Simple Developer’s Guide can be downloaded from the ADUG web-site

Application Components Six types of application “components”: –Application threads –UI threads –Communications clients –Communications servers –Database managers –Globals component

Application Messaging All application components, except database managers, are “connected” via the passing of application “messages” An application message is actually an object that holds arbitrarily structured information Component messaging interface enables the asynchronous and synchronous processing of messages Component messaging interface enables the registration of other application components as “consumers” or “handlers” of messages

Application Configuration Static application configuration file (.cnf) lists the application components, their initial configuration, and their messaging connections Dynamic application settings file (.ini) enables any performance settings for each application component to be updated dynamically

Framework Layers Split into four layers –Core –Utilities –Application –Framework

Core Layer Essential system, string, date/time, file, and application routines Application logging, exception handling, and startup/shutdown management Configuration variable management Singleton object management Base threading framework, including a base thread class, thread-safe utility classes, and thread- synchronisation classes/routines Essential utility classes, including integer set, id/value pairs, and text streams

Utilities Layer Additional compression, encryption, and network routines Base threaded-queue framework, including a base threaded-queue class and additional thread- safe utility classes Additional utility classes, including XML object, XML parser/assembler, stopwatch, class registry, virtual directory, and persistent queue Utility components, including timer and file iterator

Application Layer Application globals class to manage the application as a whole Application configuration manager class to manage standard configuration settings Base thread message class to encapsulate arbitrary structured data Extended threaded-queue framework, including thread message object handling and a thread timers class Object/interface reference manager to enable the mapping of object/interface references to strings Generic TCP client and server classes for inter-process communication Generic database manager class for database access

Framework Layer High-level management of inter-process communication High-level management of database access Implementation of a configurable "application component" framework Implementation of a consistent thread messaging interface for all thread and communication "application components“ Separation of dynamic performance settings from static application configuration

Useful Constructs/Techniques Separation of VCL-specific (non-RTL) code into a separate unit Implementation of an accurate high-resolution timer Optimised utility class to manage id-value pairs of strings Separation of Windows system-specific code into a separate unit Generic utility classes for text stream manipulation using records and fields

Useful Constructs/Techniques (cont’d) Class registry to enable the mapping of class names to classes Virtual directory class to handle a large number of files in a single directory XXTEA 128-bit encryption routines Zip compression routines

Useful Constructs/Techniques (cont’d) RAM and CPU usage logging Single application instance management Restart application on shutdown management Reference manager to enable the mapping of object/interface references to strings Thread timers class to implement timers for threads

Framework Benefits Reduction in amount of untested application- specific code Simplified thread-specific code Simplified database access code Simplified user interface access code Built-in diagnostic tools to aid issues resolution Consistent implementation of common functionality

Future Directions Cross-platform support: Win32 (now),.NET using Visual Studio (not yet released), Linux (hopefully with Delphi 2011) Additional core functionality: server solicit/client response message pattern (not yet released), thread pooling (in development) Simple installation support (in development) File Sync system (in development)

Summary The CSI Framework provides a relatively easy way to develop complex multi-threaded multi- tiered/distributed applications

Links

Questions Any questions?