Market Requirements Document

for

¡§Resource Sharing Community¡¨

version 1.0

 

 

Table of Content

l        Project Overview

¡          Project Statement

¡          Project Objectives

¡          Project Definition

l        Product Requirements

¡          Brief Statements about Requirements

¡          Backward compatible with FSC

¡          RSC Commands ¡V queryService, searchService, and outsourceJob

¡          The Configuration File

¡          Interactive Mode

¡          Batch Mode (Silent Mode)

 

 

Project Overview

 

Project Statement

Resource sharing community (RSC for brevity) is designed for users who want to share their resources (both information and computation power) with other users on the Internet. In RSC a member shares its resources to the community by providing ¡§services.¡¨ For example, a member could share its files by providing a ¡§file sharing¡¨ service. Note that RSC must be backward compatible with FSC.

 

Project Objectives

The resource sharing community is basically a superset of the file sharing community. The main objective of this project is to extend the capability of FSC to fully utilize resources on the Internet. That is, in addition to sharing files to other members, a community member can also contribute its computation power to the community.

 

Project Definition

Product Name

Resource Sharing Community

Version

1.0

Platforms

l        Win32 platforms: Windows 2000

l        Unix-like platforms: Linux

Functional Description

l        Backward compatible with FSC

l        Support more resource types

l        Share resources by providing services

 

 

Product Requirements

 

Brief Statements about Requirements

1.  Backward compatibility

Since the resource sharing community is also a file sharing community, all functions/features supported in FSC should also be supported in RSC. To be more precise, FSC is just a special RSC that provides only the ¡§file sharing¡¨ service.

2.  Commands

In addition to commands supported by FSC, RSC support more commands that enable information and computation power of a community member to be shared. A community member can query some other members for its shared resources (queryService). It can also search the community for a specific resource (searchService). Moreover, it can ask other members to do its jobs (outsourceJob).

3.  The Configuration Files

To provide new services to the community, a member must have some ways to declare its services. In RSC shared resources could be declared in configuration files. If a member does not explicitly declare its services in configuration files, it provides the ¡§file sharing¡¨ service only.

4.  Interactive Mode vs. Batch Mode (Silent Mode)

A user can issues commands from either a user interface (interactive mode) or script files (batch mode).

5.   

 

1.0  Backward Compatibility

The resource sharing community is a superset of the file sharing community. Therefore, all FSC features should remain the same in RSC.

 

ID#

Feature

Priority

Target Version

Current Status

1.1

Backward Compatible with FSC

 

All features in FSC are also supported in RSC. Commands in FSC should remain the same in RSC. Resources are shared by means of services; file sharing is treated as a default service in RSC.

High

1.0

Incomplete

1.2

Join/Leave the Community

 

The behavior of a member when join/leave the RSC should be compatible with that of FSC.

High

1.0

Incomplete

1.3

Directory Service and Information Exchange

 

In addition to shared file information and membership information maintained by the directory service, there must be a third kind of information: the shared service information.

High

1.0

Incomplete

1.4

FSC Commands

 

Query, search, and fetch commands remain and behave the same in RSC.

High

1.0

Incomplete

1.5

FSC Configuration Files

 

All configurable parameters in FSC remain effective in RSC.

High

1.0

Incomplete

1.6

FSC Batch Mode

 

FSC script files should work in RSC. That is, the RSC interpreter recognizes FSC script files.

High

1.0

Incomplete

 

2.0  Commands

In addition to commands defined in FSC, users can issue at least the following kinds of commands: query services provided by a community member, search the community for a specific service, and outsource its jobs to community members who provide services for solving those jobs.

 

ID#

Feature

Priority

Target Version

Current Status

2.1

Query Service

 

A community member could query services provided by some other member.

High

1.0

Incomplete

2.1.1

When a member receives a query service request from another member, it should send information about its services back to the requester.

High

1.0

Incomplete

2.1.2

There should be a default timeout value for the query service commands. This timeout value should be configurable.

High

1.0

Incomplete

2.1.3

There should be a maximum count for the query service result. This maximum count should be configurable.

High

1.0

Incomplete

2.2

Search Service

 

A community member could search the community for a specific service.

High

1.0

Incomplete

2.2.1

The service name to be searched could contain wild card characters ¡¥*¡¦ and ¡¥?¡¦. (¡¥*¡¦ matches zero or more occurrences of any character while ¡¥?¡¦ matches zero or 1 occurrence of any character.)

High

1.0

Incomplete

2.2.2

When a member receives a search service request, it should search its cache for the specified service name, return the result back to the source (the host that originally issued the search request), and forward the request to some other community members.

High

1.0

Incomplete

2.2.3

The search results received from different members should be merged. There should be no redundant information in the merged result.

Medium

1.0

Incomplete

2.2.4

There should be a default timeout value for search service commands. This timeout value should be configurable.

High

1.0

Incomplete

2.2.5

There should be a maximum count for the search service result. This maximum count should be configurable.

High

1.0

Incomplete

2.3

Outsource Jobs

 

A community member can ask other members for doing its jobs. Every job could be done by one (or more) service.

High

1.0

Incomplete

2.3.1

There should be a default timeout value for outsource command. This timeout value should be configurable.

 

 

 

 

3.0  Configuration Files

Each time the RSC daemon starts up, it reads the configuration files and acts as what these files instruct.

ID#

Feature

Priority

Target Version

Current Status

3.1

Configuration files are human readable text files that contain name-value pairs of configurable settings.

High

1.0

Incomplete

3.2

Configuration files are read only when the RSC daemon starts up. Modifying the contents of configuration files while the FSC daemon is running will not affect the behavior of the daemon.

High

1.0

Incomplete

3.3

Configuration files could be generated or modified with general-purpose text editors.

High

1.0

Incomplete

3.4

Configuration files could be generated or modified from UI.

Medium

1.0

Incomplete

3.5

Configuration files are placed in the current working directory of the RSC daemon.

High

1.0

Incomplete

3.6

All configurable parameters defined in FSC remains effective in RSC.

High

1.0

Incomplete

3.7

¡§File sharing¡¨ is a default service provided by RSC. For other services, a community member has to explicitly declare its services in configuration files.

High

1.0

Incomplete

 

4.0  Batch Mode (Silent Mode)

Users can issue RSC commands from script files. The syntax of the RSC script language should be consistent and backward compatible with that of FSC. It is also noted that the relationship among commands can be categorized into dependent commands and independent commands. Dependent commands should be issued as the order they are written while independent command could be issued in parallel. The RSC script language should support command scheduling.

#ID

Feature

Priority

Target Version

Current Status

4.1

Script Language

High

1.0

OK

4.1.1

Extend the existing FSC scripting language for RSC.

High

1.0

Incomplete

4.1.2

Independent commands can be issued concurrently.

High

1.0

Incomplete

4.1.3

The syntax of RSC script language should be consistent with that of the FSC.

High

1.0

Incomplete

4.1.4

Users can issue shell commands from script files.

High

1.0

Incomplete

4.2

Interpreter

High

1.0

Incomplete

4.2.1

The interpreter should be able to detect syntax errors of script files. (¡§Batch files¡¨ and ¡§script files¡¨ are interchangeable terms in the context.)

High

1.0

Incomplete

4.2.3

The interpreter translates a script file into commands and then instructs the RSC daemon to issue those commands.

High

1.0

Incomplete

 

5.0  Interactive Mode

Since RSC is a superset of FSC, the UI of RSC should be at least as powerful as that of FSC. Moreover, according to the ¡§Resource Sharing Community¡¨, we promote some medium or low priority requirements to high and add some more requirements.

#ID

Feature

Priority

Target Version

Current Status

5.1

Grouping

High

1.0

Incomplete

5.1.1

Users can partition entities (community members, file locations, ¡Ketc.) displayed on UI into different groups. A group contains zero or more displayed entities.

High

1.0

Incomplete

5.1.2

Users can issue commands to a group from UI.

High

1.0

Incomplete

5.1.3

Users can add new entities into a group from UI.

High

1.0

Incomplete

5.1.4

Users can remove entities from a group from UI.

High

1.0

Incomplete

5.2

Display Workload

High

1.0

Incomplete