Description Webnotize Transformation Computer Application
This invention relates to the concept behind a computer application that processes all input in the same way and transforms the input into output according to the rules in the database that the input is associated with.
The invention provides a user with the means to design and run a Web enabled business application without entering into a source code development environment. The invention allows for the assembling of a Web application on top of any database design and so is not confined to the assembling of business applications for one particular field such as e-commerce.
This may be likened to other applications that are developer tools. However, some of these are code generators and therefore suffer from the disadvantage of causing developers to maintain the source code in a code development environment. Some of these are not code generators but contain code and areas for custom development that is specific to a field of business. These therefore suffer from the disadvantage that the user is confined to building an application in that field of business.
Some of these are merely content management tools for swapping of pictures or text on the Web site and therefore suffer from the disadvantage of not allowing for full database interaction and backend processing triggered by an action from the Web user.
The Webnotize Transformation Computer Application stores all but the login Web page in a database, therefore access to the application Web pages is restricted and it is only possible for a user to access those Web pages for which access rights have been granted after having logged on to the Web application. The URL remains constant during navigation and use of the entire Web application.
The application is made up of two back end components being a Transformation Engine and a Security Checker. These process any requests coming from either one of the two front end components being the Assembler Wizard and the Run Time Web Client, or from an external application requesting a service through the Transformation Engine.
The purpose for the application differs depending on which of the front end components and external application is making the request.
The purpose in using the front end Assembler Wizard is that of an Application Assembler Tool which facilitates the capture of construction and data mapping rules about Web page and Database objects. This stands apart from other application development tools as no additional source code is generated. Also
dynamic inclusion, deletion or updates to Web pages in an active Web application can be made real time whilst the Web application is being used in a production environment.
Source code maintenance is not applicable unless for external application code where the user has captured function rules involving the delegation of the processing by the Transformation Engine to external applications.
The purpose in using the front end Run Time Web Client is for the Web run time version of the application for which the construction and data mapping rules about Web page and Database objects was previously captured. It is important to note that the Transformation Engine remains in its compiled state removing the need to have an environment available for the maintenance of source code. (Source code requires compilation into object code before it can be executed).
The Transformation Engine can be used as a gateway between an external application and any database. It can also be used as a gateway between an external application and one or more other external applications. The requirement for its use is merely that the input it receives or the output it returns is formatted or translated according to the Extensible Markup Language Document Type Definition given. Here, only security rules for access to the object are captured and held in the local database. All other construction and processing rules are carried in the XML.
Accordingly, this invention provides a means to assemble any Web application in any field of business without the need of compilation. It provides the means for real time insertion or editing of the structure, content and database interaction of Web pages.
A preferred embodiment of the invention will now be described with reference to the accompanying drawing in which FIGURE 1 shows a diagram of the Webnotize Transformation Application 1. How its components interact with each other and with external applications are described in the following paragraphs.
A special LOGIN function call is required on any initial request received by the Business Server 10 in the Transformation Engine 2. The Business Server 10 calls the Security Checker 3 for authentication of the user logging in and on acceptance, generates a session id and session tables describing the security profile for the user. This session exists for as long as the user interacts with the Transformation Engine 2 or times out after a certain period of time. The session id is required to accompany any subsequent request during a user session.
In the assembling of a Web application, the Assembler Wizard 4 is used. This may be in the form of a Windows executable or as a Web application in its own right. The user is able to design Web pages and capture rules as to how any data should be retrieved and mapped onto the Web page. The User Interface
1 A glossary is provided at the end of the description.
Translator 9 converts the requests into extensible Markup Language (XML) and passes the data on to the Business Server 10. This translates the XML into SQL calls (Structured Query Language). The Business Server 10 invokes the Security Checker 3 which determines whether the user has the appropriate access for the SQL calls to be executed. The Business Server 10 runs the authorized SQL thereby, in this instance, storing the Web Templates and load rules in the Mapping Tables 11 of the Webnotize database.
In the running of a Web application, the Run Time Web Client Login module 5i is invoked through its URL being specified on the Web Browser. Thereafter, Web page HTML that has been previously captured through the Assembler Wizard 4 is requested via the Run Time Web Client Generic module 5ii. Where a user requests a search from a Web page, then the Run Time Web Client Search module 5iii is invoked.
The User Interface Translator 9 translates the Web page request into XML and sends this on to the Business Server 10. The Business Server 10 breaks down the XML into Function Calls and/or direct SQL instructions. It then invokes the Security Checker 3 to validate the session and to determine the access permitted on each of the Function or SQL instructions. The instructions are then run and the results returned to the User Interface Translator 9. Here, the HTML and population data are combined and returned to the Run Time Web Client Generic module 5ii for presentation to the Web Browser.
Some finer details on the processing of a request by the User Interface Translator 9 follow:
• It sends instructions to the Business Server 10 to update session and scratchpad tables for a user so that data persistence can be maintained for that user during the session.
• It sends instructions for the retrieval or update of mirror files. A mirror file contains the business data within HTML that presents it. The purpose of using mirror files is to reduce response time for populating the HTML Templates with business data.
The Business Server 10 handles all instructions. Some instructions are internal to Webnotize. For example:
• Maintaining mapping rules and Web templates on the appropriate database tables,
• A LOGIN method,
• A data access method or
• A SEARCH method.
Where the Business Server 10 encounters an instruction in the form of SQL, it executes it.
Where it encounters an instruction that is a function call, it looks for the method associated to the function internally and runs that method if found, otherwise it passes control on to the Custom Class Stub 17. This stub is provided as source
code for a developer to insert custom code. This custom code may include direct SQL or code to request a service from an external system.
Where an External Application Requesting Service 6 interfaces to the Transformation Engine 2, it is responsible for formatting instructions and passing these on to the Business Server 10. The format is extensible Markup Language (XML) for which the Document Type Definition reflects the instructions to be processed. The XML is encrypted and decrypted on both sides via the XML Encryptor 16. The Business Server 10 processes the instructions in exactly the same way as it did for instructions received from the User Interface Translator 9 and returns the results in an XML format that is encrypted for return to the External Application Requesting Service 6.
Where a third party security application 15 is preferred over the Security Checker 3, then a Custom Security Stub 14 provides the interface to it. This stub is provided as source code for a developer to insert custom code for the calling of the other Security Application 15.
Additionally:
7 is a reference to the input request that is associated with database rules as to how to construct the output.
8 is a reference to the output that has been constructed.
The Business Tables 18 may reside in the Webnotize database along with the Mapping Tables 11 or reside in one or more other databases.
Glossary
Compilation
The translation of source code into object code.
Document Type Definition (DTD)
Defines the elements and attributes that can be used in an XML document.
Extensible Markup Language (XML)
A language for creating markup languages that describe structured data. XML is the universal language defined by the World Wide Web Consortium (W3C) for describing and exchanging data on the Web.
Object code
Executable code generated by a compiler from the source code of a program.
Source code
Human-readable statements written in a high-level programming language.
Structured Query Language (SQL)
A language used to insert, retrieve, modify, and delete data in a relational database. SQL also contains statements for defining and administering the objects in a database. SQL is the language supported by most relational databases, and is the subject of standards published by the International Standards Organization (ISO) and the American National Standards Institute (ANSI).
Uniform Resource Locator
The address of a resource on the Internet. URL syntax is in the form protocolJ/host/localinfo, where protocol specifies the means of fetching the object (such as HTTP or FTP), host specifies the remote location where the object resides, and localinfo is a string (often a file name) passed to the protocol handler at the remote location. Also called Universal Resource Locator, Uniform Resource Identifier (URI).
Web Client
This is a file that includes server script to be executed by a Web server. The type of file alerts the server that it should process the file before sending it to the browser.