LogBrowser - System architectural designPage added by Tomasz OponowiczSystem architectural designDefinitions
Chosen System ArchitectureThere is only one application, which publishes AtomPullServer and BootstrapStorage endpoints in intranet – application has “administrative roles”. This application has to include web server for serving content. If you want add logging for another application in intranet, you must define AtomPushBean in this application. AtomPushBean will send events to AtomPullServer. User mange list of feeds by himself – he must know URL of endpoint to add new feed. Unable to render embedded object: File (centralisedStructure.png) not found. Advantages
Disadvantages
Discussion of Alternative DesignsCentralized structure with logs serverIt is extension of previous concept. AtomPullServer and BootstrapStorage has been moved to independent application, LogsServer. Additionally LogsServer include web server. All applications communicate with LogsServer through AtomPushBean. This can be easily done by adding new module to CXF project, which will use AtomPullServer and BootstrapStorage and will compile to WAR package. Unable to render embedded object: File (centralisedStructureWithLogServer.png) not found. Advantages
Disadvantages
Decentralized structure with logs browser based on standalone applicationLogs browser is implemented using Swing library. User mange list of feeds by himself – he must know URL of endpoint to add new feed. Unable to render embedded object: File (decentralisedStructure.png) not found. Advantages
Disadvantages
Decentralized structure with logs browser based on web applicationUser mange list of feeds by himself – he must know URL of endpoint to add new feed. Required files (HTML, JS and CSS) are retrieved from any available web server. Unable to render embedded object: File (decentralisedStructure.png) not found. Advantages
Disadvantages
Detail description of componentsLogBrowserThe LogBrowser component is rich internet applications (RIAs). It will have complex graphical user interface with the possibility of adapting to the user's requirements. The LogBrowser component will be made using HTML, CSS and _javascript_ for fully compatible with all leading web browsers. Main feature of the LogBrowser component is browsing log entries, which are published by AtomPullServer components. Searching log entries is extension to browsing. It is done by building proper request, which is compatible with FIQL format. Additionally user's settings are saving (or optionally recovering) using the BootstrapStorage component. Communication between components will be done with RESTful web services. Data exchange will be asynchronous - without blocking user' actions. The LogBrowser component will support internationalization. TechnologyThe component will be implemented based on Google Web Toolkit (GWT) library. Initially we planned to implement component using JQuery and JQuery UI library, but after analyzing complexity of the project and needs of the Apache CXF community, we decided to use GWT library. This decision has a couple of advantages:
Storing settingsOne of the feature of the LogBrowser component is to store locally user's settings (endpoint configuration, user credentials etc.). Unfortunately GWT doesn't support local storage. For this reason we will use DojoCore. More precisely, we will use DojoStorage module, which is part of DojoCore. Dojo Storage allows web applications to store data on the client-side, persistently and securely and with a user's permission. It works across existing web browsers, including Internet Explorer, Firefox, and Safari. When included in a web page, Dojo Storage determines the best method for persistently storing information. On Firefox 2, it uses native browser persistence; on other browsers it uses a hidden Flash applet. With Flash 6+ being installed on about 95% of computers connected to the web, this makes the storage mechanism accessible for much of the web's installed base. If web browser doesn't support any local storage solution, the LogBrowser component will store settings in operating memory. Settings will be available all the time during application life. If user close web browser and run application again, settings will be restored from the BootstrapStorage component. Following diagrams show loading and modifying settings algorithm. Unable to render embedded object: File (loadingSettings.png) not found. Unable to render embedded object: File (modifyingSettings.png) not found. Access controlAtomPullServer and BootstrapStorage components publish their API through RESTful web services. Access control for AtomPullServer is optional. However access control for BootstrapStorage is required. On the other hand access control for these components will be implemented in the same way - using WSSE UsernameToken. Data required for authorization will be send through HTTP header, for example: When authorization fail, web service will response like this: Authorization process use UsernameTokenInterceptor. Following diagrams show executed operation during access control for AtomPullServer and BootstrapStorage components. Unable to render embedded object: File (aps_accessControl.png) not found. Unable to render embedded object: File (bs_accessControl.png) not found. Browsing, searching log entriesFollowing diagrams show executed operation during browsing and searching log entries. Unable to render embedded object: File (browsingLogEntries.png) not found. Unable to render embedded object: File (searchingLogEntries.png) not found. AtomPullServerThe AtomPullServer component manage log entries. The component catch new log entries through registered interceptor. There can be defined many AtomPullServer in your application - each one catching different kind of log entry. Communication with the component is done through RESTful web service. Currently the AtomPullServer component support only XML MIME type. JSON type support have to be added. Additionally FIQL format support have to be added for selected operations. The component's RESTful web service contains operations like this:
BootstrapStorageThe BootstrapStorage store user's settings. It is required to define access control for this component. Settings will be stored in external data source. We will deliver basic implementation for storing settings in XML file - user name must be unique, because it will be key. The BootstrapStorage component will not store user credentials, because of security issues. Communication with the component will be done through RESTful web service. There can be defined only one BootstrapStorage in your application. The component's RESTful web service will contain operations like this:
Change Notification Preferences
View Online
|
Add Comment
|
- [CONF] Apache CXF Documentation > LogBrowser - System archit... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
- [CONF] Apache CXF Documentation > LogBrowser - System a... confluence
