a 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 create a seamlessly integrated programming language that would allow developers to create one application that would go from end-to-end instead of having to write three separate applications for the database server, application server 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 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 similar to 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. So, 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 so 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 JADE makes it appear to the programmer as if all the objects in the database were stored in shared memory that all users connected to the system can access, even from different computers. With all of the program code centralised on the database server as well the data, all client nodes can be programmed as if they were running on the database server. JADE's database is inherently object-oriented, and 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 servers synchronised with the main database for backup, disaster recovery and performance reasons. To interoperate with relational databases for reporting, business intelligence and data warehouse purposes JADE since 2010 has provided a "Relational Population Service" that enables automatically