You are on page 1of 41

THE

MENDIX APP PLATFORM


W H I T E PA P E R

MENDIX APP PLATFORM


Introduction Mendix is the leader in this emerging market for
enterprise app Platform as a Service.
We are in the midst of a profound technological This whitepaper provides an introduction to the
shift in which software is disrupting virtually Mendix App Platform architecture and explains
every industry. Gartner refers to this shift as the how Mendix uniquely enables business and IT to
Nexus of Forces. Technology innovations in collaborate in a single model-driven environment.
social, mobile, cloud and information computing This whitepaper is targeted at business analysts,
are converging into a mutually reinforcing solution architects and developers who wish to
and interdependent force, fueled by massive obtain a thorough understanding of the Mendix
consumer adoption of innovative apps and platform.
services.

As a 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 to
design apps that are actually fit for purpose is
critical.

MENDIX APP PLATFORM 1


TABLE OF CONTENTS
Introduction 1
The App Delivery Challenge 3
Think in Pace Layers 3
Embrace Agile 4
Involve the Business 4
Addressing the Challenge 4
Mendix Architecture Vision 5
Business & IT Collaboration 5
Model-Driven Development 5
The App Delivery Cycle 6
Cloud 7
Openness 7
The Mendix App Platform 8
Launchpad 9
Dev Center 9
MxID 18
Cloud Portal 18
App Store 23
Runtime Services - Model Execution 26
Deployment Architecture 29
The App Delivery Cycle 31
Non-Functional Platform Characteristics 32
Multi-tenancy 32
Security 33
Performance 34
Scalability 36
Disaster Recovery & Fallback 36
Deployment 38
Mendix Cloud 38
Mendix On-Premise 38

MENDIX APP PLATFORM 2


The App Delivery layers, business applications are segmented
by the problems they address, their rate of
Challenge change and the distinctiveness of the business
While the world around them has changed capabilities they facilitate. Specifically for systems
dramatically, many enterprise IT teams remain of differentiation and innovation, it becomes clear
stuck in the past, bogged down in a quagmire of that IT needs to focus on speed of development
legacy systems and one-size-fits-all development and their ability to adapt applications to new
methods. To truly enable todays dynamic and ever- changing business requirements. It is
enterprise, IT teams must identify the obstacles also critical to enable greater (and continuous)
holding them back, resulting in failed projects, business involvement to ensure project success
growing backlogs and unhappy business and achieve the desired business outcomes.
sponsors.
Implementing a Pace-Layered Application Strategy
Think in Pace Layers can help IT teams better categorize and prioritize
A crucial first step towards breaking free from their application landscape. Additionally, it may
this mold is to think in pace layers. Gartners prompt them to rethink their development
Pace-Layered Application Strategy recognizes operations, methodologies and tools in place
that applications are fundamentally different to support those needs, as they may be quite
based on how theyre used by the business, and different from how the organization is used to
distinguishes three pace-layers. Within these approaching development projects.

Next Competitive Advantage

Systems of Innovation New Ideas

Better Ideas

Systems of Record Common Ideas

Unique Processes
Current Competitive Advantage

Figure 1. Pace-layered application strategy

MENDIX APP PLATFORM 3


Embrace Agile residing in the businessorganizations must
As you move up the pace layers towards Systems finally make IT/business collaboration a reality.
of Innovation, agile development methodologies
become increasingly crucial. With unclear or Previously, the complexity of IT meant that
fluid requirements and tight timelines, these only highly skilled specialists could work in
applications require rapid, iterative development complicated programming languages. But faced
cycles, with significant involvement from key with the need for greater speed and simplicity,
business users. companies are now looking to domain experts
to take a leadership role in building apps.
Agile development methodologies like SCRUM Consequently, app platforms like Mendix leverage
address these needs by empowering teams to a visual development paradigm that provides a
deliver software in frequent iterations, create common language accessible to everyone. This
shorter feedback cycles, and evolve and refine way, domain experts are empowered to build
requirements. In other words, agile helps provide apps themselves, as well as easily understand/
IT with the speed and flexibility needed to enable review functionality developed by others.
business agility in todays fast-paced world.
Enabling rapid delivery of the initial release is just Addressing the Challenge
the first step; prompt and frequent updates to The Mendix App Platform uniquely addresses
existing apps are also essential to accommodate these app delivery challenges. Leading
evolving business needs. While SCRUM itself organizations across the globe use the Mendix
doesnt necessarily force it, close collaboration platform to build systems of differentiation and
between key stakeholders from the business and innovation to engage with customers, empower
IT is essential. employees and improve business operations.

The benefits of Mendix are especially crucial


when building innovative and differentiating
applications for the following reasons:

Collaboration between business and IT is critical


to grasp the unique, innovative and differentiating
processes and ways of working addressed by
these apps.

Figure 2. SCRUM methodology Accelerating time-to-value through the use of a


high productivity platform and agile approach is
of the essence.
Involve the Business
History has shown that improving developer In the next chapters, we will share the vision
productivity alone has only marginal impact behind the Mendix App Platform and highlight
on the success of IT projects. To deliver better the core capabilities and deployment scenarios.
software fasterparticularly those differentiating
and innovative apps dependent on knowledge

MENDIX APP PLATFORM 4


Mendix This philosophy has driven fundamental choices
in our platform architecture, when it comes
Architecture Vision to how apps are developed in Mendix and the
Mendix enables companies to build, integrate, extent to which the platform supports the full
deploy and maintain web and mobile applications application lifecycle.
faster and with better results, effectively reducing
time to value.

The architecture of the Mendix App Platform Model-Driven Development


is entirely focused on the vision to help our
customers achieve that goal. Our view is that the In order to involve business users in the design
next generation app platform should address and development of applications to a level
the fundamental challenges of app delivery by where they can actively participate, we have fully
focusing on the following key aspects: adopted a visual Model-Driven Development
(MDD) approach. MDD provides an excellent
communication mechanism to align business and
IT stakeholders, thereby ensuring greater quality
Business & IT Collaboration and more successful outcomes.

Too often IT projects are challenged in terms of Model-Driven Development has emerged as one
cost override, scope creep, long timelines and of the leading approaches for enabling rapid,
misaligned end user expectations. According to collaborative development. Because it uses visual
the Standish Group, this is the case for 94% of models for defining application logic, process
large IT projects. Of those that fail altogether, flows, user interfaces, etc., MDD empowers both
71% do so because of poor requirements developers and business users to rapidly build
management. applications, without the need for labor-intensive,
low-level coding. Consequently, its significantly
Our vision is to truly align business and IT and faster than traditional programming languages
foster collaboration throughout the complete like C# and Java.
lifecycle of the application, from requirements
gathering to development, to deployment and The Mendix platform interprets the models in the
management of the apps. Collaboration also runtime, which means that the model is actually
calls for a highly iterative approach and instant the application. As opposed to approaches where
feedback mechanisms in every stage of the a visually modeled design would actually generate
lifecycle. Last but not least, we believe that speed code (e.g. Java or .Net), our model interpretation
of development or better time to value is critical approach has significant advantages:
to meet business goals.

MENDIX APP PLATFORM 5


Application changes can be accommodated
more easily. In addition, since the model The App Delivery Cycle
is the application, Mendix safeguards
compatibility of the application and the
E
AT
model. I

R
N BU

TE
IG

BO

RA
S

IL
CO L L A

DE
Figure 3.

TE
Extending models with custom code is The App Delivery Cycle

DE
AG
controlled more elegantly as the model is

P
N LO
MA Y

FEE
D B AC K
aware of the custom code, and includes
it in consistency checks, in contrast to
custom code insertion into generated code. While Model-Driven Development is a key
architectural choice, the Mendix closed-loop
Mendixs model interpretation approach approach to application delivery is equally
solves the fundamental round-trip problem important in aligning business and IT for fruitful
of code generation, whereby changes in collaboration. The complete app delivery cycle is
the model would conflict with custom code natively supported in the Mendix platform:
extensions.
Design
Monitoring and analyzing application Mendix supports direct capture of requirements
behavior in the runtime can be set up more and allows teams to refine and prioritize user
dynamically and flexibly versus defining stories; estimate, plan and monitor SCRUM
monitor parameters beforehand. sprints; and manage releases.

Considering that a significant portion of the Total Build


Cost of Ownership (TCO) of applications actually Applications are built through visual model-driven
comes after initial go-live, the Mendix approach development, which promotes communication,
to MDD and model interpretation translates to productivity, quality and short iterations.
substantial savings in cost of ownership. In the
context of building systems of differentiation Deploy
and innovation that require agility and flexibility Mendixs one-click deployment allows for
for application changes, it is essential to be seamless provisioning and management of apps
able to realize those benefits beyond the initial in the cloud, including staging to test, acceptance
development phase. and production environments.

MENDIX APP PLATFORM 6


Manage Furthermore, we take care of all non-functional
All applications can be managed from a single aspects of apps regarding security, performance,
dashboard, ensuring availability, security, scalability and auditability. This allows our
performance and scalability. customers to focus 100% on serving the needs of
the business.
Iterate
Feedback can be given on design artifacts like UIs,
including end user input on live applications, and
be used in the next change cycle of design-build- Openness
deploy-manage.
A core design principle for the Mendix App
Collaborate Platform is to leverage open standards and to be
The Mendix App Platform comes with a open:
social collaboration environment and instant
feedback mechanisms. Mendix Buzz enables all Open Standards
stakeholders to communicate and collaborate Mendix strongly adopts open standards to
throughout the whole lifecycle of the project. 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
Cloud UML; the process and application logic model
is based on BPMN; and the UI model leverages
Our focus on shortening time to value for app HTML5 and CSS3. On the platform level, a
delivery doesnt stop at the development stage. variety of standards like OpenID for identity
The Mendix App Platform has a cloud-native management, REST and SOAP for web service
architecture optimized for deployment on cloud integration, SAML for user authentication, etc. are
infrastructure. As the cloud deployments are adopted.
fully standardized and automated, we eliminate
all of the traditional hassle of infrastructure and APIs
deployment management. Mendix provides easy Application-level APIs. Every application built
self-service access for administrators to manage using the Mendix platform has powerful API
users, configurations, one-click app deployment options and every element of the application
and monitoring dashboards. model can be easily provided as part of the API
through REST or SOAP services.
Customers benefit from our continuous Platform-level APIs. The core platform
innovation to optimize the Mendix App Platform functionality is accessible through APIs, which
for cloud deployment. Our relentless pursuit allows developers to access and integrate Mendix
to optimize the standard configuration and with other tools and applicationsfor example,
minimize the platform footprint translates to cost build and deploy APIs to support continuous
efficiencies that are passed on to our clients. integration.

MENDIX APP PLATFORM 7


The Mendix
App Platform
The Mendix App Platform is a completely The platform is accessible for end users,
integrated application Platform as a Service developers and administrators through the
(aPaaS) offering to design, build, deploy and Launchpad, giving access to apps as well as the
manage enterprise apps. platform services for development, operations
and administration of apps and app services. The
The Mendix App Platform is offered as public platform comes with an App Store that features
cloud service through Mendix Cloud, but can be hundreds of publicly available building blocks to
deployed as private cloud or on premise as well. speed up app development. The App Store can
The on-premise deployment scenario is described be configured for private use as well so that apps
in the last chapter of this white paper. and building blocks can be shared across the
customers organization. The platform features
online collaboration amongst users through Buzz,
the social collaboration capabilities. The picture
Apps below gives an overview of the key modules and
services in the Mendix App Platform.

Mendix App Platform

MxID Launchpad App Store

Public Cloud Private Cloud On Premise

Apps
Figure 4. Mendix App Platform Deployment Options

Runtime Services

Cloud Dev
Portal Deployment Services Center

Figure 5. Mendix App Platform Overview

MENDIX APP PLATFORM 8


Launchpad Dev Center
The Launchpad is the central place for end users Dev Center is a collaborative environment for
and developers to access Mendix apps. Through design, development and deployment of apps.
single sign on (SSO), youre automatically logged This web-based portal comes with online social
in to all the apps present on your Launchpad. collaboration features (Buzz), a notification
Moreover, the Launchpad can be customized to service (Notifications) and a directory of active
your companys styling preference. members in your company who could be invited
for participation in app development projects as
By default, all users on the Mendix App Platform well as for social collaboration.
get access to three apps on their Launchpad:
Projects
The Getting Started app, a self-service Mendix has adopted SCRUM as an agile
online training program that guides users development methodology and offers full support
through a complete, 18-hour curriculum. of managing app development projects with
SCRUM tools supported by the platform.
The App Store, the marketplace for apps
and application building blocks. Defining a Project
An app development project in Mendix starts by
The Dev Center which gives the user defining a project in the platform. The project
access to the development environment of owner can manage the setup of the project in
the Mendix App Platform. 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 Notifications.

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.
Figure 6. Mendix Launchpad

MENDIX APP PLATFORM 9


The User Stories are tracked throughout the the Sprint. Sprints can be planned in advance
whole app delivery cycle. Once development to define the scope of a next release, by taking
starts, the business analysts and developers requirements from the backlog. User feedback
can report user stories to be in progress or can be given straight from the application User
completed. User Stories can be imported from, Interface, and can be added to the product
and exported to, Excel. backlog for inclusion in a future sprint.

Model-Driven Development Business Modeler


The collection of User Stories forms the product Model-Driven Development
backlog of the application. The product backlog The Mendix Business Modeler is the multi-user
is divided into one or more Sprints, representing modeling studio of the Mendix App Platform. The
a subset of the scope to be developed, tested general purpose of the Mendix Business Modeler
and taken into production following an iterative is to provide an integrated, unified modeling
cycle. Mendix helps to plan and manage Sprints, space, where business analysts and IT engineers
for example through a Burn-down chart that can work closely together to model the various
visualizes the progress of the completion of application elements.
User Stories against the estimated timeline for

Figure 9. Mendix Business


Modeler

MENDIX APP PLATFORM 10


Figure 7. User Stories

Figure 8. Sprint
Burndown Chart

MENDIX APP PLATFORM 11


Domain Specific Languages Model Editors Description
The Mendix Business Modeler contains various
graphical editors, each designed with a specific Modeling objects, attributes,
validations & data model. The
Domain
model or domain specific language (DSL) in domain modeler is based on
Modeler the Unified Modeling Language
mind. For example, the domain objects or data (UML) standard.
entities, the user interfaces and the application
Modeling rich, responsive UIs,
and process logic can be modeled in dedicated user interaction & complex UI
graphical designers. Mendix adopts and adheres (Mobile)
behavior. Mendix has adopted
HTML5 & CSS3 standards
to relevant open industry standards. Each of the Form Builder & leverages popular open
source frameworks, such as
models is based on an existing industry standard, Bootstrap.
if such exists.
Rules Defining business rules &
system rules.
The Mendix Business Modeler connects and
integrates the various designers so that design Modeling process, business
logic & calculations. The
artifacts can be leveraged in the various models. Microflow microflows are stored in the
Business Process Modeling
For example, simply dragging the object model Notation (BPMN) standard.
into the UI modeler can generate a fully functional
Document Modeling PDF & Word RTF
UI model. Generator documents.

Binding external web services to domain objects Modeling mappings between


Mapping Mendix & external systems /
in Mendix to establish integration takes place files.
by using the mapping functionality to connect
Consume & expose web
elements from the web service to the domain Web services. Mendix supports SOAP
Services & REST based web services.
object. By doing so, the relevant elements from
the web service can be used in the application, in
Modeling security settings for
microflows and on UIs. the app. For more information
on security, please consult
Security the Security for Cloud - and
On Premise Deployment
technical white paper.

Internationalization of user
Internationali- interface based on i18N
zation standard.

The models in Mendix can be


Custom Java extended with Java & JavaScript
Actions code through standard
platform APIs.

Configuring database &


Advanced serversettings for development,
Settings test, acceptance & production
environments.
Figure 11. Data Mapping

MENDIX APP PLATFORM 12


Business-IT Collaboration inconsistencies once deployed. In fact, the
The Mendix Business Modeler supports system will not allow deployment of the
collaboration between representatives from model until inconsistencies are resolved.
the business and developers. By using the
right level of model abstraction, the models Pattern Recognition
are fully comprehensible by non-technical Mendix performs analyses to detect
participants, while at the same time developers patterns that may cause issues for
have all the facilities for realizing the technical applications running in production. For
implementation. example, incomplete decision trees or the
use of a variable in flow that is not used
Intrinsic Quality & Consistency elsewhere are detected and warnings are
The Mendix Business Modeler ensures given prior to publishing the model.
the intrinsic quality and consistency of the
applications built with the platform through the Regression Analysis
following approach and mechanisms: The same mechanism is used to perform
regression checks, making it easy to analyze
Single Modeling Environment the impact of changes on the model, such
All models in Mendix are managed in a as where used analysis, highlighting where
single environment. Mendix checks the commits are performed on data objects and
completeness and consistency of the detection of queries that may compromise
entire model. This way, Mendix guarantees performance.
that the model does not contain technical

Figure 12. Microflow with


Business Logic

Figure 13. Consistency


Checks

MENDIX APP PLATFORM 13


The intrinsic quality and consistency checking Extending the Model with Custom Code
mechanisms in Mendix are key contributors to In essence, users are never limited by the reach
high-productivity development. of a specific DSL and can always resort to the use
of custom Java functions. Custom Java functions
Mendix typically performs 10 20 times more can be called from within a model and its output
consistency checks than what compilers can be directly used. The interface of each action
check in traditional programming platforms. (equals a Java function) is also defined within the
As a result, testing is primarily needed on a model. The name, parameters and return values
functional level. The advantage is that through are all declared in the Mendix Business Modeler.
the extensive quality and consistency checking, The modeler will generate templates for each
non-technical domain experts can develop action.
robust and sophisticated apps. At the same time,
Mendix offers professional developers enough Whenever the interface changes, the template
possibilities to make their own trade-off to will automatically change without losing any of
deviate from the recommendations coming out your custom code. Within this custom code, the
of the checks. For example, a warning regarding programmer is able to use an extensive API for
performance of a certain query may be ignored the core of the runtime engine. This is a low-
as the developer has the context about the level API enabling, among other things, reflective
frequency of this query to be triggered. programming patterns.

Figure 14. Eclipse Integration

MENDIX APP PLATFORM 14


Sandboxes Batch Replace a facility to ensure
For each application development project, Mendix consistency of labels in the default language
provides a sandbox environment running in the within the application.
cloud. You can choose to run the application in
the sandbox with a single click from the Mendix Batch Translate a facility to translate
Business Modeler. This allows you to explore all labels in the app from source language
ideas, rapidly develop prototypes and instantly to destination language batch-wise, after
test your application. You can invite other users to having translated the individual labels.
try the app and give feedback. The sandbox goes
asleep after one hour of inactivity and resumes Language Operations a facility to handle
automatically when you start using the app again. a set of labels in one quick operation e.g.
Once youve completed development, you can copy all US English labels to UK English
publish your app to a standard environment for labels, where after individual labels can be
acceptance testing. adjusted.

Internationalization The advantage of the model-driven development


Mendix provides out-of-the-box support approach in Mendix is that all system- and
for internationalization and translation of application-level messages are automatically
applications built in Mendix, based on the included for translation. For international rollout
i18N standard. Mendix supports multibyte of applications, Mendix supports the use of
character sets and provides right-to-left (RTL) multiple languages in parallel for the application
support. Different calendars can be used within running in production. By default, the app will
applications. be presented to the user in the language that is
defined in the user profile.
For translation, the Mendix Business Modeler
provides the following tools:

MENDIX APP PLATFORM 15


Team Server
The Team Server is a central repository to manage It provides team members with a
and version application models. Team Server revolutionary way to track requirements
is written as an extension on top of Subversion throughout the whole development and
(SVN), a widely adopted open source software delivery cycle. When you start working on
configuration management system. your application, you just open the Mendix
Business Modeler to see the user stories
Central Project Repository planned for the current sprint and start
Team Server enables multi-user development of working on them.
apps in the Mendix App Platform. Team Server
is tightly integrated with both Projects and When team members commit application
the Business Modeler, which creates a unique model changes to the Team Server from
environment for managing all relevant artifacts within the Business Modeler, they can select
in the app delivery cycle, from requirements, to the user stories they have been working on.
application models and deployment packages. The Team Server will automatically create
links between these user stories and the
This works as follows: model changes made, providing a way to
navigate from commits to the associated
When a new project is defined in Projects, a requirements.
dedicated and versioned model repository
is automatically created for the project in End users can provide feedback straight
the Team Server. from the user interface of the app. This
feedback can be transferred into a user
View only or edit access rights to Team story. As a developer, you can directly go
Server can be assigned to team members to the form mentioned in the metadata of
based on their role in the project. This is the feedback and start implementing the
configured in the Project Dashboard. Team requested change.
members with edit rights get a local copy of
the project model in the Business Modeler. Development lines Branch & Merge
They can work on the model and commit A development project always starts with a
changes to the Team Server with a single single development line, the Main line. This is
click, which leads to a new revision of the the development line that will lead within the
model. Committed changes from other development process.
team members are synchronized with the
local version of the repository. A deployment from that line must contain all
(released) functions of the application. Besides
The integration of Team Server with both the the Main line, a project can have multiple branch
Project Dashboard and Business Modeler has lines. Branches are made from a specific commit
significant advantages: (revision) of one of the developers. Creating a

MENDIX APP PLATFORM 16


branch means that a copy is made of the selected Build Server API
revision and this will be used as the starting The Build Server functionality is exposed through
revision for the new development line. an API so that it can be called by other platform
services or 3rd party apps. For example, a build
This allows the developer to change the model deployment package call for an app project
in an isolated line. In most cases, a branch line is revision will return a deployment package for the
used for solving issues in a released version of app.
the application, while the ongoing development
continues in the main line. This allows new Deployment Packages
development in the main line, without releasing Deployment Packages are versioned application
not finalized / tested functionalities. After creating packages that hold the collection of executable
a branch and solving the issue, or creating a models that together define a Mendix app. A
new bigger feature, it is possible to merge these deployment package consists of:
changes with the Main Line.
Models
Branch 4 5 8 Custom Java libraries (compiled)
Merge
External Libraries
Main 1 2 3 6 7 CSS files
Metadata
Figure 15. Branching and Merging
The Mendix App Platform version that
the app should run on
Team Server API
Input Parameters e.g. interval for
The Team Server functionality is exposed through
scheduled events defined in the
an API so that it can be called by other platform
app models
services or external applications. For example, a
get latest commit call to the Team Server API for User Roles as defined in the
app models
an app project will return the latest revision of the
artifacts for the project. Revision #

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.

MENDIX APP PLATFORM 17


MxID Cloud Portal
Mendix offers MxID, a user management and The Cloud Portal enables you to manage users
provisioning service that applies the OpenID and environments, deploy apps to the cloud
standard. It can be integrated with Active with a single click and manage and monitor their
Directory and Single Sign On (SSO) protocols. performance. The Cloud Portal is the interface to
MxID provides a login server for the Mendix the Deployment Services layer in the platform.
Launchpad, the central access portal for
Mendix apps. Furthermore, MxID provides an User Management
administration portal for the management of: The Cloud Portal allows administrators to manage
users (defined in MxID) and configure role-based
Companies, that are tenants on the access for users to environments to deploy and
Mendix Cloud Apart from the company manage apps. The Cloud Portal is integrated into
profile and settings, Mendix also supports the project dashboard, so you have a 360-degree
the definition of Company Admins who can view of all access rights for a specific person
assign permissions to other users following within the context of an app.
a delegated administration concept. So one
or more administrators can be identified Mendix enforces the segregation of duties
per tenant who, in turn, can perform certain between (at least) the developer and application
administrative tasks in the tenant according administrator, whose roles are both safeguarded
to the permissions that were granted. using personal accounts.

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.

Figure 16. User Management


Dashboard

MENDIX APP PLATFORM 18


Configuration Management IP Filtering A more traditional approach
Administrators can configure the environments to secure online applications is the use of
assigned to them from the Cloud Portal. Mendix IP filtering. Mendix supports IP filtering
provides the full runtime environment, called App per application to provide access to the
Environments, needed to run an app. Network application from trusted locations. This
access, hardware, operating system, database and option is used predominantly for internally
all other necessary infrastructure components used applications.
are automatically provisioned. Some examples of
configurable services are: Custom URLs Applications running in the
Mendix Cloud are easily accessible by every
Certificate-based authentication This device through URLs. Mendix supports
is a security feature whereby the customer all sorts of URLs making it possible to use
or third party provides certificates that are your own domain name.* It is also possible
needed to access an external application to add multiple URLs to your application.
not hosted in the Mendix Cloud. This Incoming connections can be checked using
certificate can be easily installed using the client certificates.
Cloud Portal. *Custom domain names require SNI

Certificate-based authentication, Other examples of platform configuration: log


Mendix side This is a security feature behavior, application- and environment-specific
whereby the customer or a third party parameters (defined in the model), etc.
provides a certificate that has to be used to
access an application in the Mendix Cloud.

App
Deployment
Models Packages
Business Team Cloud
Modeler Server Portal
Mendix
Business
Models Server

Deployment
Packages
Build Package
Server Repository App Environment

Figure 17. One-click Deployment Flow

MENDIX APP PLATFORM 19


Deployment Management Through the Cloud Portal, the app is actually
deployed in an App Environment. As all of the
One-click Deployment components have clearly defined APIs, they can
The one-click deployment concept in Mendix be approached by other platform components
makes it easy to deploy apps from the Cloud and external applications in a consistent manner.
Portal to one or multiple App Environments.
From a deployment perspective, an app is defined Test Automation & Continuous Integration
as a versioned Deployment Package that contains This approach allows for continuous integration
all the artifacts needed to run the application. The and supports automated testing of builds. Mendix
flow starts at the Business Modeler where the app comes with a test framework for unit testing and
is developed and composed. All the artifacts are automated UI testing based on Selenium.
stored in the app project repository on the Team The Cloud Portal returns a URL for each
Server. The Build Server creates the deployment deployment package that can be used in the test
packages from a revision of artifacts in the app suite. This framework is extensible with a full
project repository. The package is stored in the test suite management solution built in Mendix
package repository. offered by a Mendix partner.

3. Deploy in App
Test Environment
Models
4. Start App in
Business Team Cloud Test Environment
Modeler Server Portal
Mendix
5. Start Business
User Stories 1. Get Latest Commit Test Script Server

2. Build
Deployment
Packages
Build Package
Projects Server Repository Selenium App Environment

6. Feedback

Figure 18. Test Automation and Continuous Integration Flow

MENDIX APP PLATFORM 20


Through the use of the platform APIs and do so. Because each App Environment
specific scripts, the following flow for continuous is fully identical to the others, there are
integration is supported: no additional risks with regards to the
non-synchronicity of test, acceptance and
DTAP environments Mendix supports production environments. The chronology
a staging procedure for Development within your D(T)AP procedure, which
(on your local machine) Acceptance includes not only the required chronology
Production (DAP) environments, of activities but also the specific access
optionally extended with an additional roles for deployment, ensures that you will
Test environment to DTAP. Every step never encounter surprises once you release
in the procedure is controlled by those an application version in your production
who have been specifically authorized to environment.

Figure 19. Deployment


Package
Overview

MENDIX APP PLATFORM 21


Monitoring & Alerting Backup
Administrators have a comprehensive, real-time Automatic Backup
view of application performance metrics through Every night, your data is automatically backed
a dashboard within the Mendix App Platform. up. Both the acceptance and production
This includes details on CPU and memory usage, environments are subject to these automatic
app environment and database usage, database backups. The backups are snapshots & contain
requests and user logins, as well as preconfigured your database, files & cloud configurations. Cloud
alerts. The dashboards support multiple views configurations are used to automatically restore
on the data e.g. by day, week, month and year. your backup on a different location (data center).
Mendix delivers a set of best practice thresholds
for which notifications will be triggered if Backups are stored up to one year as follows:
exceeded.
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,
Figure 20. Monitoring Dashboard 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
Auditability be downloaded to retrieve all of your data from
All relevant actions both within your Mendix the cloud. Restoring a backup is just as simple:
apps and on the platform level are logged and select or upload the backup and click on restore
these logs can be viewed and downloaded from in the Cloud Portal. Of course, you will need the
the Cloud Portal: right permissions to create or restore backups in
a specific environment. See role & environment
Platform-level Actions regarding based access for more details.
configuration, provisioning, deployment,
start and stop of apps, back-up, etc. are Storage in Multiple Locations
logged with time stamp and user ID. Backups are always stored in secure,
geographically dispersed locations within your
Application-level Actions like login and region. Backup locations are in the same region
logout and specifically defined actions in the (US, Europe, etc.) to comply with local regulations.
application model, such as calls to external In the rare event that a disaster strikes, your data
systems like SAP, can be logged and viewed is still secure. Using the cloud configurations in
from the Cloud Portal.

MENDIX APP PLATFORM 22


the backups, your apps can be easily restored in Mendix Business Modeler, and building blocks
another location should the need arise. can be loaded into the project model with a
single click. The building blocks are presented as
App Store add-ons in the App Store with the following sub-
The Mendix App Store is a public marketplace for categories:
apps and application building blocks. This App
Store can also be configured to serve as a private, Modules A module is a self-contained
enterprise App Store, so that end users and application building block that can be
business managers can discover what apps are re-used in multiple applications. Modules
accessible to them within their organization. can be downloaded from the App Store
into a project as a local copy. By doing so,
Apps the module becomes part of the project
Mendix and Mendix partners publish apps in scope and will be maintained through its
the App Store, offering a variety of solutions lifecycle as part of the application project.
for horizontal business needs like Human It is possible to consume updates for
Resource Management as well as vertical specific modules from the App Store, but obviously
applications. Examples include an IT service those updates need to be validated against
management solution, an HR suite, a retail potential local changes of the module.
promotion manager, a case management solution A module typically consists of a domain
and a healthcare solution. model, UIs and Microflows. Although
technically identical, the following types of
modules can be distinguished:

Functional business modules (e.g.


credit rating service)

Integration modules (e.g. Excel


Importer, SAP Connector)

Technical module (e.g. audit logging)

Export Import
Package Package
Figure 21. The Mendix App Store Business Team Business
Modeler Server Modeler

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 Project X Project Y
community as open source items or commercial
products. The App Store can be accessed on
Figure 22. Exporting and Importing Modules
the web at appstore.mendix.com, from the
Launchpad or is directly accessible from the

MENDIX APP PLATFORM 23


App Services App Services are published, A Mendix 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 Item
Master
background) can consume and apply App
more technical application services as
building blocks without the need to
master the technicalities themselves.
An App Service can simply be applied V1 V2 V1
as an activity type within a Microflow
in the Mendix Business Modeler (e.g.
Order Warehouse
Get Customer from SAP), hiding the Pricing Management Management
App
technical complexity completely for App App

more functionally oriented developers.

Functionality can be re-used time and Figure 24. Runtime Use of App Services
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.

There are two types of App Services:

Mendix Platform App Services


Mendix offers a set of App Services
out 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 SSO 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 in a Microflow

MENDIX APP PLATFORM 24


App 1

Models
App 1
Business App 1 Team Package
Modeler Server App 2 Repository
Mendix
Business
Deployment Deployment
Server
Models
Packages Package App 2

Deployment
Package App 1

Models
Register App Service
App 2 Build Cloud Subscription for App 2
Server Portal

Deployment Publish Interface


Package App 2 Definition

App 1

Mendix
Business
Server

Business App
Modeler Store

Import Interface
Definition

Figure 25. Test Automation and Continuous Integration Flow

Custom App Services Customers can without the risk of getting stuck in device
define App Services as well to connect specific UI adoptions through coding.

custom-built applications to each other


or integrate standard apps offered by Themes Themes are used to style
partners with custom-built applications. applications. Theyre based on CSS3
For example, an app service could call and Mendix leverages Bootstrap.
a standard credit rating app offered in
Examples: Bootstrap for Mendix, United
the App Store from a custom built app
Theme
for order management.

Widgets Widgets are re-usable UI


Layouts Layouts are used to structure
components that allow you to quickly
the user interface. It allows you to define a
compose pages in Mendix. Mendix
default page structure, which can be re-
comes with a set of standard widgets
used as a template for pages.
that are supplemented with custom
Examples: Bootswatch, TaskManager Application.
Layouts are defined for different types of devices: widgets from the App Store.
Web, Tablet and Mobile to optimize the UX of an app Examples: Calendar Widget, Carousel List
depending on the device being used. Mendix serves
the goal of enabling functionally oriented developers
to build great and appealing multi-channel apps
MENDIX APP PLATFORM 25
Component-based Development Runtime Services Model Execution
Applications in Mendix consist of one or more The Mendix App Platform runs applications that
modules. A module typically has a functional are developed in the Dev Center and deployed
scope (e.g. business partners, orders, connectors, via the Cloud Portal in a runtime environment,
etc.) and is self-contained so that modules can be whereby the application models are executed as
re-used in other applications. services in a runtime engine.
This approach to app development has significant
advantages: The runtime services in the Mendix App Platform
are handled by the Mendix Client and the Mendix
Increased productivity Business Server. The UI layer is implemented in

Re-use of assets on multiple levels of the Mendix Client as JavaScript libraries running
granularity: in the browser. The Logic and Data layers are
implemented in the Mendix Business Server. The
Application modules can be published
Mendix Business Server itself is built in Java and
to the public and / or private App
Store and be consumed in other app Scala.
development projects as functional
modules, technical (integration)
Mendix Client
modules or UI widgets.

Applications that have been deployed


CSS3 Web & Mobile UIs HTML5
already on Mendix can be integrated
with each other as well through App Mendix Business Server
Services.
Logic Layer
Less technical domain experts involved
in app development can consume more Data Layer

technical building blocks (e.g. integrations)


very easily.

Independent release cycles for apps


Database Webservice API
integrated through App Services

Improved transparency and control over Figure 27. Component-based Development


apps and application building blocks

Import Module

Import Widget
App
Publish App Service
Store

Consume App Service Order Management App


Business
Partner
App Business Google
Partners Maps

Excel
Orders Import

Figure 26. Component-based Development MENDIX APP PLATFORM 26


The Mendix Client interface to widgets and for keeping the history.
The Mendix Client provides a high-performance, The standard and custom widgets built in Mendix
rich Internet application web interface (using Ajax communicate with the core layer through an API.
technology) supporting all major browsers (IE,
Chrome, Safari and Firefox). The Communication Layer handles the
communication with the Mendix Business Server.
Web and Mobile Forms
The client provides both web-forms and Mendix Client
responsive mobile forms depending on the Widgets
device using it. Mobile forms are optimized API

for the screen size of the respective device Core

(smartphone or tablet) to provide the mobile app


Communication Layer
experience to which people are accustomed. Web
forms leverage the strength of web browsers to
provide a rich user interface. The Mendix client Mendix Business Server

is optimized only to load relevant components to


Figure 29. Mendix Client Architecture
minimize network, CPU and memory usage.

Customizable Look & Feel


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
Figure 28. Mendix HTML UI
widgets can be configured within the Mendix
Business Modeler.
The Mendix App Platform enables you to extend
your existing business processes to mobile
Mendix Business Server
devices. Mendix supports web and hybrid
In essence, the Mendix Business Server contains
(Cordova) mobile forms and is fully HTML5
an integrated set of run-time engines responsible
and CSS3 compliant which makes it platform
for the interpretation and execution of the
independent.
models in run-time. The Business Server itself has
a modular structure with a core service interface
The Mendix Client has a core layer for session
that connects all modules. Each module provides
management, caching, an event subscribe
services to implement a DSL.

MENDIX APP PLATFORM 27


Objects & Actions can be defined. Also, each action can be invoked
The Mendix Business Server is based on two by different interfaces such as HTTP, Web services
important concepts: Mendix objects and actions. or the Java API. The combination of supporting
A Mendix object is an object with multiple multiple representations of Mendix objects,
representations such as a XML document, Java and the execution of actions through different
object or JSON object. Each client can ask the interfaces, provides the basis for the integration
Business Server for objects in its preferred of the Business Server in other systems.
representation. An Ajax application, for example,
prefers objects directly in a JSON format, while an Integration
Enterprise Service Bus (ESB) can prefer an XML A key component of the Mendix platform is
document. Regardless of the representation form, integration. Therefore, the Mendix Business
the logic applied to these objects remains the Server is designed to map data from external
same. systems to Mendix object definitions. The primary
task of the data layer is providing the logic layer
To apply system or process logic, operations need with Mendix objects. The data for these objects
to be executed. Each operation within the Mendix can be retrieved from different data stores, each
Business Server is called an action. The Business with its own specific interface. For example, data
Server provides many predefined actions, such as 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
Apps
Mendix object definitions are abstracted from a
specific technology implementation and can be
Mendix App Platform represented as XML, JSON or Java objects.

Application functionality built in Mendix can be


exposed and consumed as services through
Any Database Any Service Any App Any File Microflows. Microflows can be called via multiple
Mendix is built to integrate, unlock and extend existing systems protocols such as SOAP, REST and JMS.

The decoupling of Mendix objects and Microflow


Figure 30. Mendix Platform Integration Capabilities definitions from its technical implementation are
making them future proof for adoption of new
technology developments.
Create-Read-Update-Delete (CRUD) operations on
Mendix objects, triggering and executing flows, Mendix and Mendix partners provide numerous
evaluating business rules or executing custom out-of-the-box integrations to applications like
Java code. Each action can execute other actions, SAP, business services like postal code look-up
resulting in a tree structure in which transactions service and file storage / office collaboration

MENDIX APP PLATFORM 28


environments, such as MS SharePoint and Google Deployment Architecture
Apps. These integrations are all published in the Deploying your application in the cloud takes
Mendix App Store and can be used in the form place on a Mendix Cloud Node that Mendix
of App Services or downloadable Modules. To provisions for your company in a cloud datacenter
provide a single interface on different relational from one of the Infrastructure-as-a-Service (IaaS)
databases, the Business Server translates XPath providers used by Mendix.
(hierarchical) and OQL (relational) queries as
universal languages to specific SQL queries. Mendix Cloud is fully standardized on the
The Mendix Business Server supports major following stack: Nginx as web server, Debian Linux
database management systems including Oracle, as operating system and PostgreSQL as database.
PostgreSQL and Microsoft SQL Server.

Mendix ID

Infrastructure as a Service -
Access & Security Services
Cloud Portal
SSL

Load-balanced
Routing Layer
Controller

Test Acceptance Production Test Acceptance Production

Mendix Mendix Mendix Mendix Mendix Mendix


Business Business Business Business Business Business
Server Server Server Server Server Server

Cloud Node 1 Cloud Node 2

Service Broker

Infrastructure as a Service - Networking, Compute, Storage

Figure 30. Mendix cloud Deployment Architecture

MENDIX APP PLATFORM 29


Containment Routing and Network Encryption (SSL)
A Cloud Node is a grouping of virtual and The runtime engine, the Mendix Business Server
autonomous instances of the Mendix runtime, (MBS), running in a container is accessed via a
dedicated to your company that includes an load-balanced routing layer of clustered Nginx
(optional) Test, Acceptance and Production web servers that routes the traffic to the relevant
environment, each running in their own App App Environment whereby the web server is
Environment. This App Environment also includes responsible for the SSL connections.
firewall, web server and database services.
Mendix Cloud Nodes run on dedicated Virtual Additionally, all common access and security
Machines (VMs) at the IaaS provider or can run on services from the IaaS provider are used for the
Cloud Foundry containers. traffic that goes to their infrastructure. The SSL
connection starting from the browser terminates
The purpose of an App Environment is to at the web server service on the target App
contain the behavior and consumption of an Environment. This ensures that data is encrypted
environment, shielding other environments (and end to end so that other App Environments
apps) from each other. cannot intercept any data from the target App
As each App Environment has its own dedicated Environment.
web server and firewall services, Mendix supports
customization at the App Environment level Controller
through the Cloud Portal without affecting The controller is triggered by the Cloud Portal and
other App Environments. For example, the handles the configuration of the infrastructure
customization of request handlers for a specific services to deploy applications.
App Environment is not compromised by
demands and desires of other Mendix customers. Service Broker
Apps can publish and consume App Services.
The Mendix Business Server is connected to a These App Services can be connected using the
dedicated database for the App Environment. The deployment interface in the Cloud Portal. The
database is only accessible by this specific Mendix Service Broker is responsible for providing the
Business Server instance. The App Environment service instance.
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.

MENDIX APP PLATFORM 30


The App Delivery Cycle Business Modeler. The user stories are visible to
Weve now discussed the various platform the developers and they can update the status of
modules and services. The picture below gives an the user stories. You can monitor the progress of
impression of how the platform supports the full the project by means of a burn down chart in the
app delivery cycle. Projects module.

Build - Rather than building the whole app from


Feedback scratch, you can first check whether the App Store
Launchpad Projects
Users Projects
offers any re-usable building blocks to speed up
Launch App
development. The standard App Services from the
platform are handy to consume as well.
Status
Links

User
Stories
The result of the development activities is an app
Models
Runtime Team
Server that contains a domain model, user interfaces
Deployment
Models and process and application logic defined as
microflows. The models are all stored under the
project ID in the Team Server. From the Team
Cloud Server, the deployment packages to run the app
Portal Build Business
Server Modeler are created. Its possible to do this directly from
Apps & Modules the Business Modeler as well, which triggers the
same functionality in the Team Server. Apps and
Deployment Package building blocks like modules or widgets can be
Packages References
Package
Repository
App
Store published to the (enterprise) App Store for re-use.

NOTE: Modules marked in blue are part of the Dev Center


Deploy The administrator can select the
Figure 31. Mendix App Delivery Cycle deployment package in the Cloud Portal and
deploy your app on an App Environment and
provision the users for the app.
Design - An app development project starts
by launching the Developer Portal from the
Manage The administrator monitors the
Launchpad. This gives access to the Dev Center,
performance of your app and manages the
where you can define your app development
resources, for example to ensure that you get the
project in the Projects module. Youll assemble
right level of performance.
the team by identifying users and inviting them to
participate in the project.
Iterate - End users will launch the app on their
Launchpad. They can give direct feedback from
You can now start defining the requirements
the user interface, which will then appear in the
for your app in the form of user stories. Once
Projects module. Feedback can be addressed
the scope of the app has been defined and
immediately or transferred into a new user story
broken down into one or more sprints, the actual
to be included in a next release.
development of the app can start using the

MENDIX APP PLATFORM 31


Non-Functional Mendix is a platform as a service offering to
Platform Characteristics rapidly develop custom apps.
Multi-Tenancy
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:

Mendix ID

Infrastructure as a Service -
Access & Security Services
Cloud Portal
SSL

Load-balanced
Routing Layer

Test Acceptance Production Test Acceptance Production

Mendix Mendix Mendix Mendix Mendix Mendix


Business Business Business Business Business Business
Server Server Server Server Server Server

Cloud Node 1 Cloud Node 2

Infrastructure as a Service - Networking, Compute, Storage

Figure 32. Mendix App Delivery Cycle

MENDIX APP PLATFORM 32


Define a tenant-aware object model MxID supports identity and access
for the application. Tenant-level access management. In addition, Mendix integrates
to domain objects is configured using with 3rd party identity management
XPath definitions. This restricts access
solutions.
to those application object instances
for the users company.
The Mendix Cloud Portal supports app
management, deployment and monitoring.
Define tenant-specific Microflows and
configure access rights to implement
tenant-level application and process Application Lifecycle Logging

logic. The Mendix App Platform logs relevant activities


throughout the entire app delivery cycle to ensure
Apply tenant-specific styling of the user
compliance with customers requirements for
interface by making the cascading style
auditability.
sheets (CSS) dependent on companies
defined in MxID.
Mendix Cloud Deployment and
Tenants can be custom defined in the application Containment of Environments
as well by using identifiers like division, country, The Mendix App Platform is deployed on a
site, channel, etc. instead of company. Mendix Cloud Node, a grouping of virtual and
autonomous instances of the Mendix runtime,
Security dedicated to a customer, that includes an
Mendix applications have been deployed by (optional) Test, Acceptance and Production
hundreds of companies to support numerous environment, each running in their own app
and varied business processes. All these different environment.
Mendix users share the critical need for their
applications to be secure and accessible. This App Environment also includes firewall, web
server and database services. The purpose of an
Security at a High Level App Environment is to contain the behavior and
The Mendix App Platform meets enterprise-level consumption of an environment, shielding other
requirements for security and addresses security environments (and apps) from each other.
measures on multiple levels of granularity,
including multi-tenancy aspects: Backup and Disaster Recovery
All data (model, database and file storage) is
The Mendix Business Server handles known automatically backed up daily. Backups are stored
security threats in the runtime. in secured, geographically dispersed locations.
Mendix offers disaster recovery services: as an
The Mendix Business Modeler supports additional option, a standby environment at a
application security settings to define roles secondary hosting location can be configured,
and authorizations. allowing companies to resume operations from a
different physical location.

MENDIX APP PLATFORM 33


Organization Level Security Measures a Communication of net changes only, to
Mendix, as an organization, embeds security minimize bandwidth usage
in company processes and standard operating
b Retrieval schemes that allow for
procedures by adopting a representative subset selecting relevant object attributes vs.
of the ISO 27001 / 27002 Information Security the entire object and complete object
Framework. Mendix achieved ISAE 3402 assertion. trees to minimize bandwidth usage and
An independent auditing firm periodically client side CPU consumption.
performs security audits. Furthermore, a leading
IT security firm performs regular penetration tests 3 XPath to SQL optimization Queries are
on the Mendix App Platform. optimized for execution in the target
database to minimize database CPU
For more information on security, please consult consumption.
the Security for Cloud - and On Premise
Deployment technical white paper, which is 4 Out-of-the-box connection pooling to
available through your local account manager. minimize communication overhead
between MBS and the database.
Performance
The Mendix App Platform is used to build large- 5 Automatic and configurable indexing
scale and mission-critical applications. The to minimize CPU usage and memory
architecture is therefore optimized to deliver high- consumption in database.
performance applications. In this context, three
aspects are critical: what standard mechanisms A business engineer developing an app in Mendix
are available in the platform to ensure optimal does not need to consider these performance
performance, what tools are offered to monitor aspects as the Mendix platform handles this
performance and what tools are available to automatically. The Static Model Analyzer in the
optimize performance. Mendix Business Modeler detects potentially slow
or expensive flows and queries and flags them.
Standard platform performance mechanisms
The Mendix App Platform specifically optimizes Performance Analysis
performance via the following mechanisms: Practice shows that in general, in case
performance issues arise, the majority of time
1 Default multi-threading for Microflows is spent on analyzing and finding the root cause
The processing of Microflows is designed for vs. actually fixing the issue. Hence, it is critical to
multi-threading by default, whereby each provide the right tools for efficient and effective
invoke of a Microflow is executed in its own analysis.
thread with its own memory scope.

2 Optimized client server communication


through:

MENDIX APP PLATFORM 34


The Mendix App Platform offers out-of-the box Performance Optimization
tools for performance analysis: Should an app face performance challenges,
despite measures in the platform, Mendix
1 Performance monitoring tool in the Cloud offers the following possibilities to optimize
Portal that is integrated with the Mendix performance:
Business Server to analyze the performance
on the level of individual Microflows 1 Run the relevant Microflows in batch-mode.
and activities within a Microflow (incl. The communication with the database for
queries). Its possible to define thresholds CRUD actions is handled in batches. The
for Microflow performance so that alerts batch size is custom definable.
can be triggered when a threshold is
reached. Mendix tracks a series of metrics 2 Handle Microflows asynchronously. This is
with default thresholds in the following implemented in Eclipse via the Java API.
categories:
3 Override the actions in the Mendix
Hardware & Network
Business Server with a custom optimized
Web Server
implementation of that action, e.g. call
Databases
a stored procedure in the database for
Application
example to execute a hierarchical query.

2 The Live Debugger in the platform allows


Although the last two options are seldom used
developers to step through a Microflow
in practice, it is always possible to fall back on
and all its activities and actions live in the
proven and traditional techniques to guarantee
runtime and shows performance statistics
performance.
amongst other information.

3 A query analysis tool to detect how queries


are actually executed.
Customer Example
Mendix conducted a load and performance test
The fact that the Mendix Business Server applies
for a large Member Management System with
model interpretation offers a significant and
10,000 concurrent users. The results were that:
unique advantage over traditional approaches
like code generation as it real-time and highly

91
of requests by load generators
targeted analysis. For example, the Live Debugger % offered to the server were handled
allows a developer or performance engineer to within 10ms, & 99% below 100ms
monitor one specific user session remotely and
zoom into all relevant performance parameters
for that specific session. 10 k
users
working in the application will not
notice any decline in performance

MENDIX APP PLATFORM 35


Scalability High-Volume Transaction
The Mendix App Platform has a scalable Processing - Mendix also offers
architecture that can be configured according to the tools to support high-volume
transaction processing of small
the customers needs. Mendix offers vertical and
transactions (e.g. cash withdrawals
horizontal scaling options:
/ payments) such as transient
objects and asynchronous database
Vertical Scaling - The default multi- communication. Through this
threading of Microflows as described in approach, near-linear scalability of
the previous paragraph, whereby each apps can be achieved.
invoked instance of a Microflow runs in its
own dedicated thread, is the starting point Disaster Recovery & Fallback
for flexible vertical scaling. Through the Mendix offers disaster recovery services.
Cloud Portal, additional resources can be Depending on the nature of the disaster and
added to the App Environment in which the the ability to resume operations at the disaster
application is running to support higher location, various scenarios apply.
load and volume by adding more computing
power. The additional capacity can be A full disaster recovery scenario, whereby
easily (re-)allocated across various App the operations will be resumed from a
Environments. different physical location, can be configured
by implementing a standby environment at
Horizontal Scaling - For mission-critical a secondary hosting location. Replication of
applications, customers may require a application files and data is then required to
high-availability environment to run the obtain the desired Recovery Point Objective and
app. This can be configured by defining a Recovery Time Objective beyond what Mendix
cluster of App Environments either sharing offers in the standard Service Level Agreement.
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.

MENDIX APP PLATFORM 36


Figure 33. Horizontal Scaling
Mendix ID

Infrastructure as a Service -
Access & Security Services
Cloud Portal
SSL

Load-balanced
Routing Layer

Test Acceptance Production

Mendix Mendix Mendix Mendix Mendix


Business Business Business Business Business
Server Server Server Server Server

DBMS Primary Secondary Primary Secondary


DBMS DBMS DBMS DBMS

Infrastructure as a Service - Networking, Compute, Storage

Figure 34. Disaster Recovery


and Fallback
Mendix ID

Infrastructure as a Service -
Access & Security Services
Cloud Portal
SSL

Load-balanced
Routing Layer

SSL SSL

Test Acceptance Production Production

Data
Replication

Mendix Mendix Mendix Mendix


Business Business Business Business
Server Server Server Server

Data
Replication

Primary Availability Zone Secondary


Availability Zone

Infrastructure as a Service - Networking, Compute, Storage

MENDIX APP PLATFORM 37


Deployment If required, Mendix supports local storage of
Mendix Cloud Team Server artifacts (e.g. models, projects,
The Mendix App Platform, as described above, users, etc.) through local implementation of the
is offered as a service to run applications built SVN repository. As a consequence, users would
on the platform on infrastructure provided need to be manually synchronized with a local
and operated by Mendix. Mendix works with identity management solution and maintaining a
infrastructure providers, such as Rackspace, and history of SVN content needs to be organized with
provides SLAs to customers for operating the additional tooling.
service.
The picture below shows both alternatives,
For more information on Mendix Cloud, the whereby the use of SVN in Mendix Cloud is the
standard services package and additional services, default. If a customer decides to use a local
please consult the Mendix Cloud service offering version of SVN, its simply a matter of referring to
paper, which is available through your local a different URL for the local SVN repository from
account manager. the Mendix Business Modeler.

Mendix On-Premise Mendix recommends the following deployment


The Mendix App Platform can be deployed in an architecture, which is quite similar to the cloud
on-premise data center as well. An on-premise deployment architecture.
deployment of the Mendix App Platform means
installing the runtime component, Mendix
Business Server.

Get User Get

The App Store, Launchpad and Dev Center, along Stories


Team
Revisions

Mendix
Projects Server Cloud SVN
with the Projects module, Team Server and Build
Mendix Cloud
Server, are exclusively offered as a cloud service,
On Premise
so its the actual deployment of apps in test,
Get Get SVN

acceptance or production environments that will


Revisions URL

take place in an on-premise data center.

Local Business
SVN Modeler
The platform services MxID and Cloud Portal are
not available as on-premise services, so identity
Figure 35. Options for using SVN Repository
management has to be arranged with 3rd party
tools like Active Directory and the deployment
and configuration management aspects with
other 3rd party DevOps and platform monitoring
tools.

MENDIX APP PLATFORM 38


Deployment Package Repository where
application files are stored as well as the Mendix
Repository that holds the registry of Mendix
Infrastructure as a Service -
Access & Security Services Versions deployed.
SSL The Mendix Repository is checked to validate that
Service
Console application packages built on a specific Mendix
version are actually deployable on the target App
Environment.
Test Acceptance Production

Package
Repository
For supported versions of web servers, operating
Mendix Mendix Mendix
Business Business Business systems and databases, see the systems
Server Server Server
requirements for the latest Mendix release as
Mendix described in the release Reference Guide.
Repository

Backup & Restore


Figure 36. Mendix On-Premise Deployment Architecture
Mendix leverages back-up and restore
functionality supported in the database
The Mendix Business Server is accessed via a underneath the Mendix platform (for supported
web server (such as IIS, Nginx or Apache) that databases, see the above mentioned Reference
routes the traffic to the relevant environment Guide). The customer is responsible for the
whereby the web server is responsible for the SSL configuration.
connections. We also recommend implementing
a firewall in front of the web server in case the Network & Operating Systems Security
application(s) built in Mendix are exposed to In the on-premise deployment scenario, the
external users. customer is responsible for network and
The Mendix Business Server is typically deployed operating system security.
with dedicated environments for Test, Acceptance
and Production. The Mendix Business Server Disaster Recovery and Data Loss Prevention
(MBS) runs on (virtual) machines / servers. The In the on-premise deployment scenario, the
Mendix Business Server is normally connected customer is responsible for implementing
to a dedicated database for the environment. disaster recovery and data loss prevention by use
Non-production environments could share a of common tools for database and file storage
single instance of the database. We recommend replication.
configuring the database for dedicated use by
Mendix.

Mendix provides a locally installable Service


Console for managing the Mendix Environments.
The Service Console connects to the Mendix

MENDIX APP PLATFORM 39


mendix.com

Mendix is the app platform company for the enterprise. We enable companies to build, integrate and deploy
web and mobile applications faster and with better results, effectively driving ROI in days not months. Learn
more, join our user community and get started for free at now.mendix.com.

Mendix Inc. 2015. All Rights Reserved

MENDIX APP PLATFORM 40

You might also like