Introduction
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.
Purpose
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.
User benefits:
- 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;
Product Scope
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.
Overall Description
Product Perspective
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.
Product Functions
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.
Operating Environment
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.
User Documentation
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.
Specific Requirements
Software Product Features
The section of the SRS specifies the functional requirements of the log browser in terms of use cases and their associated use case paths. The use case model is primarily organized in terms of the externals that benefit from the use cases.
Actors
- 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.
Use Cases
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;