Enterprise Application Development

RAD Architecture Series: Data Model Layer

In continuation of our march towards understanding Rapid Enterprise Architecture, today we will talk about Data Model Layer in WaveMaker.

In any modern day enterprise, there are many data sources that applications integrate to, and these data sources are distributed, diverse and provide varying degrees of real time data.

Modern day applications need easy and sophisticated mechanisms for Data Manipulation and Data Management. WaveMaker abstracts out all the complexity, low level data manipulation needs and presents a unified REST API Layer for any type of Data Source, thereby significantly improving the productivity of an application developer dealing with data management and data integration.

In case of WaveMaker, application can integrate to a variety of data sources. They include,

  • All standard SQL Databases
  • SQL Queries, Stored Procedures
  • Web Service APIs
  • Web Sockets
  • RSS Feeds
  • Custom Data Source (Written using Java APIs)

The diagram below shows a unified architecture, that allows all the data sources (irrespective of its type) to be surfaced to the application as REST APIs.

As an Application Developer, one need not worry about the underlying complexity of the Data Source. WaveMaker simplifies it by presenting a REST APIs / Endpoint to connect to the Data Source and manage it seamlessly.

As mentioned in the previous blog, the data source is then managed by Variables from the application. The Variables are bound to the UI Widgets. In this way, all the complexity of the data source and business logic is hidden from the UI developer and applications can be developed in a faster pace.

When it comes to Database as the Data Source, WaveMaker has built-in features that makes it easier to manage the information model. WaveMaker supports a built-in Database Designer that makes it easy to model the database schema using drag and drop mechanism.

WaveMaker supports auto generation of the ORM layer for the database tables. The objects are then abstracted using a DAO as well as a Service (REST) Layer as shown below.

WaveMaker enables extreme productivity in developing Data Driven Applications. Most of the data driven applications needs faster response, responsive UI, easy data management and real time data visibility. Using the above architecture, WaveMaker easily supports creating UI Widgets (forms, grids, lists, charts etc.) that can be easily bound using REST APIs to any data source on the back-end. Also since all the interaction is REST based, the user experience is seamless by using SPA UI pattern.


No-code vs. Low-code – Is there a difference?

Low-code platforms was a buzz word among big companies last year. In fact, in 2016, big players like Google, Microsoft, Oracle, SalesForce staked their claim in this market segment through acquisitions and organic product launches.  However, what are these low-code platforms?

Low-code platforms are app development platforms that allow you to build your apps faster with minimum coding.  These low-code platforms have been in existence for some time now.  They initially sprang up as just-auto code generation tools but have evolved since then into enterprise-grade app development platforms covering the entire app delivery.  Modern low-code platforms speed up the entire app delivery process from requirements to go-live.  Some critical areas in app delivery cycle that get optimized in low-code platforms include the following:

  • Coding is replaced by visual app building, where the developer builds the end-user experience right from the start, using simple drag and drop of UI components
  • All services like database, SOAP and ReST APIs, CRM, security, and other external services are integrated into the application visually using simple, intuitive visual interfaces
  • All the artifacts of the project – front-end and back-end code, configuration files, the executables, etc. are automatically generated based on standard best practices.  This also completely removes human errors during coding.
  • The continuous deployment and integration process is simplified.  The app is moved through various release phases like development, QA, staging, and production through 1-click deployments.
  • Future maintenance and scalability of the deployed app are also automatic through horizontal scalability, where modern lightweight containers with the required app are provisioned in a matter of seconds.

No-code platforms – Is it a new phenomenon?

Of late a new breed of platforms, akin to low-code platforms, have sprung up.  They are called the No-code platforms.  What are they? Are they any different from low-code platforms? Are they one and the same?  

Let’s understand, that during the development phase, low-code platforms score over traditional development approaches because they involve a more intuitive visual development approach.  The visual development approach allows the app builder to drag and drop predefined out-of-the-box components into the work area.  However, many a time, during app development, there are features that require customization.  For instance, when building a particular page of an app, your visual designer would have given an innovative clock widget, in his screen mocks based on the company’s standardized widget set, and that is not a part of the default UI widget library of the platform.  In this scenario, low-code platforms like WaveMaker, allow you to extend the platform capabilities by letting you build such a widget and make it available as a drag-n-drop component for future projects.  

However, what if the company employed a team of developers who built a UI widget library based on the company’s approved design template and is made available out-of-the-box in the platform itself.  Then app-building becomes a no-code experience.  

Hence no-code-platforms are more like an evolution of low-code-platforms to particular scenarios, where the coding extensions are taken care of by providing out-of-the-box visual components.  The interesting part is that no-code platforms do not actually guarantee a no-code experience.

So, when does low-code become no-code?

There could be many scenarios in which a low-code platform can start acting like a no-code development platform.  Some of the broad categories include:

  • Industry/Vertical specialization of apps – Low-code platform vendors and their partners create industry-specific out-of-the-box components for the platform that makes any industry-specific app closer to a no-code development format.
  • Standardized styling and templatization of UI and integrations– We have often seen in enterprises that have approved styling (like colors and fonts), third-party software systems and software stacks to be used.  In this case, rapid application development through a low-code platform is achieved through the pre-creation of all these standardized components inside the platform.  This results in an app-building experience closer to a no-code experience. 2-pass development, devised by WaveMaker, is a standard development approach used for low-code development in enterprises.  Here there is a technical-pass team, which is responsible for creating the drag-n-drop components as per the standards set by the IT teams in a company.  Once the out of the box components is ready, the business-pass team will start creating the apps by simple drag-n-drop of these elements.
  • Commonly occurring generalized apps– This category of apps is omnipresent.  They could be a data-driven app to list down a row of data from DB tables or a dashboard app that would present a data visualization interface for the underlying data or a purely API-specific app that works with an entire ecosystem of cloud services like AWS or Google-Cloud.  Most of the time these apps do not require any customizations and the whole app could be done with features available out of the box on the platform.

To Summarize, no-code platforms are no different from low-code platforms.  They are just a specialized version of the low-code platforms, where the customization has been taken care of by pre-building all the required visual components.  The next time a vendor claims to be a no-code development platform, feel free to refer to this article on where they fit in.



Enterprise apps with consumer-grade UX? It’s possible

As a user, what is the first thing that comes to mind when you hear the words: enterprise software? Perhaps something difficult to use and gray in color? Maybe a dinosaur-like UI that gets in the way of your productivity? But how did this come to be? Let us rewind the clock to a few decades ago to understand how enterprise software was purchased and used.

Enterprise applications were designed to meet the complex, scalable and mission-critical needs of an organization. Purchase decisions were (still are?) made on spreadsheets and it was difficult to quantify the user experience. From the user’s perspective, there was a wide gulf between enterprise and consumer apps – with a different set of expectations from each. It was also a time when software purchase was a one-time activity or riddled multi-year maintenance contracts. Due to the high switching costs, poor user experience was a barrier that was not high enough. Also, organization culture leaned towards a “just get it done” attitude especially when it came to internal tools, resulting in user experiences that weren’t well designed or tested.

The times, they are a-changin’

While the hangover of yesteryear remains, the state of enterprise apps UX is changing rapidly. Consumerization of IT and user interfaces from the consumer world are setting the bar now for enterprise software. With the advent of cloud, social and mobile, the gulf of expectations has narrowed because we are switching between apps related to work and play throughout the day. Enterprise employees are also consumers, and they’ve come to expect consumer-level design in all the tools they use. The millennial workforce expects enterprise apps to be fast, connected, and available on all devices, at all times. Meanwhile, SaaS has lowered the cost of switching and encouraged competition – moving the battleground from the spreadsheet to user experience. Also, the adoption is clearly measurable, hence, the user experience is now more quantifiable than ever. Moreover, enterprise software makers are using design thinking to create the best possible applications. Due to all these reasons, even internal apps, custom applications, and partner apps are expected to be of the highest quality with respect to user experience.

How to create enterprise apps with consumer-grade UX?

Good design also enables enterprises to eliminate inefficiencies and extra costs that are passed on to the end-user in time spent, money lost, and frustration increased. In fact, when an enterprise prioritizes user experience for its internal tools, it becomes a more effective organization; recent studies show that design-driven companies outperformed the S&P average by 228% over the last ten years. So how does an enterprise create enterprise apps with consumer-grade UX without compromising on the speed of application delivery?

Beautiful apps at the speed of business

At WaveMaker, we fully appreciate the role of user experience in the success of enterprise software. That belief also translates into features in our award-winning RAD platform. The following capabilities empower developers to churn out beautiful apps at the speed of business using the WaveMaker low-code platform:

  • The auto-responsive layout allows developers to create the app once that automatically adapts to multiple devices like PCs, tablets, and smartphones
  • Mobile and Web Templates to jumpstart application design with inbuilt app templates that range from login pages to dashboards
  • A large collection of Application Themes that ensure a consistent experience across pages and UI elements
  • Native Mobile experience with Native UI Controls (HTML5) that adapt and conform to the platform (iOS/Android)
  • Live Preview of the application on multiple resolutions and devices to create a consistent user experience across all form factors
  • Easy Customization using UI properties and CSS for creating a pixel-perfect user interface

Get started with a free trial of WaveMaker RAD Platform today!