Applogic Technology - Applications
Applications are the main entities in AppLogic. Making distributed, scalable 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 "fix-up" performed by traditional operating system loaders when preparing an executable file to run.

Figure 2: The AppLogic Application Model
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 AppLogic creates infrastructure appliances, such as gateways, firewalls, load balancers, web servers, application servers, database servers, file servers, mail servers and etc. and provides 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.
|