BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
An Overview Of Virtual Machine Architectures Ross Rosemark.
Threads, SMP, and Microkernels
15 th Annual Tcl/Tk Conference October 2008 Timothy L. Tomkinson Fellow Software Engineer Northrop Grumman Electronic Systems Remote Control of Test Equipment.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
What is a Programming Language? The computer operates using binary numbers. The computer only knows about 1’s and 0’s. Humans can also use 1’s and 0’s,
Computer Systems/Operating Systems - Class 8
Chapter 13 Embedded Systems
Virtualization for Cloud Computing
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Java Analysis Studio Tony Johnson Stanford Linear Accelerator Center CHEP 97 - April 1997.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Oracle8 JDBC Drivers Section 2. Common Features of Oracle JDBC Drivers The server-side and client-side Oracle JDBC drivers provide the same basic functionality.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
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.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
 What is an operating system? What is an operating system?  Where does the OS fit in? Where does the OS fit in?  Services provided by an OS Services.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
RTEMS overview W. Eric Norum Introduction RTEMS is a tool designed specifically for real-time embedded systems The RTEMS product is an executive.
CHAPTER FOUR COMPUTER SOFTWARE.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Grob Systems, Inc., the customer, requires an industrial computer system that will have a function of acquiring raw data, processing the data, presenting.
DCE (distributed computing environment) DCE (distributed computing environment)
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Advanced Design and System Patterns The Microkernel Pattern.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Scott Ferguson Section 1
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
A Remote Collaboration Environment for Protein Crystallography HEPiX-HEPNT Conference, 8 Oct 1999 Nicholas Sauter, Stanford Synchrotron Radiation Laboratory.
Computing at SSRL: Experimental User Support Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
ITP 109 Week 2 Trina Gregory Introduction to Java.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Computer System Structures
Current Generation Hypervisor Type 1 Type 2.
The Mach System Sri Ramkrishna.
Chapter 3: Windows7 Part 1.
Computer Science I CSC 135.
Chapter 4: Threads.
Chapter 4: Threads.
Chapter 2: System Structures
Outline Chapter 2 (cont) OS Design OS structure
A Remote Collaboration Environment for Protein Crystallography
Outline Operating System Organization Operating System Examples
FEATURES OF PYTHON.
Presentation transcript:

BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory

Overview Computing Environment at our Beam Lines Need for cross-platform development. Need for distributed architecture. Beam Line Software Need for collaborative software. Need for high performance software. Software Development Strategy Constraints on our strategy. Our current strategy.

User Environment at Beam Line

Network Architecture of a Beam Line

Problem 1: Multiple Hardware Hosts

Problem 2: Multiple, Simultaneous User Interfaces

Solution: Distributed Control System (DCS)

DCS Server (DCSS)

Beam Line Universal - Integrated Configuration Environment (BLU-ICE)

BLU-ICE Motor Scan Windows

BLU-ICE Motor Configuration Windows

Advantages of Writing BLU-ICE in Tcl/Tk Command Prompt with Scripting Tcl was originally designed to be an embedded scripting language, so it is easy to give the user a command prompt and a full featured programming language for scripting. User can script any operation in BLU-ICE using control structures, variables, procedures, and even classes. Platform Independent GUI Tcl/Tk runs on any Unix, VMS, Mac, and 32-bit Windows computer. Scripts can be distributed without compilation and run on any computer Tcl/Tk has been installed on. Scripts can also be bundled with Tcl/Tk binaries and distributed as a single executable file. In this case, Tcl/Tk does not have to be installed on the target machine. Rapid Development Tcl/Tk GUIs can be written with only a fraction of the code necessary in typical system programming languages such as C, C++, or Java. GUIs can be quickly written and are easy to maintain in Tcl. This characteristic is critical in the rapidly changing environments of our beam lines. Object Orientation The [Incr Tcl] extension to Tcl provides object-oriented features such as classes. The [Incr Widgets] extension provides an object oriented framework for building complex widgets from built-in Tcl widgets. Extensible in C/C++ Tcl was designed to be extended readily in C. Extensions can be loaded dynamically. High performance code, multiple threads and so on are best implemented in extensions.

Data Collection with the New BLU-ICE

Experimental Station Setup Window

Energy Scan Window

DCSS Performance Now Critical

Cross-Operating System Library (XOS) Features Supports portable, multithreaded, distributed programs Network communication using a much simplified socket object. Thread creation and synchronization with mutexes and semaphores. Memory mapped files and hash tables. Interthread communication using message queues and Win32-style messages. Compile-time approach Header file xos.h loads appropriate, system-dependent include files. Objects hide architectural differences. Advantages l Portability Compile code on Digital Unix, IRIX, OpenVMS, Windows NT/95. Easy to port to new platforms similar to any of the above. l Reliability Simpler APIs leads to more reliable code. Less need to study different platforms. : Performance Native system calls on each platform for maximum performance No runtime overhead for platform independence.

Constraints for Software Development Strategies Cross-Platform Multiple operating systems needed at beam lines; future needs unknown. Remote users of the collaboratory may have many different operating systems. Other synchrotron labs and even users’ home labs may use our software. Must support VMS because other SSRL beam lines use it nearly exclusively.  Use XOS (Cross-Operating System) Library for low-level software and Tcl/Tk for GUI components when feasible. Distributed Applications must integrate services provided by different computing platforms. User interfaces must be kept separate from other components.  Use TCP/IP socket interfaces between all application components. High-Performance Server Processes Server software must be extremely fast and take advantage of multiple processors.  Write multithreaded C++ programs with XOS for portability. Open Source Must be able to distribute all software freely without licensing issues. Installation distributions, source code and documentation should be nicely packaged. Document well enough that other groups can use and extend our solutions on their own. Low Maintenance Overhead Write packages in layers that mix and match. Wrap packages in clean APIs that do not require knowledge of underlying code. Avoid requiring complex infrastructures. Make it easy for novice programmers.