180 likes | 321 Vues
This workshop presentation, delivered by G. Tkacik, M. Plesko, and J. Stefan, explores the construction of professional control system applications utilizing the Abeans framework. Key topics include rapid application development (RAD) with minimal hand-written code, efficient management of device panels, and the implementation of complex applications for monitoring and controlling numerous devices. The session emphasizes the importance of a clean architecture with effective containment strategies, lifecycle management, and optimization techniques to enhance maintainability and performance in control systems.
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