Lexicon: Some definitions

Agility
Arrow icon
The term “Agile” defines a project management approach that is the opposite of traditional predictive and sequential approaches (V-cycle or waterfall). Agile development makes it possible to eliminate the traditional tunnel effect by giving more visibility, by involving the customer from the beginning to the end of the project and by adopting an iterative and incremental mode. According to this approach, the need cannot be fixed and, on the contrary, it makes it possible to adapt to its changes.

Thus, in fact, if the customer has correctly prioritized his needs, he can speed up the “time to market” if he believes that the product in its (partial) state can go into production. He thus saves his budget and can reap an initial return on investment. It also has the option of changing the priority of features that have not yet been developed along the way.

Simplicité offers this flexibility and facilitates development using an agile methodology that allows you to work more formally on the design of an application, rather than its technical implementation/execution. All you have to do is declare/configure your need, tell the platform to load it to use it or see it appear. This contribution therefore allows greater responsiveness to change without ever calling into question the stability of the final deliverable.
APaaS
Arrow icon
“aPaaS” is a Gartner acronym for “Application Platform-as-a-Service.” Gartner defines it as “highly productive, easy to learn and use development environment that delivers business applications that are customizable, changeable, capable of implementing serious business functionality and, when deployed, offered with massive scalability, high-end enterprise-class (and beyond) performance and reliability, supporting massive amounts of data, all at SMB prices.”

Cloud services are divided into 3 layers: Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS). While the first two markets are stabilizing, the PaaS market is still in the process of being structured. aPaaS is a sub-layer of PaaS.

aPaaS provides integrated development, deployment, and management services that are optimized for a cloud computing environment and support the delivery of the final application that is distributed as a service, known as SaaS. Simplicité is one example.
Business application
Arrow icon
The business application is intended to be internal to the company: it is oriented to its business and its operation for its employees, customers or partners, for example:

- Internal application: accounting software, HR/payroll management
- Commercial application: CRM, customer management, sales force
- Customer application: online sales site, delivery logistics, catalog/stock management,
- etc.

When it comes to setting up a business application, a company is often faced with two possibilities: buying a software package or creating a custom application.

Purchasing software

This approach is well suited when it comes to an application that instruments processes, non-strategic or non-competitive, based on norms or standards. This solution is no longer relevant at all when the business is specific to the company, or when its strategy will lead it to differentiate itself from its competitors or to offer new functionalities.

Software packages are robust but generally inadequate to the needs of change in the field with very low reactivity compared to the associated integration costs.

Specific development

The obstacle to this approach lies in the difficulty in maintaining and evolving the application once deployed. Indeed, the technical code is linked to the business of the application. Therefore, if the functional (business use) or technical (technological migration) need changes, it is generally necessary to retouch all or part of the source code with all the risks of regressions that this involves, and start again in a cycle of specifications, developments and tests that are more and more cumbersome.

In a competitive world where it is necessary to be hyper-reactive and always more productive, an application that is fully adapted to the needs of the business and scalable is essential.
BPM
Arrow icon
The BPM (Business Process Management) approach aims to analyze and model all of the company's business processes in software. “Who does what? ”, “With whom? ”, “When? ”, “In what order?” ” are crucial questions for identifying information flows and dialogue between all actors in the process.

The objective of this approach is to achieve a better global view of all the company's business processes and their interactions in order to be able to optimize them and, as far as possible, to automate them as much as possible using business applications.

From a tooling point of view, a BPM system is generally composed of:

- software that makes it possible to model actors and processes,
- agents that allow them to be orchestrated (execution, relaunch, alert, escalation...)
- consoles to manage them,
- and dashboards to manage them and make operational analyses.

The term BPM is now used for some or all of these features.

The complexity of implementing a BPM is exponential because it is linked to the level of urbanization of the information system as a whole, to its capacity for massive processing of activities over time and in parallel, to the volume of data per activity to be exchanged/transformed, and to the interoperability of heterogeneous software between them (language, version, technology, management rule...) that change over time. It generally relies on communication/data transformation middleware (ESB or ETL) to deport the complexity of inter-system integration.

Faced with such complexity, current BPM systems tend to only address a subset of business processes, with each application responsible for its own data and processes.

Simplicity makes it possible to model and execute the processes for which it is responsible, and to communicate simply with other systems.
Devops
Arrow icon
Devops is a term derived from the contraction of the English words “development” and “operations” (exploitation), which are often considered contradictory.
This movement is based on bringing together development teams and operations teams in order to accelerate application delivery and update processes. The final objective is to align the information system with the needs of the business.
The Simplicité platform simplifies all stages of the life of your business applications in accordance with pragmatic “DevOps” principles.
Model-driven
Arrow icon
The “Model Driven” approach is a computer development approach driven by models. The model, as an abstraction of the real world, is the real communication tool between the profession and the designers. The model thus acts as specifications for everyone. There are numerous advantages as a result:

- business and technology decoupling
- simplified maintenance
- scalability...

Emerging in the 2000s, MDA (Model Driven Architecture) consists in modeling the application in a language describing the needs (such as UML, BPEL), then by means of transformation (compiler) to derive these languages into compilable and executable programs (generation of code or executable artifacts).

The “Model Driven Engeneering” approach emerged during 2007/2008 in the continuity of the MDA approach. This gives a more structured insight into the various aspects of the need to use dedicated models and languages for given domains (DSML Domain Specific Modeling Languages).
Simplicité is based on a completely innovative approach: the model execution engine (MDE or Model Driven Engine). It is a universal and agnostic engine offering generic principles for interpreting the meta-model, which guarantees total bijection in real time between models and their interpretations at runtime.