180 likes | 311 Views
How to Build Professional Control System Applications. G. Tkacik, M. Plesko J. Stefan Institute gasper.tkacik@ijs.si http://kgb.ijs.si/KGB. Presented at the PCaPAC Workshop, 2000-10-09. Applications. Applications. Abeans. Device server. Device server. Hardware. Hardware.
E N D
How to Build Professional Control System Applications G. Tkacik, M. Plesko J. Stefan Institute gasper.tkacik@ijs.si http://kgb.ijs.si/KGB Presented at the PCaPAC Workshop, 2000-10-09
Applications Applications Abeans Device server Device server Hardware Hardware Client side CS design • Application framework • Hide comm layer • Provide application services • Provide CS models RAD, easier maintenance : How to Build Professional Control System Applications, G. Tkacik
Analysis of Applications • Panels • RAD (no hand-written code) • Short development cycle (days) How to Build Professional Control System Applications, G. Tkacik
Panel Applications How to Build Professional Control System Applications, G. Tkacik
Analysis of Applications • Panels • RAD (no hand-written code) • Short development cycle (days) • Group Applications • Control of a large number of similar devices • Aggregate data for display How to Build Professional Control System Applications, G. Tkacik
Group Applications How to Build Professional Control System Applications, G. Tkacik
Analysis of Applications Analysis of Applications • Panels • RAD (no hand-written code) • Short development cycle (days) • Group Applications • Control of a large number of similar devices • Aggregate data for display • Complex Applications • Monitor different devices, automatic or complex response • Technical requirements in addition to functionality: synchronization, additional response processing... How to Build Professional Control System Applications, G. Tkacik
Abeans – The Where and The Why • NOW: Abeans Release 2 • Running in ANKA • Prototypes for ESO and RIKEN completed • FUTURE: Abeans Release 3 • Design and implementation phase • ANKA testing & deployment, porting • Thin vs. Full-featured dillemma (cost of flexibility) • Retain simplicity How to Build Professional Control System Applications, G. Tkacik
Design Problems & Solutions • Components • Functionality of Abeans basic building blocks • Containment • Organization of Abeans basic building blocks • Plugs • Making applications independent of the CS communication protocol • Quality-of-Service • Giving guarantees about the functionality offered by the components How to Build Professional Control System Applications, G. Tkacik
Containment – Motivation • Clues that point to the need for explicit containment • Device beans contain Properties (e.g. PowerSupplyBean contains current) • Eliminate group code constructs like for (int i = 0; i < devices.length; i++) devices[i].destroy(); • Application contains its devices (“ownership”) • Parent – children relationship : Use the containment tree How to Build Professional Control System Applications, G. Tkacik
Containment – Problems • Multiple panels require multiple JVMs no memory • Control of a large amount of device beans (iterations) • Optimizations possible for large amount of device beans (packed monitoring) • Transparent containment and organization of programs • Life cycle management (when to create the framework, the order of creation and destruction) How to Build Professional Control System Applications, G. Tkacik
Containment – Solution • Put all components into a tree (Composite pattern) • Gain: • Easy tree traversals (recurse) • Independence of “virtual applications” • Apply Visitor pattern • Unique string names of tree nodes • Well-defined startup / shutdown order How to Build Professional Control System Applications, G. Tkacik
Root Framework Variable part of the tree Containment – Result • Organization of Abeans into two parts • Fixed (framework) – managers, loaders, services • Independent of CSs! Reusable application building framework • Independent of the variable part • Variable – applications, device beans • New nodes added / removed during RT • Use framework services How to Build Professional Control System Applications, G. Tkacik
Components – Motivation • Problems • If you have a logging (configuration) library, how do you change or modify it? • If you have an application that uses authentication mechanism, how do you make the mechanism available to all applications? • Design issues • Modifying / extending framework functionality • Solving framework thin vs. heavy dillemma How to Build Professional Control System Applications, G. Tkacik
Application Application Log library Log interface Log implementation Components – Example Logging component Logger log = (Logger) cMgr.get(Logger.class); log.message(LOG_INFO, “This is a message.”); Access through component managers Implementation can change as long as the interface remains the same Logging library Log.message(LOG_INFO, “This is a message.”); Direct access to the library Cannot change the log functionality without changing the log implementation How to Build Professional Control System Applications, G. Tkacik
Components – Solution • Create components: tree nodes with well-defined management accessible only through their interfaces • Components allow you to change implementation, even at RT (state transfer) • Keep default implementations simple as placeholders for future (COTS) implementations How to Build Professional Control System Applications, G. Tkacik
Components – Result • Existing components in R3 • Logging, DataResourceService, ConfigurationService, ReportService, DebugService, AuthenticationService, Loaders (file, URL, home dir) • Gain for application programmers • Uniform and prescribed way of adding new functionality How to Build Professional Control System Applications, G. Tkacik
Conclusion • VISION: As R2 separated plugs from beans, R3 will separate models (beans) from framework • Monolithic programming vs. framework + app programmer division of labour • Framework must pay off How to Build Professional Control System Applications, G. Tkacik