Introduction to Verj.io
Verj
Components and Architecture
This document provides a quick summary of the Verj.io system; it gives an overview what you can create, how it works and a little about the underlying architecture. It’s a good place to start if you are new to the product. For more information on any subject follow the links at the end of each topic.
Verj.io is a rapid application development environment that lets you:
The focus is on productivity throughout: the aim is to allow you to create your applications as quickly as possible. We provide a rich set of tools that allow you to deal with all the technologies that you need without necessarily knowing all the details, this includes HTML, CSS, Javascript, JDBC (databases), XML, Web Services, Email, PDFs and much more.
Let’s look at these three things in a little more detail.
In the Verj.io system, a web application is called a Form and this can be anything from publishing a few static information pages through to a multi-user, multi-page, complex application. The user can be running any device that supports a browser: phone, tablet, laptop, desktop. Here’s a quick look at some of the basic building blocks that you use to construct a form:
The four elements above are all contained inside a form. There are also a number of additional standalone elements that you create which a form can use, including:
resources.stockQueryWs.call();
More info: Introduction to designing forms, Form Editor
In Verj.io, a business process is called a Workflow Process which uses the same underlying framework as a Form and shares many of the same constructs: fields, tables, resources etc. Each workflow process consists of a number of tasks and you pull these together into a flow diagram that represents the business process. There are two task types:
The business process flow diagram will usually include both task
types joined together with decisions (branches) and splits. At runtime,
workflow processes are executed by the Workflow
Engine. The sequence of tasks to be executed might be fixed or it might be
dynamic: for example, if a loan
application gets approved then the workflow goes one way; if it’s rejected it
takes a different route.
Workflow processes also support escalations: these occur when process execution has failed to reach a specified point in the time allowed; for example a freedom of information request might require an initial response within 10 days and a final response within 30 days. You can configure the action taken when each escalation fires.
The status of all workflow jobs can be viewed and controlled using an administrator dashboard application.
More info: Workflow Index
A web service is an application that can be called by external programs (though it might also be called internally – by a form or a workflow process). Verj.io supports both REST web services (a RESTful Web Service) and SOAP web services (an Integration Service). In practice both of these services are really a cut-down form with all the user interface bits – pages and controls – removed.
More info: REST Web Services, SOAP Web Services
The system consists of two main components: Verj.io Studio and Server.
This is a standalone Java application and it is used to create and test all the various constructs – forms, workflow processes, integration services, scripts, resources etc – that comprise an application. These are collectively referred to as entities and this term is used throughout this documentation. These entities are saved in a workspace which is a local file system on the studio system; the entities themselves are mostly saved in XML format.
Each studio is linked with a test server and this server is used to test the applications as they are developed. Usually this test server is configured to be the Integrated Test Server – this is a special server packaged with the studio, which is started and stopped automatically as the main studio application is started and stopped. There is also an option to connect the studio to a full external server.
The studio can run on most platforms including Windows, Linux and Mac systems.
More info: Introduction to the studio, Starting, stopping, configuring the studio
This is a Java servlet application and can be either:
The server is highly scalable and can be clustered to support high transaction volumes.
The figure below shows the server architecture.
The server accepts two types of external requests via URL:
In addition to these external requests, the server also provides some internal services: this includes the Workflow Engine which works by monitoring its runtime database for tasks to run, and a Scheduler which can be used to run forms and other programs at scheduled times.
In all cases, the server loads the required entities from a workspace which acts as the server’s “database”.
The server can be administered and monitored using the Server Administration Application.
More info: Introduction to the server, Starting, stopping, configuring the server, Server Administration Application
Once you’ve created and tested your application, the next step is to deploy it, either to a test server or into production. To do this you collect the entities that make up your application – there are tools to do this - and then deploy them to a target server. The list of deployed entities can optionally be saved as a deployment package so that it’s easy to repeat the deployment. The changes are introduced into the target system in a controlled way so that any users currently running the application are not affected.
More info: Deployment Overview
So far we’ve been talking about a single developer. So how does this work if you’re working as a team? The best way to achieve this is to use a source control system such as SVN or CVS to contain the workspace file system and then check your work into and out of this. In fact it’s a good idea to use a source control system even if you’re just working on your own, as a source control system provides many advantages: backup, versioning, reversion, tagging etc.