Experiences from a River pilot implementation
For the last few months SAP had given us preliminary access to a hosted SAP HANA Platform Edition 1.0 SPS07 system including the respective SAP HANA Studio release both of which became generally available on December 3rd. Included in this release has been the River Definition Language (RDL) which is a 5th generation programming language (5GL) that allows developers to implicitly describe their applications in terms of entity relationship models and associated behaviors rather than explicitly coding these. It is the RDL compiler that then generates the actual implementations.
To pilot RDL we chose a reverse auctioning scenario that we had already implemented previously using the SAP HANA Extended Application Services (XS) with an HTML5 user interface based on the SAP UI Development Toolkit for HTML5 (SAPUI5). In this potential passengers enter taxi journey requests into the system and taxi drivers bid on those journeys based on a complex rating logic that takes e.g. into account how far the taxi would have to drive to get to the customer and how far away from the next request it would be at the end of the ride as well as the possibility of taxi sharing if more than one request can be fulfilled with just one ride. With 5 million travel requests simulated in the system more than 50 million calculations are performed per taxi driver updating their bid lists realized as a calculation view.
- Redeveloping this application in RDL did not require any change the data model at all. Although relationships are not defined as foreign key relationships in RDL but via associations and back links instead the model stays the same.
- The complex calculation view could be replaced by simple application logic.
- The generated OData services support JSON out of the box which is more efficient to use in SAPUI5 than Atom XML.
- Since associations get implemented as nested data structures by the RDL compiler that just need to get expanded these are easier to use in SAPUI5 than following foreign key relationships and therefore multiple calls to the backend.
- Besides the above optimizations the existing SAPUI5 frontend could be rewired from the hand crafted OData services to the RDL generated ones without major rework.
Based on this pilot and given the excellent support we received from SAP we would use RDL as the basis for our next SAP HANA development project. If you liked you could watch a short video about our River pilot implementation as well.
To unleash the full potential of RDL it would be great if SAP could include it into a toolset that coherently supports a V-model development style from design thinking and application building with SAP AppBuilder to RDL and back via SAP NetWeaver Gateway Productivity Accelerators into AppBuilder to finish the application and deploy to any device.