1 / 18

How to Build Professional Control System Applications

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.

dobry
Download Presentation

How to Build Professional Control System Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. Analysis of Applications • Panels • RAD (no hand-written code) • Short development cycle (days) How to Build Professional Control System Applications, G. Tkacik

  4. Panel Applications How to Build Professional Control System Applications, G. Tkacik

  5. 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

  6. Group Applications How to Build Professional Control System Applications, G. Tkacik

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

More Related