JADE programming language
Encyclopedia
JADE is an object-oriented software development and deployment platform. It has its own programming language that exhibits a seamlessly integrated application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 and object database
Object database
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming...

 management system. It is designed to be an end-to-end development environment, which allows systems to be coded in one language from the database server
Database server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client–server model. The term may also refer to a computer dedicated to running such a program...

 down to the clients
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....

. It also provides APIs for other languages, including .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

, Java, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 and Web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

s.

As a programming language, its main competitors are Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and C#, while as a database it competes with other object-oriented databases and post-relational databases such as Versant
Versant Object Database
Versant Object Database is an enterprise grade object database supporting massive concurrency and large data sets provided by Versant Corporation...

, Caché
Caché (software)
InterSystems Caché is a commercial object database management system from InterSystems Corporation. It provides object and SQL access to the database, as well as allowing direct manipulation of Caché’s underlying data structures. The company claims Caché is the world’s fastest object database...

 and Matisse as well as traditional relational database software packages such as Oracle
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....

 and Microsoft SQL Server
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...

.

Using the JADE platform requires per-process fees to be paid. A free limited licence is available for development.

Language

In syntax, JADE is very similar to Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

; its syntax is based on the language Modula-2
Modula-2
Modula-2 is a computer programming language designed and developed between 1977 and 1980 by Niklaus Wirth at ETH Zurich as a revision of Pascal to serve as the sole programming language for the operating system and application software for the personal workstation Lilith...

, which was derived from Pascal. As a newer language, JADE includes innovations lacking in Pascal or Modula-2, however it lacks certain features of other modern object-oriented languages such as C# and Java.

Programming model

Like all of the other popular programming languages used to create database-driven software, JADE is fully object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

. JADE was designed to have all the most important features of object-oriented programming, but it was also designed to make programming simple, and so does not exhibit the full range of tools that some other languages do. For example, JADE does not support the overloading of methods or operators. This may seem like a big loss to some programmers, but for programming database applications which is what JADE is designed for, the parts that are left out do not end up being major drawbacks, as they are almost never needed. One notable feature that JADE lacks is parameterised constructors and this leads to some dangerous consequences in that one can never know if an object has been properly initialized.

Classes in JADE are kept together in schemas
Logical schema
A Logical Schema is a data model of a specific problem domain expressed in terms of a particular data management technology. Without being specific to a particular database management product, it is in terms of either relational tables and columns, object-oriented classes, or XML tags...

. Schemas serve the same purpose as Java package
Java package
A Java package is a mechanism for organizing Java classes into namespaces similar to the modules of Modula. Java packages can be stored in compressed files called JAR files, allowing classes to download faster as a group rather than one at a time...

s or namespaces
Namespace (computer science)
A namespace is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols . An identifier defined in a namespace is associated only with that namespace. The same identifier can be independently defined in multiple namespaces...

 in .NET, but they are much different in the fact that schemas have a hierarchy, and inherit classes from superschemas. This becomes useful especially when programming using the model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 methodology, as model classes can be put in one schema, then the controller and view classes can be built on top of the model classes in a subschema.

Program structure

JADE applications are structured quite differently from most programming languages in the fact that JADE programs are not developed by writing code into long files and then compiling all the files together at once. JADE programs are actually developed using a user interface that allows programmers to visually create classes
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 and define their properties and methods. Instead of locating methods in large files, programmers select the method they would like to edit and only the code for that particular method is displayed. Also instead of compiling all the code of a program at once, in JADE, each method is compiled individually as soon as the method is completed, meaning code can be checked immediately.

All the code for a JADE application is stored in its object-oriented database. This has several advantages. First, it allows for multi-user development, as the database maintains concurrency control. Second, with each piece of the code being a separate object in the database, in a lot of the cases it is possible to recode the system while it is live and online as long as the parts of the system being changed are not in use.

Features

The main goal of JADE was to give programmers what they wanted — a seamlessly integrated programming language that would allow developers to just create one application that would go from end-to-end instead of having to write three separate applications for the database server
Database server
A database server is a computer program that provides database services to other computer programs or computers, as defined by the client–server model. The term may also refer to a computer dedicated to running such a program...

, application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 and presentation client and then write the code for them to communicate with each other.

Object database

The most striking difference between JADE and other object-oriented programming languages is that its object database
Object database
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming...

 is a native part of its language. For example, when creating an object in JADE, it can be created as transient or persistent. Creating an object as transient is just the same as creating objects in other object-oriented programming languages. The object is simply created in memory, and then lost when the program ends. On the other hand, when an object is created as persistent, when the program ends, the object will still exist and be there the next time the program starts up. In other words, when an object is persistent JADE automatically works in the background to store and retrieve the object in the database when necessary. Persistent objects can be distributed across multiple co-operating servers, with JADE automatically handling object caching and cache coherency.

There are very few differences between manipulating transient and persistent objects. It has been said that JADE makes it appear to the programmer as if all the objects in the entire database were in local memory. Most of the time, JADE's object-oriented database is used in a multi-user system, and so this statement could be extended to say that JADE makes it appear to the programmer as if all the objects in the database were stored in some shared memory that all users connected to the system could access, even from different computers.

With all of the program code centralised on the database server as well the data, JADE achieves its goal of an end-to-end system, as JADE presents such a level of abstraction that all client nodes can be programmed as if they were running on the database server. This is very desirable to most database programmers as they don't have to take several different technologies and link them together, they just create one application for everything.

JADE's database is also inherently object-oriented, and so it eliminates the performance loss in an object-relational mapping
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...

 system where objects must constantly be converted from object-oriented form to relational form. Like all other commercial database products, JADE is [ACID]-compliant and has all of the standard features such as atomic transactions, locking, rollback, crash recovery and the ability to keep one or more secondary database server
Secondary database server
A secondary database server or SDS is a database server that is kept in synchronisation with the main database so that if the main database goes offline, the secondary database server can be used instead...

s synchronised with the main database for backup, disaster recovery and performance reasons.

JADE also provides a Relational Population Service that enables automatically replicating objects from the main database to one or more relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

s. This allows JADE systems to interoperate with relational databases for reporting, business intelligence
Business intelligence
Business intelligence mainly refers to computer-based techniques used in identifying, extracting, and analyzing business data, such as sales revenue by products and/or departments, or by associated costs and incomes....

 and data warehouse
Data warehouse
In computing, a data warehouse is a database used for reporting and analysis. The data stored in the warehouse is uploaded from the operational systems. The data may pass through an operational data store for additional operations before it is used in the DW for reporting.A data warehouse...

 purposes. As of 2010, the relational databases supported by this feature are Microsoft SQL Server 2000/2005/2008.

Three-tier model

Often for database-driven software, the three-tier methodology is followed. This involves applications being split into three tiers — data storage, processing and presentation. In the data storage and processing tiers, JADE systems are a collection of co-operating servers, called nodes
Node (networking)
In communication networks, a node is a connection point, either a redistribution point or a communication endpoint . The definition of a node depends on the network and protocol layer referred to...

, and multiple nodes may be involved in each tier. Each type of node has a different name and all are capable of manipulating objects and executing business logic. A collection of nodes can be deployed across one or several machines. Database servers handle data storage and can also execute business logic, while application servers handle processing. In a three-tier model, presentation clients provide the user interface. JADE also provides a two-tier client that combines the abilities of an application server and presentation client. Traditionally, these three tiers would be created by combining three programs and having them communicate to form one system. Having the different programs separate like this has many advantages, the main one is that the system becomes scalable, that is, raising the power of the system involves simply adding more nodes.

Designing a system like this gives the programmer a decision to consider every time they want to code in a particular function. They need to decide whether the function would run best on the database server, application server or presentation client before they begin coding as it will be difficult to change that decision once the functionality is coded into one of the tiers.

This is different for JADE applications, as they are coded as one application from end-to-end. When creating a JADE application, the programmer can think as if they were creating a program that will be running on the database server — as if all the data storage, processing and presentation were happening on one computer. When the program runs on three tiers, JADE automatically knows to run all the code by default on the application server, and to send database requests up to the database server and user interface information down to the presentation client. However, it is very easy for the programmer to switch the location at which a particular method is run and move it to a different tier by changing the method signature. Because of this, the decision on where a particular piece of code should run can be made late in the development cycle, and refactoring code to run on different parts of the system ends up being a lot easier because of the way JADE allows end-to-end development of software.

Types of Clients

Programmers have the facility to allow three different kinds of clients to connect to a JADE system. These three types of clients are named:
  • JADE Forms
  • HTML Documents
  • Web Services


In the same schema, a JADE developer can create many completely separate applications which may provide different interfaces to access the same database.

JADE Forms

JADE Forms applications are made up of forms, as the name suggests. Clients need to connect through the JADE Smart Thin Client
Thin client
A thin client is a computer or a computer program which depends heavily on some other computer to fulfill its traditional computational roles. This stands in contrast to the traditional fat client, a computer designed to take on these roles by itself...

 or Standard Client to be able to run applications that use JADE Forms.

The Smart Thin Client works by connecting to an Application Server which generally does all the processing on behalf of the Smart Thin Client, meaning the thin client only needs to be responsible for displaying forms and taking input. This means the computer running the thin client does not have to be a very powerful computer, and it does not require a fast network connection as it is not loading data from the database — JADE thin clients are often run over a dial-up connection. This is the reason they are called thin clients, as there is not a heavy requirement on computational power to run these clients.

The Standard Client is just the Smart Thin Client combined with the Application Server on one machine. In this case, the node running the client does all of the processing as well as the presentation. Standard clients have greater demands on computational power than thin clients, as they must load data from the database as well as do their own processing.

The advantages of using JADE Forms include:
  • Out of the three kinds of clients, JADE Forms provide the shortest development time of JADE applications.
  • Allows developers to use the same technology end-to-end.
  • Smart thin clients can be packaged up so they can be installed and run on client computers in several clicks.


The disadvantages are:
  • Cannot reach a worldwide audience as is possible on the World Wide Web.


JADE Forms have an interesting twist to them though. It is actually possible to run a JADE Forms application through a web browser by changing its mode to web-enabled. When this happens, JADE automatically generates HTML code to make pages that resemble the forms and controls
Widget (computing)
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given...

, without any modifications to the code. This is a very quick way for programmers that are not competent with HTML and other web technologies to deliver a program through the web.

HTML documents

The World Wide Web is seen as the fastest way to reach vast numbers of people. JADE supports deployment of JADE applications to the web through its HTML documents feature. These work very similarly to ASP.NET, where developers create templates of HTML pages and leave parts in the template for the program to fill in.

The advantages of using HTML documents are:
  • Allows the application to reach a worldwide audience.


The disadvantages are:
  • When JADE applications use HTML documents, they are no longer using the same technology from end to end. Checking at the front end of the system may be done through JavaScript for example.
  • Offloading some of the processing to front-end clients is no longer as easy or secure.

Web services

Web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...

s are used to allow different programs to communicate with each other from remote locations in an object-oriented form. Web services cannot be accessed directly by human users. One of the uses of Web services with JADE is to allow other technologies such as .NET or Java to use JADE as the backend object-oriented database. Web services also allow JADE systems to interoperate with services provided by other non-JADE systems.

Interoperability

In addition to Web services, JADE is also capable of interfacing with other programs through language APIs (including .NET, Java, C/C++), DLL calls, ActiveX/COM objects and .NET assemblies. This allows other programs to access objects and execute methods, and can be used to provide a different interface to a JADE application. JADE 6.2 provided a Java API, .NET Assembly integration and the ability to run Smart Thin Clients on Windows Mobile devices. JADE 6.3 provides an API for .NET languages.

Multilingual abilities

JADE natively supports multilingual programs. It does this in several ways:
  • Strings can be marked as translatable, which means they will be change depending on the current language.
  • Many versions of the same form can be created to suit each language. This means interfaces can look entirely different from one language to the next.
  • The developer has methods available to access the current locale
    Locale
    In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface...

     of the system and so they can implement their own language-dependent features.


JADE will automatically switch to the language it detects on the system if the language is provided by the developer.

Portability

Currently JADE applications can be run on Windows and Linux. Similar to Java, JADE strives to allow programmers to develop applications once and be able to allow them to run on both of these platforms with minimal changes. JADE 6.2 allows Smart Thin Clients and a specialised Standard Client to run on Windows Mobile devices.

Hello World!

This is the "Hello World!"
Hello world program
A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...

 code in JADE:

helloWorld;

begin
app.msgBox("Hello, World!", "Hello, World!", MsgBox_OK_Only + MsgBox_Information_Icon);
end;

or

helloWorld;

begin
write "Hello, World!";
end;

History

JADE was originally conceived by Sir Gilbert Simpson
Gilbert Simpson
Sir Gilbert "Gil" Simpson, KNZM, QSM is a New Zealand businessman and computer programmer.-Early life:He was born in Christchurch, New Zealand and raised in the Waikato...

 and is currently developed by the Jade Software Corporation.

The first version of JADE was JADE 3, released September 1996.

The current version is JADE 7.

See also

  • Database management system
    Database management system
    A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...

  • Object-oriented programming
    Object-oriented programming
    Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

  • Object database
    Object database
    An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming...


Tutorials and resources


Media coverage

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK