200 likes | 339 Vues
This document outlines the status quo of the CSS architecture as developed by André Grunow at C1-WPS GmbH. It emphasizes core objectives such as establishing a framework for a platform that is runnable, defining essential extension points, and integrating a workbench with views, editors, and actions. Extension points like log managers, IOC receivers, and authentication validators are detailed to illustrate how they facilitate plugin interactions. Additionally, it covers mechanisms for user management and update processes, ensuring secure authentication, reliable logging, and seamless updates across all CSS components.
E N D
Status quo of CSS André Grunow C1-WPS GmbH
CSS Core Objectives • provide a basis for the Platform Runnable • define essential extension points • define the initial workbench (views, editors, actions, perspectives, …) • provide a bridge to avoid dependencies between plugins
CSS Core which plugins define the core? all relevant UI-components CORE CORE.UI << use >> << use >> Platform-Runnable STARTUP
existing Extension Points • logManagers • iocReceivers • cssManager • loginValidator • mb3Receiver
existing Extension Points logManagers This Extension Point can be used to handle Logevents, which are thrown anywhere in CSS. implementing plugin: de.desy.css.log
existing Extension Points iocReceivers Connected Plugins will receive and handle IOC-Data (which are not completely specified yet). implementing plugin: de.desy.css.dummylogger
existing Extension Points cssManager The central plugin to handle authorization and authentication specifiy the update mechanism … implementing plugin: de.desy.css.manager
existing Extension Points loginValidator Implementing plugins will provide a mechanism to authorize the user requesting a login. implementing plugin: de.desy.css.manager
existing Extension Points mb3Receiver This extension point can be used to react to MB3-Events (data have to be specified). implementing plugins: de.desy.css.ioc.status de.desy.css.jprobe de.desy.css.record.properties
existing Extension Points mb3Receiver This extension point is used by plugins, which are interested in receiving MB3-Events by other plugins/components. implementing plugin: de.desy.css.jprobe
required plugins Startup • initialise and start the workbench • init the default and load changed CSS-preferences • define the preferences of the CSS-product plugin: de.desy.css.startup
required plugins Logging • central functionality of CSS • handle all upcoming Log-Events in the whole CSS • configure specified appenders (file, console, JMS, …) • can be configured by preferences plugin: de.desy.css.log
optional plugins Management • handle the login • provide a mechanism for authentication and authorization • specifiy RightSets • configure the access-rules of the logged user • configure updates of CSS plugin: de.desy.css.management
optional plugins rights management • each plugin defines its own access- and functionality-rules • these rules may be overridden by the management plugin and ist RightSet-implementation • plugin-specific rules are used, if Management-Plugin is not available
RightSet Management Default-RightSet XXXPlugin Startup << requests overriding rights >> Core ICssManager IRightSet << requests login-validation >> ILoginValidator << implements >> << implements >> Manager CssManagerImpl RightSetImpl LoginValidatorImpl
RightSet Management request 1 user 2 functionin plugin checksrights ManagementPlugin overridingrights found using defaultrightset no yes 3 function allowed? performingaction yes no
optional plugins Management (Updates) • local user has restricted access to new/updated plugins by default • the user's role defines the range of possibilities for the user • it's not allowed to update CSS with non-approved plugins by default • the user can't add plugins to CSS by default • update is triggered by central repository
Update mechanism encapsulate the existing Update-Plugin The non-privileged operator must not have the possibility to manually update the local installation of the CSS-System. The running instance will register itself at the central repository to get updated. The privileged operator may start an update-process with non-approved features (with explicit login). update local plugins and features All plugins and features of the local CSS-System will be updated automatically without any interaction by the operator. The update-process is inited by a respository-admin.
Update mechanism grant password-protected access to central repository for beta-updates Usually, the operator will init the automatic update-process: all available – approved – updated plugins and features are installed. With a login and password, the operator may also browse the repository and update the local CSS-installation with non-approved – maybe unstable – plugins and features. CSS running 24/7 These systems will be updated by remote. Running instances will be restartet – if needed.
optional plugins – update mechanism 1 << register >> << controlled by operator >> << controlled by admin >> 2 local CSS-instance centralrepository << offline >> << online >> << send update-command >> << update >> 3 << already registered >> << controlled by operator >> << controlled by admin >> 1 local CSS-instance centralrepository << online >> << trigger update >> << update >> 2