Server Componentization
Requirements Specification
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Table of Contents
Introduction........................................................................................................................ 1
I. Project Overview........................................................................................................... 1
II. Document Purpose ........................................................................................................ 1
III. Statement of Work ........................................................................................................ 1
IV. Sub-Projects................................................................................................................... 2
V. Sub-Project Phases ....................................................................................................... 3
VI. Definitions ...................................................................................................................... 5
VII. Referenced Documents ................................................................................................. 5
Functional Requirements .................................................................................................. 6
I. Project Goals ................................................................................................................. 6
II. Technical Requirements ............................................................................................... 7
III. Issues / Unknowns ......................................................................................................... 7
Project Requirements ......................................................................................................... 8
I. Sub-Project Dependencies ............................................................................................ 8
II. Assumptions................................................................................................................... 8
III. Platforms/ Versions Supported.................................................................................... 8
IV. Dependencies ................................................................................................................. 8
V. Capital Expenses ........................................................................................................... 8
VI. Training Deliverables ................................................................................................... 8
VII. Product Development Deliverable ............................................................................... 8
VIII. Product Management Deliverables ............................................................................. 8
IX. Knowledge Devlopment Deliverables.......................................................................... 8
X. Documentation Deliverables ........................................................................................ 9
XI. Product Management Deliverables ............................................................................. 9
XII. User-Interface Design ................................................................................................... 9
XIII. Acceptance Criteria: ................................................................................................... 10
Table of Contents i
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Document Change History
Only the material in Section 3 is subject to change control.
TITLE: SYSTEM REQUIREMENTS DOCUMENT FOR Safari BI Plus Componentization
VER DATE INFORMATION AFFECTED RFC AUTHORIZED BY
Draft 5/8/00 Draft of baseline document LRH Ann Johnson
BJG
RJR
.2 5/12/00 Revisions to Techical Requirements based on LRH Ann Johnson
5/10/00 meeting BJG
RJR
Contact Information:
Name: Ann Johnson
E-mail: [email protected]
Telephone: (303) 980-7070 ex. 1144
Organization: Requirements Engineering
Table of Contents 1
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Requirements Specification
Project Name: Server Componentization
Sponsor(s): Randy Reece
Introduction
I. Project Overview
The Safari Business Intelligence Plus current architecture supports components in the client/server
environment, where each Safari InfoTool is one component and the Safarissrv is the other
component, both connected by a Component Interface. The current architecture is as follows:
Notice that the server component consists of a many integrated parts, like a dictionary interface,
database drivers, select engine, 4gl engine, etc.
The Safari Business Intelligence Plus product suite must be changed to meet the demands of the
Web-based applications world and of the extended Enterprise. Our current architecture does not
support multiple users (over about 50), easy implementation of new database drivers, distributed
systems, partial software upgrades with separate deliverable components, or the expansion of our
metadata to support new types of objects. In addition, because the server contains so many
integrated functions, making any changes to the code is difficult and requires testing all functions,
regardless of the change. This prohibits our product from being extensible and scaleable and
requires more time to bring new functions to market
II. Document Purpose
This document will establish the known requirements for breaking the Safari server into
components. Changes to this document shall be made in accordance with a Safari Solutions
revision Requirements Engineering revision policy.
III. Statement of Work
The intent of this project is to componentize the Safari BI Plus product line such that existing
database drivers can be easily upgraded, new database drivers can be easily developed, new
components can be developed and dropped into existing systems, components can be individually
tested and delivered, our overall system can be distributed, etc. all in the interest of supporting the
business demands for more flexibility and adaptability in software solutions.
Introduction 1
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
IV. Sub-Projects
The subprojects listed below will be created from this master plan to product the following
architecture:
1. Develop the New Component Interface (CompI)
2. Componentize the ODB/DB driver
4.1 Convert the current ODB/DB driver to the new Component Interface
4.2 Separate the ODB driver and incorporate the new CI
3. Componentize the MMX/DB driver
5.1 Rewrite the MMX driver to the ODB model
5.2 Convert the MMX/DB driver to the new Component Interface
5.3 Separate the MMX/DB driver and incorporate the new CI
4. Componentize the Dictionary Interface
6.1 Prepare the Dictionary Interface (dct.c) for componentization
6.2 Convert the Dictionary Interface to the new Component Interface
5. Incorporate the new CI into the Client/Server interface.
6. Convert the MPE/iX Character-Base image and utilities to be posix compliant
Introduction 2
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
V. Sub-Project Phases
The following diagrams represent phases of the overall project:
Sub-Projects 1 thru 2
Sub-Project 3
Introduction 3
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Sub-Project 4
Sub-Project 5
Introduction 4
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
VI. Definitions
Component A linked collection of code running in a single process space.
Two types:
Application Component: Does NOT know about the platform
details of the component
Device Component: DOES know the platform details of the
component
Component Broker Translates the protocol request from input/output to a single ID;
establishes the data streams to process a transformation.
Component The communication line for single data request and data result
Interface (pipe); converts 1 data type to another data type.
Formatted Data The data that goes through the communication pipe
Functional A description of function calls that can be made into a separate
Interface process, i.e., a function name with arguments and a return
value.
Object Broker Finds the component with the single ID and ensures that the
component is instantiated.
Object Registrar Identifies the location of any given component.
Xform Registrar Identifies the transformation performed by each component.
Kernel Contains the Component Interface and Transport Mechanisms
Broker System Contains the Xform Registrar, Component Broker, Object
Broker and Object Resistrar.
Component Converts existing code to new Component Interface
Bridges architecture. (Newly developed components will not require the
bridges).
Object Registry Persistent image of the physical location of each object
VII. Referenced Documents
Safari Component Interface Sub-Project:
PRJ-REQ-88-00565-Safari Component Interface Rqmt. Spec
PRJ-HLD-88-00565-Safari Component Interface HLD Spec
PRJ-FSD-88-00565-Safari Component Interface FSD Spec
MMX Componentization Sub-Project:
PRJ-REQ-88-00566-MMX Componentization Rqmt. Spec
Introduction 5
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Functional Requirements
I. Project Goals
Project Goals / Benefits
1. Strengths of today: Multiple native drivers, our 4GL, Dictionary metadata
2.1 Will make it easier to develop, test & deliver a new database driver.
2.2 Putting in a driver today, we touch 20-30 files; goal would be to touch only 3-4 files.
2. Prepare our product offering for the demands of the Web Based applications world (i.e., run
applications from the Web where they are NOT required to be installed on the PC)
3. Prepare our product offering for the demands of the extended Enterprise (i.e., hook up our server with
more 3rd party tools, support distributed environments, etc.)
4. Future-proof the product (i.e., make it very easy to plug in new functionality)
5. Support rapid development of new tools and applications
6. Highly scalable, high performance system
7. Be highly adaptable to diverse environments
8. Be easily maintainable and distributable
9. By separating the database drivers, the drivers don’t have to reside on the server; allows upgrade by
replacement of 1 piece, rather than entire system.
10. Once separated, component can be placed on a remote machine
11. Increase confidence in quality via QA testing/certification such that given changes ONLY affect the
isolated module, not the entire product
12. Be upgradable on ‘the fly’ i.e. upgrade of a running system would be possible
13. Must be easier to install, upgrade and administer than the existing product
14. Must be able to support up to 1,000,000 users
15. Must expand the domain described by the metadata
16. Must be able to describe a complex enterprise
17. Must reduce the ‘footprint’ of all images, the server image in particular
18. Architecture must support an indeterminate number of concurrent users.
19. Implementation GOALS: Don’t copy data unless you have to.
Don’t convert data unless you have to.
Transfer as little data as possible.
Functional Requirements 6
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
II. Technical Requirements
Technical Requirements
1. Must continue to provide the same product functionality that we have today
2. All components must be designed such that any changes to a component are isolated and don’t affect
other components
3. Must be able to incrementally deliver componentized segments
4. Must be able to distribute replacement components for upgrades such that the whole system does not
need to be upgraded
5. Must support 100 concurrent user logins initiated within a 10 second period and responded to within
30 seconds
6. Must run on all currently supported platforms (as of 7.1-AA)
7. Must be designed such that new platforms added after 7.1-AA can be supported
8. Must continue to support all current data sources (as of 7.1-AA)
9. Must be designed such that any new data sources added after 7.1-AA can be supported
10. Performance of any function must be the same or better than provided today
11. Must coexist and interface with EJB or Corba
12. Component Interface must be designed such that it is replaceable by EJB, Corba, Java, a variant of
RPI/IPC, etc. (until new CompI using the data stream architecture is proven on all supported
platforms)
13. Must build a test plan to quantify scaleability.
14. Components must be allowed to reside locally or remotely to the caller.
15. Location of the called component must be transparent to the caller.
III. Issues / Unknowns
Functional Requirements 7
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
Project Requirements
I. Sub-Project Dependencies
1. Develop the New Component Interface (CompI)
2. Componentize the ODB/DB driver
3. Componentize the MMX/DB driver
4. Componentize the Dictionary Interface
5. Incorporate the new CI into the Client/Server interface.
6. Convert the MPE/iX Character-Base image and utilities to be posix compliant
II. Assumptions
Enter
III. Platforms/ Versions Supported
Enter
IV. Dependencies
The following ATR’s must be fixed for this project
Enter
V. Capital Expenses
Enter
VI. Training Deliverables
Enter
VII. Product Development Deliverable
Enter
VIII. Product Management Deliverables
White paper
Positioning paper
Pricing
Release Schedule
Evaluation agreement
IX. Knowledge Devlopment Deliverables
Enter
Project Requirements 8
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
X. Documentation Deliverables
Enter
XI. Product Management Deliverables
Enter
XII. User-Interface Design
N/a
Project Requirements 9
Document Number: PRJ-REQ-89-00541-Server Componentization Rqmt. Spec
Revision Date: 02/03/19 9:11 AM
Revision Number: Draft .2
XIII. Acceptance Criteria:
1. enter
2. enter
3. enter
4. enter
5. enter
All Detail Plans will be completed by:
Each detail plan will be attached to this project plan upon its development and approval.
The estimates for Coding and Implementation will be included in each detail design.
The release schedule for this project will be published separately by Product Administration.
Project Requirements 10