what is ontimize?

16
What is Ontimize? It’s an open source technology helps you be more agile in the development and maintenance of management software, drastically reducing the time and effort needed to create high-quality applications. It facilitates both the creation of multi- device and multi-language user interfaces and the implementation of highly scalable services, which can be deployed on- premise or in the cloud. Based on standard and open technologies (Java or HTML5, among others) it provides the architecture, components and tools that allow an organization to develop and maintain its computer applications in a more orderly and uniform manner. Following a declarative approach, much of the development process focuses on defining what functionality the application should provide and not on how it should be implemented in a specific technology.

Upload: others

Post on 11-Nov-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What is Ontimize?

What is Ontimize?

It’s an open source technology helps you be more agile in the development and maintenance of management software, drastically reducing the time and effort needed to create high-quality applications.

It facilitates both the creation of multi-device and multi-language user interfaces and the implementation of highly scalable services, which can be deployed on-premise or in the cloud. Based on standard and open technologies (Java or HTML5, among others) it provides the architecture, components and tools that allow an organization to develop and maintain its computer applications in a more orderly and uniform manner. Following a declarative approach, much of the development process focuses on defining what functionality the application should provide and not on how it should be implemented in a specific technology.

Page 2: What is Ontimize?

What are the advantages for my company?

Whether your company (or public administration) has the need to develop applications for internal use or if you develop them for commercial use, Ontimize provides the following advantages:

1. Agility. 5. Eases the

2. Reduction in

incorporation of developers

or subcontractors.

development costs. 6. Eases movement 3. Reduction in of developers between maintenance costs. projects.

4. Reduction in 7. Improved quality

investment in system and reliability of architecture. applications.

8. Improved

portability of applications to new technologies.

9. Process and

technology evolution.

Page 3: What is Ontimize?

How much?

Free

100%

open-source code

Open

Nothing. It’s 100% open source, free and open. Anyone can download it, distribute it freely and even modify it for their own use.

Companies that decide to use Ontimize professionally can choose to subscribe to a technical support program that costs around €100 per month per developer, depending on options such as the service level or the volume. The increase in the productivity of the developers, the support for incident resolution, and the removal of the requirement for dedicated personnel within your company perform these tasks more than compensates the cost.

Page 4: What is Ontimize?

What does it do?

Ontimize is designed to create management or business applications, based on forms.

These applications can have a transactional nature (high, low, query and modification of data), process-oriented (workflow) or a mixture.

The user interface of the applications can be designed for desktop environments or for multi-device web environments (browser, tablet and mobile).

With little effort the developers can define interactive forms that support the basic operations (CRUD: create, read, update, delete), validations, lists and tables to show and edit master-detail relationships, drill-down, and more. These forms can be invoked from various types of menus (drop-down, toolbar or screen, among others) or from any list or table.

You can also incorporate "dynamic" forms, which can be designed and modified by "advanced" users in a visual way, without the need for programming and during execution time.

Page 5: What is Ontimize?

It also includes components that make it easier for developers and users to define, integrate and use reports; graphs, dashboards, processes, documentary repositories, maps, drawings, diagrams, calendars, Gantt diagrams, videos, and social networks; among others. Business logic can also be defined declaratively (without programming) by defining rules and formulas that relate attributes of multiple tables and allow aggregates (such as sums, counts or maxima) to be made. It is as if a database were treated as if it were a large spreadsheet, with a business logic engine responsible for detecting the changes, analysing the dependencies and the sequence of operations to be performed, checking that the defined restrictions are met and performing the calculations (derivatives) in an optimal and automated way, ensuring the integrity of the data. This approach not only allows to implement the business logic in a faster and more robust way, but also allows to implement a certain degree of controlled denormalization to speed up queries. The created applications include multi-language functionality, role-based access control, appearance configuration, security, auditing, and more by default.

Page 6: What is Ontimize?

What do the developers do?

The developers focus part of their effort on designing a data model that responds to the current and future needs of the application and allows the database engine to provide response times appropriate to the needs of the application, especially when data volume increases (scalability). This guarantees the integrity and quality of the data. They are also responsible for defining the business rules and processes that the application must support. Another very important issue they are responsible for is designing a friendly and intuitive user interface that allows users to perform their daily tasks easily and predictably (usability).

However, there are situations in which the functionality provided by default (without programming) is not sufficient, is not suited to the problem, or does not provide the required performance because a large volume of data is handled or because the operation to be performed is especially complex.

Developers have mechanisms to create their own components, overwrite existing ones, and integrate third-party ones in a simple and backward compatible way.

Page 7: What is Ontimize?

In these cases, developers can choose to write their own code.

This happens at most in 10% of cases, so the developers avoid 90% of the "boring" cases and can focus on the especially interesting or critical cases.

The developers have mechanisms to create their own components, overwrite existing ones, and integrate third-party ones in a simple and backward compatible way (with new versions of Ontimize). They can also choose to have full control over the operations performed on the server, providing the necessary code to perform certain transactions or queries.

In addition, they can implement formulas or aggregation functions and integrate them into the business logic engine.

Page 8: What is Ontimize?

What technologies does it to use?

The Ontimize team is continually evaluating the best technologies.

The Ontimize team is continually evaluating the best technologies to integrate, which are those that add value and have traction in the market as well as in the developer community. When these technologies are considered ubiquitous and have large communities behind them (for example, Java EE, Spring, HTML5, or Angular), the strategy is to use them as the basis on which Ontimize is built. This removes previous proprietary code providing similar functionality within Ontimize and replaces it with libraries or standard frameworks. In this way, Ontimize itself becomes “lighter” and less complex in the lower part of the software "stack" and becomes more functionally rich. It is important to note that since most of the applications are defined in a declarative way, the migration is normally transparent or quite easy to perform for the developer. You can also incorporate "dynamic" forms, which can be designed and modified by "advanced" users in a visual way, without the need for programming and during execution.

When a standard has not yet emerged or there are proprietary technologies that offer more complete functionality, the strategy is to provide a proprietary solution, or a solution based on an open-source alternative that provides the basic functionality and to provide connectors to marketplace products, if possible, through standard interfaces. To the greatest extent possible, this functionality is planned to be optional, since minimal dependency is sought on proprietary solutions or projects that may become unsupported.

Page 9: What is Ontimize?

The following are the technologies currently used or supported: ▪ Server: Java EE/Spring. Persistence in JDBC or JPA.

▪ Desktop user interface: Java SE (Swing/FX).

▪ HTML5 web/mobile user interface: Angular and Cordova (hybrid app).

▪ Report engine: Jasper Reports.

▪ Business logic engine: Proprietary branch of an open-source project by Automated Business Logic, in which imatia actively participated and contributed co-financing. The original project is licensed with the Mozilla Public License 1.1 and can be downloaded from Source Forge. This component requires the use of JPA and is optional.

▪ Process engine (workflow): Proprietary development based on the XPDL standard. Connectors with jBPM and IBM Filenet.

▪ Documentary repository: Apache JackRabbit (JCR). CMIS connector for use with Alfresco, Nuxeo, Filenet, and the like.

▪ Database engine: JDBC for Oracle, PostgreSQL, SQL Server and more, as well as Mongo DB and others.

▪ Operating system: Windows, Linux, Mac OS, iOS and Android, among others.

Page 10: What is Ontimize?

So, I would depend on Ontimize?

Page 11: What is Ontimize?

Yes, to a certain extent. However, being based on standards and being open-source, the code that makes up Ontimize is not very different from the one that an internal IT team would have to develop in order for your company to have a similar type of corporate framework or architecture that would serve as a reference to standardize internal developments. This team would be made up of employees who could leave the company at any time for any reason. The advantage of opting for Ontimize is that your company does not have to make the investment and has the support of a company that has spent years investing in this field and with which you can sign a binding contract.

Ontimize is developed and maintained by Imatia Innovation, S.L., a company located in Europe (Spain), with an international presence, more than 11 years of existence and a staff of more than 100 engineers dedicated to software development. imatia uses Ontimize to develop its own products and to offer customized development services to corporate clients, usually large companies and public administrations. Although imatia is aware of the potential of Ontimize to help other companies improve their software development processes and the business potential of providing services around this product, it has no interest in converting Ontimize into a commercial product with private use license, because the open and free nature of Ontimize gives its corporate clients the assurance that they can continue to operate their applications without any risk.

Ontimize is developed and maintained by the company Imatia Innovation, S.L., with an international presence and more than 11 years of existence.

Page 12: What is Ontimize?

What is the difference between Ontimize and a RAD toolkit?

"Rapid Application Development" tools, now also called "Low Code" or "Citizen Developer", are intended to allow the development of applications by people who do not want or do not know how to develop software. From an abstract or conceptual model, which usually allows for def in i t ion in a v isual way, they generate code automatically for various platforms (such as Java or .NET) or generate a formal representation of the model which is interpreted at runtime (Model Driven Development). There are many examples of tools which have attempted to do this, from Filemaker, Access, or Visual Basic; to more

Ontimize is a technology designed to be used by professional developers.

Page 13: What is Ontimize?

recent platforms such as Mendix, Force.com, or Outsystems. Although these tools allow relatively simple applications to be created very quickly, professional developers tend to reject them because they are too cumbersome, they do not allow them to optimize the operations they consider critical or to add certain unique features. Often, they find themselves devoting much of their effort to finding a way to do "tricks" (work-arounds) to get what they want. In addition, professional developers like to program and figure things out themselves, so they get tired with these tools

Some companies choose to use these tools with people who are not experienced programmers (such as recent graduates, consultants, accountants or administrators). The problem with this approach is that if the goal is to have robust, scalable corporate applications that guarantee data integrity, it is important to have people who understand what is happening below the interface level and the implications of their design decisions. Finally, technicians do not like these platforms and consultants do not like to develop applications. Ontimize is a technology designed to be used by professional developers. Applications are created using the development environments (IDE), the usual command line tools (CLI) and the most popular frameworks (such as Spring or Angular). What Ontimize does is provide architectures, components and functional modules that allow automation of 90% of the work typically required for the development of management applications. This frees programmers from having to do that work and provides the development team with a solid foundation to create their applications in a uniform manner. The development team has complete freedom to overwrite or replace any functionality provided by Ontimize or extend it in a completely controlled manner and compatible with future improvements.

Ontimize includes Citizen Developer type tools for the design of forms, processes, reports and the like. These tools are components that can be integrated into any application to allow users to have a high degree of personalization.

Page 14: What is Ontimize?

Could I instead simply use the same frameworks that Ontimize uses?

The programmers who develop in Ontimize use these frameworks daily.

Of course. In fact, the programmers who develop in Ontimize use them daily, so they are not using something "weird" that excludes them from being hired elsewhere.

However, to get the same degree of productivity obtained with Ontimize in your organization and to ensure that the applications that are developed follow uniformity criteria, you would have to have an "IT architecture" team in charge of building and maintaining an equivalent set of architectures, components, and functional modules. The team would also have to take charge of writing technical documentation and training the personal who join the development process.

Page 15: What is Ontimize?

Ontimize solves the common needs of a management application.

This is expensive and to do it well you need to have a team very experienced in these tasks, which is difficult to recruit or train. The team that develops Ontimize has been doing this for more than 15 years and is dedicated to it full time. If this is not the core business of your company, it does not make sense to devote resources to it.

This extra effort is necessary because the organizations that are behind these "standard" frameworks are led by huge multinationals (Oracle, IBM, Google, Microsoft, Apple, Amazon, or Facebook; to name a few) are looking to attract the greatest of programmers possible to their technology platforms, and do not have the goal of making money with software development tools. Instead, they aim to sell more of their server infrastructure software, and more recently their services in the cloud (IaaS). To attract people to these infrastructure platforms, their developers focus their efforts on solving generic needs which are applicable to a variety of types of applications (for example: management, games, social networks, or media). That these companies oversee the most complex aspects and lead the sector, and do the "heavy lifting", is great because all of us who dedicate ourselves to the professional software development benefit.

These standard frameworks offer developers a lot of freedom when it comes the development of applications. This freedom involves making many decisions and the implementation of these decisions involves a lot of effort, as well as a high degree of coordination and discipline.

Page 16: What is Ontimize?

Why has imatia invested in Ontimize only to make it free?

Whenever possible, the imatia development teams use Ontimize, both for the development of products (their own or those of allies) and for the development of software for their clients, which are their main sources of income.

Ontimize offers Imatia a high degree of productivity, allowing then to transfer great value to their customers, get to the market faster, and to improve the return on their investments. It also facilitates the maintenance and evolution of these products, as well as a multitude of mission-critical systems especially developed for large customers and that are currently in production. It even facilitates the conversion of solutions that were originally developed specially for certain clients and that now, with their authorization, are highly configurable commercial products. The Ontimize team provides service to these internal teams and the investment that the company makes in it is more than justified.

We released Ontimize because we understand that the relationship we must have with our clients and allies must be one of mutual interest and not of captivity. We think that if our clients succeed in their projects and businesses thanks in part to our help, there is no reason why they would not want to continue counting on our support and inviting us to participate in their projects. However, we understand that sometimes our clients and allies will want to approach their projects with their own or third-party resources, so we try to provide the means to do so without hindrance or obstacles. For us, the important thing is to be able to participate so long as we contribute value.

After many years of doing this, we have learned that this open approach has brought us more advantages than disadvantages, creating new opportunities and reducing barriers to collaboration.