Platform Introduction - OMNIALowCode/omnia2 GitHub Wiki
What is the OMNIA platform?
The platform consists of a cloud-hosted application whose purpose is to allow anyone to model business-oriented computer applications without the need to write code.
It allows you to quickly create prototypes of solutions to solve several problems, as well as an agile delivery of different versions of a solution to address the changes in requirements that may arise during the project development.
Development in the platform is done using a specific domain language, based on the REA framework principles (described in the next section).
By using this type of language (based on the economics and accounting theories), the platform allows modeling agents to describe solutions that are closer to the problem's domain and further from implementation issues. This ensures that it is easy to design an application if the user has limited computer science knowledge, but is highly specialized in the current problem's domain.
REA
The REA (Resources, Events, Agents) framework is focused on the development of accounting systems, centered on reporting the different economic events of an organization. It is based on the assumption of the existence of a limited number of concepts in all accounting software and that it is possible to design an easily adaptable application, without compromising the fulfillment of business rules.
The REA concepts are applied with the following interpretation in the platform:
-
Economic Resources: system entities representing assets that can be quantified and with commercial value. These assets are held by the Economic Agents, who exchange them in financial transactions between agents. Examples: Products, Money and Services;
-
Economic Agents: system entities representing individuals or groups of individuals. These entities hold economic resources and exchange them in financial transactions. Examples: Customers, Companies and Employees;
-
Commitments: represent the commitment to trade resources made between two agents. A Commitment is made because the transaction often only happens after the moment when it is set. There are two types of commitments: increase or decrease, depending on whether it represents a reduction or an increase of a company's resources. Examples: Paying for purchased items, often with deferred payments;
-
Economic events: represent the transaction of resources between two agents, one in the role of supplier and the other as recipient. This way, the transaction represents an increment for the receiver agent and a decrement for the supplier agent. Except for some cases such as the provision of services, an Event occurs at the moment it is created. All commitments are fulfilled by one or more economic events in an action referred to as fulfillment, triggered when resources are exchanged. Fulfillment can be total or partial.
These REA framework concepts are joined by some additional concepts brought by the implementation of the platform:
-
User-defined entities: system entities required for financial transactions but which cannot be considered resources or agents. An example of such an entity used to categorize an agent would be his Department or Role in the company;
-
Interaction: allows you to represent all the different resource exchanged as a document. An interaction is composed of three different areas: Header, Details and Summary;
-
Process: allows you to group several interactions into business processes. This way, it is possible to create a logical organization of interactions of similar nature.
Notifications and asynchronous requests
The platform handles communication through an asynchronous system, where changes made or documents submitted are first placed into a queue of requests, and then a separate component of the platform processes those requests.
Users can see this through the notifications system, that represents the status of each submitted request through different colors:
- Blue: The platform is processing the request;
- Green: The request was processed successfully;
- Yellow: The request was processed, but not completely successfully (e.g.: the entity was saved, but failed to send some email notification);
- Red: An error has occurred in the processing and the execution was aborted.
To see more details about a notification, just open the notifications zone (allows user to see the last submitted requests) and click one of the notifications. Another option is to see a list of all submitted requests, accessing the option View all operations.
After clicking one of them, the details of the request selected will be shown.