Platform
Technical
The Pengower Application Platform (Figure 1) enables an Application Developer to design a Meta Application Template that defines the requirements of an Cloud-hosted n-tier Business Application by describing the requirements of the Data Layer, Logic Layer, Interface Layer, Client Licensing, User Management, Security and Template Version Control. Furthermore the Pengower Application Platform eliminates the need for the Application Developer to write application code.
Figure 1
A corner stone of the Pengower Platform as a Service solution is that the functionality contained in the vast majority of business information Applications is made up of generic operations, for example, creating objects, listing objects, displaying objects to name but a few. By abstracting the essence of the operation and making it available for use in any Application, the Application Developer simply needs to provide a set of design parameters that provide specific context when applied to the specific operation. For example there may be a generic operation which lists data objects, however for use in a specific Application the Application Developer would provide design parameters which define the objects to be listed, how the list should be displayed, which action should trigger the list event, where the action is displayed in the browser, what the action is called, which style of view the action is displayed in, which users can perform the action and what conditions need to be in place before the action is performed. This principle of abstracting generic Application operations from the Application specific design parameters can be applied to all aspects of Internet-hosted n-tier business Applications.
The Pengower Application Platform shown in Figure 1 is designed to contain all these abstracted Application operations and makes them available for use at runtime. Therefore to create the effect of an enterprise standard Cloud Hosted n-tier Business Application, the Application Developer is simply left with the task of providing a set of design parameters which, when used in conjunction with the Application Platform combine to create the Application effect. The Meta Application Design parameters are entered into the Application Platform in a standard file format (for example XML) and can be created using the Meta Application Design Tool or any other tool or devise which can be used to create files in the correct format. The entire collection of application design information and parameters that is required to define a complete Application combine to form the Meta Application Template.
Figure 2
Referring to Figure 2 a key principle of the invention is that the operations contained within enterprise standard Cloud Hosted n-tier Business Applications can be entirely abstracted, leaving the Application Developer with the simple task of defining the requirements of the application, which can be broken down into seven key areas of definition:
1.Client Management Definition
2. Application Management Definition
3. Data Layer Definition
4. Logic Layer Definition
5. Interface Layer Definition
6. Security Definition
7. User Definition
Data Layer Definition
Referring to Figure 3, the requirements of the data layer of an enterprise standard Internet-hosted n-tier business application are defined in terms of Data Object Types, Data Object Type Sections, Data Object Type Section Elements, and Data Object Type Attributes, Relationships between Data Object Types and Data Object Type Indexes.
Figure 3
Data Object Types...
Data Object Types are created to define the make-up and structure of particular data objects within the data model, that is, a Data Object Type represents a description of a “type of” data object. For example, a Data Object Type “Person” could be created to define the make-up and structure of data objects that are made up of a person's name, address and telephone number.
Sections...
Data Object Types Sections represent subsections of the Data Object Types. The purpose of dividing Data Object Types into different sections is to enable End Users to access data objects in sections rather than having to call the entire data object, whenever they display, create or store a data object of that type within their Application. This helps to make the process of data retrieval and storage more efficient because the Application Platform only needs to retrieve, store or present the data that the End User is particularly interested in.
Attributes...
Data Object Type Attributes represent special data object types whose design definitions can be attributable to any Data Object TypesRelationships...
Data Object Type Relationships represent the definition of the types of relationships between different Data Object Types or other Data Object Type Relationships.Indexes...
Data Object Type Indexes define the index fields that are used in the search, retrieval and listing operations of the Application Platform and are derived from data relating to particular Data Object Type Section Elements. The instance of the Data Object Type Index is stored with the data object instance as reference information and the use of this information dramatically improves the search, retrieval and listing operations of the Application Platform. The use of Data Object Type Indexes in this way is a key means by which in which the Application Platform delivers enterprise standard performance.
To produce a data layer definition the Application Designer is required to specify the Application requirements for Data Object Types, Data Object Type Sections, Data Object Type Section Elements, Data Object Type Attributes, Data Object Type Relationships and Data Object Type Indexes. The process of defining these requirements must be an iterative one since they can be mutually dependent. The Meta Application Design Tool provides a series of dialogue boxes that enables the Application Developer to select the appropriate Data Layer component, prompting the designer to enter appropriate deign parameters for each.
The following example illustrates how the Application Developer interacts with the Meta Application Design Tool:
The Application Designer wishes to define a Data Object Type which will be used to create instances of data objects representing an "Organisation" in the Meta Application Template. Having navigated to the Data Object Type creation dialogue of the data layer definition section of the Meta Application Design Tool, the Application Designer will then be prompted to enter a series of Data Object Type design parameters, such as the "Name" of the Data Object Type.
This pattern of interaction is repeated throughout the Meta Application Template definition process and is manifest in the structure of the Meta Application Design Tool. This manifestation mirrors the fact that the Application Designer is defining a Meta Application Template by selecting its components from a set of pre-existing abstract Application Platform operations which are then defined in the context of the particular design parameters which relate in turn to the design of the particular Meta Application Template.
Logic Layer Definition
In the Pengower Meta Application Design Tool the requirements of the Logic Layer of an enterprise standard Cloud Hosted n-tier Business Application shown in Figure 4 are defined in terms of Actions, Triggers, Filters, Groups, Reports, Custom Forms and Custom Form Fields.
Figure 4
Actions
Actions define the use of particular Application Platform operations commonly used in most standard Cloud Hosted n-tier Business Applications but which have been abstracted into the Application Platform.
Triggers
Triggers define the context in which an Action can be triggered by the occurrence of another action event.
Filters
Filters are the definition of a set of parameters that are used to differentiate between data objects by defining the data object characteristics that should govern the filtration. It is important to note that the filters are based on SQL queries that are created, compiled and stored automatically at design time to ensure that the Application performance remains comparable with conventionally developed n-tier enterprise standard Cloud Hosted Business Applications.
Groups
Groups are a definition of a set of data objects.
Reports
Reports are the definition of the structure of a particular view of user data contained in the database.
Custom Forms
Custom Forms are a definition of the structure and content of a form used to display information to the End User and to gather data from them, but which has no direct relationship with a Data Object Type.
Fields
Fields define the individual elements on a Custom Form. They are similar in nature to Data Object Type Section Elements but do not have a direct relationship with a Data Object Type.
Interface Layer Definition
In the Pengower Meta Application Design Tool the requirements of the Interface Layer of an enterprise standard Cloud Hosted n-tier Business Application shown in Figure 5 are defined in terms of Menus, Toolbars, Access Lists, Access Bars, Layouts, Views, User Types and Element Rendering Guides.
Figure 5
Menus
Menus define the structure and content of the menus that will be displayed to the End User in a particular instantiation of a Meta Application Template.
Toolbars
Toolbars define the structure and content of the toolbars that will be displayed to the End User in a particular instantiation of a Meta Application Template.
Access Lists
Access Lists define the structure and content of the access lists that will be displayed to the End User in a particular instantiation of a Meta Application Template.
Access Bars
Access Bars define the structure and content of the Access Bars that will be displayed to the End User in a particular instantiation of a Meta Application Template.
Layouts
Layouts define the structure and positioning of Menus, Toolbars and Access Bars when the displayed to the to the End User in a particular instantiation of a Meta Application Template.
Views
Views define the components and structure of the Application Interface that will be displayed to the End User through their browser.
User Type
User Type definitions determine which Views of the Application particular groups of End Users will be entitled to access.
Element Rendering Guides
Element Rendering Guides are applied to individual Data Object Type Section Elements and Fields and govern the way in which they are displayed to the End User in their browser.

