In the ABAP for SAP HANA Community of SCN we can learn how to optimize our ABAP Applications for the HANA database. And we can learn how to create next generation applications that combine analytical and transactions features.
This is very useful – but software architects especially if they are working in huge custom or partner development projects need more information especially about architectural patterns that are successful in HANA development. Let me give an example: many transactional ABAP applications of SAP and partners use cluster tables to store their data because this approach is very flexible and generic. Unfortunately this not optimal in an HANA environment if since the compression of BLOBs tables is not that efficient compared to traditional database tables and the transformation of those data has to be done outside the database layer in the application server. So the question arises whether cluster tables or similar persistence model still make sense.
This is only one of the questions that arise if you design data models for ABAP applications or if you want to optimize existing ones. For SAP this is a chance because the HANA database as well as the SAP Business Suite can be developed so that both fit together perfectly. But what about custom or partner development? Will it benefit from or slow down optimizations of SAP NetWeaver and SAP Business Suite?
I think now it’s the time that SAP should start to share architecture guidelines for HANA-based and HANA-optimized applications and the SAP Guidelines for Best-Built Applications that Integrate with SAP Business Suite by Richard Probst should link to them.
I am well aware of the fact that those guidelines and best practices will grow and may change due to the fact of the evolution of HANA database and SAP Business Suite. Please let me give an example: generic persistence techniques have serious drawbacks since you can’t work with them properly with SAP standard tools like SE16 and that’s why a consider them as dangerous since years, as you can read in my blog. They provide elegant solutions but shift the complexity to other areas like maintenance, other processes like development of BW extractors and so on. But should we redesign our data model? From discussions I learned that this is only necessary if you want to do operational reporting on those data, otherwise try out features that HANA offers like hybrid LOBs as part HANA SPS6 and this is exactly what I’m planning to do.
But this is just one of the questions software architects have to answer. The more general question is how to participate at the evolution of SAP Business Suite. What are your Best Practices? What questions should SAP answer – what topics should be covered? Let’s start the discussion!