Forté Software
Forté is a proprietary application server that was developed by Forté Software and used for developing scalable, highly available, enterprise applications.
History
Forté was created as an integrated solution for developing and managing client/server applications. Forté 4GL consists of an application server, tools for deploying and monitoring an application and an object oriented proprietary programming language, TOOL . Given that TOOL only runs on the Forté application server, many users simply refer to their "TOOL" applications as "Forté" applications. The product itself was 3.5 million lines of C/C++ software, ported to approximately twelve different operating system environments, spanning the range from IBM mainframes and Microsoft Windows PC's.The first release of Forté 4GL was published in August 1994. After releasing this initial product, Forté Inc. proceeded to build several extensions including:
- Web Enterprise - an HTML-wrapper interface for rich-client applications to publish their screens through web servers.
- Forte Express - a rapid database GUI interface kit, released in July 1995.
- Conductor - a high-performance work flow engine capable of choreographing activities, released in March 1997.
- Forté Fusion - an integration backbone to link external systems using XML messaging and tie in with the [|Conductor] engine.
Sun declared the product's end-of-life, indicating no future plans to continue development of the product. Sun's official support of Forte ceased at the end of April, 2009.
Capabilities
Being an enterprise application development system, Forté supported close linkage to a number of different relational database systems, including Oracle, Sybase, Microsoft SQL Server, Informix, and DB2. These linkages could be via SQL embedded within the TOOL code, or via SQL constructed on the fly.It also had support for distributed applications: the developer would create an instance of a specific class, which would be placed on a user-specified server. Calls to methods through instance would be sent across the network transparently; the developer would not need to know the underlying details of how the call would be transmitted.
Programming Language TOOL
TOOL is an object-oriented language with the following features :- automatic garbage collection
- referenced based, no pointers
- single inheritance and interfaces
- supports multi-threaded programming
- integrated statements for database access
- event handling
- exception handling
- strong integration with GUI
- one common base class called
Object
begin
and end
. Comments are indicated by // or --, /*... */.Data Types
The Simple Data Types are:
- boolean
- float
- double
- char
- string
- Integer data types
- * i1, ui1
- * i2, ui2
- * i4, ui4
- * integer
- * short
- * int
- * long
- BooleanData, BooleanNullable
- IntegerData, IntegerNullable
- DoubleData, DoubleNullable
- TextData, TextNullable
Array of
. The first element of an array is indexed by 1.Variable Declaration
name : string = 'John';
result : integer;
dataArray : Array of IntegerData = new;
Conditional Statements
if result = 5100 then
...
elseif result != 0 then
...
else
...
end if;
case result is
when 1 do
....
when 2 do
....
else
...
end case;
Iteration, Loops
for k in 1 to 10 by 2 do
...
end for;
for dataItem in dataArray do
...
end for;
k : integer = 2;
while k < 14 do
...
k = k + 1;
end while;
Events
An event is posted e.g. by the following statement:
post EV_CustomerSet;
This statement posts an event named
EV_CustomerSet
. This event has one argument named "id".Events are handled by event handlers, for example:
event loop
preregister
register GeneralHandler;
...
postregister
waitTimer.IsActive = true;
...
when EV_CustomerSet do
...
when waitTimer.Tick do
exit;
when task.Shutdown do
exit;
end event;
Exception handling
begin
...
raise UsageException;
...
exception
when e : UsageException do
task.ErrMgr.Clear;
...
else
...
raise;
end;
Multithreading
A new thread is launched by a statement like
start task report.Print;