Platform Architecture

Vision

Our Platform bundles a set of development tools with a runtime environment for executing the business applications you create, but it was also designed to support a detailed vision of what an ideal development process should include.

Iterative development process The first aspect of this vision is the implementation of an iterative development methodology for creating business applications. The benefit of an incremental approach is a reduction in the time to market and the ability to react immediately to changing market and customer needs while sustaining a stable foundation. The continuous implementation of improvements in short increments is a key differentiator in today's ever-accelerating and shifting (digital) market climate, allowing increased predictability and minimizing development risks.

Cross-disciplinary, collaborative approach A second defining element of our vision is that a cross-disciplinary, collaborative approach to enterprise application development, which empowers stakeholders in various roles (such as business owners, UX designers, developers, and end users) to join forces, is key to producing successful business applications. Removing the role-based silos from the development process automatically translates into increased effectiveness and quality.

Seamless and consistent user experience (UX) The final key objective of our vision is to assist developers of enterprise applications to design a consistent and seamless look and feel, guaranteeing a positive user experience (UX). This focus results from the conviction that the UX of the engagement layer of applications is a central factor that determines their value and subsequent contribution to the overall customer experience (CX). The result is an application that supports users by automating and guiding them through regular tasks, allowing them to direct their attention to the really important issues.

Layered Approach

The Platform is the foundation layer, on top of which two additional layers are placed Business Model and Integration.

Diagram showing Appway's 3-layer architecture

Despite being fully integrated, each layer can be developed at a different velocity, enabling agility and incremental development adapted to constantly evolving business-driven requirements.

Platform

The Platform is the backbone of our product, running on a Java Application Server. The Business Model is decoupled from the platform layer in the sense that the model scales automatically according to the platform infrastructure – without requiring any modifications to the model itself.

Cluster = scalability & reliability The platform infrastructure is highly flexible as the Platform can run in a server cluster. The addition of server nodes is a straightforward and non-invasive way of scaling applications to support the required number of concurrent users and active Process Instances running in parallel. At the same time, a clustered environment secures the high availability of applications to ensure business-critical applications are available for global operations without interruptions.

Security Security is a topic inherent to the design of the Platform. Configuration of user authentication and authorization can be delegated to the application server level for maximum efficiency. LDAP and Single sign-on (SSO) support is integrated into the Platform, allowing easy implementation of enterprise security strategies. Furthermore, comprehensive user and access right management secures applications and data against unauthorized access.

By default, the Platform provides strong encryption of configuration parameters and process-related data. Inbound communication can be secured using the HTTPS protocol and SSL is supported for securing outbound communication.

Business Model

The Business Model layer comprises The Component Library contains pre-packaged components provided out-of-the box Models assembled by cross-functional development teams using a simple visual language and pre-packaged components Applications are executed in FNZ Studio based on the created models, serve as the interaction layer for end-users

Browser-based development The visual language allows less technical stakeholders and developers to contribute to the process of translating business logic into a technical model, which includes the user interface. Involving a broad scope of contributors enables dealing with the complexity of solutions from a holistic perspective, which leads to better initial results and reduces the need for costly rework. Our browser-based development environment makes collaboration easy, even for remote team members. The benefit of this team-oriented and model-based approach manifests itself in an accelerated time-to-value and higher quality applications.

SW assembly, not SW programming Developers assemble the model from pre-defined components available in the Component Library. The available components bundle business functionality as well as the underlying code and serve as the individual building blocks of business applications. This modularization approach facilitates component reuse. Utilizing the out-of-the-box functionality provided by such components empowers less experienced contributors by removing the necessity to constantly 'reinvent the wheel' in order to achieve the desired functionality. Furthermore, components can be customized to comply with specific business requirements as well as corporate design standards and can also be bundled in reusable Packages for easy sharing. These components can then be reused across applications to ensure a consistent user experience and accelerate development cycles. Using standardized components also ensures enhanced governance and control over applications because it is straightforward to monitor and track performance.

Model interpreter, not a code compiler The model functions as a 'single source of truth' when executing the application, bringing with it a maximum level of abstraction. Applications are executed in memory, which means they are interpreted in real-time without the need to be deployed, enabling rapid prototyping. This allows the model to be developed while applications are running — without disrupting operations while providing a seamless customer experience.

Testing & maintaining Rapid development cycles and frequent releases require a robust framework for testing and verifying the correctness of applications. The Platform supports the easy creation of test data, which can be utilized for consistent and repeated testing of each iteration of an application. This allows the implementation of a consistent testing process, which serves as a basis for securing the ongoing quality of enterprise applications.

Robust migration tools and strategies coupled with frequent releases make applications sustainable and future-ready. Applications can evolve at the same pace as the surrounding technology without the additional strain of having to invest time into refactoring solutions.

Integration

Seamless integration into existing enterprise system architectures is straightforward. Integration Links built on the Apache Camel enterprise application integration framework allow explicit integration at the model level. This includes elements such as LDAP authentication, SOAPREST web services, messaging or industry-standard databases (all supported out-of-the-box). This integration allows developers to utilize the Platform as the presentation and orchestration layer for third-party enterprise data and systems.

Customize for flexibility We are committed to an open-system architecture for maximum flexibility. This means that we not only provides a wide range of extended functionality in-house, but allows customizing components to further extend flexibility, functionality, and scope of use. Thanks to this openness, the product can be adapted according to the specific requirements of the given project as well as integrated with existing data, apps, and systems.

Technologies

The Platform is a JEE web application which utilizes a wide array of industry-standard libraries and frameworks to ensure full flexibility and seamless integration with existing environments. On the server side, our product is built on the Java Development Kit (JDK) and a Java Application Server or servlet engine. On the client side, only a web browser is required to access the Studio (development and administration interface) or the Workspace (end-user interface).

See System Installation Technical Requirements for details on hardware requirements as well as supported software environments and databases.