You are on page 1of 41
5102/2021, DocPlayer aS MENDIX APP PLATFORM WHITE PAPER (Eimendix | menoix app PLATFORM hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl wat 5102/2021, Introduction We are in the midst of a profound technological shift in which software is disrupting virtually every industry. Gartner refers to this shift as the “Nexus of Forces.” Technology innovations in social, mobile, cloud and information computing are converging into a mutually reinforcing and interdependent force, fueled by massive consumer adoption of innovative apps and services, ‘Asa consequence, organizations are fundamentally transforming how they operate, interact with customers and go to market. The challenge for enterprise IT teams is to keep ‘up with the accelerating pace of change to effectively support the business to deliver the ultimate customer experience and stay ahead of competition, In the digital enterprise era, “every company is becoming a software company." This requires a radically different approach to IT. A new style of applications that are focused on engaging customers, empowering employees and improving business operations is emerging. In contrast to large transactional backbones like ERP, software applications that power the digital enterprise are rapidly built, seamlessly deployed and easily changed in response to evolving needs. Close collaboration between business and IT t0 design apps that are actually ft for purpose is critical. DocPtayer Mendix is the leader in this emerging market for enterprise app Platform as a Service. This whitepaper provides an introduction to the Mendix App Platform architecture and explains how Mendix uniquely enables business and IT to collaborate in a single model-driven environment. This whitepaper is targeted at business analysts, solution architects and developers who wish to brain a thorough understanding of the Mendix platform. (Eimendix MENDIX APP PLATFORM 1 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 2101 2510212021 DocPlayer TABLE OF CONTENTS Introduction The App Delivery Challenge Think in Pace Layers Embrace Agile Involve the Business Addressing the Challenge Mendix Architecture Vision Business & IT Collaboration Model-Driven Development The App Delivery Cycle Cloud Openness The Mendix App Platform Launchpad Dev Center MxID Cloud Portal App Store Runtime Services - Model Execution Deployment Architecture The App Delivery Cycle Non-Functional Platform Charact Multi-tenancy Security Performance Scalability Disaster Recovery & Fallback Deployment Mendix Cloud Mendix On-Premise 88 BRREBK RY BERSB0o w@ ViOGH HT adEww Oo (Bimendix | menoix app piatrorm 2 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 3101 5102/2021, The App Delivery Challenge ‘While the world around them has changed dramatically, many enterprise IT teams remain stuckin the past, bogged down in a quagmire of legacy systems and one-size-fits-all development methods. To truly enable todays dynamic enterprise, IT teams must identify the obstacles holding them back, resulting in failed projects, growing backlogs and unhappy business sponsors. Think in Pace Layers A crucial first step towards breaking free from this mold is to think in pace layers. Gartner's “Pace-Layered Application Strategy” recognizes ‘that applications are fundamentally different based on how theyre used by the business, and distinguishes three "pace-layers.” Within these BOs ee ou} Figure 1. Pace-layered application strategy Oe ecu ee oe) DocPtayer layers, business applications are segmented by the problems they address, their rate of change and the distinctiveness of the business capabilities they facilitate. Specifically for systems of differentiation and innovation, it becomes clear that IT needs to focus on speed of development and their ability to adapt applications to new and ever- changing business requirements. Itis also critical to enable greater (and continuous) business involvement to ensure project success. and achieve the desired business outcomes. Implementing a Pace-Layered Application strategy can help IT teams better categorize and prioritize their application landscape. Additionally, it may prompt them to rethink their development operations, methodologies and tools in place to support those needs, as they may be quite different from how the organization is used to approaching development projects. ees New Ideas Better Ideas ‘Common Ideas ey Seg eed MENDIX APP PLATFORM 3 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl aan 5102/2021, Embrace Agile ‘As you move up the pace layers towards Systems of Innovation, agile development methodologies become increasingly crucial. With unclear or fluid requirements and tight timelines, these applications require rapid, iterative development cycles, with significant invalvement from key business users. Agile development methodologies like SCRUM address these needs by empowering teams to deliver software in frequent iterations, create shorter feedback cycles, and evolve and refine requirements. in other words, agile helps provide IT with the speed and flexibility needed to enable business agility in todays fast-paced world. Enabling rapid delivery of the initial release is just the first step; prompt and frequent updates to existing apps are also essential to accornmodate evolving business needs. While SCRUM itself doesn't necessarily force it, close collaboration between key stakeholders from the business and ITs essential i m > me, = = |__| ee ee ee Figure 2. SCRUM methodology Involve the Business History has shown that improving developer productivity alone has only marginal impact on the success of IT projects. To deliver better software faster—particularly those differentiating, and innovative apps dependent on knowledge DocPtayer residing in the business—organizations must finally make IT/business collaboration a reality Previously, the complexity of T meant that, only highly skilled specialists could work in complicated programming languages. But faced with the need for greater speed and simplicity, companies are now looking to domain experts to take a leadership role in building apps. Consequently, app platforms like Mendix leverage avisual development paradigm that provides a common language accessible to everyone. This way, domain experts are empowered to build apps themselves, as well as easily understand/ review functionality developed by others. Addressing the Challenge ‘The Mendix App Platform uniquely addresses these app delivery challenges. Leading organizations across the globe use the Mendix platform to bulld systems of differentiation and innovation to engage with customers, empower ‘employees and improve business operations. The benefits of Mendix are especially crucial when building innovative and differentiating applications for the fallowing reasons: Y) Collaboration between business and IT is critical to grasp the unique, innovative and differentiating processes and ways of working addressed by these apps. ‘Accelerating time-to-value through the use of a high productivity platform and agile approach is of the essence. In the next chapters, we will share the vision behind the Mendix App Platform and highlight the core capabilities and deployment scenarios, MENDIX APP PLATFORM 4 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl sat 5102/2021, Mendix Architecture Vision Mendix enables companies to build, integrate, deploy and maintain web and mobile applications faster and with better results, effectively reducing, time to value. The architecture of the Mendix App Platform is entirely focused on the vision to help our customers achieve that goal. Our view is that the next generation app platform should address the fundamental challenges of app delivery by focusing on the following key aspects: Business & IT Collaborat Too often IT projects are challenged in terms of cost override, scope creep, long timelines and ‘misaligned end user expectations. According to the Standish Group, this is the case for 94% of large IT projects. OF those that fail altogether, 71% do so because of poor requirements management. Our vision is to truly align business and IT and foster collaboration throughout the complete lifecycle of the application, from requirements gathering to development, to deployment and management of the apps. Collaboration also calls for a highly iterative approach and instant feedback mechanisms in every stage of the lifecycle. Last but not least, we believe that speed of development or better time to value is critical to meet business goals. DocPtayer This philosophy has driven fundamental choices in our platform architecture, when it comes to how apps are developed in Mendix and the extent to which the platform supports the full application lifecycle. Dea evr Tatars In order to involve business users in the design and development of applications to a level where they can actively participate, we have fully adopted a visual Model-Driven Development (MDD) approach. MDD provides an excellent communication mechanism to align business and IT stakeholders, thereby ensuring greater quality and more successful outcomes. Model-Driven Development has emerged as one of the leading approaches for enabling rapid, collaborative development. Because it uses visual models for defining application logic, process flows, user interfaces, etc., MDD empowers both developers and business users to rapidly build applications, without the need for labor-intensive, low-level coding. Consequently, its significantly faster than traditional programming languages like C# and Java. ‘The Mendix platform interprets the models in the runtime, which means that the model is actually the application. As opposed to approaches where a visually modeled design would actually generate code (eg, Java or .Net), our model interpretation approach has significant advantages: (Ei mendix MENDIX APP PLATFORM 5. hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ara 5102/2021, ‘© Application changes can be accommodated more easily. In addition, since the model is the application, Mendix safeguards ‘compatibility of the application and the model. ‘® Extending models with custom code is controlled more elegantly as the model is aware of the custom code, and includes iin consistency checks, in contrast to custom code insertion into generated code, ‘© Mendix’s model interpretation approach solves the fundamental round-trip problem of code generation, whereby changes in the model would conflict with custom code extensions, © Monitoring and analyzing application behavior in the runtime can be set up more ‘dynamically and flexibly versus defining monitor parameters beforehand. Considering that a significant portion of the Total Cost of Ownership (TCO) of applications actually comes after initial go-live, the Mendix approach to MDD and model interpretation translates to, substantial savings in cost of ownership. In the context of building systems of differentiation and innovation that require agility and flexibility for application changes, itis essential to be able to realize those benefits beyond the initial development phase. DocPtayer ©} The App Delivery Cycle Figure 3. The App Delivery Cycle While Model-Driven Development is a key architectural choice, the Mendix closed-loop approach to application delivery is equally important in aligning business and IT for fruitful collaboration. The complete app delivery cycle is natively supported in the Mendix platform: Design Mendix supports direct capture of requirements and allows teams to refine and prioritize user stories; estimate, plan and monitor SCRUM sprints; and manage releases. Build Applications are built through visual model-driven, development, which promotes communication, productivity, quality and short iterations. Deploy Mendis’s one-click deployment allows for seamless provisioning and management of apps in the cloud, including staging to test, acceptance and production environments. (Ei mendix MENDIX APP PLATFORM 6 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl mat 5102/2021, Manage ‘All applications can be managed from a single dashboard, ensuring availability, security, performance and scalability. Iterate Feedback can be given on design artifacts like Uts, including end user input on live applications, and bbe used in the next change cycle of design-build- deploy-manage. Collaborate The Mendix App Platform comes with a social collaboration environment and instant feedback mechanisms. Mendix Buzz enables all stakeholders to communicate and collaborate throughout the whole lifecycle of the project. Our focus on shortening time to value for app. delivery doesn't stop at the development stage. ‘The Mendix App Platform has a cloud-native architecture optimized for deployment on cloud infrastructure. As the cloud deployments are fully standardized and automated, we eliminate all of the traditional hassle of infrastructure and deployment management. Mendix provides easy self-service access for administrators to manage users, configurations, one-click app deployment. and monitoring dashboards. Customers benefit from our continuous innovation to optimize the Mendix App Platform for cloud deployment. Our relentless pursuit to optimize the standard configuration and ‘minimize the platform footprint translates to cost efficiencies that are passed on to our dlients. DocPtayer Furthermore, we take care of all non-functional aspects of apps regarding security, performance, scalability and auditability. This allows our customers to focus 100% on serving the needs of the business. A core design principle for the Mendix App Platform is to leverage open standards and to be open: Open Standards Mendix strongly adopts open standards to support seamless integration of the platform and applications built on the platform, and to support exchange of design artifacts, For example, the application domain model in Mendix is based on UML the process and application logic model is based on BPMN; and the Ul model leverages HTMLS and CSS3. On the platform level, a variety of standards like OpeniD for identity management, REST and SOAP for web service integration, SAMI for user authentication, etc. are adopted. APIs ‘Application-level APIs. Every application built using the Mendix platform has powerful API options and every element of the application model can be easily provided as part of the API through REST or SOAP services. Platform-level APIs. The core platform functionality is accessible through APIs, which allows developers to access and integrate Mendix with other tools and applications—for example, build and deploy APIs to support continuous integration. MENDIX APP PLATFORM 7 (Ei mendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl fat 5102/2021, The Mend App Platform ‘The Mendix App Platform is a completely integrated application Platform as a Service (aPaas) offering to design, build, deploy and manage enterprise apps. ‘The Mendix App Platform is offered as public cloud service through Mendix Cloud, but can be deployed as private cloud or on premise as well ‘The on-premise deployment scenario is described in the last chapter of this white paper. Apps Dee earn) a & 6 Publle Cloud Private Cloud On Premise: Figure 4. Mendix App Platform Deployment Options DocPayer The platform is accessible for end users, developers and administrators through the Launchpad, giving access to apps as well as the platform services for development, operations and administration of apps and app services. The platform comes with an App Store that features hundreds of publicly available building blocks to speed up app development. The App Store can be configured for private use as well so that apps and building blocks can be shared across the customer's organization. The platform features, online collaboration amongst users through Buzz, the social collaboration capabilities. The picture below gives an overview of the key modules and services in the Mendix App Platform. ‘Launchpad Figure 5. Mendix App Platform Overview MENDIX APP PLATFORM 8. (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl iat 2510212021 Launchpad The Launchpad is the central place for end users and developers to access Mendix apps. Through single sign on (SSO), you're automatically logged in to all the apps present on your Launchpad, Moreover, the Launchpad can be customized to your companys styling preference. By default, all users on the Mendix App Platform get access to three apps on their Launchpad © The “Getting Started" app, a self-service online training program that guides users through a complete, 18-hour curriculum. © The App Store, the marketplace for apps and application building blocks. © The “Dev Center” which gives the user access to the development environment of the Mendiix App Platform, Figure 6. Mendix Launchpad DocPtayer Dev Center Dev Center is a collaborative environment for design, development and deployment of apps. This web-based portal comes with online social collaboration features (Buzz), a notification service (Notifications) and a directory of active members in your company who could be invited for participation in app development projects as well as for social collaboration, Projects Mendix has adopted SCRUM as an agile development methodology and offers full support of managing app development projects with SCRUM tools supported by the platform. Defining a Project ‘An app development project in Mendix starts by defining a project in the platform, The project, owner can manage the setup of the project in terms of team members and their roles, as well as the security settings for the project. Social collaboration on a project level is supported through Buzz and Notificat Create User Stories Once the project has been created, the team members can start to define the requirements for ‘the app and write them down in the form of User Stories. User Stories break down the scope of the app into small, well-defined items, Each user story has its own conversation thread that is also published in Buzz as a project activity stream. MENDIX APP PLATFORM 9 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ovat 5102/2021, ‘The User Stories are tracked throughout the whole app delivery cycle. Once development starts, the business analysts and developers can report user stories to be in progress or completed. User Stories can be imported from, and exported to, Excel. Model-Driven Development The collection of User Stories forms the product backlog of the application. The product backlog is divided into one or more Sprints, representing a subset of the scope to be developed, tested and taken into production following an iterative cycle, Mendix helps to plan and manage Sprints, for example through a Burn-down chart that visualizes the progress of the completion of User Stories against the estimated timeline for ie il DocPtayer the Sprint. Sprints can be planned in advance to define the scope of a next release, by taking requirements from the backlog, User feedback can be given straight from the application User Interface, and can be added to the product, backlog for inclusion in a future sprint. Business Modeler Model-Driven Development ‘The Mendix Business Modeler is the multi-user modeling studio of the Mendix App Platform. The general purpose of the Mendix Business Modeler is to provide an integrated, unified modeling space, where business analysts and IT engineers can work closely together to model the various application elements. Figure 9. Mendix Business Modeler (Eimendix MENDIX APP PLATFORM 10 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl swat 2510212021 DocPlayer Figure 7. User Stories Figure 8. Sprint [mendix | Menon ape puatrorM 1 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl saat 5102/2021, DocPlayer ‘The Mendix Business Modeler contains various graphical editors, each designed with a specific Modeling objects atvibutes, Nalidations data model. The ‘model or domain specific language (DSL) in domain modeler isbased on Unfed Modeling Language mind. For example, the domain objects or data ee ree entities, the user interfaces and the application and process logic can be modeled in dedicated Eee é 1s, Mend r behavior Mendichas adopted graphical designers. Mendix adopts and adheres obi behavior. Mendx has adopt 10 relevant open indusity standards. Each of the oe Eleverapes pour open ‘models is based on an existing industry standard, Seueap it such exists. ules Defining business ules & system rules. The Mendix Business Modeler connects and Integrates the various designers so that design Modeling proces, business logic & calculations, Tha artifacts can be leveraged in the various models. ‘mirofions ae stored in the Business Process Modeling For example, simply dragging the abject mode! Notation (BoM) standard into the UI modeler can generate a fully functional Document Modeling POF & Word RTF Ulimedel Generator ecuments, Binding external web services to domain objects Modeling mappings between Mopping Mendis & external systems? in Mendix to establish integration takes place files. by using the mapping functionality to connect elements from the web service to the domain Web: Se rear Services Res based wob services object. By doing so, the relevant elements from the web service can be used in the application, in (ene microflows and on Uts. the app For more information fn security please consult security the “Security for Cloud On Premise Deployment” technical white paper. Internationalization of user eee Interface based on I18N zation standard, ‘The madels in Mend can be custom Java extended with ava &lavaScript actlons Code through standard platform APS Configuring database & Advanced SS set for development, Settings test, acceptance & production ‘vironments Figure 11. Data Mapping (Bimendix | menoix app pLatroRM 12 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 19044 5102/2021, Business-IT Collaboration ‘The Mendix Business Modeler supports collaboration between representatives from the business and developers. By using the right level of model abstraction, the models are fully comprehensible by non-technical participants, while at the same time developers have all the facilities for realizing the technical implementation. Intrinsic Quality & Consistency The Mendix Business Modeler ensures, the intrinsic quality and consistency of the applications built with the platform through the following approach and mechanisms: © Single Modeling Environment All models in Mendix are managed in a single environment. Mendix checks the completeness and consistency of the entire model. This way, Mendix guarantees that the model does not contain technical rt ceve to (eemee DocPtayer inconsistencies once deployed. in fact, the system will not allow deployment of the model until inconsistencies are resolved. Pattern Recognition Mendix performs analyses to detect patterns that may cause issues for applications running in production. For ‘example, incomplete decision trees or the Use of a variable in flow that is not used elsewhere are detected and warnings are given prior to publishing the model. Regression Analysis ‘The same mechanism is used to perform regression checks, making it easy to analyze the impact of changes on the model, such as “where used” analysis, highlighting where commits are performed on data objects and detection of queries that may compromise performance. Figure 12. Microflow with Business Logic Figure 13. Consistency Checks (Bhmendix | menoix app pLatroRM 13 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl saat 5102/2021, The intrin: quality and consistency checking ‘mechanisms in Mendix are key contributors to high-productivity development. Mendix typically performs 10 - 20 times more consistency checks than what compilers. check in traditional programming platforms. Asa result, testing is primarily needed on a functional level. The advantage is that through the extensive quality and consistency checking, non-technical domain experts can develop robust and sophisticated apps. At the same time, Mendix offers professional developers enough possibilities to make their own trade-off to deviate from the recommendations coming out of the checks, For example, a warning regarding performance of a certain query may be ignored as the developer has the context about the frequency of this query to be triggered. DocPtayer Extending the Model with Custom Code In essence, users are never limited by the reach of a specific DSL and can always resort to the use of custom Java functions. Custom Java functions can be called from within a model and its output can be directly used. The interface of each action (equals a Java function) is also defined within the model. The name, parameters and return values are all declared in the Mendix Business Modeler. ‘The modeler will generate templates for each action, ‘Whenever the interface changes, the template will automatically change without losing any of your custom code. Within this custom code, the programmer is able to use an extensive API for the core of the runtime engine. This is a low- level API enabling, among other things, reflective programming patterns. Figure 14, Eclipse Integration (Eimendix MENDIX APP PLATFORM 14 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 1541 5102/2021, Sandboxes For each application development project, Mendix provides a sandbox environment running in the cloud, You can choose to run the application in the sandbox with a single click from the Mendix Business Modeler. This allows you to explore ideas, rapidly develop prototypes and instantly test your application. You can invite other users to tty the app and give feedback. The sandbox goes, asleep after one hour of inactivity and resumes automatically when you start using the app again. ‘Once you've completed development, you can publish your app to a standard environment for acceptance testing, Internationalization Mendix provides out-of-the-box support for internationalization and translation of applications built in Mendix, based on the i18N standard, Mendix supports multibyte character sets and provides right-to-left (RTL) support. Different calendars can be used within applications, For translation, the Mendix Business Modeler provides the following tools: DocPtayer © Batch Replace - a facility to ensure consistency of labels in the default language within the application, © Batch Translate - a facility to translate all labels in the app from source language to destination language batchawise, after having translated the individual labels. © Language Operations - a facility to handle a set of labels in one quick operation e.g, copy all US English labels to UK English labels, where after individual labels can be adjusted. ‘The advantage of the model-driven development approach in Mendix is that all system- and application-level messages are automatically fernational rollout of applications, Mendix supports the use of included for translation. Foi multiple languages in parallel for the application running in production. By default, the app will be presented to the user in the language that is defined in the user profile, MENDIX APP PLATFORM 15 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 161 5102/2021, Team Server The Team Server is a central repository to manage and version application models. Team Server is written as an extension on top of Subversion (SVN), a widely adopted open source software configuration management system. Central Project Repository Team Server enables multi-user development of apps in the Mendix App Platform, Team Server is tightly integrated with both Projects and ‘the Business Modeler, which creates a unique environment for managing all relevant artifacts, in the app delivery cycle, from requirements, to application models and deployment packages. This works as follows: © When a new project is defined in Projects, a dedicated and versioned model repository is automatically created for the project in the Team Server. ‘@ View only or edit access rights to Team Server can be assigned to team members based on their role in the project. This is configured in the Project Dashboard. Team members with edit rights get a local copy of, the project model in the Business Modeler. They can work on the model and commit changes to the Team Server with a single click, which leads to a new revision of the model. Committed changes from other team members are synchronized with the local version of the repository. The integration of Team Server with both the Project Dashboard and Business Modeler has significant advantages: DocPtayer © It provides team members with a revolutionary way to track requirements throughout the whole development and delivery cycle. When you start working on your application, you just open the Mendix Business Modeler to see the user stories planned for the current sprint and start working on them. ‘@ When team members commit application ‘model changes to the Team Server from within the Business Modeler, they can select ‘the user stories they have been working on. The Team Server will automatically create links between these user stories and the model changes made, providing a way to navigate from commits to the associated requirements. © End users can provide feedback straight from the user interface of the app. This feedback can be transferred into a user story. As a developer, you can directly go to the form mentioned in the metadata of the feedback and start implementing the requested change. Development lines - Branch & Merge ‘A development project always starts with a single development line, the "Main line". This is the development line that will ead within the development process. ‘A deployment fram that line must contain all (released) functions of the application. Besides the Main line, a project can have multiple branch lines. Branches are made from a specific commit (revision) of one of the developers. Creating a (Eimendix MENDIX APP PLATFORM 16 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ara 5102/2021, branch means that a copy is made of the selected revision and this will be used as the starting, revision for the new development line. This allows the developer to change the model in an isolated line. in most cases, a branch line is used for solving issues in a released version of the application, while the ongoing development continues in the main line, This allows new development in the main line, without releasing not finalized / tested functionalities, After creating, a branch and solving the issue, or creating a new bigger feature, itis possible to merge these changes with the Main Line. Figure 15. Branching and Merging Team Server API The Team Server functionality is exposed through an APL so that it can be called by ather platform services or external applications. For example, a “get latest commit’ call to the Team Server API for an app project will return the latest revision of the artifacts for the project. Business Server The Build Server creates deployment packages from artifacts - such as models, style sheets, custom java classes, etc. - in the app project on the Team Server where all the application artifacts are versioned and stored in app project folders. DocPtayer Build Server API The Build Server functionality is exposed through an API so that it can be called by other platform services or 3rd party apps. For example, a “build deployment package” call for an app project revision will return a deployment package for the app. Deployment Packages Deployment Packages are versioned application packages that hold the collection of executable models that together define a Mendix app. A deployment package consists of: Models ‘Custom Java libraries (compiled) External Libraries CSS files Metadata ‘The Mendix App Platform version that the app should run on Input Parameters e.g. interval for scheduled events defined in the app models User Roles as defined in the app models Revision # (Eimendix MENDIX APP PLATFORM 17 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 6141 2510212021 MxiD Mendix offers MxID, a user management and provisioning service that applies the OpenID standard. t can be integrated with Active Directory and Single Sign On (SSO) protocols. MxID provides a login server for the Mendix Launchpad, the central access portal for Mendix apps. Furthermore, MxiD provides an administration portal for the management of ‘© Companies, that are tenants on the Mendix Cloud - Apart fram the company profile and settings, Mendix also supports the definition of Company Admins wha can assign permissions to other users following a delegated administration concept. So one or more administrators can be identified per tenant who, in turn, can perform certain administrative tasks in the tenant according to the permissions that were granted. ‘© App User Management - Based on policy rules, users are assigned a user role within an application. MxiD automatically reads the user roles from the application. et gine asmeoens DocPtayer Cloud Portal The Cloud Portal enables you to manage users and environments, deploy apps to the cloud with a single click and manage and monitor their performance, The Cloud Portal is the interface to the Deployment Services layer in the platform. User Management The Cloud Portal allows administrators to manage Users (defined in MxiD) and configure role-based access for users to environments to deploy and ‘manage apps. The Cloud Portal is integrated into the project dashboard, so you have a 360-degree view of all access rights for a specific person within the context of an app. Mendix enforces the segregation of duties between (at least) the developer and application administrator, whose roles are both safeguarded using personal accounts. Figure 16. Use ard MENDIX APP PLATFORM 18 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 91a 5102/2021, Configuration Management Administrators can configure the environments, assigned to them from the Cloud Portal. Mendix provides the full runtime environment, called App Environments, needed to run an app. Network access, hardware, operating system, database and all other necessary infrastructure components are automatically provisioned. Some examples of configurable services are: © Certificate-based authentication - This is a security feature whereby the customer or third party pravides certificates that are needed to access an external application not hosted in the Mendix Cloud. This certificate can be easily installed using the Cloud Portal. © Certificate-based authentication, Mendix side - This is a security feature whereby the customer ora third party provides a certificate that has to be used to access an application in the Mendix Cloud, C4. of Business Team Modeler Server Build Server Pacrages Figure 17. One-click Deployment Flow hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl vm Deployment DocPtayer © IP Filtering - A more traditional approach to secure online applications is the use of IP filtering. Mendix supports IP filtering per application to provide access to the application from trusted locations. This option is used predominantly for internally used applications. ‘© Custom URLs - Applications running in the Mendix Cloud are easily accessible by every device through URL's. Mendix supports all sorts of URL making it possible to use your own domain name.* Itis also possible to add multiple URL's to your application. Incoming connections can be checked using, client certificates. Custom domain names require SNI Other examples of platform configuration: log behavior, application- and environment specific parameters (defined in the model), etc. & Ape OD © ee ep Cloud Portal Mendix, Business ‘Server I = ‘App Environment Package Repository (Eimendix MENDIX APP PLATFORM 19 ovat 5102/2021, Deployment Management ‘One-click Deployment The one-click deployment concept in Mendix makes it easy to deploy apps from the Cloud Portal to one or multiple App Environments. From a deployment perspective, an app is defined as a versioned Deployment Package that contains all the artifacts needed to run the application. The flow starts at the Business Modeler where the app is developed and composed. All the artifacts are stored in the app project repository on the Team, Server. The Build Server creates the deployment packages from a revision of artifacts in the app project repository. The package is stored in the package repository. Ct. DocPtayer Through the Cloud Portal, the app is actually deployed in an App Environment. As all of the components have clearly defined APIs, they can be approached by ather platform components and external applications in a consistent manner. ‘Test Automation & Continuous Integration This approach allows for continuous integration and supports automated testing of builds. Mendix comes with a test framework for unit testing and automated UI testing based on Selenium, ‘The Cloud Portal returns a URL for each deployment package that can be used in the test suite, This framework is extensible with a full test suite management solution built in Mendiix offered by a Mendix partner. Business Modeler Projects Team Server Bulla server Be — 22 ap Cloud eo Sos Mend sau Busines a Repository Selenium ol Figure 18, Test Automation and Continuous integration Flow (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl server I ‘App Environment MENDIX APP PLATFORM 20 awa 2510212021 ‘Through the use of the platform APIs and specific scripts, the following flow for continuous integration is supported: © DTAP environments - Mendix supports a staging procedure for Development (on your local machine) - Acceptance = Production (DAP) environments, optionally extended with an additional Test environment to DTAP. Every step in the procedure is controlled by those who have been specifically authorized to Denlyment Package Repostory orc DocPtayer do so, Because each App Environment is fully identical to the others, there are ho additional risks with regards to the hon-synchronicity of test, acceptance and production environments. The chronology within your D(T)AP procedure, which includes not only the required chronology of activities but also the specific access roles for deployment, ensures that you will never encounter surprises once you releas an application version in your production environment. Figure 19. Deployment MENDIX APP PLATFORM 21 (i menaix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 2aiat 2510212021 Monitoring & Alerting Administrators have a comprehensive, real-time view of application performance metrics through a dashboard within the Mendix App Platform. This includes details on CPU and memory usage, app environment and database usage, database requests and user logins, as well as preconfigured alerts. The dashboards support multiple views ‘on the data eg. by day, week, month and year. Mendix delivers a set of best practice thresholds for which notifications will be triggered if exceeded. Figure 20, Mositoring Dashboard Auditability All relevant actions — both within your Mendix apps and on the platform level - are logged and these logs can be viewed and downloaded from the Cloud Portal © Platform-level - Actions regarding configuration, provisioning, deployment, start and stop of apps, back-up, etc. are logged with time stamp and user ID, © Application-level - Actions like login and logout and specifically defined actions in the application model, such as calls to external systems like SAP, can be logged and viewed from the Cloud Portal. DocPtayer Backup Every night, your data is automatically backed up. Both the acceptance and production environments are subject to these automatic backups. The backups are snapshots & contain your database, files & cloud configurations, Cloud configurations are used to automatically restore your backup on a different location (data center), Backups are stored up to one year as follows: © ‘Nightly Backups: 2 weeks ‘© Weekly Backups (every Sunday): 3 months ‘© Monthly Backups (1st Sunday of each month): 1 year You can download all backups through the Cloud Portal to easily access your data. Manual Create & Restore Backups Even though automatic daily backups are created, the Cloud Portal allows you to easily create a ‘manual backup. Just like nightly backups, manual backups are stored for two weeks and can easily be downloaded to retrieve all of your data from the cloud. Restoring a backup is just as simple: select or upload the backup and click on restore in the Cloud Portal. Of course, you will need the right permissions to create or restore backups in a specific environment. See role & environment based access for more details. Storage in Multiple Locations Backups are always stored in secure, ‘geographically dispersed locations within your region. Backup locations are in the same region (US, Europe, etc.) to comply with local regulations. In the rare event that a disaster strikes, your data is stil secure, Using the cloud configurations in. MENDIX APP PLATFORM 22 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ava 2510212021 the backups, your apps can be easily restared in another location should the need arise. App Store The Mendix App Store is a public marketplace for apps and application building blocks. This App Store can also be configured to serve as a private, enterprise App Store, so that end users and business managers can discover what apps are accessible to them within their organization, Apps Mendix and Mendix partners publish apps in the App Store, offering a variety of solutions for horizontal business needs like Human Resource Management as well as vertical specific applications. Examples include an IT service management solution, an HR suite, a retail promotion manager, a case management solution and a healthcare solution. ear Figure 21. The Mendix App Store Building Blocks For developers, the App Store offers a rich repository of re-usable building blocks that can significantly accelerate development productivity These building blocks are shared in the Mendix community as open source items or commercial products. The App Store can be accessed on the web at appstore.mendix.com, from the Launchpad or is directly accessible from the DocPtayer Mendix Business Modeler, and building blocks can be loaded into the project model with a single click, The building blocks are presented as add-ons in the App Store with the following sub categories: © Modules ~ A module is a selfcontained application building block that can be re-used in multiple applications. Modules ‘can be downloaded from the App Store into a project as a local copy. By doing so, the module becomes part of the project scope and will be maintained through its lifecycle as part of the application project. Itis possible to consume updates for modules from the App Store, but obviously those updates need to be validated against potential local changes of the module. Amodule typically consists of a domain model, Uls and Microfiows. Although technically identical, the following types of modules can be distinguished: Functional business modules (e. credit rating service) Integration modules (e.g. Excel Importer, SAP Connector) Technical module (e.g. audit logging) a ee Mn Medsier Server Modsier Project x ProjectY Figure 22. Exporting and Importing Modules (Bhmendix | menoix app pLatroRM 23 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl aia 5102/2021, DocPlayer ‘© App Services - App Services are published, ‘AMendix app can call another app through pre-defined app-to-app integrations for the App Service - a Remote Function Call independently deployed Mendix apps. App. (RFC) - without the need to define web Services serve the following objectives in services and to create XML and Schema Mendix application development context: Business Engineers (developers without a formal programming kom background) can consume and apply ri more technical application services as building blocks without the need to master the technicalities themselves. ‘An App Service can simply be applied as an activity type within a Microflow in the Mendix Business Modeler (e. Get Customer trom SAP), hiding the ring aang isos, technical complexity completely for = APP ‘App more functionally oriented developers. Functionality can be re-used time and again across multiple apps by making it a service with its own and independent lifecycle. App Services have a versioned mappings. in the example below, the Item API to achieve this. Master App is called by three different applications. As Mendix supports versioned App Services, multiple versions of the App. Service can be used simultaneously, which is useful to support more advanced lifecycle management and stepwise migration of the app service. Figure 24. Runtime Use of App Services ‘There are two types of App Services: Mendix Platform App Services - Mendix offers a set of App Services ut of the box, for example the AppCloudservices module. This module enables single sign on for all apps that Use this App Service by connecting these apps to a specific app in the Mendix platform that handles the $50 service. All of the Mendix App Platform APIs are available as App Services, so that they can be easily used when developing apps in Mendix. Figure 23. Using an App Service ino Microffow (Eomendix | MENDIX APP PLATFORM 24 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 2siat 5102/2021, en | Business Meet Toa Modeler server seme amet aez Build Server Ga Business Moder App Meri Business ‘Server I - So gs Se Lees Figure 25. Test Automation and Continuous Integration Flow Custom App Services - Customers can define App Services as well to connect custom-built applications to each other or integrate standard apps offered by partners with custom-built applications, For example, an app service could call a standard credit rating app offered in the App Store from a custom built app for order management. © Layouts - Layouts are used to structure the user interface, It allows you to define a default page structure, which can be re- used as a template for pages. Examples: Bootswatch,TaskManager Application Layouts are defined for cifferentypes of devices: \Wieb, Tablet and Mobile to optimize the UX ofan app depending on the device being used. Mendix serves the goa of enabling functionally oriented developers to build great and appealing mult-channel apps (Eimendix without the risk of geting stuckin device speatic UI adoptions through coding. © Themes - Themes are used to style applications. Theyre based on C553 and Mendix leverages Bootstrap. Examples: Bootstrap for Mendix, United Theme © Widgets - widgets are re-usable UI components that allow you to quickly compose pages in Mendix. Mendix comes with a set of standard widgets that are supplemented with custom widgets from the App Store. ‘Examples: Calendar Widget, Carousel Ust MENDIX APP PLATFORM 25 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 26a 5102/2021, Component-based Development ‘Applications in Mendix consist of one or more ‘modules. A module typically has a functional scope (e.g. business partners, orders, connectors, etc.) and is self-contained so that modules can be re-used in other applications, This approach to app development has significant advantages: © Increased productivity @ Re-use of assets on multiple levels of granularity: Application modules can be published to the public and / or private App Store and be consumed in other app development projects as functional modules, technical (integration) modules or Ul widgets. Applications that have been deployed already on Mendix can be integrated with each other as well through App Services. ‘© Less technical domain experts involved in app development can consume more technical building blocks (e.g. integrations) very easily. © Independent release cycles for apps integrated through App Services ‘© Improved transparency and control over apps and application building blocks Figure 26. Component-based Development DocPtayer Runtime Services - Model Execution ‘The Mendix App Platform runs applications that are developed in the Dev Center and deployed via the Cloud Portal in a runtime environment, whereby the application models are executed as services ina runtime engine. ‘The runtime services in the Mendix App Platform are handled by the Mendix Client and the Mendix Business Server. The Ul layer is implemented in the Mendix Client as JavaScript libraries running, in the browser. The Logic and Data layers are implemented in the Mendix Business Server. The Mendix Business Server itsetf is built in Java and Scala. Mend client ug EBs Mendix Business Server oat Layer Data Layer ! ! 1 s Ss Ss Databaee Wereertce ro Figure 27. Component-based Development (Eimendix MENDIX APP PLATFORM 26 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl erat 5102/2021, The Mendix Client The Mendix Client provides a high-performance, rich Internet application web interface (using Ajax technology) supporting all major browsers (IE, Chrome, Safari and Firefox). Web and Mobile Forms The client provides both web-forms and responsive mobile forms depending on the device using it. Mobile forms are optimized for the screen size of the respective device (smartphone or tablet) to provide the mobile app experience to which people are accustomed. Web forms leverage the strength of web browsers to provide a rich user interface. The Mendix client is optimized only to load relevant components to minimize network, CPU and memory usage. Figure 28. Mendix HTML UI The Mendix App Platform enables you to extend your existing business processes to mobile devices. Mendix supports web and hybrid (Cordova) mobile forms and is fully HTMLS and C583 compliant which makes it platform independent, The Mendix Client has a core layer for session management, caching, an event subscribe DocPtayer interface to widgets and for keeping the history. ‘The standard and custom widgets built in Mendix communicate with the core layer through an APL ‘The Communication Layer handles the communication with the Mendix Business Server, Mend Client Widgets core ‘Communieation Layer t Mondix Business Server Figure 29. Mendix Client Architecture Customizable Look & Fee! ‘The styling of applications is based on Cascading, Style Sheets (CSS). This provides the option to apply any corporate branding to an application very quickly. Custom Widgets For developers, the Mendix Client offers an extensive and well-documented API, so custom widgets can be added to the experience. These widgets can be configured within the Menciix Business Modeler. Mendix Business Server In essence, the Mendix Business Server contains an integrated set of run-time engines responsible for the interpretation and execution of the models in run-time. The Business Server itself has a modular structure with a core service interface that connects all modules. Each module provides services to implement a DSL, (Eimendix MENDIX APP PLATFORM 27 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ovat 5102/2021, Objects & Actions ‘The Mendix Business Server is based on two important concepts: Mendix objects and actions. ‘AMendix object is an object with multiple representations such as a XML document, Java object or JSON object. Each client can ask the Business Server for objects in its preferred representation. An Ajax application, for example, prefers objects directly in a JSON format, while an Enterprise Service Bus (ESB) can prefer an XML document. Regardless of the representation form, the logic applied to these objects remains the same. To apply system or process logic, operations need ‘to be executed, Fach operation within the Mendix Business Server is called an action. The Business Server provides many predefined actions, such as ‘Apps WED a cla _ ‘Any Database & & Any service AnyRpp Any Fle — Menai ltt etegite, utc an ete extng atoms — oracte BEY BMD wpsharcroint Figure 30. Mende Platform Integration Capabilities Create-Read-Update-Delete (CRUD) operations on Mendix objects, triggering and executing flows, evaluating business rules or executing custom Java code. Each action can execute other actions, resulting in a tree structure in which transactions DocPtayer can be defined. Also, each action can be invoked by different interfaces such as HTTP, Web services or the Java API. The combination of supporting, multiple representations of Mendix objects, and the execution of actions through different interfaces, provides the basis for the integration of the Business Server in other systems. Integration ‘Akey component of the Mendix platform is integration. Therefore, the Mendix Business Server is designed to map data from external systems to Mendix object definitions. The primary task of the data layer is providing the logic layer, with Mendix objects, The data for these objects can be retrieved from different data stores, each with its own specific interface. For example, data can be retrieved from a relational database via JDBC, from external systems via remote function calls (RFC), or from an Enterprise Service Bus (ESB) via Web Services (SOAP and Rest). The Mendix object definitions are abstracted from a specific technology implementation and can be represented as XML, JSON or Java objects. ‘Application functionality built in Mendix can be exposed and consumed as services through Microflows. Microflows can be called via multiple protocols such as SOAP, REST and JMS. ‘The decoupling of Mendix objects and Microflow definitions from its technical implementation are making them future proof for adoption of new technology developments. Mendix and Mendix partners provide numerous out-of the-box integrations to applications like SAP, business services like postal code look-up service and file storage / office collaboration (Eimendix MENDIX APP PLATFORM 28. hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ovat 5102/2021, environments, such as MS SharePoint and Google ‘Apps. These integrations are all published in the Mendix App Store and can be used in the form of App Services or downloadable Modules. To provide a single interface on different relational databases, the Business Server translates XPath (hierarchical) and OQL (relational) queries as universal languages to specific SQL queries, The Mendix Business Server supports major database management systems including Oracle, PostgreSQL and Microsoft SQL Server. aa Infrastructure as a Service - chou portat ‘Access & Security Services I [= a, ee DocPtayer Deployment Architecture Deploying your application in the cloud takes place on a Mendix Cloud Node that Mendix provisions for your company in a cloud datacenter from one of the Infrastructure-as-a-Service (laa5) providers used by Mendix, Mendix Cloud is fully standardized on the following stack: Nginx as web server, Debian Linux as operating system and PosigresQL as database, 808 som: B-H-f conener | Rewta bnyer Poea~N vet) ete | tn ! ! 1 a s a ea] Test eptance Production Mende Menaix Menaix dusiness dusinese dusinese ‘Server ‘Server ‘Server 1 1 t & & a ‘Service Broker Infrastructure as 9 Service - Networking, Compute, Storage Figure 30, Mendix cloud Deployment Architecture (Bomendix | MENDIx APP PLATFORM 29 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl Bova 5102/2021, Containment ‘A Cloud Node is 2 grouping of virtual and autonomous instances of the Mendix runtime, dedicated to your company that includes an (optional) Test, Acceptance and Production environment, each running in their own App Environment. This App Environment also includes firewall, web server and database services, Mendix Cloud Nodes run on dedicated virtual Machines (VMs) at the laaS provider or can run on Cloud Foundry containers. The purpose of an App Environment is to contain the behavior and consumption of an environment, shielding other environments (and apps) from each other. ‘As each App Environment has its own dedicated ‘web server and firewall services, Mendix supports customization at the App Environment level through the Cloud Portal without affecting other App Environments. For example, the customization of request handlers for a specific App Environment is not compromised by demands and desires of other Mendix customers. The Mendix Business Server is connected to a dedicated database for the App Environment. The database is only accessible by this specific Mendix Business Server instance. The App Environment setup allows test, acceptance and production Instances of the same application to operate identically but independently. Because the App Environments are fully standardized, Mendix has been able to optimize the combination of OS, integration software, virtualization software, etc. and to implement the highest possible degree of security and performance. DocPtayer Routing and Network Encryption (SSL) The runtime engine, the Mendix Business Server (MBS), running in a container is accessed via a load-balanced routing layer of clustered Nginx web servers that routes the trafic to the relevant ‘App Environment whereby the web server is responsible for the SSL connections. Additionally, all common access and security services from the laaS provider are used for the traffic that goes to their infrastructure. The SSL. connection starting from the browser terminates at the web server service on the target App Environment. This ensures that data is encrypted end to end so that ather App Environments. cannot intercept any data from the target App Environment. Controller The controller is triggered by the Cloud Portal and handles the configuration of the infrastructure services to deploy applications. Service Broker ‘Apps can publish and consume App Services. ‘These App Services can be connected using the deployment interface in the Cloud Portal. The Service Broker is responsible for providing the service instance. (Eimendix MENDIX APP PLATFORM 30 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ava 5102/2021, The App Delivery Cycle Weve now discussed the various platform modules and services. The picture below gives an impression of how the platform supports the full app delivery cycle. Figure 31. Mendix App Delivery Cycle Design - An app development project starts by launching the Developer Portal from the Launchpad. This gives access to the Dev Center, where you can define your app development project in the Projects module, You'll assemble the team by identifying users and inviting them to participate in the project. You can now start defining the requirements for your app in the form of user stories. Once the scope of the app has been defined and broken down into one or more sprints, the actual development of the app can start using the DocPtayer Business Modeler. The user stories are visible to the developers and they can update the status of the user stories. You can monitor the progress of the project by means of a burn down chart in the Projects module. Bulld - Rather than building the whole app from scratch, you can first check whether the App Store offers any re-usable building blocks to speed up development. The standard App Services from the platform are handy to consume as well. ‘The result of the development activities is an app that contains a domain model, user interfaces and process and application logic defined as microflows. The models are all stored under the project 1D in the Team Server. From the Team Server, the deployment packages to run the app are created. It's possible to do this directly trom the Business Madeler as well, which triggers the same functionality in the Team Server. Apps and building blocks like modules or widgets can be Published to the (enterprise) App Store for re-use. Deploy - The administrator can select the deployment package in the Cloud Portal and deploy your app on an App Environment and provision the users for the app. Manage - The administrator monitors the performance of your app and manages the resources, for example to ensure that you get the right level of performance. Iterate - End users will launch the app on their Launchpad. They can give direct feedback from the user interface, which will then appear in the Projects module. Feedback can be addressed immediately or transferred into a new user story to be included in a next release, MENDIX APP PLATFORM 31 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl ara 5102/2021, DocPlayer Non-Functional Mendix is a platform as a service offering to Platform Characteristics rapidly develop custom apps. The Mendix App Platform has a cloud native Multi-Tenant Apps - These apps share the architecture that supports flexible configuration same database, application logic and user of multi-tenancy. The default configuration of interface across clients. Multi-tenant apps Mendix Cloud is to share infrastructure amongst ‘can be offered by ISVs and solution partners tenants and provide isolated App Environments, of Mendix, but are also built frequently by enterprises to offer supplier, customer and ‘Apps deployed into App Environments can be partner portals with complete segregation single-tenant or multi-tenant of data, while offering customization of logic and style sheets. Tenants are defined by © Single-Tenant Apps - These apps are identifying companies in the Mendix Identity dedicated for use at one specific client. This Management module, MxiD. The company / is a very common use case considering that tenant ID is used to we —__*e aes Infrastructure as a Service - ‘Access & Security Services cious ona eS Londsannced SE ., HE, recaasne! Tet Aseptnce | —Praduton Test Aesepancs—_rodeton ena Mena Mena Mena Merce Mea does, |||| dares |]|| seo aoe, |||] amis ||) ake sane = nee soe sane ace 1 1 1 1 1 1 S s s a a 8 ‘tous Node Cloud Node 2 Infrastructure as a Service - Networking, Compute, Storage Figure 32. Mendlx App Delivery Cycle (Eomendix | MENoIx APP PLATFORM 32 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl aia 5102/2021, Define a tenant-aware object model for the application, Tenant-level access to domain objects is configured using XPath definitions. This restricts access to those application object instances for the user's company. Define tenant-specific Microflows and configure access rights to implement tenant-level application and process logic. Apply tenant-specific styling of the user interface by making the cascading style sheets (CSS) dependent on companies defined in MxID. Tenants can be custom defined in the application as well by using identifiers like division, country, site, channel, etc. instead of “company”. Security Mendix applications have been deployed by hundreds of companies to support numerous and varied business processes. All these different Mendix users share the critical need for their applications to be secure and accessible, Security at a High Level The Mendix App Platform meets enterprise-level requirements for security and addresses security measures on multiple levels of granularity, including mutti-tenancy aspects: ‘© The Mendix Business Server handles known security threats in the runtime. © The Mendix Business Modeler supports application security settings to define roles and authorizations. DocPtayer ‘© MxiD supports identity and access management. In addition, Mendix integrates with 3rd party identity management solutions. ‘© The Mendix Cloud Portal supports app management, deployment and monitoring, Application Lifecycle Logging ‘The Mendix App Platform logs relevant activities throughout the entire app delivery cycle to ensure compliance with customers’ requirements for auditabilty Mendix Cloud Deployment and Containment of Environments The Mendix App Platform is deployed on a Mendix Cloud Node, a grouping of virtual and autonomous instances of the Mendix runtime, dedicated to a customer, that includes an (optional) Test, Acceptance and Production environment, each running in their own app environment. ‘This App Environment also includes firewall, web server and database services. The purpose of an ‘App Environment is to contain the behavior and consumption of an environment, shielding other environments (and apps) from each other. Backup and Disaster Recovery All data (model, database and file storage) is automatically backed up daily. Backups are stored in secured, geographically dispersed locations. Mendix offers disaster recovery services: as an additional option, a standby environment at 2 secondary hosting location can be configured, allowing companies to resume operations from a different physical location. (Eimendix MENDIX APP PLATFORM 33 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl aia 5102/2021, Organization Level Security Measures Mendix, as an organization, embeds security in company processes and standard operating procedures by adopting a representative subset of the ISO 27001 / 27002 Information Security Framework, Mendix achieved ISAE 3402 assertion. ‘An independent auditing firm periodically performs security audits, Furthermore, a leading IT security firm performs regular penetration tests ‘on the Mendix App Platform, For mare information on security, please consult the “Security for Cloud - and On Premise Deployment” technical white paper, which is available through your local account manager. Performance ‘The Mendix App Platform is used to build large- scale and mission-critical applications. The architecture is therefore optimized to deliver high- performance applications. In this context, three aspects are critical: what standard mechanisms are available in the platform to ensure optimal performance, what tools are offered to monitor performance and what tools are available to optimize performance, Standard platform performance mechanisms The Mendix App Platform specifically optimizes performance via the following mechanisms: 1 Default muiti-threading for Microflows The processing of Microflows is designed for mult-threading by default, whereby each invoke of a Microflow is executed in its own thread with its own memory scope. 2 Optimized client - server communication through: DocPtayer a Communication of net changes only, to minimize bandwidth usage b Retrieval schemes that allow for selecting relevant object attributes vs, the entire object and complete object trees to minimize bandwidth usage and client side CPU consumption, 3 XPath to SQL optimization - Queries are ‘optimized for execution in the target database to minimize database CPU consumption, 4 Outof the-box connection pooling to minimize communication overhead between MBS and the database. '5 Automatic and configurable indexing to minimize CPU usage and memory consumption in database. ‘Abusiness engineer developing an app in Mendix, does not need to consider these performance aspects as the Mendix platform handles this automatically. The Static Model Analyzer in the Mendix Business Modeler detects potentially slow or “expensive” flows and queries and flags them. Performance Analysis Practice shows that in general, in case performance issues arise, the majority of time is spent on analyzing and finding the root cause vs. actually fixing the issue. Hence, itis critical to provide the right tools for efficient and effective analysis. MENDIX APP PLATFORM 34 (Eimendix hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl asia 5102/2021, ‘The Mendix App Platform offers out-of-the box tools for performance analysis: 1 Performance monitoring tool in the Cloud Portal that is integrated with the Mendix Business Server to analyze the performance on the level of individual Microflows and activities within a Microfiow (incl. queries). I's possible to define thresholds for Microflow performance so that alerts can be triggered when a threshold is reached. Mendix tracks a series of metrics with default thresholds in the following categories: Hardware & Network Web server Databases Application 2 The Live Debugger in the platform allows developers to step through a Microflow and all its activities and actions live in the runtime and shows performance statistics amongst other information, 3 A query analysis tool to detect how queries are actually executed. The fact that the Mendix Business Server applies ‘model interpretation offers a significant and unique advantage over traditional approaches like code generation as it real-time and highly targeted analysis. For example, the Live Debugger allows a developer or performance engineer to ‘monitor one specific user session remotely and zoom into all relevant performance parameters, for that specific session. DocPtayer Performance Optimization Should an app face performance challenges, despite measures in the platform, Mendix offers the following possibilities to optimize performance: 1 Run the relevant Microflows in batch-mode. ‘The communication with the database for CRUD actions is handled in batches. The batch size is custom definable. 2 Handle Microflows asynchronously. This is implemented in Eclipse via the Java API. 3 Override the actions in the Mendix Business Server with a custom optimized implementation of that action, e.g, call a stored procedure in the database for ‘example to execute a hierarchical query. Although the last two options are seldom used in practice, itis always possible to fall back on proven and traditional techniques to guarantee performance Customer Example Mendix canducted a load and performance test for a large Member Management System with 10,000 concurrent users. The results were that: cf equests by load generators 91% offered to the server were handled within 10ms, & 99% below 100ms 1 Ox working in the application wil not users "tCeany dedine in performance (Bomendix | MENDIx APP PLATFORM 35 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 36044 5102/2021, Scalability The Mendix App Platform has a scalable architecture that can be configured according to the customer's needs, Mendix offers vertical and horizontal scaling options: © Vertical scaling - The default mul threading of Microflows as described in the previous paragraph, whereby each invoked instance of a Microflow runs in its own dedicated thread, is the starting point for flexible vertical scaling. Through the Cloud Portal, additional resources can be added to the App Environment in which the application is running to support higher load and volume by adding more computing power. The additional capacity can be easily (re-jallocated across various App Environments. © Horizontal Scaling - For mission-critical applications, customers may require a high-avaitability environment to run the app. This can be configured by defining a luster of App Environments either sharing a single database or based on database replication. Mendix offers horizontal scaling, as an additional service, There are two performance use cases that would typically trigger the need for horizontal scaling: Heavy Batch Processing - Mendix supports flexible allocation of Microflow execution to dedicated App Environments e.g, to protect traffic regular users from heavy batch processing. For read actions, this would optimize memory consumption and for write actions, this minimizes the overhead to the database. DocPtayer High-Volume Transaction Processing - Mendix also offers the tools to support high-volume transaction processing of small transactions (e.g. cash withdrawals / payments) such as transient objects and asynchronous database communication, Through this approach, near-linear scalability of apps can be achieved. Disaster Recovery & Fallback Mendix offers disaster recovery services. Depending on the nature of the disaster and the ability fo resume operations at the disaster location, various scenarios apply A full disaster recovery scenario, whereby the operations will be resumed from a different physical location, can be configured by implementing a standby environment at a secondary hosting location. Replication of application files and data is then required to obtain the desired Recovery Point Objective and Recovery Time Objective beyond what Mendix offers in the standard Service Level Agreement. (Bimendix | menoix app pLatroRM 36 hitps:/Rechnadocbox.com/Javascr'pi67303142-The-mendix-app-platformhite-paper-mencix-app- platform himl 37st

You might also like