Data Oriented Applications – ZOAPI leads the way

Frankly, I was not even aware that there is a thing called “Data Oriented” application design. Not until ZOAPI Apps, anyway.

The vision behind ZOAPI Apps was, “what if the the application designer only described the data schema, and the entire application (or most of it) was generated – backend and front-end – ready to use”.

At this point, I know what you are probably thinking – what would such an application be like more than basic CRUD functionality. Also, what is new – most development environments already do the CRUD generation at object level and API level, anyway. A quick internet search landed me to a nice article on the subject Rethinking Data-Driven Applications by Anatoly Zelenin. He points out some obvious flaws in the approach of today’s development frameworks such as

  1. Once the API/Objects have been generated the first time, the generation is quite useless when making modifications – it ends up being a manual activity. Most of the the application life-cycle is modifications.
  2. The generation is limited to backend functionality only, it provides no help for front-end.
  3. There are other issues too – I strongly suggest you visit the link above.

The article proposes an idea – Kickstart app development by providing the “first 80%” automatically! and an architecture – classical three-tier web architecture, but stops short of giving a solution.

ZOAPI Apps is not only that solution that Anatoly envisages, but it goes further. The input schema that ZOAPI works with, is actually a super schema (JSON file) which describes not only the underlying data structures but also the application behavior.

A significant part of any business application is the reporting and analytical dashboards. The dashboards are analytical views that are created by organizing multiple “widgets” for a meaningful presentation to the user. The ZOAPI super schema allows the designer to specify widgets (based on the schema) – the widget definition being the details of data source, filters, and the presentation details. The job of the application designer ends here, ZOAPI automatically fills in the rest – the data service APIs, communication and the presentation. It even comes with a user facing dashboard designer, each user can create their own custom dashboards from these widgets.

Another big part of a typical application is workflow management and data access control. The ZOAPI super schema allows the designer to provide details of application roles, role based access control and workflow for each data entity. ZOAPI automatically manages the access and users can specify access flags for each record that they create.

With ZOAPI, at this point, you are already generating almost the entire application, but not all of it. The custom parts of your application come as additional API’s and components on the UI. ZOAPI, at the heart, is an API development accelerator – that should take care of custom APIs. The custom UI components are provided as JavaScript components which are referenced from inside the super schema.

Finally, how does ZOAPI Apps handle the challenges of classical generation approach of other frameworks-

  1. The data schema is captured in a database neutral syntax. The underlying table structure is generated. When your schema changes, the changes are propagated down to the database transparently without affecting the data already existing in the tables. Schema can be changed at anytime.
  2. The ZOAPI CRUD is not the entity (table) level – it is a complex CRUD API incorporating master and dependent tables in the same operation.
  3. The UI renders itself based on the description in the super schema – true data-driven application.
  4. The generation of the tables, the APIs, and the data communication between front-end and backend is completely transparent to the designer.
  5. ZOAPI Apps automatically manage the cacheing of data on the front-end to provide the most optimum performance.

Before closing, let me also remind that all the tasks described above are performed right from your web browser. No installs are required.

Author: Manoj Agarwal, Chief Architect – ZOAPI.

Reach me on: TwitterEmail

Do not forget to visit the website: https://zoapi.io.

Leave a Reply

Your email address will not be published.