Changes between Version 17 and Version 18 of DeveloperGuidelines/Architecture
- Timestamp:
- 01/14/16 10:21:53 (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DeveloperGuidelines/Architecture
v17 v18 1 1 = Architecture = 2 3 2 Sahana Eden uses the MVC (Model-View-Controller) design with a [wiki:S3#RESTfulAPI WebServices] architecture 4 3 5 == Stack == 6 Sahana Eden is designed to be deployed flexibly from lightweight laptop installs to highly-available cloud deployments. 4 == Conceptual View == 5 Sahana Eden is a highly flexible tool which is used in many different scenarios, so there is no single conceptual view. This varies heavily between deployments. 6 7 == Module View == 8 Sahana Eden is designed to be deployed flexibly from lightweight laptop installs to highly-available cloud deployments, so it supports a range of stacks. 7 9 8 10 ||Web Server || Apache || Other web servers can also be used, such as Cherokee. || … … 13 15 ||Operating System|| Linux (Debian recommended) || Windows and Mac OS X are possible, but only recommended for developer & single-user environments. || 14 16 15 == Data Model == 17 == Execution View == 18 Being a lightweight system, most Sahana deployments are simple Client-Server: 19 * A single (usually Virtual) Server contains the 3 tiers of Web, Application & Database 16 20 17 === ER Diagrams === 21 If there is a need to scale beyond this, then the 3 tiers can be separated onto different servers, each of which can be duplicated for performance & redundancy: 22 * InstallationGuidelines/Cluster 23 24 == Code View == 25 Sahana Eden uses the MVC (Model-View-Controller) design 26 27 Folder layout is shown here: 28 * http://en.flossmanuals.net/sahana-eden/installation/ 29 30 Note: Models are actualkly stored in {{{modules/s3db}} to allow conditional loading. 31 32 === Builds === 33 Since Python is an interpreted language, there isn't a need to do builds when editing Python code on a developer machine. There is a 'comppile' script for server-based deployments and CSS/JS are minified using their build script: 34 * DeveloperGuidelines/Minify 35 Compile & Builds are quick (<1 min & <5 mins) 36 37 === Release Process === 38 * SysAdmin/ReleaseProcess 39 40 === Testing === 41 Testing is done using !UnitTest, Twill, Selenium and Travis CI: 42 * DeveloperGuidelines/Testing 43 44 === Data Model === 45 46 ==== ER Diagrams ==== 18 47 We don't maintain ER diagrams for the whole system as it would be too large to be meaningful. Instead we recommend building your own for the relevant modules for your deployment using one of these tools: 19 48 * MySQL Workbench 20 49 * dbwrench (for PostgreSQL) 21 50 22 === !Key/Value Tables===51 ==== !Key/Value Tables ==== 23 52 In order to allow extensibility of the core schema, many resources have key/value 'tag' tables associated with them. 24 53