SID 3

SID3 is a Java EE application development platform that saves 90% of the code written compared to other modern platforms.

The goal of SID3 is to program only the business logic and eliminate the need to code the user interface and database access and definition.

With SID3 the user interface and database definition are done in one XML file per view. In this file, the field name and type, the relationships to other views, the structure of the user interface and the labels are defined.

SID3 automatically creates and updates fields, tables, and relationships in the database, eliminating database access errors due to obsolete database definition.

SID3 automatically builds the page in the users's browser providing an excellent user experience that works on computers, tablets and phones. SID3 frees the programmer from writing HTML, CSS and JavaScript code.

SID3 offers the programmer an API to access and manipulate the database without having to develop SQL queries. The programmer focuses his work on coding business logic, for example calculating the price of an item by applying price lists, discounts and sales policies.

SID3 is very efficient in memory and CPU usage, which makes it possible to develop applications that service thousands of concurrent users with low computational resources.

SID3 implements JSON fields, that is, a field in the database contains a JSON object. SID3 is responsible for rendering the form in the user's browser and the content of the fields can be manipulated by SID3 in the business layer and in SQL in databases that support JSON fields.

Advantages

Writing little code (“low code”) offers several advantages:

  1. Significantly reduces development time.

  2. Enables Agile prototypes and iterations.

  3. Reduces maintenance effort.

  4. It eliminates database access errors.

  5. It eliminates user interface errors.

  6. It eliminates errors due to changes in the database structure.

Integration

SID3 offers APIs for the generation of reports in Excel, PDF, CSV and TXT, sending emails and other auxiliary functions for the development of business applications.

SID3 integrates with Apache Lucene, allowing very fast full-text searches without generating database load.

It is possible to extend the SID3 API to manipulate NoSQL databases using the native SID3 API.

Compatibility

SID3 requires Java 11 or newer.

SID3 requires a Java EE Application Server like Apache Tomcat, GlassFish, JBoss, IBM Websphere, etc.

SID3 is compatible with MySQL, Postgres, DB2, Oracle and any SQL database engine with a JDBC driver.

SID3 applications can service any client that can make a http request and process JSON, such as JavaScript, Java, C++, C#, Python, etc.

A Bit of History

Marcel Guzmán de Rojas Wesner wrote SID1 in C in 1988, achieving the goal of reducing 90% of the code by defining the user interface and database and reducing application programming to business logic.

The SID1 approach turned out to be very successful, hundreds of applications were developed with SID1, some of which are still operating in 2022.

SID1 is cross-platform and runs under Unix, DOS, AIX, Windows and Linux. The C source code of the application works on all platforms with sole recompilation. SID clients for Windows can connect to Unix servers even from other platforms such as Digital Alpha or IBM RS/6000. In 1992 SID1 recognizes the mouse in DOS and in 1994 SID1 implements BLOBS of up to 64MB allowing the storage of images and documents in the database. SID1 has its own database manager. To maintain cross-platform compatibility SID1 relies solely on stdlib.

In 2008 Marcel Guzmán de Rojas Wesner led the development of SID2 in Java using GWT and Hibernate. SID2 was database independent and served the purpose of generating the user interface and manipulating the database based on a definition. However, the API did not achieve sufficient abstraction of the presentation and persistence layers leading to insufficient coding savings. Several applications were developed with SID2, all of them were rewritten with SID3.

In 2013 Marcel Guzmán de Rojas Wesner rewrote SID3 from scratch, meeting the original goal of 1988: Reduce 90% of the code thanks to the abstraction of the user interface and access to the database.

SID3 is a 100% Web 2.0 application, that is, it operates exclusively through WebServices. SID3 applications have a JavaScript client that is responsible for making the calls to the WebServices and dynamically building the HTML page in the browser. This is very efficient because it frees the server from the task of generating the HTML page, the server simply sends a JSON message that has both the content and the specification of the page. The JavaScript client only uses Bootstrap and JQuery, everything else is written in sid3.js, resulting in a fast, efficient, and lightweight client.

The database abstraction API in SID3 is self-developed, resulting in a much faster and lighter implementation than Hibernate.

SID3 has minimal dependencies on third-party libraries, which makes it very efficient, small, and easy to use. SID3 is based on a servlet container (e.g. Apache Tomcat), it uses Apache POI to generate Excel reports and Apache Lucene for full text search.

Today hundreds of applications developed with SID3 operate efficiently. SID3 is an active project that is constantly being enhanced by increasing functionality and adopting new technologies.