Logs browser – architecture overview
This document is only concept overview - not all functions, which are presented here, have been implemented.
1. 1 Definitions
BootstrapStorage is service that provide list of user's subscribed feeds.
LogsServer is independent application, which publishes AtomPullServer and BootstrapStorage endpoints. It contains web server that delivers content, such as HTML, JS or CSS files.
1.2 Centralized structure without logs server
There 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. However AtomPullServer create list of all “connected” AtomPushBean. End user can't add new feed. He can only enable / disable feeds from the list (list of all “connected” AtomPushBean).
Advantages
- Natural solution;
- New features can be easily added;
- User's settings are stored remotely;
- User doesn't add feed endpoint – list of feeds is created automatically;
Disadvantages
- Application with “administrative roles” executes additional task - worse performance;
1.3 Centralized structure with logs server
It 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.
Advantages
- Natural solution;
- New features can be easily added;
- User's settings are stored remotely;
- User doesn't add feed endpoint – list of feeds is created automatically;
- Applications don't execute additional task;
LogsServer can be easily updated to new version;
Disadvantages
User must configure and deploy LogsServer (however it isn't a big deal, but it is an additional step)
1.4 Decentralized structure with logs browser based on standalone application
Logs browser is implemented using Swing library. User mange list of feeds by himself – he must know URL of endpoint to add new feed.
Advantages
- Logs browser can work offline;
- Subscribed feeds and user credentials can be stored locally;
- A load is evenly distributed;
Disadvantages
- It is hard to distribute and update application (logs browser);
- Java Runtime Environment has to be installed;
1.5 Decentralized structure with logs browser based on web application
User 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.
Advantages
- Logs browser can work offline;
- A load is evenly distributed;
Disadvantages
- Internet browsers block connection to different host than host specified in address bar;
- Local storage function, introduced in HTML 5, isn't adopted by all internet browser (ex. Internet Explorer);