This specification documents the system level requirements for the log browser project. The objectives of this specification are to provide a system overview including definition, goals, objectives, context, and major capabilities.
This specification is organized into the following sections:
- Introduction, which introduces the specification for the log browser to its readers.
- Overall Description, which provides a brief, high level description of the log browser including its definition, business goals, business objectives, context, and capabilities.
- Specific Requirements, which specifies the functional system requirements in terms of a use case model consisting of each external’s use cases and use case paths.
This SRS describes the software and nonfunctional requirement for release 1.0 of the log browser. This document is intended to be used by the Apache CXF community that will implement and verify the correct functioning of the system. Unless otherwise noted, all requirements specified here are high priority and committed for release 1.0.
Apache CXF is an open source services framework. It is very advanced library with many additional tools and plugins. Nevertheless there is still an insufficient amount of maintenance and administration tools for people who aren't developers - like administrators, testers etc. The ideal solution would be to create group of web applications for performing administration tasks - like browse logs, browse requests / responses etc.
The goal of this project is to radically improve way of view logs of your application. Thanks for this Apache CXF library will be more useful and even more easy for maintenance.
- completely new way of viewing logs - familiar than old text-based style;
- easy access through web browser (from any software or hardware platform);
- improved daily tasks;
The product have to be highly accessible to end users. To enable this wide access to the application, the new system will be design as web application.
However the product is not a standalone application. It have to be integrated with your existing application - some configuration process is required. The log browser will be designed for use as long as the web browser specified in this document remain available.
The product will also include user guidelines available on the project site.
In some respects, the application is the next generation of the old text-based viewing server log file (or several files), which is held on the server.
The log browser is a server based application with a web-based client for end user access. Server part will be built of AtomPullBean and BootstrapStorage components. AtomPullBean component is responsible for gathering and publishing log entries. Whereas BootstrapStorage component is responsible for storing users' settings. All of these components will work inside your software – they are not independent application.
The log browser will be able to subscribe many endpoints, which provide list of log entires. Suppose your application publish two endpoints. First channel contains all entries of any activity, but second one contains only entries from DAO layer.
After select specified endpoint user will be able to search, navigate between pages or see entry details. All of these features will be defined and described later in this same document. The actual user interface will be described in [Software Design Description] section.
Main features, which are offered by the application:
- Manage list of endpoints (add, remove, edit);
- Searching by phrase, date range or entry level (info, debug, warn, error);
- Navigating between pages of entries. There are links: next, previous, first and last page;
- Showing an entry details after selection;
User Classes and Characteristics
Target users are testers and administrators.
The proposed solution will be implemented in a client/server model. All processing of searches and storing of information will be done at server side. Additionally settings will be stored locally in cookie file to increase performance. However server will store backup of the settings for recover;
- Server - Your application must be developed using Java platform and should be configured properly to enable log browser. Instruction of configuration will be available on project site. BootstrapStorage component store users' settings in external data source, for example XML file. Therefore it is important that runtime environment has enough free disk space. By default AtomPullBean component store limited amount of log entries. Developer have to implement ReadWriteStorage interface. in case of requirement to store entries on a disk;
- Client - The web-based client is compatible with most operating systems and requires a working installation of Firefox 1.0, Internet Explorer 6, Safari 2.0, Opera 9.0 or later. The client computer should match or exceed the system requirements specified for the web browser intended for use with the client application;
Design and Implementation Constraints
A few issues limit our choices when implementing a suitable solution for the log browser project. It is impossible to subscribe endpoints from different hosts (others than host which serve static content), because of same origin policy. Wherever possible, the application should retain full usability with a keyboard input device only.
Documentation for end users will be made available from project site. An online tutorial will also be made available. Application will contain link to the documentation page.
Assumptions and Dependencies
We assume that any use of the application will occur in an environment with full compliance to this specification. The application will be used on a client computer that matches or exceeds the requirements laid out in section Operating Environment. The server component of the application will run on a computer system that matches or exceeds the requirements laid out for the server in section Operating Environment.
Software Product Features
- User - person who operate a web-base client (mostly tester or administrator).
- Timer - it's scheduler inside web-based client. It refreshes log entires of every endpoint by specified interval.
The following use case diagrams summarize the functional requirements for the log browser:
- primary use cases;
- manage endpoints use case - it is decomposition of “Manage endpoint” use case;
- browse entries use cases - it is decomposition of “Browse entries” use case;
Software System Attributes
This section specifies the required system quality factors that are not related to the specific functional requirements documented in the use case model.
- Availability and Reliability - Server is built in your application. Server shall be available as long as your application is running;
- Reusability - The product should be easy to extend – we think about add request / response browsing support. In the future the log browser will be base for next type of management tools;
- Security - There must be an option to set endpoint as secured. Access to this information must be private, by using WSSE UserName HTTP;
- Maintainability - Update to the newest release shall proceed without any problems. Users' settings shall save remotely using BootstrapStorage. Additionally BootstrapStorage should store information in external data source for easy backup;
- Portability - The web-based client should work on any platform. The only constraint is to use one of the supported web browser (described in Operating Environment). On the other hand your software have to be developed using Java platform for easy integration with AtomPullBean and BootstrapStorage components;
- Performance - Performance of the application will vary on the speed and type of internet access to which the client computer has access. The response shall be fast enough to avoid interrupting the user’s flow of thought;