Categories
Blog

The future of low-code
is open

By Mayur Shah, Senior Director – Product Management, WaveMaker

The low-code market is seeing meteoric rise across the world, as companies try to keep up with digitization demands and shrinking IT budgets. Even as we witness increasing low-code adoption among professional as well as citizen developers, an intriguing question comes to mind – What lies ahead for low-code, and could it ever become a mainstream approach for modern development teams?

The answer may well be an open source, low-code platform that offers high productivity, while supporting seamless integration with the overall fabric of modern software development practices within an enterprise.

It’s feasible to assume that low-code will evolve to become open low-code, resulting in greater innovation and agility.

To further understand what this means, let’s dive deeper. What are open systems?

According to Wikipedia, open systems are computer systems that provide some combination of interoperability, portability and open software standards.

Over the years, the software industry has seen great benefits from designing, implementing and consuming open systems. TCP/IP protocol standards, UNIX systems, Web browsers, REST APIs – all of these are shining examples of open standards that went on to become highly successful and widely adopted. By remaining open, they enabled higher interoperability, streamlined development and fostered rapid innovation.

Low-code is now at a critical stage in its adoption curve. For the last few years, we have seen citizen developers successfully execute shadow IT with low-code and churn out applications at a breathtaking pace. Today, low-code platforms are hardened for enterprise use, are programmed to understand the scalability and security needs of a complex application and have integration capabilities mature enough to seamlessly fit in with existing tools and technologies. As a result, we are now seeing greater adoption of low-code within the professional development community, covering a diverse set of use cases from simple dashboards to complex applications. The natural next evolution of low-code is that it becomes mainstream within enterprise IT, and is used to build mission-critical applications and systems. So, how does this next phase play out for application development?

The Case For an Open Low-Code Platform

The approaches and techniques of modern software development teams has changed dramatically to meet the demands of modern, software-enabled business. Developer velocity and organizational agility have become key benchmarks for high performing software development teams, as those metrics have a direct correlation with software excellence and superior business performance. According to a research report by McKinsey, teams that belong to the top quartile with regards to developer velocity score have 60% higher total shareholder returns and 20% higher operating margins. Such teams can experiment faster and release code to production without delays.

As application teams continue to embrace low-code for mainstream development, it is vital that low-code platforms support developers so they are encouraged to employ modern application development and delivery best practices. Low-code should introduce minimal disruptions to a developer’s working practices and workflow. Also, it is important that low-code can integrate seamlessly with the fabric of the overall enterprise application architecture. This can happen if a low-code-platform is open standards-based and flexible so that the rest of the enterprise application infrastructure can coexist with it.

What Makes a Low-Code Platform Open?

Developer-Centric Features

Developers like control, flexibility and a unified experience. They find comfort in sticking to their preferred languages, tools and application development and delivery workflows. A low-code platform that offers productivity with equal flexibility, with a focus on building robust enterprise architecture, is bound to be the future of application development. Platforms should focus on providing a unified developer experience across concept, design, integration, development and deployment stages of the app life cycle, employing a technology stack that is modern, best-of-breed and cloud-native. It’s equally important to provide a way for developers to easily bring any external innovations into the low-code platform.

Visualization, Customization and Ownership

Many low-code platforms do not generate 100% of an application’s code. Also, most of the code generated by proprietary platforms is also proprietary, and quite often remains hidden and not easily accessible or extensible. A platform that generates open standards-based, real code is a great asset, especially for professional developers building complex applications that require extensive customization and deep integration with enterprise tooling (security, testing, debugging, integration etc.). The code generated should be based on developer-friendly, best-of-breed application stacks and standard design patterns. This way, application teams will have complete familiarity with and understanding of the code. Enabling full export of the code allows teams to own the code created by the platform.

Flexible Application Architecture

The application architecture should be loosely coupled, supporting microservices and micro front ends that can be independently built, deployed and scaled. This way, architecture can support cloud-native application development easily. Also, all other aspects of the application life cycle should allow for plug-and-play capability. This includes, but is not limited to, plugging in custom UI components (widgets, templates), custom security providers, custom back end code, logging frameworks, event driven systems, etc. A plug-and-play model ensures that development teams can integrate custom providers that are fine-tuned for the enterprise.

Modern Development Best Practices

Modern application development practices have evolved to allow teams to experiment faster and release code to production at a never-seen-before pace. Optimizations in performance and scalability have resulted in applications that can support millions of end users. As developers warm up to low-code, the platforms should align with and implement all modern development practices while building applications. The idea is to minimize friction in a developer’s journey towards low-code, so that they continue to leverage the same design principles, application tooling and enterprise integrations as they do in the complex programming world.

Infrastructure-as-Code (IaC)

Developers need a way to continuously deploy software so there is always a version of the application ready for production. Low-code platforms should support an IaC option, so code generated is always deployable seamlessly on the developer’s infrastructure of choice. Platform should integrate to build, test and release systems (version control systems, CI/CD, artifact repos, container image repos, Kubernetes clusters and public or private cloud instances, for example). This way, artifacts built by low-code are continuously integrated and deployed to the enterprise’s operational systems.

Low-code is at an inflection point within enterprises, as it becomes the platform of choice for digital transformation and application modernization. This is the opportunity for low-code platforms to become a key ingredient of an enterprise application architecture. An open low-code approach will allow application development teams to benefit from the underlying best practices prevalent within the organization.

Low-code is not merely a productivity tool; it has the potential to be a technological and cultural catalyst that drives enterprise innovation and business agility.

Originally published in DevOps.com

Categories
Blog

Java Spring Boot, Microservices, and low-code – A formidable mix

“Because they are so long-lived, atoms really get around” says Bill Bryson in his book, ‘A Short History Of Nearly Everything.’

programmer from the 90s could say the same about ‘Java’.

Ubiquitous in its presence for nearly a quarter of a century, Java’s journey is one of many milestones. From its inception in 1995 as an unopposed ‘internet programming language’ to the’ de facto standard for Microservices’ today, Java has evolved to become an all-pervasive technology. Name any major product, and Java is behind the scenes. Google, LinkedIn, Uber, Netflix, Spotify – all have been built by Java. From mobile applications to desktop, embedded systems to web servers, scientific to business applications, there is a bit of Java in everything.

The same could be said about Java-backed architectures. Microservices is one such architecture of repertoire. Departing from complex monolithic systems, microservices are based on providing functionality in the form of decoupled services. These independently deployable services are in turn developed and maintained by small teams. The result is a framework based on independent but collaborating functionalities. Reusability, testability, maintainability, scalability, and easy deployment are key benefits of a well-defined microservice.

The Java ecosystem has well-established frameworks for developing microservices. Microservices demand modularized architecture and a lightweight messaging system for data exchange. Something that Java can provide easily.

Java’s foray into the world of microservices or to put things into perspective, microservices’ consolidation as an architecture of significance rose with the advent of Java Spring boot, Jersey, and Swagger.

Spring Boot- “Loose coupling and Tight cohesion”

Of the three, Spring Boot rules the roost when it comes to creating decoupled, independent, and interactive services. It helps in developing services rapidly because it follows a convention-based programming paradigm rather than a configuration-based one. Its purpose-built features make it easy to build and run microservices at scale. Coupled with Java Spring Cloud, administration and testing of applications becomes easier. Applications can start small and then iterate faster to scale up, that too on multiple platforms with reduced cost- One of the reasons why Java Spring Boot is considered the de facto standard for microservices.

Java Spring Boot has matured over the years. Being an Open-Source framework it is backed by a large community resulting in an extensive array of readily available expertise in Spring and all its components.

While we talk about Spring Boot and its natural fit in microservices, let’s talk about another enabler in terms of microservices – Low-code platforms.

Low-code platforms and microservices – An intersection.

Abstraction- A common goal for both low-code and microservices. How does a low-code platform aid in simplifying a complex solution?

While the services themselves aim to be simple, the architecture and interactions in a microservice can be complex. Low-code can help simplify these complexities. Low-code platforms such as WaveMaker can effectively model microservices by providing front-end visualization to the back-end complexity. In some cases, low-code can be used to add a layer of abstraction on top of the enterprise microservices to provide end-users with a clean interface. In other scenarios, it can act as an orchestrator between services created with different platforms. A low-code aimed at professional developers may also allow them to write custom code for services.

Continuous delivery, unwavering stability, and unhindered scalability form the ethos of microservices. Java Low-Code platforms enabled by Spring Boot offer these key advantages in the world of microservices. Let’s see how.

WaveMaker – Low on Code, High on Java

Aimed at professional developers, WaveMaker is a powerful, enterprise-grade Java low-code platform. Built on the foundation of sound Java pedigree, WaveMaker was launched as a multi-tenant cloud edition in 2015 by a team of middleware experts. WaveMaker uses a proven open standard stack – Java Spring, Bootstrap, Angular, and Docker to enable app development on the cloud.

It offers flexibility and speed with component-based microservices and auto containerized deployments to the cloud. The platform allows for one-click API creation, where microservices are auto-created and developers can use existing database logic and reuse existing Java code in IDE’s of their choice.

These APIs enable developers to write business logic or integrate with third-party libraries. How are these APIs generated?

For every Java Service created in WaveMaker, its REST API contract is auto-generated and is available for integration with the front end. But the developer only has to use the unique ‘API Designer’ present in WaveMaker. This API designer helps create custom API with auto-generated API endpoints. WaveMaker then uses the concept of ‘Variables’ to interact with the REST API layer to access the services.

All this while, the structure oiling the machinery is the Java Spring Framework. In fact, in WaveMaker, the Services Layer is auto-generated using Spring. Custom queries, procedures, and Java Services can further be used to extend the app functionality.

Scalability is another factor that WaveMaker caters to in the form of ‘Spring Sessions’. Since WaveMaker generates open standards code based on Spring for the back end, horizontal scaling for applications can be achieved using Spring Session Module. Java Spring best practices are ingrained into WaveMaker.

Built with Java and used by professional developers, WaveMaker is a common intersection point between Low-Code, Java Spring Framework, and Microservices. As Java continues to evolve and grow, WaveMaker follows a similar path emulating its success.

Categories
Blog

WaveMaker 10.7.0
What’s New?

WaveMaker v10.7 is here!

In this release, you will find capabilities and features that aim to empower professional developers to build complex and scalable applications using low-code. As always, WaveMaker aligns itself with the latest technology stack and industry best practices for modern software delivery.

With v10.7, WaveMaker continues to enable enterprise IT teams and ISVs to build faster and build better with low-code. Here’s how.

Multiple paths, one destination

Version control, Branching and Hotfixes Support

Do you have multiple teams working in parallel on different features and hotfixes? WaveMaker in its earlier releases provided support for an array of source code repositories like Git, GitLab, and BitBucket to support version control. WaveMaker 10.7 goes one step further. Software teams that have adopted Agile or Scaled Agile (SAFe) need to work on multiple streams of development simultaneously. To support this, WaveMaker creates a project workspace mirroring branches created in the corresponding Git repository. This allows them to deploy new features to production continuously and rapidly while teams work on the next version of the app. ‘Branching’ makes it easier to manage large-scale projects with multiple release trains and versions during its life cycle.

Where there is data smoke, there is business fire

— Thomas Redman

Database Integration: Support for AWS RedShift

Enterprises are leveraging data warehouses to examine and analyze petabytes of data and gain valuable insights. AWS Redshift is one such data warehouse of importance. If you are a low-code user interested in strengthening your data capabilities through Redshift, WaveMaker 10.7 is just right for you. Developers can now connect to the underlying RedShift database schema in a matter of minutes with a few clicks and create logical data models mirroring the Redshift data source. They can then proceed to leverage the 150+ UI widgets and templates that WaveMaker provides to rapidly visualize data from the RedShift data source.

Database Integration: Support for SAP HANA

Are you looking to create purpose-built applications to automate interactions that are tedious to achieve in SAP? Now you can import your SAP HANA database into WaveMaker and build that application without having to copy the data.

In Version 10.7, WaveMaker supports a native integration to the SAP HANA database as a primary data storage. Application developers can then easily model on top of the HANA DB with WaveMaker’s in-built visual tools and expand S / 4 HANA’s existing database. They can even build new web / mobile apps with the power of the SAP HANA database. WaveMaker facilitates developers to leverage the advantages of this in-memory cloud DBaaS (Database as a service) with just a few clicks.

In addition to these, WaveMaker now provides support for all new versions of existing databases such as MySQL, PostgreSQL, and MS SQL Server. To see a list of all the databases and their versions that we support, click here.

Keeping it within

UI Artifacts now published to NPM

Many Enterprises have strict guidelines on accessing private repositories for application build and dependency management. With this release, all UI artifacts required for generating the Angular app will be published to Node Package Manager (NPM) repository. This removes any dependency on external cloud servers (S3 or Maven providers). Additionally, customers currently integrating WaveMaker to their custom CI/CD pipelines can now pull the dependencies from standard npm repositories while pushing the application across the pipeline.

Safe and Secure

WaveMaker is now Veracode Certified

WaveMaker has strengthened its security credentials with the achievement of “Veracode™ Verified Standard (Veracode Seal)” for WaveMaker generated application code. Going beyond addressing OWASP’s top 10 vulnerabilities, Veracode scans run extensive checks on WaveMaker generated code and at all times WaveMaker comes out unscathed. This in effect, translates to faster and easier development because developers can now focus on building the software rather than worry about its security aspects. Apart from fortifying the platform, WaveMaker application developers can easily implement constraints on the number of concurrent logins that are allowed for their application users. WaveMaker supports myriad ways to integrate SSO into its application. In WaveMaker 10.7, the SSO flow is optimized to let application users log in automatically if their SSO session is still active.

Nothing but the best

Technology Stack Upgrades

WaveMaker continues to strive to provide the “best-of-breed” technology stack to all its users. With this release, WaveMaker-built apps can leverage newer versions of several open-source libraries including spring framework, spring-security, ngx-bootstrap, logging to name a few. The complete list can be found here. In addition to these WaveMaker 10.7 has added several features keeping customer requirements in mind.

Optimizing the queries that read the database metadata has resulted in faster import of the Database Schema. On-Demand pagination and Infinite Scroll support on table widget, the ability to group data shown in dropdown menus, search auto-complete widgets are some new enhancements to keep an eye out for. To see the complete list of new features, please read our release notes here.

With each release, WaveMaker strives to bring low-code closer to modern development teams building serious applications. Keep watching this space, there is a lot more to come.