Consider a typical scenario of setting up an application development environment which needs to access a relational database. With respect to handling the data side of things, the basic steps that need to be done are:
- Create a database
- Create permission templates
- Create users with permission templates
- Provide access to the database for different users with different permissions
The above steps can be done manually using RDBMS tools. However, it is rare that one would simply set up a development environment for just one application with one type of data server. As various applications come through, the data requirements would differ. Also it would be rare that all applications created can be satisfied with a relational database - there may be instances where a unstructured data storage mechanism or a distributed file system is needed.
Whatever the data requirement is, the basic steps that need to be done remain the same, but the tools used may differ depending on the data storage mechanism used. Thus arises the requirement for an abstraction which would provide such services, providing the user with a consistent interface to use while also performing the underlying actions with the required data storage system. WSO2's Storage Server is the answer to this.
The WSO2 Storage Server (SS) is a multi-tenanted platform for system administrators and developers to easily provision and manage Relational Database Management Systems (RDBMS), column stores and Hadoop Distributed File Systems (HDFS). It delivers a multi-tenanted structured and unstructured data storage for developers who wish to obtain multi-tenanted storage for their applications, etc. You can rapidly provision and access secure and scalable relational, NoSQL Columnar, and Hadoop Distributed File System (HDFS) repositories using a consistent management process. WSO2 Storage Server's management console UI provides you with the ability to create databases, add users, and provision access based on the Web application’s database policies with ease. The Storage Server's management console also provides a consistent management process for provisioning and managing relational, NoSQL Columnar and Hadoop distributed file system repositories.
WSO2 Storage Server is cloud-aware and supports elastic scalability, tenant isolation, on-demand self-service provisioning, and consumption based pricing models. The server publishes usage data to WSO2 Business Activity Monitor and enables advanced analytics, monitoring, and billing.
The WSO2 Storage Server has three main components as follows:
Column Storage Service
Column Storage Service is a Cassandra-based database, which is shipped with three components named Cassandra Manager, Viewer and the Cluster Monitor. These three components facilitate the creation, management and monitoring of a Cassandra cluster through a simplified management console UI.
The Column Store Service is plugged to WSO2 carbon authentication system and Keyspaces users are authenticated and authorized against pluggable WSO2 carbon user base. A column storage cluster can be accessed via any public API like Thrift or Hector.
Relational Storage Service
Relational Storage Service (RSS) is a management interface to a relational database cluster. RSS allows users to create and manage relational databases in a horizontally-scalable manner. RSS supports H2 and MySQL by default and is extensible.
Hadoop Distributed File System
Hadoop Distributed File System (HDFS) facilitates users to create cluster file systems across nodes. HDFS can be used to store large files and it is horizontally-scalable.
The Storage Server is an on-going project. It undergoes continuous improvements and enhancements with each new release to address new business challenges and customer expectations.