HPE have been promoting the benefits of various blockchain and distributed ledger solutions over the last couple of years, and rightly so. HPE’s partnership with R3 has brought us Mission Critical Distributed Ledger Technology (MC DLT) in the form of the R3 Corda solution optimized for NonStop. This, and other DLT applications such as Ethereum, offer some excellent options for customers wishing to deploy new blockchain-type solutions on NonStop.
MC DLT, based on R3 Corda, provides application developers with a secure, reliable, and relatively simple platform to develop new solutions - facilitating transaction processing in environments where parties may not be fully known or “trusted”; smart contracts for supply-chain and other usages, and many other potential applications. These benefits and use cases have been thoroughly covered by HPE in recent publications and at NonStop Technical Boot Camp (TBC) and other trade shows.
At NuWave, we’ve been thinking about existing NonStop applications, and how they might participate in new DLT environments. While a NonStop customer might deploy a new DLT solution on NonStop, or even another platform in the enterprise, as an existing NonStop user, they will most likely have other NonStop applications already in place. If those applications need to integrate with the new DLT solution, what is the best way to enable that integration?
At last years’ TBC we presented, and demonstrated, one possible approach to this challenge. This article explains and expands on that approach.
R3 have produced an excellent demonstration application, called DemoBench. DemoBench simulates a central bank environment, and supports a variety of transactions between central banks that are configured within the application. Once configured and started, the central banks are shown graphically on a map, as in this screen shot:
Users of the demo application can issue cash and initiate payments in a variety of currencies, as well as other admin-type functions. Payments are shown graphically on the map, flowing between the relevant parties.
For readers wishing to learn more about DemoBench, NuWave recommends the excellent webinar by R3 CTO available here: https://www.youtube.com/watch?v=sz3wWonWv-Y
With DemoBench we now have our DLT application that we wish to access from NonStop, in our demonstration environment. REST gives us an easy way to facilitate that access, using CordApps, which is how Corda users and developers extend the core Corda functionality. When the DemoBench Corda nodes are started, we can configure one or more CordApps to be available in that node, per this screen shot:
Here you can see the “cordapp-tbc-20181031.jar” Cordaps have been included. CordApps can be written in Java, Kotlin, and other Java-like languages. For this demo, NuWave has written some simple Kotlin code to expose the standard DemoBench functions as REST services. Those services are shown in this screen shot:
Once the REST services are available, we need to get to them from our NonStop application. This is where LightWave Client, which is REST-based client middleware from NuWave, comes in.
LightWave Client is configured via the LightWave Client Console to consume the Corda services exposed via the CordApps above. This is a screen shot of the Console, showing the CashPayment service configuration.
Once LightWave Client is configured, we simply need our NonStop application to send correctly-formatted IPMs to LightWave Client, which will build REST messages to send to the Corda services. LightWave takes care of all aspects of the REST messages - JSON, HTTP, SSL/TLS etc, greatly simplifying things for the NonStop application.
Using this new REST interface, the NonStop application has access to the complete Corda environment, and can send and receive payments as part of the Bank of Breakfast Tea.
Of course, as NonStop users, you won’t be using the Corda DemoBench in a production environment, but chances are your blockchain or DLT deployment will be somewhat similar. And a REST-based approach to integrating with that blockchain deployment will always be a straightforward solution. If you have an existing NonStop application that needs to integrate with a planned DLT solution within your enterprise, take a look to see if a REST-based approach might make sense.