We have a pre-existing web application and need to develop a module for Smart Devices. The KB for the Smart Device application will not create its own database and will not be able to access that of the pre-existing system (for security reasons, for instance). However, the pre-existing system provides us with APIs or services controlled by it to enable us to work with data.
For example, if the pre-existing system belongs to a bank, it will probably have every security measure applied to these systems before adding a module for Smart Devices that enables operations such as making queries, payments, transfers, etc. Most likely, the bank will not want to have any redundant information on the devices or the Smart Device application in general, so they will provide us with a service layer without giving us direct access to the database.
This scenario has similarities with the other scenario that we examined before (Integration Scenario: Independent Database in the SD module). The only difference is that in the previous scenario, the services were used to populate an intermediate database, and here they will be used to operate with data without storing it. In sum, communication between the Smart Device application and the pre-existing system database is exclusive and takes place directly through services.
Instead of accessing the database, the service layer of the Smart Device application will invoke the services provided by the pre-existing system to obtain the data.
Therefore, our Smart Device KB will not be able to work with base tables (with transactions). But there is the need to be able to consume external web service without losing the main features of the Work With Devices pattern such as Filters, Search, Paging, Orders and Break by. It will have to work by loading SDT collections and defining processes (services) that will communicate with the services provided by the pre-existing system. These services will load and return the collections. In other words: here the focus will be placed on solving the communication between those two service layers.
See the document HowTo: Use external services in a Native Mobile Application to go deeper.
- Enhanced security: the Smart Device application doesn’t handle data directly.
- The Smart Device application can be easily adapted to other realities, because it isn’t tied to a database structure.
- The availability of the SD application depends on the availability of the pre-existing system.
- Possible scalability problems have to be examined when the services provided by the pre-existing system can't handle large volumes of data.