The diagram below depicts an overview of the WSO2 Storage Server architecture.
WSO2 Storage Server, which resides on top of WSO2 Carbon, supports provisioning of relational databases, NoSQL databases and FIle Systems. It provides APIs for provisioning. Those APIs communicate with IaaS layer to get the provisioning operations done. In addition to provisioning APIs, Storage Server exposes tools to monitor the status and statistics of provisioned database, etc. Administrators are also facilitated to configure role-based access control for provisioning databases. In addition to those functionalities, Storage Server provides tools to explore each database provisioned. Once the databases are provisioned, users can access them directly without going through the Storage Server.
When considering an example where an application uses a relational data store, the following explains how WSO2 Storage Server works internally.
- Storage Server needs to be setup with the database server instance which acts as the container for the provisioned databases. A cluster of such containers is provided to the Storage Server configuration documents.
- Based on a round robin algorithm, databases are created in each database server instance cluster.
- The Storage Server has its own central database (RSS management database) which will contain all details pertaining to databases created, users created, users allocated and permissions created and granted. It is through this central database that all management activities are carried out.
- If an application needs to have separate environments (e.g., development and production) the Storage Server will enable provisioning environments which are logical boundaries separating database server instance cluster sets.
- Once the databases have been created, the privileges created, and the users created and allocated to the databases with their respective privileges, tables can be created using the management console and the created databases can be viewed.
Thereafter applications can access these databases.