Architectural Requirements Specification Project Odin

Kyle Erwin Joshua Cilliers Jason van Hattum Dimpho Mahoko Keegan Ferrett Note: This document is constantly under revision due to our chosen methodology, and is subject to change.

Current version: v1.0

Contents

Contents Introduction . . . . . . . . . . System Architectural Design Description of Components User Interface Design . . . . Additional Material . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. 1 . 2 . 5 . 10 . 14

Introduction .1

Purpose

This Architectural Requirements Specification provides a qualitative and quantitative view of the architecture that will be used for Project Odin, including the components, their interactions with each other and other systems.

1

System Architectural Design .1

Chosen System Architecture

The system architecture we decided upon is the microservices architecture. Project Odin will be decomposed into four lightweight, loosely-coupled services that interact with each other to provide the underlying service. All of the services in Odin will communicate over technology-agnostic network sockets, and all of them will run in containerized environments such as Docker. The benefits of this are: • Improved modularity. • Makes the system easier to understand, develop and test. • Allows the system to be developed and deployed in parallel by small autonomous teams. • The system is easy to scale by simply scale individual services. • It is easy to refactor and update individual microservices. • Enables continous delivery and deployment. Under this architecture, the system will be decomposed into four systems: • Odin-CLI • Odin-Web • Odin-Daemon • Odin-Api

2

Figure 1: Deployment diagram

.2 .2.1

Discussion of Alternate Designs Multitier architecture

The architectural style known as n-tier or multitier is an architecture in which presentation, application processing and data management functions are physically separated. This could work for our system (ntier is physically quite similar to microservices), with our Odin-Web component fulfilling the role of presentation, Odin-Daemon and Odin-CLI as processing and Odin-API as data management. The reason we did not go for this style is we felt the separation into more components was beneficial due to the increased cohesion and reduced coupling, resulting in a system that was easier to test and develop in parallel. Additionally, n-tier traditionally has a very unidirectional data flow, while we felt that the data flow of Odin is more bidirectional. .2.2

Pipeline architecture

A pipeline architecture consists of a chain of processing elements arranged in such a way that the output of one element is the input of the next. This was a viable architecture for Odin as we could arrange it so that the web app outputs to the web API, which outputs to the Daemon. The benefit of this is that the input of each component is well-defined. The largest problem with this is that this is has a strictly one-way flow of data - the data flows from the Web to the Daemon. Therefore there is no way for the users to get feedback, which is an essential part 3

of the system. Additionally, the components or processing elements are very tightly coupled, with each element depending absolutely on the element before it.

.3

System Interface Description

The interface of this system will initially be the user interface in Odin-Web, wherein the user will be able to develop their algorithmic models, import components, execute sessions and share their projects. However, eventually, the idea is to allow a RESTful API service wherein other applications can hook in to a model to get it’s output.

.4

Access Channel Requirements

Project Odin is meant to primarily cater for browser clients due to its large Design Space which makes it cumbersome tool to have to port to mobile application clients.

4

Description of Components .1 .1.1

Odin-CLI Technologies

The command line interface will be implemented in Python 3, using built-in classes and libraries to provide a usable interface. TCP sockets will be used for communication, with the interaction handled by Python’s standard libraries. The testing framework pytest will be used for testing purposes. .1.2

Structure

Figure 2: CLI Class diagram

5

.2 .2.1

Odin-Daemon Technologies

The Daemon will be implemented in C++, using the rapidJSON tool to facilitate communication between the CLI and using our own classes for the operations needed to perform calculations on n-rank matrices .2.2

Structure

Figure 3: Daemon Class diagram

6

.3

Odin-Web

The Web-Frontend serves as the main user interface for the program. It makes use of Angular 4 as a framework and uses MDbootstrap for all markup.

Figure 4: Web Class diagram

7

.4

Odin-API

The API serves as the web interface’s backend and is built around an Express framework. It handles all requests from the frontend as well as routing and communication with the CLI.

Figure 5: API Class diagram

8

.5

Expected interaction between services

Todo:complete Web and API sections of Activity diagram The following activity diagram demonstrates the expected interaction between our services.

9

User Interface Design .1

Description of the User Interface

The design will be implemented using Angular 4 as a framework for the Web frontend with tools such as MDBootstrap and D.js The proposed layout of the website will be broken down into the following pages: • Login and Registration • Home page • Projects (browsing) • Design Space • Packages (browsing and managing) • Profile

10

.2

Mockups

Will be expanded later - UI has not been mocked up or implemented.

Figure 6: Design Space Mockup

Figure 7: Projects Page Mockup

11

Figure 8: Packages Page Mockup

12

.3

Objects and Actions

.3.1

Projects

• View projects • Edit projects .3.2

Design Space

• Create projects • Add components • Link components • Add input • Save projects • Execute projects • Export projects .3.3

Packages

• View packages • Add packages to projects

13

Additional Material .1

Glossary of terms • Component - A project that is used in another project. • Model - A computational model built in the application. • Odin - This product. • Project - A computational model that has been shared. • User - A user that is using the application.

14

15

16

Architectural Requirements Specification - GitHub

cumbersome tool to have to port to mobile application clients. 4. Page 7. Description of Components .1 Odin-CLI .1.1 Technologies. The command line interface will be implemented in Python 3, using built-in classes and libraries to provide a usable interface. TCP sockets will be used for communication, with the interaction ...

442KB Sizes 0 Downloads 311 Views

Recommend Documents

Architectural Requirements Specification - GitHub
porchetta tri-tip kielbasa kevin chicken hamburger sirloin. Cow pastrami short ribs shank. Sirloin spare ribs jowl, beef ham hock kielbasa ribeye prosciutto cow. Capicola pork chop landjaeger jowl venison beef ribs sirloin tri-tip tenderloin pastrami

System Requirements Specification - GitHub
This section describes the scope of Project Odin, as well as an overview of the contents of the SRS doc- ument. ... .1 Purpose. The purpose of this document is to provide a thorough description of the requirements for Project Odin. .... Variables. â€

System Requirements Specification - GitHub
System Requirements Specification. Project Odin. Kyle Erwin. Joshua Cilliers. Jason van Hattum. Dimpho Mahoko. Keegan Ferrett. Note: This document is constantly under revision due to our chosen methodology, ... This section describes the scope of Pro

Modern Requirements Specification
However, trends in system development have made the numerous problems ... not only enabled better requirements management; they have also enabled the ..... requirements methods, and better-standardized content for our requirements.

Software Requirements Specification
and Defect are entities that implement create, read, update and delete actions, but .... public String createDomain(String domainName) – Method creates a new.

Software Requirements Specification
THE DEVELOPMENT MANAGER (ALSO KNOWN AS SOFTWARE ..... The PM is responsible to the application management activities which include planning ...

Devicetree Specification - GitHub
Apr 30, 2016 - Companies ... A piece of software may be both a client program and a boot ..... defined by the DTSpec. 2.2. Devicetree Structure and Conventions. 10 ...... dtc-paper.pdf), An overview of the concept of the device tree and device ...

StackMap API Specification - GitHub
domain is the specific StackMap installation for your library. POST Data. The POST ... A node with the name of the library to search for the holding. ▫ Attributes.

Orc Protocol Specification - GitHub
Jun 7, 2017 - RPC message format changed (4.1 Structure and Authentication). • New CLAIM .... signature to authenticate the payload. Positions 3 and ..... Kademlia (http://www.scs.stanford.edu/~dm/home/papers/kpos.pdf). • S/Kademlia ...

Orc Protocol Specification - GitHub
Aug 15, 2017 - This specification documents the Orc network protocol in its entirety for the purpose of enabling .... services and authentication is performed by the nature of Tor's routing. Each Orc node ... associated with held contracts (5. Data T

Requirement Specification - GitHub
The former one focuses on understanding and stating ... Controller Area Network ... Clearly, the services of DIL can be categorized in two groups, one bus the ...

StackMap JSON API Specification - GitHub
o The text of the call number of the holding. ▫ “library” o The text ... o An decimal, the x position of the center of the range on the map, in pixels. ▫ “y” o An decimal ...

Integration Requirements - GitHub
Integration Requirements. Project Odin. Kyle Erwin. Joshua Cilliers. Jason van Hattum. Dimpho Mahoko. Keegan Ferrett ...

final project requirements - GitHub
In the course of the project, we expect you to complete the following tasks: 1) Gather ... The presentations should target a non-technical audience and serve the ...

ActionScript® 4.0 Language Specification - GitHub
Dec 13, 2012 - Computer Software Documentation,'' as such terms are used in 48 C.F.R. §12.212 ... Dec 5 2012 Added syntactic support for variable-length unicode escape ...... 365. Expression. 366. ReferenceExpression = Expression. 367.

Solution Requirements and Guidelines - GitHub
Jan 14, 2014 - will be specific to J2EE web application architectures, these requirements ... of other common web technologies a foundation for developing an Anti-‐CSRF solution with .... http://keyczar.googlecode.com/files/keyczar05b.pdf.

Hypervisor Top Level Functional Specification - GitHub
100. HvSendSyntheticClusterIpiEx . ...... That is, the hypervisor is free to deliver the interrupt ..... When a message is sent, the hypervisor selects a free message buffer. ...... The Flags field included an invalid mask value in the proximity doma

Specification on Image Data File Version - GitHub
5.4.10 ShootingRecord heap ... the JFIF file format[1], as described below), sample software shall be provided openly to player vendors. ... In the separate "Decisions Concerning Extension" section, we define how various companies.

Anonymous Go-Kart: Specification Report Supervisor - GitHub
May 9, 2011 - [email protected] (83238549). Wim Looman ... Department of Computer and Electrical Engineering. University of ... kart, so that it can be easily controlled by a laptop. The second is to ..... BostonDynamicsTRQ6Sep09.pdf.

LERUKA LERUKA UseCase Specification: View public ... - GitHub
UseCase Name. Brief Description. Mockup. Flow of Events. Basic Flow. Narration. Alternative Flows. Special Requirements. Preconditions. Postconditions.

Cosmos​​IBC​​Specification - GitHub
access​​to​​only​​part​​of​​the​​state​​space.​​This​​can​​increase​​throughput,​​but​​also makes​​any​​transaction​​that​​touches​​multiple​​shards​​extremely​​diffi

HELM Web-based Editor Requirements Specification V1_0.pdf ...
3.1 Web-Editor Functional Requirements. ... 3.2 Non-Functional requirements . ... Page 3 of 15. HELM Web-based Editor Requirements Specification V1_0.pdf.

Software Requirements Specification versi 2.pdf
There was a problem loading this page. Retrying... Whoops! There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Main menu. Whoops! There was a problem previewing