Child pages
  • Intro to Servoy Concepts
Skip to end of metadata
Go to start of metadata

In This Chapter


As is the promise of Java, applications developed in Servoy can be deployed to all modern operating systems, including Windows, Mac, Linux, Solaris, etc. without the need to rewrite or recompile code.


Applications written in Servoy can also be deployed to any modern browser, including IE, Firefox, Safari, Opera, Chrome, etc. There is no need to rewrite or tweak an application to ensure a consistent experience across all browsers and no proprietary protocols or browser plug-ins are ever used.

Single Code Base

Servoy offers multipleclient options and any application developed in Servoy can be deployed to either client without the need for any rewrite.


Servoy is NOT a database. There are plenty great databases out there and Servoy can connect any modern (and even some that aren't so modern) relational (and even some that are not relational) Database 

N-Tier Architecture

Servoy provides a powerful Application Server which brokers connections between clients and back-end resources. This architecture is far more favorable to the 2-tier architecture used by most 4GL tools, where clients connect directly to back-end databases. An application server offers the following advantages over a 2-tier setup.

  • Greatly reduced load on the back-end databases.
  • Increased performance
  • Increased Scalability
  • Increased Security
  • Ability to operate over a WAN (Wide Area Network)
  • Data Broadcasting: The ability for all clients to see real-time data changes, a feature unique to Servoy.


Servoy applications never have to be installed on the client machine.

Smart Client applications will download and install automatically using Java WebStart technology. In fact, developers can easily roll out new changes to users, with a single click to export a new build to the Application Server. The Application Server does NOT have to be restarted and connected clients do NOT have to be shutdown. Moreover, the Application Server supports versioning for roll-back, roll-forward capability.

Simply put: No Installation. No Maintenance.


This chapter provides an overview of the most important concepts in the Servoy patform


Basic Description


A Solution is a single application that can be run in any of the Servoy Clients. It contains forms, business logic and datalayer definitions.


A Module is solution that is contained within another Solution.


A Form is an object that provides a UI and/or contains business logic. The UI of a Form is built up of Form Parts, which in turn contain Elements.

Abstract Form

An Abstract Form is a Form that does not implement any Form Parts and as such can not be shown to the user, but can contain business logic and can act as a Super Form for Child Forms

Super Form

A Form that is used as a Parent for a Child Form through inheritance

Parent Form

Alias for Super Form

Child Form

A Form that extends another Form through inheritance

Form Parts

Horizontal bands on the Form that together make up the vertical dimensions of a Form, like a header, body and footer.

Form View

The 'view' mode of the Form. There are three modes available:

  • TableView: the body part of the Form shows multiple Records in a grid of data, with each record occupying one row
  • RecordView: the body part shows 1 record and the elements can positioned any way the developer thinks suit
  • ListView: the body part shows multiple records and the display of each record is equal to how the record would be displayed in RecordView


A UI widget that can be placed on a Form, like a Field, button, Label or TabPanel for example


A Element that can contain another another Form, like a TabPanel or SplitPane


A UI widget that is not a core Element in Servoy, but a drop in extension to the built-in list of Elements


UI is short for User Interface. In Servoy a UI is provided by Forms with their Form Parts which contain Elements


A file object, usually images.

Media Library

The library in which Media's are stored.


The mechanism of creating new Forms (Child Form) that extending existing Forms (Super or Parent Form).

Business Logic

The logic written by developers in JavaScript


The scripting language used in Servoy to write business logic

Scripting Layer

The virtual layer in the Solution where all the execution of business logic takes place

Scripting API

The predefined set of functions by Servoy to facilitate common actions, for example the API of all the datalayer components for easy datamanipulation


A drop-in extension to the Scripting API


A single bit of executable logic in JavaScript


A JavaScript function that is tied to an object is called a method of that object


A named property that can contain a value


A JavaScript execution context within the Solution. A scope contains variables and functions. When the functions get executed, they are executed within that scope. Within Servoy there are a few types of scopes:

  • Solution / top-level scopes: These scopes are not tied to anything but the solution itself. A default 'globals' scope is automatically available when a solution is created (but can be removed by the developer). Other top-level scopes can be created by the user.
  • Form scope: each form has a scope attached to it, in which the JavaScript logic that is tied to that form is executed.
    If the Form is extending another Form through inheritance, the JavaScript scope also inherits the variables and functions defined in the parent Form's scope.
    A form has access to the calculations scope through a record.
  • Foundset scope: the scope in which Entity Methods and Table Events are defined and execute. The methods from the foundset scope have access to the calculation scope through a record.
  • Calculation scope: the scope in which Calculations are defined and execute. The calculation scope is a special scope that is meant just for the record itself.


The default top-level scripting scope inside a Solution or a Module.


The exposed objects in the Form scopes that are tied to columns and tables in the database.


A datasource is the identifier for an external source of tabular data, in most cases a table from a database.


A named property that contains data. The property can be tied to a element in the UI or can be interacted with in scripting.
A dataprovider can either be:

  • a variable in the scope of a Form, 
  • a variable in the global scope or 
  • the dataproviders of the selected record in a FoundSet


A object from the datalayer that provides the link from one datasource to another, based on one or more matches between the dataproviders in the datasource and an operator


An object from the datalayer that is used in the UI to provide selection lists and translations of internal values to display values


A FoundSet is a represention of a datasource as an object in the Solution. Each record from the datasource is contained in the FoundSet as a Record, making the FoundSet a collection of Records.   
A FoundSet is always linked to just one  datasource and can be interacted with through it's API in the Scripting Layer and can also be tied to UI through Forms.
A change made to the Foundset or any of it's containing Records is, when a save occurs, automatically persisted to the external source of data.
The FoundSet exposes the columns of the selected Record in the Foundset as Dataproviders.
FoundSets are tied to a datasource and retrieve records automatically in batches from the datasource when they are accessed through the FoundSet's scripting API or when they needs to be displayed in the UI. The FoundSet automatically manages the retrieval, caching and removal of records, in order to prevent high memory consumption or long loading times.


A Record is a representation of a record in a datasource as an object in the Solution. Records are contained in FoundSets


A DataSet is an object with inmemory


A dataprovider on datasource level, who's value is calculated by business logic and is exposed as a dataprovider on each Record in Foundsets based on the datasource

Unstored Calculation

A calculation that is not stored in the external source behind the datasource

Stored Calculation

A calculation that is stored in the external source behind the datasource. Calculations automatically become Stored Calculations if defined with the same name as one of the columns in the external source of data behind a datasource


A dataprovider that is an aggregation of a column in the datasource


The automated mechanism of Servoy to notify Servoy Clients that have data in memory to update their cache if the data was altered by another ServoyClient


The facility in Servoy to set a filter on a datasource, after which Servoy will automatically apply the filter to all interaction with that datasource


Designtime refers to everything the developer creates inside Servoy Developer that becomes part of the Solution. These are the Forms, the business logic written, the datalayer definitions etc.


Runtime refers to everything that happens while a Solution is running in a Servoy Client


The scripting API that allows developers to modify the design of the Solution at runtime


The mode in which a form can be set that allows user to resize and rearrange the Elements on the Form


The act of and tools for adding multi language and multi timezone support to a Solutions


Short for Internationalization

Smart Client

A native Servoy Client that automatically installs and updated itself on the client machine

Web Client

A browser based, fully Ajax aware Servoy Client, that executes all it's business logic on the Servoy Application Server, while rendering the UI using just HTML and CSS in a browserNG 

NG ClientA browser-based application of which the UI is rendered in the browser using pure HTML, CSS and a bit of JavaScript for event handling and communication with the Servoy Application Server (HTML5, CSS3 and websockets communication is used). The  business logic of the Solution that is running in the NGClient is executed on the Application Server for security reasons: the code of the business logic is not exposed in the webpage markup.

Headless Client

A Servoy Client that has no UI attached to it and runs on the Application Server and provides a Java API for interacting with all the business logic and forms contained in the Solution it runs

Batch Processor

A Headless Client that is configured on the Servoy Application Server to automatically start when the Application Server is launched

  • No labels