r2 - 31 Aug 2006 - 17:15:42 - PeterNicYou are here: Wiki >  AppLogic2 Web > ApplicationsOverview
led-green December 24 - AppLogic 2.4.7 is now available and is the latest production release!

Applications


Applications are the main entities in AppLogic. Making distributed, scalable web applications easy and logical is the main purpose behind AppLogic.

An AppLogic application is a single system object that includes everything necessary to run a specific distributed application such as a CRM system, a PBX or an e-commerce application. It includes the application code, HTML pages, templates and scripts, databases and content, but also operating systems, middleware, file storage, load balancers, firewalls and all configuration information needed to reconstruct and run the application on an AppLogic grid. In addition, each application carries a defined resource budget - a minimum set of hardware resources including CPU, memory and bandwidth that are required to run the application, and the maximum resource quota allowed for it.

AppLogic applications are hardware-independent and do not include any references to hardware such as servers, IP addresses and host names, storage LUNs, etc. This enables AppLogic to provision hardware resources for the application on the fly, to run multiple instances of the same application on the same grid, and to start the same application on different grids without requiring modifications. The process of preparing an application to run is not unlike the "fixup" performed by traditional operating system loaders when preparing an executable file to run.


AppLogicApplication600x450.png

Figure 2. AppLogic Application.


Figure 2 shows the internal structure of an AppLogic application. A typical application includes three major types of data:

  • Application Setup - includes configuration parameters such as DNS domain name, public IP addresses, specific hardware budget, admin user name and password and similar values that vary from one instance of the application to another. When instantiating the application, the user can specify setup parameters without having to know anything about the internal workings of the application.

  • Application Volumes - one or more volume images containing the application-specific code and content. A typical application will have a single volume on which HTML files, scripts, Java beans, etc. are deployed, another volume for the database and a third for the visual/video content. This is by convention only - any combination of volumes is possible.

  • Disposable Infrastructure - a set of disposable infrastructure appliances, such as gateways, firewalls, load balancers, web servers, application servers, database servers, file servers, mail servers and so on, and a main assembly that ties them together into a logical structure capable of running the application. This includes all information required to configure each appliance and tie them together.

AppLogic provides a powerful interface that makes it easy to manipulate a distributed N-tier application as one whole. For example, you can create, destroy, instantiate and clone applications; the instantiation will create a new copy of the application ready to run from a known initial state of the databases and other persistent storage, while the clone operation creates a new application that inherits a snapshot of the state from the original application at the time it was cloned. An applications can also be exported into a portable, compressed archive and then imported and ran on a different grid.

Since each AppLogic application is stored as a set of text and binary files, it can be checked into any existing version control system, enabling complete control over the configuration, code, data and structure of the application. This makes it possible to extend the well-understood software change management tools to the entire distributed applications.

See The AppLogic Application Model for more details.

-- VladM - 23 May 2006

 
Copyright © 2005-2008 3tera, Inc. All Rights Reserved.
%