Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
01. Dezember 2008 Martin Feldmann, [email protected]
ÜberblickÜberblick
• Was ist CSS ?• Motivation• Design• Applikationen• Entwicklungsbeispiel • Kollaboration/ Entwicklung• Demo
01. Dezember 2008 Martin Feldmann, [email protected]
Was ist CSS?Was ist CSS?
CSS ist:
• ein Framework für Plug-ins zurEntwicklung vonKontrollsystemkomponenten
• eine eclipse Rich Client Application
01. Dezember 2008 Martin Feldmann, [email protected]
MotivationMotivation
Aktueller Stand der Operator Interfaces (OPI):• Viele Anwendungen verschiedenster Art
– implementiert von verschiedenen Entwicklern– mit unterschiedlichem Look & Feel– in verschiedenen (Programmier/ GUI) Sprachen– nur für spezifische Betriebsysteme– nur im Kontext spezifischer Kontrollsystem Typen– Datenaustausch ist oft nur als 'String' möglich
01. Dezember 2008 Martin Feldmann, [email protected]
DesignDesign
Ziel: Verbesserung der aktuellen Situation• gleiches Look & Feel• Information 'on your fingertips'• drag 'n' drop von Objekten zwischen CSS Plug-ins• Middleware statt spezifische API's:
– Management Interfaces– Name Server (JNDI)– Data Access Layer (DAL)– Archive Access Layer (AAL)
• effektive Kollaboration
CSS
TANGO
EPICSTINE
01. Dezember 2008 Martin Feldmann, [email protected]
DesignDesign
Fazit:
• Java– eine Sprache für viele Plattformen
• eclipse– um den RCP Ansatz zu verwenden– um der wachsenden Gemeinde von eclipse Entwicklern
beizutreten– eingebaute Multi Language Unterstützung (localization)– gemeinsames Look & Feel
01. Dezember 2008 Martin Feldmann, [email protected]
eclipseeclipse
• gestartet 2001 von IBM• Open Source Community• verbreitet als Java IDE (Integrated Development Environment)• praktisch ein Plug-in Manager
01. Dezember 2008 Martin Feldmann, [email protected]
eclipse RCPeclipse RCP
• eclipse dient als Open Tools Plattform• RCP: org.eclipse.ui und org.eclipse.core.runtime
Features:• schnelle Entwicklung, Fokus auf Funktionalität neuer Applikationen• RCP Komponenten sind Open Source• viele wieder verwendbare Komponenten(z.B. Update Manager, Help UI, Cheat Sheets, Intro, etc.)
• Entwicklung einer offenen Plattform in eigenem Anwendungsbereichmöglich: CSS
01. Dezember 2008 Martin Feldmann, [email protected]
CSStudioCSStudio PlugPlug--In ÜbersichtIn Übersicht
Applikationen:
•Display•Alarm•Diagnostic Tools•Configuration•Utilities•Trends
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: DisplayApplikationen: Display
•SDS
•ADL Converter
•PV Tabelle
•Garbage Collector
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: AlarmApplikationen: Alarm
•JMSAlarmLog
•JMSLogsArchive
•TreeView
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: Applikationen: DiagnosticDiagnostic ToolsTools
•JMS Logs•JMS Sender•AMS Monitor•RMT Control•Post Analyser•Probe•SNL Editor/Debugger•Statistic Viewer
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: Applikationen: ConfigurationConfiguration
•AMS Configurator
•IO Config
•Action Request Explorer
•Directory Viewer
•Save Value
•Authorize ID
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: Applikationen: UtilitiesUtilities
•Name Space Browser (LDAP)•Name Space Search•Name Space Browser (TINE)•Screenshot•System Monitor•CA Snooper•Record Property•Quickstart•(Clock, Therapist)
01. Dezember 2008 Martin Feldmann, [email protected]
Applikationen: TrendsApplikationen: Trends
•Daten Browser
01. Dezember 2008 Martin Feldmann, [email protected]
SDS erweitern, Beispiel:SDS erweitern, Beispiel:Meter Meter WidgetWidget
• Widgets sind auf der MVC Architektur aufgebaut:
• ModelDefiniert Eigenschaften, speichert die zugehörigen Werte und verfolgt Wertänderungen.
• ViewDie visuelle Repräsentation des Modells.
• ControlKontrolliert das Zusammenspiel zwischen graphischer Repräsentation und Modell.
01. Dezember 2008 Martin Feldmann, [email protected]
Beispiel: Beispiel: MeterModelMeterModel
Modell:• ein Modell anlegen: MeterModel extends AbstractWidgetModel
- assoziierte Factory erstellen: MeterModelFactory implements IWidgetModelFactory
• das Widget Modell registrieren (Extension Point org.csstudio.sds.plugin.xml):
<extension point="org.csstudio.sds.widgetModelFactories">... <widgetModelFactory
class="org.csstudio.sds.components.internal.model.MeterModelFactory"description="Creates a meter control."icon="icons/meter.gif"name="Meter"typeId="org.csstudio.sds.components.Meter"/>
<widgetModelFactory...
</extension>
01. Dezember 2008 Martin Feldmann, [email protected]
Beispiel: Beispiel: MeterModelMeterModel
View:• Visuelle Elemente implementieren das eclipse core Interface
IAdaptable:RefreshableMeterFigure
extendsorg.eclipse.draw2d.Shapeimplementsorg.eclipse.core.runtime.IAdaptable
01. Dezember 2008 Martin Feldmann, [email protected]
Beispiel: Beispiel: MeterModelMeterModel
Control:• SDS Widget Controller sind spezielle GEF Edit Parts. SDS bietet dazu ein Framework an:
– MeterEditPart extends org.csstudio.sds.ui.editparts.AbstractWidgetEditPart– MeterEditPart assoziiert das Modell und den View
- Den Edit Part registrieren (Extension Point org.csstudio.sds.ui.plugin.xml):
<extension point="org.csstudio.sds.ui.widgetEditParts">...
<widgetEditPartclass="org.csstudio.sds.components.ui.internal.editparts.MeterEditPart"typeId="org.csstudio.sds.components.Meter">
</widgetEditPart>...</extension>
- typeId verbindet die Komponenten des Meters
01. Dezember 2008 Martin Feldmann, [email protected]
CSS Entwicklung/ KollaborationCSS Entwicklung/ Kollaboration
Einzelpersonen:• Matthias Claussen, Jan Hatje, Kay Kasemir, Sergei Chevtsov, Emma Shepherd, …• Basic design, tools (archive viewer …)
JSI (Josef Stefan Institut - Slovenien):• Studenten in Kollaboration mit Cosylab• Basic design, graphic libraries, management tools, login, secure password store
Cosylab:• Data Access Layer (DAL)
C1-WPS (spin-off der Universität Hamburg):• Basic design, CSS-Core refactoring, CSS-Wizard, synoptic display studio (SDS)
Universität Hamburg:• Studentische Diplomarbeiten• Authorization in CSS
• CSS record/ playback
DESY:• Logging, alarming, database integration, managing CSS
01. Dezember 2008 Martin Feldmann, [email protected]
Demos und LinksDemos und Links
Flash Demos:http://css.desy.de/content/e70/e10/index_eng.htmlCode Repository:● CVS Repository @ DESY● ‘Offen’ für registrierte Benutzer mit DESY AccountMailing List:● [email protected] Page:● http://css.desy.de● http://www.cs-studio.orgCodeBeamer : Documentation, Tracker, Story Cards:● http://elogbook.desy.de:8181