SAP HANA is a rather interesting, efficient in-memory database. It can be purchased as a "black box" server (rented hardware, with pre-installed software) that you place to your server room or simply use as a cloud service. Together with the actual RDBMS, you can use SAP HANA Cloud Platform (SAP HCP) execution environments to host your business apps.
Vaadin is a powerful UI framework that you can easily use together with SAP HANA Cloud Platform. With it, you'll most often be working with plain Java and can completely forget that you are building a complex modern web application. The programming model is quite similar to Java Swing, the UI logic lives securely on the server’s JVM and in the browser, there is only a small auto-generated thin client that communicates securely and efficiently with the server. And it’s opensource and free to use, under the Apache 2 license.
There are lots of different kinds of applications, that all have their custom requirements, but for most business apps, Vaadin is an excellent alternative to a client side development model, such as SAP UI 5. The performance boost that you, as a developer, will gain from the pure Java/JVM approach of Vaadin is unparalleled.
Let’s have a look at how you can setup a SAP HANA application, with a Vaadin based UI, that you execute in the SAP HCP. I'm also covering a bit of some best practices for project setup and JPA usage, which might be interesting, even if you’re using or planning to use something else besides Vaadin.