Projects:Heartbeat/Functional Specification
Heartbeat - Functional Specifications
Overview
Currently the only means available to track the activity of Openbravo is by the quantity of downloads. This is not a true indication of project activity, as the number of downloads does not accurately reflect in what capacity Openbravo is actually being used. The intention of the heartbeat project is to gather information from installed Openbravo instances in order to more accurately analyse in what capacity it is actually being utilised worldwide.
Purpose
The Openbravo heartbeat will periodically gather and send data about the Openbravo installation back to a service on Openbravo's infrastructure. This data will then be used to generate detailed reports clearly identifying where and how the Openbravo product is being utilised.
To entice customers to enable the heartbeat feature, Openbravo will offer, for heartbeat enabled Openbravo installations, system specific configuration and component update information, sent automatically to the customer. Available updates might may include, for example, Operating System updates, Database updates and Openbravo code.
The information gathered by this feature will never be used for commercial purposes.
Customers may also register for Openbravo Support Services by providing contact information. This client registration, whilst occurring in the same initialisation process (as the heartbeat initialisation), is not considered part of the heartbeat process.
Scope
Below is a diagram outlining the scope of phase 1 of the heartbeat project:
1. Configuration of the heartbeat client. The user is prompted with a configuration window asking to enable, disable or postpone the heartbeat process.
2. Heartbeat alerts. Update alerts are generated.
3. Heartbeat process. Periodically collects and securely sends the system information to the Openbravo servers. The information is then stored in a database.
4. Heartbeat server. System information is stored in a database, and update information is returned to the client.
5. Heartbeat reporting.
References
Design Considerations
Assumptions
Dependencies
Constraints
Glossary
Heartbeat – The name given to the process periodically collecting Openbravo instance information and sending the information to Openbravo for analysis.
System information – The environment and installation specific information of a customer's Openbravo instance that is to be collected and transmitted to Openbravo.
Update information – The information sent back to a customer identifying any system updates that may be available for the customer's Openbravo instance.
Registration information – Contact information and Company description provided by an Openbravo customer to enable communication between the customer and Openbravo Support Services.
Functional Requirements
User roles & profiles
System Administrator – The Administrator of the customer's Openbravo instance. The System Administrator is the person responsible for enabling, disabling and configuring the heartbeat functionality.
Openbravo Strategic Board member – A member of the Openbravo Strategic Board. Members will interact with the reporting functionality of the heartbeat feature, generating Openbravo usage reports.
Business process definition
Heartbeat Configuration
The heartbeat configuration will occur the first time the System Administrator logs into the system, and will be able to be executed at any further time.
- Enable the heartbeat
- Confirm the enabling of the heartbeat.
- Supply the configuration information if required.
- Accept/decline customer registration.
- If registration accepted, enter registration information.
- Finish configuration.
- Disable the heartbeat.
- Confirm disabling of the heartbeat.
- Finish configuration.
- Postpone the enable/disable heartbeat decision until later.
- Postpone enabling/disabling of the heartbeat.
- Finish configuration.
Heartbeat Alerts
- Openbravo scheduled alerts system runs as normal.
- If there is heartbeat update information available, an alert is generated from the information in the database.
Heartbeat Background Process
- Scheduled heartbeat time starts.
- System information is gathered.
- System information is sent to the Openbravo central server.
- Update information received back from the Openbravo central server.
- When applicable alerts about System Updates are generated in local database.
Heartbeat Server Process
- System information is received as a request.
- Server database is updated with the system information.
- Update information is generated based on system information and currently available update information.
- Update information is sent back as a response.
Report Generation
- Openbravo Strategic Board member requests a report.
- Information is retrieved from the database.
- Report is generated and displayed.
User stories
System Administrator
- Marta is a System Administrator at at Big Bazaar, a global something company. After installing Openbravo she starts the system for the first time.
- The Openbravo heartbeat configuration screen pops up on her Marta's screen.
- Marta is not interested in reading all of the information at this time, but thinks she may need to do so at a later date, so Marta elects to postpone enabling/disabling the heartbeat.
- A day after postponing, Maria logs into the system again, and is once again prompted with the Openbravo heartbeat configuration screen.
- She decides that receiving details of Openbravo updates automatically, specifically targeted at the Big Bazaar environment, would be very valuable, so she clicks the enable heartbeat button.
- She is then prompted to enter some network configuration values to ensure the heartbeat can communicate with the Openbravo central server, which she duly completes. She tests the heartbeat process to ensure it is properly configured.
- The first heartbeat processes and sends the information to the central servers.
- The server returns update information based on the Big Bazaar system information. - When the scheduled alert process runs, an alert is generated which notifies Marta that there are updates, specific to their system configuration, available for download.
- The heartbeat then continues to run as a background process, collecting and sending system information to the Openbravo central server; the server returning update information to the heartbeat process, to be displayed as alerts on the Openbravo instance.
- Marta decides to register for Openbravo Support Services also, opens the registration tab and supplies all registration information.
- She executes the registration process.
- At some later date, Maria decides she does not wish to receive update information any further, so she navigates to and selects the Openbravo heartbeat menu item.
- When the configuration window opens, she selects disable heartbeat. - The other configuration information is disabled. The heartbeat process is stopped.
Openbravo Strategic Board Member
- Matt, a member of the Openbravo strategic board, wants to analyse the usage statistics using the reporting functionalities of the heartbeat system. He opens a web browser and navigates to the heartbeat reporting page.
- Some of the reports he wants to make include:
- Number of up-and-running OpenbravoERP instances, grouped by some keys like:
- Distribution by country
- Operating System used
- Database used
- OpenbravoERP version
- Activity rate (low, medium, high or inactive)
- Complexity rate (low, medium, high)
- Time evolution of all previous keys
- Number of OpenbravoERP updates (i.e. from 2.35 to 2.40alpha)
- Number of uninstallations and average lifetime
Note: More reports could be added
Functional requirements based on business processes
1. Pop-up window to launch Heartbeat configuration
Num | Requirement | Importance | Status |
---|---|---|---|
1.1 | The first time the system administrator logs in a small pop-up window displays. The window welcomes to Release 2.4x and explains the heartbeat and registration process. Three options are proposed to the user: Configure Heartbeat, Disable Heartbeat, and Postpone the configuration of the heartbeat. | Required | Done |
1.2 | If the system administrator chooses to configure the Heartbeat Configuration window is launched. | Required | Done |
1.3 | If the system administrator chooses to postpone the configuration, the pop-up window will not be displayed at log in until after the postpone time has expired. The postpone time will be 72 hours. The subsequent login after the postpone time has expired will present the system administrator with the Heartbeat Configuration pop-up once again. | Required | Done |
1.4 | If the system administrator chooses to disable the Heartbeat the feature will be disabled and the pop-up window won't be displayed any more. | Required | Done |
2. Pop-up window to launch Registration configuration
Num | Requirement | Importance | Status |
---|---|---|---|
2.1 | The first time the system administrator logs after the heartbeat has been configured, postponed or disabled, a small pop-up window displays. The window welcomes to Release 2.4x and explains the registration process. Three options are proposed to the user: Register, Decline Registration, and Register later. | Required | Done |
2.2 | If the system administrator chooses to register their installation of Openbravo, the Registration window is launched. | Required | Done |
2.3 | If the system administrator chooses to register later, the pop-up window will not be displayed at log in until after the postpone time has expired. The postpone time will be 72 hours. The subsequent login after the postpone time has expired will present the system administrator with the Registration pop-up again. | Required | Done |
2.4 | If the system administrator chooses not to register, the Registration pop-up window will not be displayed any further. | Required | Done |
3. Heartbeat Configuration Window
Num | Requirement | Importance | Status |
---|---|---|---|
3.1 | The Heartbeat Configuration window will contain two tabs. The first will be the Configuration tab, the second will be the Heartbeat Log tab. | Required | Done |
3.2 | The Heartbeat Configuration window must be accessible from the Openbravo menu at any time. | Required | Done |
3.3 | The Configuration tab will contain the following fields:
| Required | To be started |
3.4 | If the Test Configuration button is pressed the background heartbeat process is started and a pop-up window is displayed indicating the success of the process. | Required | Done |
3.5 | The Heartbeat Log tab will display a list of all previous heartbeat information sent to Openbravo. Each log item will contain the following information:
| Required | Done |
4. Registration Window
Num | Requirement | Importance | Status |
---|---|---|---|
4.1 | The Registration window must be accessible from the Openbravo menu at any time. | Required | Done |
4.2 | The Registration window will contain the following fields:
| Required | Done |
4.3 | If the user has not registered previously, the Register button will display 'Register'. If the user has registered, the Register button will display 'Update Registration'. | Required | Done |
4.4 | When the Register button is clicked, the registration information is sent to Openbravo and a pop-up window is displayed indicating the result of the registration process. | Required | Done |
4.5 | when the Register button is clicked, the registration date is updated and the id, if not already done, is generated. | Required | Done |
5. Heartbeat Background Process
Num | Requirement | Importance | Status |
---|---|---|---|
5.1 | The Heartbeat Background Process will collect and send the following information to the Openbravo servers (when each piece of information is generated in parenthesis):
| Required | Done |
5.2 | Each time the heartbeat process runs the information that is sent will be stored in the SYSTEM_INFO_LOG table. This information will be able to be viewed in the Heartbeat Log tab on the Heartbeat Configuration window. | Required | Done |
5.3 | If there is no internet connectivity, the heartbeat will not continue processing. | Required | Done |
5.4 | If the proxy settings or internet are misconfigured, a pop-up window will be displayed indicating the proxy settings need to be adjusted. | Required | Done |
5.5 | The heartbeat background process will receive information about available updates for the users system. For each update the following information will be received:
| Required | Done |
5.6 | If there are updates available, the background process will create an instance of an alert for each individual update and put it in the alert table. These alerts will be dealt with in the same manner that alerts are currently processed in the system. | Required | Done |
6. Registration Procedure
Num | Requirement | Importance | Status |
---|---|---|---|
6.1 | The Registration procedure will take the input entered into the Registration Window and send it securely to the Openbravo servers. The following information will be sent when the user registers, and each time registration information is updated:
| Required | Done |
6.2 | If there is no internet connectivity, a pop-up window will inform the system administrator that there is no available connection to the internet and that registration is not possible | Required | Done |
6.3 | The first time the user registers, a registration id will be returned and stored in the database. Subsequent registration updates will use the same registration id to update the information on the Openbravo servers. | Required | Done |
7. Update Process
Num | Requirement | Importance | Status |
---|---|---|---|
7.1 | The heartbeat server process will check the updates table for available updates specific for each client request. If there is a newer, tested version of a particular component option (i.e. Tomcat), details of the update(s) will be returned. The following details will be returned:
| Required | Done |
7.2 | If there are no updates available, a response will be returned to indicate this. | Required | Done |
- The heartbeat configuration must allow the user to enable and configure the heartbeat at any time.
- The heartbeat configuration requests for proxy configuration if required. The system administrator can test that the configuration is properly done by executing the first heartbeat process. Once the heartbeat is enabled and the configuration has been tested or the information saved there is a background process that will periodically (weekly) send the next system information to Openbravo Heartbeat Server:
- System identifier
- External IP Address
- Activity rate
- Complexity rate
- Number of registered users
- Operative System
- Operative System version
- Database
- Database version
- Application server
- Application server version
- Web server
- Web server version
- Java version
- Apache-Ant version
- Openbravo version
- Openbravo install mode
- The heartbeat configuration must allow the user to accept or decline Openbravo registration. The heartbeat configuration must allow the user to enter the next information through registration:
- Company name
- Company address
- Contact name
- Contact title
- Contact email
- Contact phone
- Company industry
- Company size in revenues (€)
- Company size in number of employees
- Subscribe to development News (Yes, No) -> automatic subscription to development mailing list
- Subscribe to commercial News (Yes, No) -> automatic subscription to Y distribution list
- Allow commercial contact (Yes, No) -> register them as a lead in Openbravo CRM system
- The heartbeat configuration must allow the user to disable the heartbeat at any time.
- The heartbeat configuration must allow the user to postpone enabling/disabling the heartbeat the first time the user logs into the server.
User Interface Mockups
To be completed.
Technical Requirements
Non-Functional Requirements
- The heartbeat module must be secure. The feature must maintain the security, privacy and integrity of customers' information.
- The heartbeat module must disclose to the customer all of the information Openbravo intends to collect.