The Data Service is a pre-defined Remoting SDK service that exists in the middle tier. Its job is to provide access to the database data tables and handles the interaction between the the Connection Manager, the Schema and the Data Streamer.
Normally there is no need override the default implementation of the Data Service however you can do so if the need arises; for instance if you wish to provide finer grained access.
The Data Service takes input from the Data Streamer, which decodes/encodes data from/to the client. The Data Service then uses the Schema to map that information against the structure of the data in the underlying database. Finally the Data Service acquires a connection from the Connection Manager when it needs to communicate with the Database itself, and then releases that connection back to the pool when it is finished.