User Tools

Site Tools


dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:didostack:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:didostack:start [2021/08/11 13:31]
murphy
dido:public:s_cli:05_contents:01_prt:02_basics:02_solstack:didostack:start [2021/08/18 11:40] (current)
murphy
Line 2: Line 2:
 [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​start| Return to DIDO CLI Background]] [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​start| Return to DIDO CLI Background]]
  
-The proposed DIDO Solution Stack is modeled after the [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​02_solstack:​dbstack:​start| Database Solution Stack]]. The core features of both stacks is persistent storage of data and the modification of data using [[dido:​public:​ra:​1.2_views:​2_tech_views:​2-nodenet:​3_nodearch:​2_ido:​2_trans | Transaction]]. The major difference is that the DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​data_object|data objects]] Transactions are journaled with each Transaction being distributed to all the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​node|nodes]] in the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​node_network|node network]]. The details about how the Transactions ​ are bundled, validated and verified vary amongst [[dido:​public:​ra:​1.2_views:​2_tech_views:​2-nodenet:​2_node:​3_platform | DIDO platforms]]. For example, some platforms bundle the Transactions into a block and the block is distributed once it has been verified by a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​mining|mining]] operation. Others use "​neighboring"​ nodes to valid and verify the Transactions. ​+The proposed DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​solutionstack|Solution Stack]] is modeled after the [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​02_solstack:​dbstack:​start| Database Solution Stack]]. The core features of both stacks is persistent storage of data and the modification of data using [[dido:​public:​ra:​1.2_views:​2_tech_views:​2-nodenet:​3_nodearch:​2_ido:​2_trans | Transaction]]. The major difference is that the DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​data_object|data objects]] Transactions are journaled with each Transaction being distributed to all the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​node|nodes]] in the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​node_network|node network]]. The details about how the Transactions ​ are bundled, validated and verified vary amongst [[dido:​public:​ra:​1.2_views:​2_tech_views:​2-nodenet:​2_node:​3_platform | DIDO platforms]]. For example, some [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​platform|platforms]] bundle the Transactions into a block and the block is distributed once it has been verified by a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​mining|mining]] operation. Others use "​neighboring"​ nodes to valid and verify the Transactions. ​
  
 <​figure>​ <​figure>​
Line 12: Line 12:
  
   * **[[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​application|Application]]** - The Application is similar to the Application in the [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​02_solstack:​dbstack:​start| Database Solution Stack]], is the application,​ program, utility, service or microservice that needs to interact with the DIDO. This is done using standardized DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​ddl]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dml]] ​ using textual commands that adhere to the DIDO-CLI specifications See: [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​iso:​dblang_sql_part1]] and related specifications.   * **[[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​application|Application]]** - The Application is similar to the Application in the [[dido:​public:​s_cli:​05_contents:​01_prt:​02_basics:​02_solstack:​dbstack:​start| Database Solution Stack]], is the application,​ program, utility, service or microservice that needs to interact with the DIDO. This is done using standardized DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​ddl]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dml]] ​ using textual commands that adhere to the DIDO-CLI specifications See: [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​iso:​dblang_sql_part1]] and related specifications.
-  * **Users** - And end user can enter DIDO compliant DDDL or DDML text commands into a terminal or even produce scripts that contain a series of commands that sent to the Open DIDO Connectivity [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|API]] (ODAPI)for processing. Just as with the Application,​ these commands need to be compliant with the proposed Standard See: [[dido:​public:​s_cli:​05_contents:​01_prt:​04_dll:​start]],​ [[dido:​public:​s_cli:​05_contents:​01_prt:​06_dddl:​start]],​ and [[dido:​public:​s_cli:​05_contents:​01_prt:​09_dml]].+  * **Users** - And end user can enter DIDO compliant DDDL or DDML text commands into a terminal or even produce ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​script|scripts]] that contain a series of commands that sent to the Open DIDO Connectivity [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|API]] (ODAPI)for processing. Just as with the Application,​ these commands need to be compliant with the proposed Standard See: [[dido:​public:​s_cli:​05_contents:​01_prt:​04_dll:​start]],​ [[dido:​public:​s_cli:​05_contents:​01_prt:​06_dddl:​start]],​ and [[dido:​public:​s_cli:​05_contents:​01_prt:​09_dml]].
   * **Open DIDO Connectivity API (Open DIDO Data Binary Connectivity Layer (ODDBCL)** - This a utility (i.e., usually a library) that the application calls to process the DIDO-CLI commands and check for validity and verification that the commands are correct.   * **Open DIDO Connectivity API (Open DIDO Data Binary Connectivity Layer (ODDBCL)** - This a utility (i.e., usually a library) that the application calls to process the DIDO-CLI commands and check for validity and verification that the commands are correct.
-  * **DIDO Data Definition Language (DDDL)** - The DIDO Data Definition Language (DDDL) is used to create and modify the structure of DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​object|objects]] in a DIDO. These DIDO objects include Types, objects, oracles, exchanges, aggregates, and smart contracts, etc. Often, the DDDL commands require a different set of privileges than the DIDO Data Manipulation Language (DDML).+  * **DIDO Data Definition Language (DDDL)** - The DIDO Data Definition Language (DDDL) is used to create and modify the structure of DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​object|objects]] in a DIDO. These DIDO objects include Types, objects, oracles, exchanges, aggregates, and smart contracts, etc. Often, the DDDL commands require a different set of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​privileges|privileges]] ​than the DIDO Data Manipulation Language (DDML).
   * **DIDO Data Manipulation Language (DDML)** - The DIDO Data Manipulation Language (DDML) includes commands permitting users to manipulate (i.e., read) data in a DIDO. Note, the Data in the DIDO is [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​immutable|immutable]]. This manipulation involves inserting data into DIDO Objects, making for deletion objects, creating a Transaction to update the objects and associated data from different objects together.   * **DIDO Data Manipulation Language (DDML)** - The DIDO Data Manipulation Language (DDML) includes commands permitting users to manipulate (i.e., read) data in a DIDO. Note, the Data in the DIDO is [[dido:​public:​ra:​xapend:​xapend.a_glossary:​i:​immutable|immutable]]. This manipulation involves inserting data into DIDO Objects, making for deletion objects, creating a Transaction to update the objects and associated data from different objects together.
-  * **DIDO Drivers** -  The DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dbdriver | Drivers ]] are computer programs that implements a protocol (i.e., ODDBCL) for a DIDO connection.+  * **DIDO Drivers** -  The DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dbdriver | Drivers ]] are computer programs that implements a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​protocol|protocol]] ​(i.e., ODDBCL) for a DIDO connection.
   * **DIDO Data Management System (DDMS) ** - The DIDO Data Management System is a software package designed to define, manipulate, retrieve and manage DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​object|Objects]] in a DIDO. A DIDO generally manipulates the objects itself, the object format, field names, object structure. It also defines rules to validate and manipulate this data.   * **DIDO Data Management System (DDMS) ** - The DIDO Data Management System is a software package designed to define, manipulate, retrieve and manage DIDO [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​object|Objects]] in a DIDO. A DIDO generally manipulates the objects itself, the object format, field names, object structure. It also defines rules to validate and manipulate this data.
     * **DIDO Data Command Line Interpreter (DDCLI)** - The Command Line Interpreter translates the tokenized DIDO commands into DIDO Platform Specific instructions. ​     * **DIDO Data Command Line Interpreter (DDCLI)** - The Command Line Interpreter translates the tokenized DIDO commands into DIDO Platform Specific instructions. ​
     * **DIDO Platform CLI** - Sme DIDO platforms offer their own proprietary CLI. There have been efforts to "​re-use"​ a particular DIDO Platform CLI on different Platforms.     * **DIDO Platform CLI** - Sme DIDO platforms offer their own proprietary CLI. There have been efforts to "​re-use"​ a particular DIDO Platform CLI on different Platforms.
     * **DIDO API** - Many DIDO Platforms provide [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|APIs]] allowing a programmer to directly access a DIDO. For example, [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​ethereum|Ethereum]] provides a __Javascript API Libraures__,​ [[https://​ethereum.org/​en/​developers/​docs/​apis/​javascript/​]] or __Ethereum JSON RPC__, [[https://​ethereumbuilders.gitbooks.io/​guide/​content/​en/​ethereum_json_rpc.html]].     * **DIDO API** - Many DIDO Platforms provide [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​api|APIs]] allowing a programmer to directly access a DIDO. For example, [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​ethereum|Ethereum]] provides a __Javascript API Libraures__,​ [[https://​ethereum.org/​en/​developers/​docs/​apis/​javascript/​]] or __Ethereum JSON RPC__, [[https://​ethereumbuilders.gitbooks.io/​guide/​content/​en/​ethereum_json_rpc.html]].
-    * **DIDO Configuration** - There are always two aspects to configuring a DIDO. The first is setting up the environment externally to the DIDO Platform (i.e., downloading the software, running a wizard to install and configure the DIDO, etc), the second is the startup, upgrade, shutdown, etc of the DIDO Platform.+    * **DIDO Configuration** - There are always two aspects to configuring a DIDO. The first is setting up the environment externally to the DIDO Platform (i.e., downloading the software, running a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​w:​wizard|wizard]] ​to install and configure the DIDO, etc), the second is the startup, upgrade, shutdown, etc of the DIDO Platform.
     * **DIDO Data Definition** - A DIDO provides a way to define Types, objects, oracles, exchanges, aggregates, and smart contracts, etc. to the DIDO.     * **DIDO Data Definition** - A DIDO provides a way to define Types, objects, oracles, exchanges, aggregates, and smart contracts, etc. to the DIDO.
     * **DIDO Data Manipulation** - A DIDO provides a way to manipulate the inserting data into DIDO Objects, making for deletion objects, creating a Transaction to update the objects and associated data from different objects together.     * **DIDO Data Manipulation** - A DIDO provides a way to manipulate the inserting data into DIDO Objects, making for deletion objects, creating a Transaction to update the objects and associated data from different objects together.
Line 58: Line 58:
 ^  Properties ​           ^  [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​static_library]] ​                                          ​^ ​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​shared_libraries]] ​ ^ ^  Properties ​           ^  [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​static_library]] ​                                          ​^ ​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​shared_libraries]] ​ ^
 ^ Linking time           | It happens as the last step of the compilation process. After the program is placed in the memory ​     | Shared libraries are added during linking process when [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​exec|executable file]] and libraries are added to the memory. | ^ Linking time           | It happens as the last step of the compilation process. After the program is placed in the memory ​     | Shared libraries are added during linking process when [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​exec|executable file]] and libraries are added to the memory. |
-^ Means                  | Performed by linkers ​                                                                                  | Performed by [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​osoperating ​system |+^ Means                  | Performed by linkers ​                                                                                  | Performed by [[dido:​public:​ra:​xapend:​xapend.a_glossary:​o:​os|operating ​system]] |
 ^ Size                   | Static libraries are much bigger in size, because external programs are built in the executable file.  | Dynamic libraries are much smaller, because there is only one copy of dynamic library that is kept in memory. | ^ Size                   | Static libraries are much bigger in size, because external programs are built in the executable file.  | Dynamic libraries are much smaller, because there is only one copy of dynamic library that is kept in memory. |
 ^ External file changes ​ | Executable file will have to be recompiled if any changes were applied to external files. ​             | In shared libraries, no need to recompile the executable. | ^ External file changes ​ | Executable file will have to be recompiled if any changes were applied to external files. ​             | In shared libraries, no need to recompile the executable. |
Line 88: Line 88:
 </​figure>​ </​figure>​
  
-In the third scenario, an application uses a DIDO Platform specific library that specifically supports the coding language requires of the application (i.e., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​j:​javascript|Javascript]],​ Python, Java, etc) to interact with the DIDO Platform generally these languages are imbedded in Web Pages or can be used within the language specific applications. The application can be a thicker client or a lightweight browser application. The client talks to the server usually [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​w3c:​xml | XML]] or more recently [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​ietf:​json | JSON]].+In the third scenario, an application uses a DIDO Platform specific library that specifically supports the coding language requires of the application (i.e., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​j:​javascript|Javascript]],​ Python, Java, etc) to interact with the DIDO Platform generally these languages are imbedded in Web Pages or can be used within the language specific applications. The application can be a thicker client or a lightweight browser application. The client talks to the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​server|server]] ​usually [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​w3c:​xml | XML]] or more recently [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​ietf:​json | JSON]].
  
 <figure applicationServerModel>​ <figure applicationServerModel>​
dido/public/s_cli/05_contents/01_prt/02_basics/02_solstack/didostack/start.1628703118.txt.gz · Last modified: 2021/08/11 13:31 by murphy