cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache CXF Documentation > LogBrowser - Software Requirements Specification
Date Sun, 22 Aug 2010 15:26:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=CXF20DOC&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/CXF20DOC/LogBrowser+-+Software+Requirements+Specification">LogBrowser
- Software Requirements Specification</a></h2>
    <h4>Page  <b>added</b> by             <a href="https://cwiki.apache.org/confluence/display/~tomekopo">Tomasz
Oponowicz</a>
    </h4>
         <br/>
    <div class="notificationGreySide">
         <p><a name="LogBrowser-SoftwareRequirementsSpecification-introduction"></a></p>
<h1><a name="LogBrowser-SoftwareRequirementsSpecification-Introduction"></a>Introduction</h1>

<p>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.</p>

<p>This specification is organized into the following sections:</p>

<ul>
	<li><a href="#LogBrowser-SoftwareRequirementsSpecification-introduction">Introduction</a>,
which introduces the specification for the log browser to its readers.</li>
	<li><a href="#LogBrowser-SoftwareRequirementsSpecification-overallDescription">Overall
Description</a>, which provides a brief, high level description of the log browser including
its definition, business goals, business objectives, context, and capabilities.</li>
	<li><a href="#LogBrowser-SoftwareRequirementsSpecification-specificRequirements">Specific
Requirements</a>, which specifies the functional system requirements in terms of a use
case model consisting of each external’s use cases and use case paths.</li>
</ul>


<h2><a name="LogBrowser-SoftwareRequirementsSpecification-Purpose"></a>Purpose</h2>

<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>User benefits:</p>

<ul>
	<li>completely new way of  viewing logs - familiar than old text-based style;</li>
	<li>easy access through web browser (from any software or hardware platform);</li>
	<li>improved daily tasks;</li>
</ul>


<h2><a name="LogBrowser-SoftwareRequirementsSpecification-ProductScope"></a>Product
Scope</h2>

<p>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.</p>

<p>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.</p>

<p>The product will also include user guidelines available on the project site.</p>

<p><a name="LogBrowser-SoftwareRequirementsSpecification-overallDescription"></a></p>
<h1><a name="LogBrowser-SoftwareRequirementsSpecification-OverallDescription"></a>Overall
Description</h1>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-ProductPerspective"></a>Product
Perspective</h2>

<p>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.</p>

<p>The log browser is a server based application with a web-based client for end user
access. Server part will be built of <tt>AtomPullBean</tt> and <tt>BootstrapStorage</tt>
components. <tt>AtomPullBean</tt> component is responsible for gathering and publishing
log entries. Whereas <tt>BootstrapStorage</tt> component is responsible for storing
users' settings. All of these components will work inside your software &#8211; they are
not independent application.</p>

<p>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.</p>

<p>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 <a href="/confluence/pages/createpage.action?spaceKey=CXF20DOC&amp;title=SoftwareDesignDescription&amp;linkCreation=true&amp;fromPageId=23335739"
class="createlink">Software Design Description</a> section.</p>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-ProductFunctions"></a>Product
Functions</h2>

<p>Main features, which are offered by the application:</p>

<ul>
	<li>Manage list of endpoints (add, remove, edit);</li>
	<li>Searching by phrase, date range or entry level (info, debug, warn, error);</li>
	<li>Navigating between pages of entries. There are links: next, previous, first and
last page;</li>
	<li>Showing an entry details after selection;</li>
</ul>


<h2><a name="LogBrowser-SoftwareRequirementsSpecification-UserClassesandCharacteristics"></a>User
Classes and Characteristics</h2>

<p>Target users are testers and administrators.</p>

<p><a name="LogBrowser-SoftwareRequirementsSpecification-operatingEnvironment"></a></p>
<h2><a name="LogBrowser-SoftwareRequirementsSpecification-OperatingEnvironment"></a>Operating
Environment</h2>

<p>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;</p>

<ul>
	<li><b>Server</b> - 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. <tt>BootstrapStorage</tt> 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 <tt>AtomPullBean</tt> component
store limited amount of log entries. Developer have to implement <tt>ReadWriteStorage</tt>
interface. in case of requirement to store entries on a disk;</li>
	<li><b>Client</b> - 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;</li>
</ul>


<h2><a name="LogBrowser-SoftwareRequirementsSpecification-DesignandImplementationConstraints"></a>Design
and Implementation Constraints</h2>

<p>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 <a href="http://en.wikipedia.org/wiki/Same_origin_policy"
class="external-link" rel="nofollow">origin policy</a>. Wherever possible, the application
should retain full usability with a keyboard input device only.</p>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-UserDocumentation"></a>User
Documentation</h2>

<p>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.</p>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-AssumptionsandDependencies"></a>Assumptions
and Dependencies</h2>

<p>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 <a href="#LogBrowser-SoftwareRequirementsSpecification-operatingEnvironment">Operating
Environment</a>. 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 <a href="#LogBrowser-SoftwareRequirementsSpecification-operatingEnvironment">Operating
Environment</a>.</p>

<p><a name="LogBrowser-SoftwareRequirementsSpecification-specificRequirements"></a></p>
<h1><a name="LogBrowser-SoftwareRequirementsSpecification-SpecificRequirements"></a>Specific
Requirements</h1>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-SoftwareProductFeatures"></a>Software
Product Features</h2>

<p>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.</p>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-Actors"></a>Actors</h2>

<ul>
	<li><b>User</b> - person who operate a web-base client (mostly tester or
administrator).</li>
	<li><b>Timer</b> - it's scheduler inside web-based client. It refreshes
log entires of every endpoint by specified interval.</li>
</ul>


<h2><a name="LogBrowser-SoftwareRequirementsSpecification-UseCases"></a>Use
Cases</h2>

<p>The following use case diagrams summarize the functional requirements for the log
browser:</p>

<ul>
	<li>primary use cases;</li>
	<li>manage endpoints use case - it is decomposition of “Manage endpoint” use case;</li>
	<li>browse entries use cases -  it is decomposition of “Browse entries” use case;</li>
</ul>


<p><span class="error">Unable to render embedded object: File (primaryUseCases.png)
not found.</span><br/>
<span class="error">Unable to render embedded object: File (browseEvents.png) not found.</span><br/>
<span class="error">Unable to render embedded object: File (manageEndpoints.png) not
found.</span></p>

<h2><a name="LogBrowser-SoftwareRequirementsSpecification-SoftwareSystemAttributes"></a>Software
System Attributes</h2>

<p>This section specifies the required system quality factors that are not related to
the specific functional requirements documented in the use case model.</p>

<ul>
	<li><b>Availability and Reliability</b> - Server is built in your application.
Server shall be available as long as your application is running;</li>
	<li><b>Reusability</b> - The product should be easy to extend &#8211;
we think about add request / response browsing support. In the future the log browser will
be base for next type of management tools;</li>
	<li><b>Security</b> - There must be an option to set endpoint as secured.
Access to this information must be private, by using WSSE UserName HTTP;</li>
	<li><b>Maintainability</b> - Update to the newest release shall proceed
without any problems. Users' settings shall save  remotely using <tt>BootstrapStorage</tt>.
Additionally <tt>BootstrapStorage</tt> should store information in external data
source for easy backup;</li>
	<li><b>Portability</b> - The web-based client should work on any platform.
The only constraint is to use one of the supported web browser (described in <a href="#LogBrowser-SoftwareRequirementsSpecification-operatingEnvironment">Operating
Environment</a>). On the other hand your software have to  be developed using Java platform
for easy integration with <tt>AtomPullBean</tt> and <tt>BootstrapStorage</tt>
components;</li>
	<li><b>Performance</b> - 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;</li>
</ul>

    </div>
    <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>
       <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/LogBrowser+-+Software+Requirements+Specification">View
Online</a>
              |
       <a href="https://cwiki.apache.org/confluence/display/CXF20DOC/LogBrowser+-+Software+Requirements+Specification?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
           </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message