The present invention concerns a forms development platform for developing forms.
Forms are found in nearly all commercial web applications to enable user-system interaction. The process of creating forms includes four main tasks: management, content, style and logic. As part of the management task, general form requirements are collated and communicated to a project team for initial prototyping and subsequent development work. Typically, this area is filled by a business driver who is required to understand and refine user requirements into a high level contract and pass it down to a project team for development. The project leader of the project team receives the high level contract and translates the requirements into logical modules or contents, and further specifies the presentation style and functional logic for each module. Once the specifications have been completed, they are communicated to a web designer for stylistic implementation and to a web developer for logical implementation.
This process suffers from problems including loose security, high maintenance, slow development, limited re-usability, lack of control and no separation of duties.
In a first preferred aspect, there is provided a forms development platform for developing forms, comprising:
an attribute design module to graphically design reusable form attributes from a selection of predetermined fields, the attributes having integrated business logic;
a form design module to graphically design reusable forms using the form attributes, the forms having integrated business logic; and
a project design module to design reusable projects by graphically arranging the forms according to a predetermined process flow;
wherein the design modules operate independently from each other such that the design of the attributes, forms and projects are separate functions, and designed attributes, forms and the projects are stored as separate entities.
Business logic contained within designed attributes and forms may include validation rules for form input while data is being entered, form output, calculated fields and dependencies on other fields in the form,
The platform may further comprise an attribute library to store designed attributes, a form library to store designed forms or a project library to store designed projects. Advantageously, the design modules allow retrieval of designed attributes, forms or projects for re-use or as templates.
The platform may further comprise a validation engine to validate a form. The form may be validated against open standards, for example, the W3C standard for XForms 1.0, or validated against internal business policies of a business. Internal validation policies may include alpha-numeric or length checks for text fields. Internal validation policies may be stored in a validation policy repository to facilitate re-usability.
The platform may be based on a Java 2 Enterprise Edition platform (J2EE). The platform may be presented to a developer via a desktop application to enable a client-side graphical user interface development. The platform may be server based. The platform may be accessible using a web browser, for example, Microsoft Internet Explorer or Netscape Navigator. By being server-based, form definition files are stored directly on the server-side and eliminate the need for frequent file transfers between server and client, which is expected during the developing and testing stages.
The platform may further comprise an approval system to enable forms to be approved prior to publishing. The approval system may be a centralised system. Advantageously, business users are able to test and evaluate the forms to ensure they conform with business objectives in contrast to technical objectives.
The approval system may comprise:
an Inbox to allow access to individual forms associated with certain users;
an Out-of-Office Mechanism to allow users to indicate an out-of-office status and specify route re-direction or alternative actions;
a Forms Archive to allow forms to be searchable and filtered;
Printing module to allow forms to be printed in a printer-friendly format;
Export module to allow users to export form data in XML or other formats; or
an Administration module to allow remote configuration and monitoring of all forms and their associated routing processes.
The designed form may be interpreted to generate a form or series of related forms in HTML, Wireless Markup Language (WML) or other language for presentation on a specific device or operating system.
The predetermined fields may include input fields such as text fields, password fields or image fields.
The attribute designer module may specify validation, error message and dependencies for form controls within an attribute.
The form designer module may specify validation, error messages and dependencies for attributes, sections and pages within a form. The form designer module may also specify list entities, action types, paging mechanism, pre-form and post-form processing and form persistence. The form designer module may design forms with sections and pages.
The project designer module may specify validation, error messages and dependencies for forms and their encompassed entities. The project designer module may also specify list entities, access control, configurations and publishing mechanism.
In a second aspect, there is provided a method for developing forms, comprising the steps of:
graphically designing reusable form attributes from a selection of predetermined fields, the attributes having integrated business logic;
graphically designing reusable forms using the form attributes, the forms having integrated business logic; and
designing reusable projects by graphically arranging the forms according to a predetermined process flow;
wherein the design of the attributes, forms and projects are separate functions, and designed attributes, forms and the projects are stored as separate entities.
In a third aspect, there is provided a form when developed using the method described.
An example of the invention will now be described with reference to the accompanying drawings, in which:
Referring to
Studio 20 includes three design modules: Project Designer 21, Attribute Designer 22 and Form Designer 23. Studio 20 enables users to graphically design attributes, pages, forms, validation policies for the attributes and forms, page flows, form flows and process flows. Validation is important in maintaining the integrity of information within a web application, as well as safeguarding applications from unpredictable behavior resulting from unconstrained user input data. There are two main types of validation: basic validation and policy validation. Basic validation provides data level checks, such as data-type checks and length checks. Basic validation also includes security checks against SQL or script injection. Policy validation involves checks against pre-defined business policies or rules set by the application. The platform 10 provides an intuitive, flexible and reusable approach towards specifying forms validation. An example of a simple attribute that accepts users' NRIC/FIN number in a registration form is depicted in
Other validation policies include output data validation. Validation policies are graphically designed and configured. The XML Schema definition (XSD) is an XML-based grammar declaration for specifying data constraints, hierarchical relationships and element namespaces in XML. Its main use is in declaratively specifying a set of rules in governing the validity of XML multiplicity checks and data relational checks. XSD supports namespace conflict handling and data constraint reusability (inheritability), which allows complex data structures and relationships to be defined among documents and elements. The system uses XSD for validating and verifying XML data validity within form documents, as well as system interfaces to ensure that the data exchanged is in the correct format.
Studio 20 facilitates the creation of secure enterprise-level forms for web applications simply by drawing flow charts. Each of these items can be graphically configured within Studio 20 to allow specific behaviors to be customised easily.
Studio 20 abstracts and shields users from the underlying complexity and programming language code.
Referring to
Referring to FIGS. 6 to 8, Form Designer 23 is used by a developer to create forms from a selection of business attributes, along with encompassing sections and pages. Form Designer 23 allows validation, error messages and dependencies to be specified for attributes, sections and pages within a form. Other options include list iterators (dynamic list tables), action (button) types, a paging mechanism, pre and post form processing and form persistence.
Referring to FIGS. 9 to 11, Project Designer 21 is used by a developer to create projects, specify form bundles, optionally with attachments, form flow and a routing mechanism. Project Designer 21 allows validation, error messages and dependencies to be specified between forms and their encompassed entities. Other options include list iterator, access control, configurations and a publishing mechanism. Project Designer 21 also provides management wizards with a central interface to manage all reusable resources, which include custom plug-ins, messages and styles.
Attribute Designer 22, Form Designer 23 and Project Designer 21 are toggled within Studio 20, subject to the user's access control rights. This ensures a consistent user interface and minimises confusion by eliminating multiple work spaces.
Plugins (not shown) are registered and graphically configured via Studio 20 to extend the business functionality required by a particular project. Plugins include external validators and processors. All registered plugins have all their associated parameters and properties configured graphically exactly in the same manner.
Plugins are able to interact and function seamlessly in Studio 20 once they are plugged in. Registered plugins are managed by Server 40.
The platform 10 uses an additional layer of abstraction to shield users from the underlying low level technical constructs. The abstraction anchors on business entities such as attributes, sections, pages and forms in increasing levels of granularity. These business entities permeate across the system and foster reuse within a single project, among different projects or across the entire enterprise. The platform 10 includes libraries 24, 25, 26 to collect and store business entities so that users are able to share and reuse these assets in subsequent projects. Business entities, attributes and forms can be shared at project, domain and enterprise levels.
The platform 10 appeals to business users since they are able to relate better to business entities rather than technical constructs found in typical tools which currently exist in the marketplace. The platform 10 is business centric, that is, it allows users to focus on business entities such as attribute, sections, forms and validation policies rather than lower level programming language codes. The platform 10 allows rapid prototyping since there is a coordinated effort from both business and technical users without compromising security, integrity and consistency. Concurrency control allows multiple team members to work simultaneously on the same project.
The platform 10 is responsible for enforcing a disciplined approach in realising best practices and consistency in developing forms for web applications. Permission control is built into the platform 10 so that specific permissions are assigned to team members of a project on a need-to-have basis, which also models the structure of the team and the responsibilities of the team members.
A form produced by the platform 10 is XForms 1.0 compliant and is conceptually composed of three main parts: the Model, the Instance and the User Interface (UI). Binding elements interconnect these main parts. A simple registration form in
Based on the above form definition, the form display within a Web browser appears as
To enable target-device independence, the generic manner of the form is defined and the inherent separation of user interface, instance data and logic, is made to conform to the XForms standard. A generic form is interpreted in XForms syntax. The above form definition shows two child elements found inside the root element, “envelope” or any valid XML name in any namespace:
<xforms:model>—enclosed within this element is everything known about the form other than how it looks or otherwise be rendered. The model describes the initial instance data, a skeleton XML document containing the complete structure of the desired final document of the form within the “instance” element, as well as its associated model, such as data-types based on XML Schema, validation constraints and calculated values, using a combination of “bind” elements and XPath expressions. Actions like storing to disk or sending to backend systems are also defined here as “submission” elements.
<performa:form>—this section contains the user interface details of the form, which tells the platform the UI controls to be rendered or presented. The top-most “orm” element in the “performa” namespace identifies the document as a form definition familiar to the platform, while the “attr” child element constitutes a reusable business attribute that encompasses a group of form controls. From the example, form controls such as “input” and “trigger” are directly mapped to the textbox and button elements in HTML presentation respectively, provided the choice of display is HTML. Embedded within “trigger” elements are XForms Actions (“action” elements) which allows form logic to be declaratively authored. Examples of supported actions would include setting value of nodes in the model instance, insert or delete entries in collections, switch between different versions of UI and more.
During run-time, the xforms:model element is used to instantiate the form model while performa:form contents are interpreted to build the form UI and initialized with data from the model instance. The user is presented with the rendered form and can change values and submit the data with a click on the “Send” button. Upon submission, the platform inserts the form data into the model instance and outputs a HTML page which visualises the submitted data through “billing/bill-customer” specified within “submission” element.
Referring to
Similar to attributes 81, list iterators are also base level entities, but are different in terms of its primary purpose. Lists display rather than collect data. A list item is commonly used in applications to present existing data in a tabular manner to provide a summary or index view. Often, data within a list is organised into table columns, which are sortable in ascending or descending order. In the platform 10 lists are able to support data retrieved directly from a database or referenced from in-memory form data instances within the same bundle space.
Sections 82 are logical blocks that allow grouping of attributes 81 mainly for categorisation purposes. Based on this grouping, it is possible to perform collective tasks as a whole, such as group labeling, overlay operations and application of style themes.
Encompassing sections are pages 83, which are commonly used to split a lengthy form into a jointed series of screen-sized pages to minimise scrolling on a video display. Pages typically include a variety of paging mechanisms to maximise navigation ease and each page is akin to a self-contained form in terms of error checking and display. Input errors are immediately notified to users. Input error in a page can render other inputs in subsequent pages as erroneous and data re-entry is required.
Forms 84 are complete and self-contained entities and are workflow capable. Forms 84 participate in approval routing of an adhoc or structured nature. During the approval routing process, approvers can attach supporting documents or any other electronic resources as reference. As such, a particular form 84 may optionally be linked to attachments, and be collectively known as a bundle 85. Bundles 85 also refer a set of related forms or attachments which reference each other. For example, the “Overseas Expenses” bundle 85 encompasses the “Trip Subsistence” form 84 and the “Transport Expense” form 84. The “Transport Expense” form 84 is a sub-form of the “Trip Subsistence” form 84.
The hierarchical model converges at the project entity 86 situated at the root level. At the root level, distinct forms 84 and bundles 85 are linkable to specify workflow modules or integrated with external applications through URL re-direction. Here, project-specific configurations are set to effect changes that propagate throughout the model to the attributes level. An example is specifying a set of standard styles that enforce look and feel consistency at all levels. Other configurations are possible such as access control, version control, forms publishing mechanism and filtering of entity repositories.
Referring to
Next, the developer or another team member invokes Form Designer 23 and visually designs 104 the form by dragging and dropping previously created attributes into the desired layout format. Additional controls such as paging, pre/post processing, output redirection, error display format and routing options will also be made available for configuration. After completing the form design, the developer is able to run and preview the form from Project Designer 21 immediately. Subsequently, the form is automatically routed through an approval process 106 before published 107 for live access. With segregation of duties, in typical situations, a developer is not granted access to all three designers 21, 22, 23.
Referring to
Alternatively, published forms are also able to be integrated with existing web applications through URL re-directing. This is illustrated in
Referring to
Processors 11 interact with the connectors layer 12 for connectivity to external systems, such as databases 15, rules engines 16 and other business applications 17. The connectors layers 12 encapsulates system integration specifics through robust connect agents, which contain the interfacing ability with external systems, while maintaining a consistent application access interface.
The publishers layer 13 provides multi-target presentation capabilities for the framework by transforming XML form instances into various markup syntax which can be understood and rendered by the target device. Each component of the publisher layer 13 maintains a transformation style sheet for mapping intrinsic form elements created by the system into intended target element types. Publishing formats provided by the publishing components include HTML, Macromedia Flash, PDF, WML, VRML and XML.
The platform 10 structures development tasks involved in developing forms for a web-based application according to the role played by a team member. The segregation of duties allows the development task to be tailored accordingly to the responsibilities and capabilities of the respective team member. This ensures that every team member is only permitted to perform the functions they are assigned to. Individual developers working on the same project are coordinated and synchronised. This allows the development team to be scalable and permits outsourcing of development work to be achieved without sacrificing control.
It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the invention as shown in the specific embodiments without departing from the scope or spirit of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects illustrative and not restrictive.
Number | Date | Country | Kind |
---|---|---|---|
200401665-5 | Mar 2004 | SG | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/SG05/00093 | 3/23/2005 | WO | 9/25/2006 |