The WSO2 Data Services Server offers an extremely simple and user-friendly mechanism to take data and make them available as a set of WS-* style Web services or as a set of REST style Web resources. It augments SOA development efforts by providing an easy-to-use platform for creating and hosting data services. This enables easy integration of data into business processes, mashups, gadgets, BI applications and any service in general.
The diagram below depicts an overview of the WSO2 Data Services Server architecture.
Figure: Overview of WSO2 Data Services Server architecture
The WSO2 Data Services Server is 100% open source and developed on top of WSO2 Carbon, the component-based middleware platform consisting of a set of pluggable components. As a result, the Data Services Server inherits identity, statistics, governance, security, clustering and management capabilities of WSO2 Carbon. Because of the Data Services Server's component-based architecture, developers have the choice to deploy only the required components by adding in and removing features.
Apache Axis2 is the heart of the WSO2 Data Services Server's SOAP processing engine. In the WSO2 Data Services Server, a data service can be summarized into an XML descriptor file written in compliance with Data Services Descriptor Language (DSDL). DSDL is an XML based language defined by WSO2 to write data services.
A custom deployer extending the Apache Axis2 deployer framework is responsible for reading this data service descriptor and creating a data service. High performant XML processing capabilities offered by Apache AXIOM is used for generating XML responses on the fly. Some of the third-party open source projects used by the WSO2 Data Services Server include Apache DBCP for managing connection pools for Relational Databases, Google Spreadsheet Data API for reading Google spreadsheets, OpenCSV for CSV file support and Apache POI for MS-Excel support.
The Data Services Server's management console makes comprehensive management, configuration and monitoring possible though a simple, user-friendly GUI. The GUI is done on a layered architecture by separating the backend and frontend concerns. This allows the user to connect to multiple backends using a single GUI console. The Data Services Server also comes with different types of tools for running, testing and monitoring data services.