Icon General Architecture

Elevate Web Builder allows developers to easily create compact and dynamic single-page web browser applications that rival the functionality of desktop applications, as well as web server applications that can provide API access to content, data, and other back-end functionality, all using the same source language and syntax.

At run-time, an Elevate Web Builder web browser application has the following architecture:

Image

The web server application can be any back-end application (PHP, .NET, Python, Go, etc.) that can be called using a server request to a web server (IIS, Apache, NGINX, etc.) and return a response. However, the Elevate Web Builder IDE has been specifically designed to work seamlessly with the included Elevate Web Builder Web Server and Elevate Web Builder server applications that are created, compiled, and deployed within the IDE. The Elevate Web Builder Web Server includes a runtime that allows you to execute and remotely debug the Elevate Web Builder server applications, allowing you to create and execute both client and server applications using the same source language in the same IDE. In addition, the Elevate Web Builder Web Server includes the ability to deploy and execute native server modules created using Delphi XE2 or higher. This is a good option for developers that have a large investment in an existing Delphi codebase and want to re-use as much of the existing code as possible without making any significant changes.

The Elevate Web Builder Web Server includes the following functionality:
  • Complete TLS (Transport Level Security) support for secure access, including the ability to force the redirection of all insecure requests to corresponding secure requests.


  • Complete session support, including the ability to control the length of the cryptographically-randomized session IDs (the session IDs are sent to the user agent using HTTP-only cookies in order to prevent cross-site scripting attacks).


  • Role-based access control, including the ability to create custom privileges, assign privileges to any server applications/native server modules or dataset commands, activate/deactivate roles and users, lock/unlock users for a period of time manually or based upon N authentication failures, and restrict the time of day when a user can log in.


  • Both HTTP request logging (CSV) and application-level audit logging (JSON), including the ability to download logs directly from the IDE for further analysis.


  • Server monitoring for various statistics (reads/writes per second, number of sessions, etc.) directly from the IDE.


  • A REST API for database access that automatically prevents SQL injection attacks and offers nested transactions and support for complex, database engine-specific SQL statements.


  • Complete content management, including the ability to upload/deploy client or server applications/native server modules with a single click, upload/download arbitrary content or files, and create and delete folders.


  • Server migration functionality that allows you to migrate all or a subset of server objects from one web server to another.


  • Remote debugging of server applications, including breakpoints and step/step into/step over functionality.
Information Most of the above-mentioned functionality is accessible using an administration API that the Elevate Web Builder IDE uses to perform the remote administration of the Elevate Web Builder Web Server. While the API is specific to the Elevate Web Builder Web Server, it is still a standard HTTP API and could also be implemented using a different web server or web server application platform such as Apache and PHP. The Elevate Web Builder IDE only requires that the implemented web server API conform to the required specifications, and has no specific implementation bindings to the Elevate Web Builder Web Server.

Please see the following topics for more information on the Elevate Web Builder Web Server:

Configuring the Web Server
Starting the Web Server
Web Server Request Handling
Web Server Security
Web Server Logging
Web Server Authentication
Web Server Database Access
Web Server Applications
Web Server Native Modules
Web Server Administration

Core Language
Elevate Web Builder uses an Object Pascal language variant for its client and server application source code. This language variant is very close to the Object Pascal language used by the RAD Studio and Delphi development environments from Embarcadero Technologies. Object Pascal was chosen as the language because it is a very easy language to learn due to its very English-like keywords, and because it is highly-structured and statically-typed, making compiled applications highly-resistant to easily-avoided run-time type errors. For more information on the language in Elevate Web Builder, please see the Language Reference section of the manual.

Integrated Development Environment (IDE)
The IDE in Elevate Web Builder is also modeled after the RAD Studio and Delphi IDEs from Embarcadero Technologies, and is specifically designed to facilitate rapid application development (RAD). Rapid application development is a development process that allows a developer to quickly proceed from an application design to a fully-functional application by tightly integrating the design portion of application development with the coding/compilation/deployment portion of development. Please see the Using the IDE topic for more information on the layout and usage of the IDE.
Image