200 likes | 334 Views
CSS – Control System Studio Technology and Interfaces. CSS – Control System Studio Summary Presentation @ ITER March 8 th 2009 Matthias Clausen, Jan Hatje (DESY / MKS-2) Presented by: Jan Hatje. Overview. Structure of CSS Eclipse technology Eclipse add-ons CSS Core features
E N D
CSS – Control System StudioTechnology and Interfaces CSS – Control System Studio Summary Presentation @ ITER March 8th 2009 Matthias Clausen, Jan Hatje (DESY / MKS-2) Presented by: Jan Hatje
Overview • Structure of CSS • Eclipse technology • Eclipse add-ons • CSS Core features • Data Access Layer (DAL) • Archive Access Layer (AAL)
CSS Design IDE with CSS applications CSS UI CSS Headless CSS appl. CSS appl. CSS appl. CSS appl. UI CSS appl. CSS appl. Eclipse IDE CSS Core UI CSS Core Eclipse RCP UI Eclipse RCP Eclipse Runtime OSGi (Equinox) Java Virtual Machine
Components Custom Applications TINE JMS IOC Namespace Browser Archive Record LDAP Eclipse Data Browser CSS OSGi LDAP Server TINE Alarm Table TINE archiver Archive API AAPI Server Alarm Tree SDS LDAP - JMS XNDS Channel archiver DAL JMS Server EPICS TINE
Eclipse • Written in Java → operation system independent • Based on Equinox an OSGi implementation • OSGi is an open standard organization ‘Open Services Gateway initiative’ • Plug-in technology • Using SWT/JFace for UI • Provides a Rich Client Platform (RCP) for general applications • Add new functionality by extension points • Many helpful features (Drag and Drop, Help System, Update site, Language support, …)
Pros and cons • CSS is based on a widely used framework (Eclipse) • Technically a CSS application is an Eclipse plugin • Many levels of integration in CSS from ‘Wrap my Java Code in an Eclipse plugin and run it in CSS’ to ‘Using all CSS features for my plugin’ • Quick creation of new plugins • Single JVM for all CSS applications / plugins • The effort to get familiar with the Eclipse API is high • It is difficult to use AWT / SWING for Eclipse plugins
Eclipse Extension Points • A plug-in can use extension points to add new functionality • An extension point is defined by a XML-file and usually a Java interface • Not necessary to change existing plug-ins New CSS Plug-in Extension Point with an implementation from other plug-ins CSS Core Definition of an Extension Point Eclipse RCP
Eclipse Plug-in An Eclipse plug-in is a set of definition- and java files Java classes Strings in UI are hold in separated files for different languages HTML files for help pages File for OSGi bundle configuration Settings for build process of the plug-in File for Eclipse related configuration (on top of OSGi bundle) Content structure of plug-in help files
Object Contribution, Drag and Drop • Eclipse provides Object Contribution and Drag and Drop for data types • Plug-ins define data types they can handle • Eclipse manages context menu and drop targets depending on existing plug-ins Menu “CSS” shows all applications applicable for process variable Context menu on right mouse click on a process variable Call applications and send selected process variable
Preferences Preferences are ordered by topic and plug-in • Eclipse provides a Preference Store for all plug-in preferences • Define plug-in preferences • Create an initializer for default values (optional) • Create preference page (optional) Widgets for preference pages are available Plug-in preferences • Several levels for preference definition • Easy to administer preference settings • Different preferences for different CSS installations by *.ini files Product file preferences User preferences
Views, Editors and Perspectives Workbench: Users can arrange views and editors File types are connected to dedicated editors Detached view outside of CSS workbench Perspective: Predefined and individual arrangements of views and editors Editor: connected to workspace resources View: basic UI part
Update Site • Install additional features for CSS • Update existing plug-ins • Eclipse checks for dependencies of plug-ins • Easy to create an update site for your own applications • Update site can be located on web- or file server • Remote update → next presentation
Help Center Help Center runs in web server ‘Jetty’ integrated in Eclipse (http://krykxmpp:8099/help/index.jsp) Help pages are plain HTML files Global structure for help content of all plug-ins. Definition via XML Headless mode of Help Center. Accessible from any Browser
Headless Build I • Errors in CSS plugins are detected automatically • The headless build process is not used for deployment yet • Ant scripts for headless build are predefined in eclipse • The selection of plugins for the headless build is set in a CVS project • A program checks the log files and sends status mails to the developers
Headless Build II CVS Headless Build Configuration Check log file Configuration CSS plug-ins Eclipse Headless Build Developer generate Send status mails Check Headless Build check log files Detailed description: csstudio.org → Developers Corner → Headless Build
CSS Core • Data types for control systems (e. g. process variable, time stamp) to use Eclipse object contribution and drag and drop • Logging Service on basis of Log4J • Different destinations for log messages (console, file, JMS) • Common libraries for JDBC, JMS, EPICS, … • A service layer for database and messaging is under development • Authentication, authorization → next presentation • Remote management for CSS instances → next presentation
Data Access Layer (DAL) CSS Core Plug-ins DAL Interface Plug-in DAL EPICS Plug-in DAL TINE Plug-in DAL GSI Plug-in EPICS TINE GSI Corba
Data Access Layer (DAL) • Extension Point for implementations of control systems • Prefix for control system type • Caching of characteristics (no separated connection) • Connection state (connected, disconnected, failed) • Cosylab will create a example DAL plug-in for serial communication Control system prefix Characteristic (‘HOPR’ in EPICS) Process variable name
Archive Access Layer (AAL) • Defines an extension point and interfaces for archive access CSS Core Plug-ins AAL Interface Plug-in XML RPC AAPI Archive Record Archive TINE Epics Channel Archiver Epics Channel Archiver Epics IOC TINE Archive Server
Who is involved? • Core functionalities specified by DESY / SNS/ORNL • Initial implementation and design: C1-WPS / University of Hamburg • Data Access Layer (DAL): Cosylab • Archive Access Layer (AAL): DESY / SNS/ORNL