# Softwell Maker

The Softwell Maker is an environment development. Designer uses visual forms and reports (WYSIWYG), business rules, and visually representing other actions using flowcharts.

## Where it all began

The Maker project was born in 2002, within Freire Informática Ltda. a software factory in Bahia that operates in the public area, which developed over 100 solutions based on the Softwell Maker platform since the first versions of the product. In 2004, Softwell Solutions Ltda was created to be a specialized company in the evolution and improvement of Maker and other tools to improve software development process.

## Understanding the Softwell Maker

The Softwell Maker platform is composed of two interdependent products, an IDE and a royalty-free runtime, respectively called Maker and Webrun. The IDE is in charge of recording all the specifications of the system within specific tables set up in a database, the Webrun reads these specifications and provides the ultimate application for the customer.
Using Softwell Maker so many steps from traditional development process are useless, skipped or automatically filled when we are developing software using this tool. Then we will experience not just a new tool, but a new way to run over whole software development process. We hope put some more information about this methodology in another article as soon as possible.

### Language Independent

Applications developed by Softwell Maker are not tied to a programming language, so they will always be technologically upgraded preserving the real value of software: the business rules.

### Main Features

To support the widest range of applications, the product offers a comprehensive list of resources and tries to do this in the most simple and intuitive way as possible, following a summary of the product capability:
* Access to multiple databases simultaneously;
* Production and consumption of Web services;
* Access Control, and audit logs;
* Support for HTTPS and client authentication;
* Exporting the source code to Java language;
* Database support: Firebird 1.5/2.0/2.5, PostgreSQL 8.0/8.1/8.2/8.3/8.4/9.0; Oracle 10G/11G; MS-SQL Server 2000/2005/2008, MySQL 5.0-5.5;
* Intensive use of AJAX;
* Support for themes (skins);
* Support for Firefox, Internet Explorer, and Safari;
* 3 layers Client / Server / Database;
* Self documentation;

## Integrated Development Environment (IDE)

The IDE of the Softwell Maker platform (which gives the product its name) currently in version 2.4 is an application for Microsoft Windows (win32) compatible with versions 2000, Me, XP and Vista (32 e 64 bits) of Windows; Softwell Maker platform is made up of a form designer, a report designer (MakerReport), flowcharts designer (MakerFlow), a set of wizards and tools to support the developer.

### Form designer

Used to develop the forms of application is a 100% visual approach availability to the developer of a very flexible set of components that can be added to the form and positioned through the mouse or keyboard, according to the WYSIWYG philosophy. The forms may or may not be connected to a table in the database, but can also be connected to other databases, whole or in part, by facilitating the integration of various databases.

### Reports designer

This allows for reports with visual support for graphics, table cross-references, and sub-reports groups at various levels. The generated reports can be executed in the environment Win32/WINE, or be exported to Jasper, a reports generator written in Java;

### Flow designer

Sometimes called MakerFlow or simply Flow, this is the component that allows the complete independence of the code, since the actions and business rules will be defined using a 100% visual approach, free from specifications of a programming language. The programming flow path allows only logic, allowing the team to concentrate efforts on implementing the details of what really matters to the customer: the business rules and not other details of the development software process, but must be followed reliable and stable application

### Wizards tools and support

There is a set of tools to support the development in the Softwell Maker platform. We can mention the following ones:
* New form wizard – Uses the database definition to infer the corresponding registration form;
* Multi-form Creator – Allows automatically generation of forms of several tables at once;
* Access control to the project – which allows users to define determined software artifact (form, report, flow, …)
* Automatic versions control of system objects – The Softwell Maker IDE automatically
supports the latest copies of each object changed, restoration points of all software;
* Project Packer – saves all the software into a single compressed file, allowing any to be carried to a different environment;
* Task Scheduler - Allows scheduling of the flow execution in a specific date or pattern.
* Registry of functions – The Maker API can be extended by this interface, enabling the development of applications that are of the native support of the Softwell Maker IDE to some kind of appeal that might be necessary, or even to change the behavior of some existing resource;
* Data Dictionary – This feature allows the tool to handle the database through user-friendly names of tables, views and the infields.
* Repository – Allows the reuse of objects between several projects, allowing a single object to be available simultaneously in various projects;

## Running the Software (Webrun)

The Webrun can be defined as the virtual machine on which the applications are executed by the Softwell Maker platform. It is responsible for providing the resources necessary to correct software execution. Currently the Webrun is available for the Java and .NET platform. Over Java, the application is distributed as a standard WAR file, and was approved for the following application servers: Tomcat 5.5/6, JBoss, Weblogic, and Websphere. This application is that which provides the technological platform on which the software is implemented, namely access control, the so-called AJAX, the database connections, the load balancing, connections pool, and a number of countless other services used in the application, fully provided by Webrun.

### Webrun Architecture

The picture below illustrates some details from Webrun internal architecture and a default execution environment of an application built by Softwell Maker, where business rules can run into three layers: client (JavaScript), server (Java/.NET), and database (Oracle, MS-SQL Server, PostgreSQL, …). We can also realize internals subsystems of Visual Interface Builder (HTML, JavaScript, CSS, PDF, ...), Database Management (Transactions, Procedures, Sequences, …), and System Manager (User’s session, authentication, permissions, …).

### Other Features

* Flow Compiler - Performs a flow compilation and changes detecting in flows even in "development mode", working on the JIT philosophy;
* Access Control and log - Makes sure of the identity and permissions of the user, and records any changes that the user places;
* Debugger flows - Allows support of the implementation of the flows, stop or pause execution, inspect the variables and class stack;
* System Export - Allows the generation the source code of the application as Java application, or a WAR file for publication in an application server;
* JDBC - Access to the database is done using the JDBC drivers;
* JSTL - Used in the construction of JSP's.