WO2002095617A1 - Dynamic content management application - Google Patents

Dynamic content management application Download PDF

Info

Publication number
WO2002095617A1
WO2002095617A1 PCT/AU2002/000606 AU0200606W WO02095617A1 WO 2002095617 A1 WO2002095617 A1 WO 2002095617A1 AU 0200606 W AU0200606 W AU 0200606W WO 02095617 A1 WO02095617 A1 WO 02095617A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
database
data
specified
lang
Prior art date
Application number
PCT/AU2002/000606
Other languages
French (fr)
Inventor
Thomas Quentin Clarkson
Original Assignee
Superchai Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Superchai Pty Ltd filed Critical Superchai Pty Ltd
Publication of WO2002095617A1 publication Critical patent/WO2002095617A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Definitions

  • the present invention relates generally to management of database content and more specifically to a Dynamic Content Management Application (DCMA) for management of the content of Internet websites.
  • DCMA Dynamic Content Management Application
  • a CMA is a computer software application program that enables the creation and maintenance of text and graphic content for an Internet website.
  • a CMA is typically a web-based application, usually with one custom coded template for each action possible in respect of each object represented by data in the database that is managed through the CMA.
  • a template is defined as a unit of scripting code that is used by an application server to generate Hypertext Markup Language (HTML) or other code suitable for execution by a web- enabled client.
  • HTML Hypertext Markup Language
  • Custom CMA's require coding of vast numbers of templates, each of which corresponds to a particular information object stored in a database.
  • CMG Content Management Generator
  • a method, a system and a computer program product are provided for managing content in an electronic database.
  • a method for managing content in an electronic database includes the steps of storing data representative of data structures holding the content, storing data relating to the appearance and functionality of at least one electronic form, generating an electronic form for a user to specify an action and data on which the action is to be performed and performing the specified action on the specified data.
  • the electronic form is generated in accordance with the stored data, which can be retrieved by querying a database.
  • the data specified by the user can comprise at least a portion of the content stored in the content database, at least a portion of the first stored data or at least a portion of the second stored data.
  • a system and a computer program product for managing content in an electronic database provide mechanisms for performing the above-described method.
  • Fig.1 is a hardware block diagram of an exemplary computer system with which embodiments of the invention can be practised;
  • Fig. 2 is a block diagram of a data model of a database schema according to embodiments of the present invention
  • Fig. 3 is a process flow diagram showing initial installation of data relating to an object in a database via a DCMA;
  • Fig. 4 is a process flow diagram showing access of data relating to an object in a database via a DCMA
  • Fig. 5 is a process flow diagram showing editing of data relating to an object in a database via a DCMA
  • Fig. 6 is a block diagram showing a system structure for dynamic content management according to an embodiment of the present invention.
  • Fig. 7 is a flow diagram showing an exemplary dynamic content management process which can be practised using the system structure of Fig. 6;
  • Fig. 8 is a block diagram showing a system structure for dynamic content management according to another embodiment of the present invention.
  • Fig. 9 is a flow diagram showing an exemplary dynamic content management process which can be practised using the system structure of Fig. 8.
  • a method and system for dynamic content management and a Dynamic Content Management Application are disclosed hereinafter.
  • the principles of the preferred method and apparatus described herein have general applicability to dynamic management of database information.
  • the preferred method and apparatus are described with reference to dynamic management of Internet website content.
  • the present invention be limited to the described method and/or apparatus.
  • the embodiments of the invention have application to alternative content delivery systems that incorporate databases.
  • 'dynamic' refers specifically to pages of an Internet website served from content in a database via an application server, as opposed to a 'static' website where pages are served from static HTML files.
  • 'dynamic' content management can extend to any form of content served from one or more databases via an application server.
  • Fig. 2 shows a data model of a database schema 200 for management of content by a Dynamic Content Management Application (DCMA).
  • DCMA Dynamic Content Management Application
  • Database content information is stored in content tables for access by a DCMA.
  • the content information is typically representative of some kind of object (e.g. a textual message or a CAD primitive).
  • Configuration information for the content tables is stored in a set of DCMA system tables 210-230 that represent basic elements of the database structure, such as tables, columns, etc.
  • Information in the DCMA system tables 210-230 is used to dynamically build appropriate data entry forms or pages and control database operations upon receipt of instructions from a user. Additional information, including information relating to building of a web-based user interface, can also be stored in the set of DCMA system tables 210-230.
  • Information in the DCMA system tables 210-230 can be added or modified by a user in the same manner as for any other database tables.
  • the tables 210-230 contained hereinafter provide further information in respect of the blocks 210-230 shown in Fig. 2.
  • DCMA_OBJECT_DETAIL 214, DCMA_ACTION 224 and DCMA_SEARCH 212 form the core of the DCMA system.
  • the remaining tables support those structures to allow additional functionality or improved usability.
  • This system table contains information representing a top level object in the DCMA, generally corresponding to a table in the database which is to be managed by the DCMA.
  • the top level object is used to tie all the data structures relating to a specific object together and is seen by a user as the entry point for operations on that object.
  • This table contains help text for a given combination of a CMA object and an action.
  • the table is useful for user friendliness but is not a key part of the system.
  • This table holds information relating to the actions that can be performed on objects.
  • the table is initially populated with the four standard actions (edit, build, search and delete), plus any new actions as defined by the user. This information is used primarily when the DCMA is first invoked, to determine which routines are called to perform the appropriate functionality.
  • This secondary table supports the action system, allowing the user to override the default behaviour for a standard action on a given object with custom code.
  • This table is a child table of DCMA_CMA_OBJECT and contains information relating to the columns in the table represented by the parent object. Most of the information is related to displaying the information held in that column, especially in the edit form.
  • This table holds information on how to search the table represented by the parent object. Each row of this table represents one possible search on that object.
  • Structured Query Language (SQL) statements used when the search is submitted by the user are determined by a combination of the user's input (in the search form) and either a column being searched on (detail_id) or fully customised SQL (search_sql).
  • Table 218 This is a supporting table for DCMA_OBJECT_DETAIL, which holds validation rules used to determine if user input through the add/edit form is valid.
  • This table is specific to a VignetteTM V/5 implementation of the DCMA.
  • the table simply provides a link to V/5's built in user management system to provide control over which users have access to which objects.
  • the basic functions generally provided are to add/edit, build, search and delete data in each database table managed through the DCMA.
  • the basic functions or actions for performing dynamic content management include:
  • This function either adds a row to the database or edits information in an existing database row.
  • a form is generated that either has blank fields, if a row is to be added, or populated fields, if an existing row is to be edited.
  • the particular fields in the form, and the display structure or manner of presentation, are determined from data in the DCMA system tables, particularly cma_object (representing the table) and object_detail (representing the columns in that table).
  • Internal variable names for the form field values are unique and are based on column names, column identifiers, or any other suitable attribute.
  • the build form function is used to view and maintain relationships between objects represented in the database. This form lists all foreign key relationships to and from a particular object as defined in the object_detail table, along with any instances of relationships defined for the selected instance of the object. A foreign key relationship is defined as a value stored in a database table that matches the primary key of another database table.
  • the build form function does not perform any database writes itself, but provides links to edit, delete, etc. for each object listed.
  • Delete The delete function deletes an instance of an object, along with any associated child objects.
  • the child objects that are deleted are objects that reference the deleted parent object and that could not exist without the parent. For example, the columns in a table cannot exist if the table does not exist.
  • a list of objects to be deleted is built, using the foreign key definitions on the build page, along with any other information provided in the system tables on how to handle deletion of child objects. Then, everything in the list is deleted, possibly after requesting confirmation from the user.
  • the search function searches a table in the database, with the search SQL determined by information retrieved from the search system table.
  • a search may relate to a single column, but searching may also involve custom Structured
  • SQL Query Language
  • Figs. 3 to 5 are exemplary process flow diagrams showing interaction sequences between a user and a database, via a DCMA.
  • the DCMA servers 320, 420 and 520 of Figs. 3 to 5, respectively, could comprise dedicated servers or, alternatively, form part of a general application server.
  • Fig. 3 shows initial installation of data relating to a new object by a user 310 in a database 330 via a DCMA server 320.
  • a user 310 submits configuration information to the DCMA server 320.
  • This information can include, but is not limited to, information concerning which tables are to be managed and access rights of users.
  • the DCMA server 320 requests information regarding the database schema from the database 330. The requested information is retrieved from the database 330 at step 356.
  • the DCMA server 320 may request further information from the user 310, if necessary. Such further information will typically only be requested if the information cannot be determined from the data previously retrieved at step 356. The further information is supplied by the user 310 to the DCMA server 320, at step 360.
  • the DCMA server 320 writes information into DCMA system tables in the database 330, in accordance with the data retrieved from the database 330 at step 356 and the user 310 at step 360.
  • Notification of success is forwarded to the user 310, by the DCMA server 320, at step 364.
  • Fig. 4 shows access of data relating to a specific object by a user 410 from a database 430 via a DCMA server 420.
  • the user 410 requests a DCMA form for a particular object/action combination from the DCMA server 420.
  • the DCMA server 420 requests information from system tables stored in the database 430, at step 454. At step 456, the information from the system tables is retrieved by the DCMA server 420.
  • the DCMA server 420 reads or writes content data from/to the database 430 in accordance with the information retrieved from the system tables at step 456.
  • the DCMA server 420 provides a response to the user 410 in accordance with the system table information retrieved in step 456 and the object data written or retrieved at step 458. Edit Process
  • Fig. 5 shows editing of data relating to an object in a database 530 by a user 510, via a DCMA server 520.
  • a user 510 requests an edit form from the DCMA server 520.
  • the DCMA server 520 requests information relating to the selected object from system tables stored in the database 530. The information is retrieved at step 554.
  • the DCMA server 520 requests information relating to the selected object, from content tables stored in the database 530, in accordance with the information obtained from the system tables at step 554.
  • the content table information is retrieved at step 558.
  • the DCMA server 520 sends a form to the user 510.
  • the form is formatted according to the data retrieved at step 552 and contains field information retrieved at step 558.
  • the user 510 submits the form to the DCMA server 520 at step 562.
  • the DCMA server 520 requests data relating to the selected object from the system tables stored in the database 530. The data is retrieved at step 566. Then, at step 568 the DCMA server 520 writes the edited data to the database 530 in accordance with the data retrieved at step 566.
  • Notification of success is forwarded to the user 510, by the DCMA server 520, at step 570.
  • Exemplary DCMA System Using Templates Fig. 6 shows an exemplary system structure for dynamic content management.
  • a user can access information stored in the content tables 632 and the DCMA system tables 636 of the database 630, via a web server 610 connected to the Internet (not shown).
  • the web server 610 is also connected to an application server 620 that hosts the DCMA program.
  • the content tables 632 and system tables 636 are shown to be stored in a common database 630, in Fig. 6, an alternative system structure can result in the system tables 636 and the content tables 632 being stored in separate databases and even on separate computer systems.
  • a set of DCMA templates 634 constitute a major part of the source code of the
  • the DCMA templates 634 correspond to actions that can be performed on data stored in the database 630.
  • the DCMA templates 634 reference data stored in the DCMA System Tables 636.
  • Fig. 7 shows a flow diagram of an exemplary dynamic content management process which can be practised using the system structure of Fig. 6.
  • a user requests access to information stored in the database 630.
  • information stored in the database 630 can include information stored in the content tables 632 and the DCMA system tables 636.
  • the web server 610 requests an appropriate form or page from the application server 620 to service the user request.
  • the application server 620 retrieves an appropriate DCMA template at step 714.
  • the appropriate DCMA template is selected by the application server 620 in accordance with the action desired to be performed by the user. To perform a specific action, an appropriate DCMA template is called with parameters that define the specified action and the portion of stored content that the action is to be performed on. Since the code for DCMA templates can be quite complex, the code can be split into libraries to facilitate easier management and a certain amount of reuse. On a higher level, however, the libraries can simply be considered part of a DCMA template.
  • the application server 620 also retrieves appropriate information from the content tables 632 in accordance with the user's request, at step 716.
  • the application server 620 generates the form requested at step 712.
  • the DCMA template, retrieved at step 714, and the content, retrieved at step 716, are used to generate the form. All the information needed to generate an appropriate form, apart from the content itself, is held in the system tables. For example, in building an edit form, the information taken from the system tables includes among other things:
  • the form is sent to the user, by the application server 620, via the web server 610 and the Internet (not shown).
  • step 722 the user proceeds to enter or edit information on the form, at step 724.
  • step 726 the form is submitted to the application server 620 by the user.
  • the database 630 is updated in accordance with the user input on the form at step 724. Either or both of the content tables 634 and the DCMA system tables 636 can be updated in this manner.
  • Fig. 8 shows another exemplary system structure for dynamic content management. While the system of Fig. 6 employs an application server and templates to perform dynamic content management, the system of Fig. 8 involves the use of Java servlet technology. Accordingly, the DCMA comprises a single application that accepts a request with parameters passed as a query string, form fields, cookies, or any other means available within the HTTP standard, executes code in accordance with the parameters provided and returns a response, typically as an HTML page. Additional parameters may also be specified in a configuration file on the server.
  • a user can access information stored in the content tables 832 and the DCMA system tables 836 of the database 830 via a web server 810 connected to the Internet (not shown).
  • the web server 810 is also connected to an application server 820, both of which provide a platform for the DCMA 834 to run on, pass request parameters to the DCMA 834, and transmit response pages generated by the DCMA 834 over the Internet.
  • the DCMA 834 could be hosted on a separate dedicated server.
  • the content tables 832 and system tables 836 are shown to be stored in a common database 830, an alternative system structure can result in the system tables 836 and the content tables 832 being stored in separate databases and even on separate servers or computer systems.
  • the DCMA 834 retrieves data stored in the DCMA system tables 836 that relates to data structures holding content and the appearance and functionality of electronic forms to be generated for a user to specify an action to be performed on data stored in the database 830.
  • the application server can also retrieve content stored in the content tables
  • Fig. 9 shows a flow diagram of an exemplary dynamic content management process which can be practised using the system structure of Fig. 8.
  • a user requests access to information stored in the database 830.
  • information stored in the database 830 can include information stored in the content tables 832 and/or the DCMA system tables 836.
  • the DCMA 834 retrieves data stored in the DCMA system tables 836 that relates to data structures holding content and the appearance and functionality of electronic forms to be generated for a user to specify an action to be performed on data 5 stored in the database 830.
  • the application server 820 retrieves the appropriate content from the content tables 832 in accordance with the user's request, at step 916.
  • the application server 820 generates a form or page using the information and/or content retrieved in steps 912 and 916. All the information needed to generate an appropriate form, apart from the content itself, is held in the system tables 836. For example, in building an edit form, the information taken from the system tables 836 typically includes, amongst other things: 5 • The name of the object to be edited
  • the form is sent to the user, by the application server 820, via the web server 810 and the Internet (not shown).
  • step 922 the user proceeds to o enter or edit information on the form, at step 924.
  • the form is submitted to the application server 820 by the user.
  • the database 830 is updated in accordance with the user input on the form at step 924. Either or both of the content tables 834 and the DCMA system tables 836 can be updated in this manner.
  • the DCMA system tables 836 are updated by the DCMA 834.
  • This parameter specifies the action to be performed. Build, edit, search and delete are the standard actions. Special actions display homepage, display setup wizard, and display binary file are also available. Additional actions can be added by the user if additional functionality is required.
  • This parameter specifies the type of object being worked with, generally corresponding to a table in the content database.
  • This parameter specifies which row in the table is being worked on and can be left undefined if the row does not yet exist or for an action such as search which does not operate on a specific row.
  • An edit form includes a number of form fields containing user entered content which is to be saved to the database. These are named systematically so that the system knows what fields to look for when processing form input. Miscellaneous
  • saveRedirect tells the system to display a page other than the default after an object is successfully saved.
  • the relevant parameter in this case is the number of the page to be displayed.
  • the class structure follows the data model of the database schema from which configuration data is loaded.
  • the first core part of the system called is the front end classes FrontDoorServlet, SuperchaiServer and Dcma. These classes are not described in detail as their functions are merely to pass parameters and define useful basic functions such as for database access.
  • Dcma handles the actions Display homepage, which typically returns an HTML welcome message, Display binary, which extracts binary data from the database and returns the data as a file, and the initial setup wizard (with functionality as described in Fig. 3 of the accompanying drawings).
  • the main class in the DCMA system is CmaObject. Subclasses maybe defined by a user to provide customised functionality. Whether a subclass or the default implementation in the superclass is used is determined by the dcma server, based on information contained in the system database.
  • CmaObject includes methods to perform the standard actions on an object.
  • the constructor loads all necessary information from the database/s and parameters accompanying the request.
  • a doAction method executes the appropriate method based on the action id parameter.
  • the second core part of the DCMA system is the ObjectDetail class.
  • This class represents a cell in the table.
  • user defined subclasses can be used for customised functionality. It is usually instantiated in the constructor of CmaObject for each of the fields in that object. Methods of this class are called by the action methods in CmaObject to execute code specific to each field.
  • the method for dynamic content management can be implemented using a computer program product in conjunction with a computer system 100 as shown in Fig. 1.
  • the method for dynamic content management can be implemented as software, or computer readable program code, executing on the computer system 100.
  • the computer system 100 includes a computer 150, a video display 110, and input devices 130, 132.
  • the computer system 100 can have any of a number of other output devices including line printers, laser printers, plotters, and other reproduction devices connected to the computer 150.
  • the computer system 100 can be connected to one or more other computers via a communication interface 164 using an appropriate communication channel 140 such as a modem communications path, an electronic network, or the like.
  • the network may include a local area network (LAN), a wide area network (WAN), an Intranet, and/or the Internet 120.
  • the computer 150 includes the control module 166, a memory 170 that may include random access memory (RAM) and/or read-only memory (ROM), input/output (I O) interfaces 164, 172, a video interface 160, and one or more storage devices generally represented by the storage device 162.
  • the control module 166 is implemented using a central processing unit (CPU) that executes or runs a computer readable program code that performs a particular function or related set of functions.
  • CPU central processing unit
  • the video interface 160 is connected to the video display 110 and provides video signals from the computer 150 for display on the video display 110.
  • User input to operate the computer 150 can be provided by one or more of the input devices 130, 132 via the I/O interface 172.
  • a user of the computer 150 can use a keyboard as I/O interface 130 and or a pointing device such as a mouse as I/O interface 132.
  • the keyboard and the mouse provide input to the computer 150.
  • the storage device 162 can consist of one or more of the following: a floppy disk, a hard disk drive, a magneto- optical disk drive, CD-ROM, magnetic tape or any other of a number of non-volatile storage devices well known to those skilled in the art.
  • Each of the elements in the computer system 150 is typically connected to other devices via a bus 180 that in turn can consist of data, address, and control buses.
  • the method steps for dynamic content management are effected by instructions in the software that are carried out by the computer system 100.
  • the software may be implemented as one or more modules for implementing the method steps.
  • the software may be stored in a computer readable medium, including the storage device 162 or that is downloaded from a remote location via the interface 164 and communications channel 140 from the Internet 120 or another network location or site.
  • the computer system 100 includes the computer readable medium having such software or program code recorded such that instructions of the software or the program code can be carried out.
  • the computer system 100 is provided for illustrative purposes and other configurations can be employed without departing from the scope and spirit of the invention.
  • the foregoing is merely an example of the types of computers or computer systems with which the embodiments of the invention may be practised.
  • the processes of the embodiments are resident as software or a computer readable program code recorded on a hard disk drive as the computer readable medium, and read and controlled using the control module 166.
  • Intermediate storage of the program code and any data including entities, tickets, and the like may be accomplished using the memory 170, possibly in concert with the storage device 162.
  • the program may be supplied to the user encoded on a CD-ROM or a floppy disk (both generally depicted by the storage device 162), or alternatively could be read by the user from the network via a modem device connected to the computer 150.
  • the computer system 100 can load the software from other computer readable media. This may include magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer and another device, a computer readable card such as a PCMCIA card, and the Internet 120 and Intranets including email transmissions and information recorded on Internet sites and the like.
  • the foregoing are merely examples of relevant computer readable media. Other computer readable media may be practised without departing from the scope and spirit of the invention.
  • the method for dynamic content management can be realised in a centralised fashion in one computer system 100, or in a distributed fashion where different elements are spread across several interconnected computer systems.
  • Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation or b) reproduction in a different material form.
  • a web-based interface is typically provided to manage the content in the database.
  • a wizard-style interface is typically provided to assist and speed-up initial setup of content and system table data in the database.
  • QueryResults extends java.lang.Object This class is used as a replacement for ResultSet which does not require the statement to be kept open.
  • SuperchaiServer public class SuperchaiServer extends j ava.lang.Obj ect
  • SuperchaiServer handles page requests for all Superchai web applications, with the application to call determined by the (sub)domain used, for example dcma.superchai.com will return a dcma page, while www.superchai.com will display the appropriate Artificial Monkey page.
  • DcmalnstallException has been thrown and the request includes updates to the config file getFileParam public j ava . lang . String getFileParam ( j ava . lang . String key)
  • the request parameters should not be used for things such as detemining database connections.
  • setParam public void setParam ( j ava . lang . String key, j ava . lang . String val) Set a parameter for saving to the config file.
  • Properties getParams ( ) Return all parameters getReq uestParams public j ava . util . Properties getRequestParams ( ) Return request parameters
  • HashMap getAHRoles ( )
  • HashMap containing strings, the key being ROLE_ID and the value being
  • NAME from the DCMA_ROLE table hasRole public boolean hasRole (j ava . lang . String role) Returns true iff the current user is assigned the specified role.
  • CMA object Represents a CMA object, which generally corresponds to a row in a table.
  • the main class in the dcma system is CmaObject.
  • Subclasses may be defined by a user to provide custom functionality. Whether to use one of these subclasses or the default implementation in the superclass is determined by the dcma server based on information in the system database.
  • CmaObject contains methods to perform the standard actions on an object. The constructor loads all necessary information from the databases and request parameters. A doAction method is included to execute the appropriate method based on the action id parameter.
  • Title to use for the page generally made up of the friendly name and the action name paths public j ava . lang . String [ ] paths
  • Paths associated with the object The first is used to get a preview URL for the object, subsequent paths are used for cache clearing.
  • workflowID public j va. lang. String workflowID
  • associationSearch public int associationSearch
  • the rowld of the object to be populated cols public java.util .Vector cols Object Details (Columns) in this table searches public j ava . util .Vector searches Searches available on this object
  • DBID - ED of the database containing this object.
  • row - Value of the primary key for this object can be set to null for non row- specific operations such as search or add.
  • String detailVie boolean writeAccess
  • SuperchaiException Displays a table with either edit boxes or read-only display of each column in the object.
  • edit configuration fields are named in the form
  • This method executes an inset or update SQL query built by iterating over columns in the object and calling
  • AdminDcma public class Dcma extends java.lang.Object Handles DCMA Server functions DCMA related parameters required to be accessible by SuperchaiServer.getParamO actionID Specifies the action to be performed. Build, edit, search and delete are the standard actions. Special actions Display homepage, display setup wizard, and display binary file are also available. Additional actions can be added by the user if additional functionality is required.
  • cmaObjectlD Specifies the type of object being worked with, generally corresponding to a table in the content database.
  • rowID Specifies which row in the table is being worked on. This can be left undefined if the row does not yet exist or for an action such as search which does not operate on a specific row.
  • Form fields An edit form includes a number of form fields containing user entered content which is to be saved to the database. These are named systematically so that the system knows what fields to look for when processing form input. Miscellaneous A number of parameters not a core part of the system are accepted, mainly for user friendliness purposes. For example saveRedirect, which tells the system to display a page other than the default after an object is successfully saved.
  • displayPageHeader protected j ava . lang .
  • String displayPageHeader (j ava . lang . String title)
  • Display a standard page header displaySideNav protected java. lang.
  • String displaySideNav () throws SuperchaiException
  • FormStyle public class FormStyle extends j ava. lang. Obj ect
  • Form Style holds a piece of HTML containing codes in the form %code% which are replaced by dynamic elements when the CMA is rendered.
  • FormStyle (Dcma svr, int DBID) Method Summary void subst (j ava . lang . String token, j ava . lang . String fullText)
  • Path generally used for vignette CMS paths value public java. lang. String value Value ofthe field widgetName public j ava . lang . String widgetName Not Used errorText public java . lang . String errorText
  • SearchResult extends java.lang.Object
  • This class is essentially a cut down version of CmaObject
  • SearchResult (Dcma svr, int obj, java. lang. String row, java. lang. String tbl, java. lang. String pkcol, java. lang. String nc, java. lang. String loi, java. lang. String lri, int dbid)
  • Custom CMA Object subclasses to provide alternate functionality at the object level
  • Widget classes subclasses of ObjectDetail

Abstract

A method for managing content in an electronic database is disclosed. The method includes the steps of storing first data representative of data structures holding the content and second data relating to the appearance and functionality of an electronic form, generating the electronic form for a user to specify an action and data on which the action is to be performed, and performing the specified action on the specified data. The form is generated in accordance with the stored data, which can be retrieved by querying a database. The data specified by the user can comprise at least a portion of the content stored in the content database, at least a portion of the first stored data or at least a portion of the second stored data. A system and a computer program product are also disclosed as mechanisms for practising the disclosed method for managing content in an electronic database.

Description

DYNAMIC CONTENT MANAGEMENT APPLICATION
FIELD OF THE INVENTION
The present invention relates generally to management of database content and more specifically to a Dynamic Content Management Application (DCMA) for management of the content of Internet websites.
BACKGROUND
A significant amount of time and money is required to build and maintain a Content Management Application (CMA) for an Internet website. A CMA is a computer software application program that enables the creation and maintenance of text and graphic content for an Internet website. A CMA is typically a web-based application, usually with one custom coded template for each action possible in respect of each object represented by data in the database that is managed through the CMA. A template is defined as a unit of scripting code that is used by an application server to generate Hypertext Markup Language (HTML) or other code suitable for execution by a web- enabled client. CMA's are typically custom-built for a specific website, thus resulting in high development costs and low possibility of re-use. Custom CMA's require coding of vast numbers of templates, each of which corresponds to a particular information object stored in a database.
Internet relationship management service developer Vignette™ offers a product called Content Management Generator (CMG). Although CMG generates CMA's faster than the custom-building method, vast numbers of templates are still produced. Each template must be individually edited, normally by an experienced developer, for any level of customization or modification to be implemented.
Consequently, a need clearly exists for an improved manner of managing database content, particularly for Internet websites.
SUMMARY
According to aspects of the present invention, a method, a system and a computer program product are provided for managing content in an electronic database. In accordance with one aspect of the invention, a method for managing content in an electronic database is provided. The method includes the steps of storing data representative of data structures holding the content, storing data relating to the appearance and functionality of at least one electronic form, generating an electronic form for a user to specify an action and data on which the action is to be performed and performing the specified action on the specified data. The electronic form is generated in accordance with the stored data, which can be retrieved by querying a database.
The data specified by the user can comprise at least a portion of the content stored in the content database, at least a portion of the first stored data or at least a portion of the second stored data.
In accordance with other aspects of the invention, a system and a computer program product for managing content in an electronic database provide mechanisms for performing the above-described method.
BRIEF DESCRIPTION OF THE DRAWINGS
Features and preferred embodiments of the present invention are hereinafter described with reference to the accompanying drawings in which:
Fig.1 is a hardware block diagram of an exemplary computer system with which embodiments of the invention can be practised;
Fig. 2 is a block diagram of a data model of a database schema according to embodiments of the present invention; Fig. 3 is a process flow diagram showing initial installation of data relating to an object in a database via a DCMA;
Fig. 4 is a process flow diagram showing access of data relating to an object in a database via a DCMA;
Fig. 5 is a process flow diagram showing editing of data relating to an object in a database via a DCMA;
Fig. 6 is a block diagram showing a system structure for dynamic content management according to an embodiment of the present invention;
Fig. 7 is a flow diagram showing an exemplary dynamic content management process which can be practised using the system structure of Fig. 6; Fig. 8 is a block diagram showing a system structure for dynamic content management according to another embodiment of the present invention; and
Fig. 9 is a flow diagram showing an exemplary dynamic content management process which can be practised using the system structure of Fig. 8.
DETAILED DESCRIPTION
A method and system for dynamic content management and a Dynamic Content Management Application (DCMA) are disclosed hereinafter. The principles of the preferred method and apparatus described herein have general applicability to dynamic management of database information. For ease of explanation, the preferred method and apparatus are described with reference to dynamic management of Internet website content. However, it is not intended that the present invention be limited to the described method and/or apparatus. For example, the embodiments of the invention have application to alternative content delivery systems that incorporate databases.
In the context of exemplary arrangements described hereinafter, the term 'dynamic' refers specifically to pages of an Internet website served from content in a database via an application server, as opposed to a 'static' website where pages are served from static HTML files. However, it will be clear to a person skilled in the relevant art that 'dynamic' content management, as described in this specification, can extend to any form of content served from one or more databases via an application server.
Exemplary Database Schema
Fig. 2 shows a data model of a database schema 200 for management of content by a Dynamic Content Management Application (DCMA).
Database content information is stored in content tables for access by a DCMA. The content information is typically representative of some kind of object (e.g. a textual message or a CAD primitive). Configuration information for the content tables is stored in a set of DCMA system tables 210-230 that represent basic elements of the database structure, such as tables, columns, etc. Information in the DCMA system tables 210-230 is used to dynamically build appropriate data entry forms or pages and control database operations upon receipt of instructions from a user. Additional information, including information relating to building of a web-based user interface, can also be stored in the set of DCMA system tables 210-230. Information in the DCMA system tables 210-230 can be added or modified by a user in the same manner as for any other database tables.
The tables 210-230 contained hereinafter provide further information in respect of the blocks 210-230 shown in Fig. 2. The tables DCMA_CMA_OBJECT 220,
DCMA_OBJECT_DETAIL 214, DCMA_ACTION 224 and DCMA_SEARCH 212 form the core of the DCMA system. The remaining tables support those structures to allow additional functionality or improved usability.
Table 220
This system table contains information representing a top level object in the DCMA, generally corresponding to a table in the database which is to be managed by the DCMA. The top level object is used to tie all the data structures relating to a specific object together and is seen by a user as the entry point for operations on that object.
Figure imgf000006_0001
Table 222
This table contains help text for a given combination of a CMA object and an action. The table is useful for user friendliness but is not a key part of the system.
Figure imgf000007_0001
Table 224
This table holds information relating to the actions that can be performed on objects. The table is initially populated with the four standard actions (edit, build, search and delete), plus any new actions as defined by the user. This information is used primarily when the DCMA is first invoked, to determine which routines are called to perform the appropriate functionality.
Figure imgf000007_0002
Table 226
This secondary table supports the action system, allowing the user to override the default behaviour for a standard action on a given object with custom code.
Figure imgf000007_0003
Table 214
This table is a child table of DCMA_CMA_OBJECT and contains information relating to the columns in the table represented by the parent object. Most of the information is related to displaying the information held in that column, especially in the edit form.
Figure imgf000008_0001
Table 216
This is a supporting table for DCMA_OBJECT_DETAIL that holds Description- value pairs which can be used to populate select boxes for certain types of field.
Figure imgf000008_0002
Table 212
This table holds information on how to search the table represented by the parent object. Each row of this table represents one possible search on that object. Structured Query Language (SQL) statements used when the search is submitted by the user are determined by a combination of the user's input (in the search form) and either a column being searched on (detail_id) or fully customised SQL (search_sql).
DCMA SEARCH
Column Description
Figure imgf000009_0001
Table 210
This is a supporting table for searches, which contains information on how the results of a search are to be displayed, typically in the form of HTML fragments.
Figure imgf000009_0002
Table 218 This is a supporting table for DCMA_OBJECT_DETAIL, which holds validation rules used to determine if user input through the add/edit form is valid.
Figure imgf000009_0003
Table 230
This table is specific to a Vignette™ V/5 implementation of the DCMA. The table simply provides a link to V/5's built in user management system to provide control over which users have access to which objects.
Figure imgf000009_0004
Figure imgf000010_0001
DCMA System Functionality
Although additional functionality can be defined by a user of the DCMA, the basic functions generally provided are to add/edit, build, search and delete data in each database table managed through the DCMA.
It should be noted that the functionality and exemplary process flows described hereinafter are applicable to both exemplary DCMA systems described hereinafter.
The basic functions or actions for performing dynamic content management include:
Add/Edit
This function either adds a row to the database or edits information in an existing database row. A form is generated that either has blank fields, if a row is to be added, or populated fields, if an existing row is to be edited. The particular fields in the form, and the display structure or manner of presentation, are determined from data in the DCMA system tables, particularly cma_object (representing the table) and object_detail (representing the columns in that table). Internal variable names for the form field values are unique and are based on column names, column identifiers, or any other suitable attribute. When a new or edited form is submitted for entry in the database, the values in the fields are extracted and checked against validation rules (as specified in another system table). If valid, the relevant rows in the database are inserted or updated as appropriate. If not valid, the form is returned to the user with an error message.
Build
The build form function is used to view and maintain relationships between objects represented in the database. This form lists all foreign key relationships to and from a particular object as defined in the object_detail table, along with any instances of relationships defined for the selected instance of the object. A foreign key relationship is defined as a value stored in a database table that matches the primary key of another database table. The build form function does not perform any database writes itself, but provides links to edit, delete, etc. for each object listed.
Delete The delete function deletes an instance of an object, along with any associated child objects. The child objects that are deleted are objects that reference the deleted parent object and that could not exist without the parent. For example, the columns in a table cannot exist if the table does not exist. First, a list of objects to be deleted is built, using the foreign key definitions on the build page, along with any other information provided in the system tables on how to handle deletion of child objects. Then, everything in the list is deleted, possibly after requesting confirmation from the user.
Search
The search function searches a table in the database, with the search SQL determined by information retrieved from the search system table. In the simplest form, a search may relate to a single column, but searching may also involve custom Structured
Query Language (SQL) code or template code linked in the search system table. Returned results are displayed using information retrieved from the result_table system table.
Exemplary Process Flows
Figs. 3 to 5 are exemplary process flow diagrams showing interaction sequences between a user and a database, via a DCMA. The DCMA servers 320, 420 and 520 of Figs. 3 to 5, respectively, could comprise dedicated servers or, alternatively, form part of a general application server.
Initial Installation Process
Fig. 3 shows initial installation of data relating to a new object by a user 310 in a database 330 via a DCMA server 320.
At step 352, a user 310 submits configuration information to the DCMA server 320.
This information can include, but is not limited to, information concerning which tables are to be managed and access rights of users. At step 354, the DCMA server 320 requests information regarding the database schema from the database 330. The requested information is retrieved from the database 330 at step 356.
Then, at step 358, the DCMA server 320 may request further information from the user 310, if necessary. Such further information will typically only be requested if the information cannot be determined from the data previously retrieved at step 356. The further information is supplied by the user 310 to the DCMA server 320, at step 360.
At step 362, the DCMA server 320 writes information into DCMA system tables in the database 330, in accordance with the data retrieved from the database 330 at step 356 and the user 310 at step 360.
Notification of success is forwarded to the user 310, by the DCMA server 320, at step 364.
General Process
Fig. 4 shows access of data relating to a specific object by a user 410 from a database 430 via a DCMA server 420.
At step 452, the user 410 requests a DCMA form for a particular object/action combination from the DCMA server 420.
The DCMA server 420 requests information from system tables stored in the database 430, at step 454. At step 456, the information from the system tables is retrieved by the DCMA server 420.
At step 458, the DCMA server 420 reads or writes content data from/to the database 430 in accordance with the information retrieved from the system tables at step 456.
Then, at step 460, the DCMA server 420 provides a response to the user 410 in accordance with the system table information retrieved in step 456 and the object data written or retrieved at step 458. Edit Process
Fig. 5 shows editing of data relating to an object in a database 530 by a user 510, via a DCMA server 520.
At step 550, a user 510 requests an edit form from the DCMA server 520.
At step 552, the DCMA server 520 requests information relating to the selected object from system tables stored in the database 530. The information is retrieved at step 554.
Then at step 556, the DCMA server 520 requests information relating to the selected object, from content tables stored in the database 530, in accordance with the information obtained from the system tables at step 554. The content table information is retrieved at step 558.
At step 560, the DCMA server 520 sends a form to the user 510. The form is formatted according to the data retrieved at step 552 and contains field information retrieved at step 558. After editing data in the fields of the form, the user 510 submits the form to the DCMA server 520 at step 562.
At step 564, the DCMA server 520 requests data relating to the selected object from the system tables stored in the database 530. The data is retrieved at step 566. Then, at step 568 the DCMA server 520 writes the edited data to the database 530 in accordance with the data retrieved at step 566.
Notification of success is forwarded to the user 510, by the DCMA server 520, at step 570.
Exemplary DCMA System Using Templates Fig. 6 shows an exemplary system structure for dynamic content management.
A user can access information stored in the content tables 632 and the DCMA system tables 636 of the database 630, via a web server 610 connected to the Internet (not shown). The web server 610 is also connected to an application server 620 that hosts the DCMA program. Although the content tables 632 and system tables 636 are shown to be stored in a common database 630, in Fig. 6, an alternative system structure can result in the system tables 636 and the content tables 632 being stored in separate databases and even on separate computer systems.
A set of DCMA templates 634 constitute a major part of the source code of the
DCMA program. In this particular embodiment, the source code was written in TCL script for the Vignette™ V/5 platform. The DCMA templates 634 correspond to actions that can be performed on data stored in the database 630. The DCMA templates 634 reference data stored in the DCMA System Tables 636.
Although the content tables 632 and system tables 636 are shown to be stored in a common database 630, in Fig. 6, an alternative system structure can result in the system tables 636 and the content tables 632 being stored in separate databases.
Fig. 7 shows a flow diagram of an exemplary dynamic content management process which can be practised using the system structure of Fig. 6.
At step 710, a user requests access to information stored in the database 630. Such information can include information stored in the content tables 632 and the DCMA system tables 636.
Then, at step 712, the web server 610 requests an appropriate form or page from the application server 620 to service the user request.
The application server 620 retrieves an appropriate DCMA template at step 714. The appropriate DCMA template is selected by the application server 620 in accordance with the action desired to be performed by the user. To perform a specific action, an appropriate DCMA template is called with parameters that define the specified action and the portion of stored content that the action is to be performed on. Since the code for DCMA templates can be quite complex, the code can be split into libraries to facilitate easier management and a certain amount of reuse. On a higher level, however, the libraries can simply be considered part of a DCMA template. The application server 620 also retrieves appropriate information from the content tables 632 in accordance with the user's request, at step 716.
Then, at step 718, the application server 620 generates the form requested at step 712. The DCMA template, retrieved at step 714, and the content, retrieved at step 716, are used to generate the form. All the information needed to generate an appropriate form, apart from the content itself, is held in the system tables. For example, in building an edit form, the information taken from the system tables includes among other things:
• The name of the object to be edited • Help text applying to that specific object
• A list of all the fields that are to be displayed in the form and, in respect of each of the fields:
• Where to retrieve the content for the field, if relevant content exists.
• A caption and possibly additional helptext specific to that field. • Information on how the field should be displayed, for example, whether as a text field or a select box.
• Validation rules to determine whether a user input is valid entry for the database.
At step 720, the form is sent to the user, by the application server 620, via the web server 610 and the Internet (not shown).
If user input to the form is required (Y), at decision step 722, the user proceeds to enter or edit information on the form, at step 724.
Then, at step 726, the form is submitted to the application server 620 by the user.
At step 728, the database 630 is updated in accordance with the user input on the form at step 724. Either or both of the content tables 634 and the DCMA system tables 636 can be updated in this manner.
If user input to the form was not required (N), at decision step 722, no update of the database 630 is generally necessary. Exemplary DCMA System Using Java Serylet
Fig. 8 shows another exemplary system structure for dynamic content management. While the system of Fig. 6 employs an application server and templates to perform dynamic content management, the system of Fig. 8 involves the use of Java servlet technology. Accordingly, the DCMA comprises a single application that accepts a request with parameters passed as a query string, form fields, cookies, or any other means available within the HTTP standard, executes code in accordance with the parameters provided and returns a response, typically as an HTML page. Additional parameters may also be specified in a configuration file on the server.
Referring now to Fig. 8, a user can access information stored in the content tables 832 and the DCMA system tables 836 of the database 830 via a web server 810 connected to the Internet (not shown). The web server 810 is also connected to an application server 820, both of which provide a platform for the DCMA 834 to run on, pass request parameters to the DCMA 834, and transmit response pages generated by the DCMA 834 over the Internet. In an alternative embodiment, the DCMA 834 could be hosted on a separate dedicated server. Moreover, although the content tables 832 and system tables 836 are shown to be stored in a common database 830, an alternative system structure can result in the system tables 836 and the content tables 832 being stored in separate databases and even on separate servers or computer systems.
The DCMA 834 retrieves data stored in the DCMA system tables 836 that relates to data structures holding content and the appearance and functionality of electronic forms to be generated for a user to specify an action to be performed on data stored in the database 830. The application server can also retrieve content stored in the content tables
832 of the database 830, directly.
Fig. 9 shows a flow diagram of an exemplary dynamic content management process which can be practised using the system structure of Fig. 8.
At step 910, a user requests access to information stored in the database 830. Such information can include information stored in the content tables 832 and/or the DCMA system tables 836. Then, at step 912, the DCMA 834 retrieves data stored in the DCMA system tables 836 that relates to data structures holding content and the appearance and functionality of electronic forms to be generated for a user to specify an action to be performed on data 5 stored in the database 830.
Then, the application server 820 retrieves the appropriate content from the content tables 832 in accordance with the user's request, at step 916.
o At step 918, the application server 820 generates a form or page using the information and/or content retrieved in steps 912 and 916. All the information needed to generate an appropriate form, apart from the content itself, is held in the system tables 836. For example, in building an edit form, the information taken from the system tables 836 typically includes, amongst other things: 5 • The name of the object to be edited
• Help text applying to that specific object
• A list of all the fields that are to be displayed in the form and, in respect of each of the fields:
• Where to retrieve the content for the field, if relevant content exists. 0 • A caption and possibly additional helptext specific to that field.
• Information on how the field should be displayed, for example, whether as a text field or a select box.
• Validation rules to determine whether a user input is valid entry for the database. 5
At step 920, the form is sent to the user, by the application server 820, via the web server 810 and the Internet (not shown).
If user input to the form is required (Y), at decision step 922, the user proceeds to o enter or edit information on the form, at step 924.
Then, at step 926, the form is submitted to the application server 820 by the user. At step 928, the database 830 is updated in accordance with the user input on the form at step 924. Either or both of the content tables 834 and the DCMA system tables 836 can be updated in this manner. The DCMA system tables 836 are updated by the DCMA 834.
If user input to the form was not required (N), at decision step 922, no update of the database 830 is generally necessary.
A complete set of Javadocs generated in respect of an embodiment of a DCMA using Java servlet technology is contained in Table A of this specification. A brief description of the parameters accepted by the Java servlet and the class structure employed in the embodiment follows immediately hereinafter.
Parameters accepted by the servlet Action ID
This parameter specifies the action to be performed. Build, edit, search and delete are the standard actions. Special actions display homepage, display setup wizard, and display binary file are also available. Additional actions can be added by the user if additional functionality is required.
CMA Object ID
This parameter specifies the type of object being worked with, generally corresponding to a table in the content database.
Row ID
This parameter specifies which row in the table is being worked on and can be left undefined if the row does not yet exist or for an action such as search which does not operate on a specific row.
Form fields
An edit form includes a number of form fields containing user entered content which is to be saved to the database. These are named systematically so that the system knows what fields to look for when processing form input. Miscellaneous
A number of parameters that do not form a core part of the system are accepted, mainly for user friendliness purposes. For example, saveRedirect tells the system to display a page other than the default after an object is successfully saved. The relevant parameter in this case is the number of the page to be displayed.
Class Structure
The class structure follows the data model of the database schema from which configuration data is loaded.
The first core part of the system called is the front end classes FrontDoorServlet, SuperchaiServer and Dcma. These classes are not described in detail as their functions are merely to pass parameters and define useful basic functions such as for database access. Dcma handles the actions Display homepage, which typically returns an HTML welcome message, Display binary, which extracts binary data from the database and returns the data as a file, and the initial setup wizard (with functionality as described in Fig. 3 of the accompanying drawings).
The main class in the DCMA system is CmaObject. Subclasses maybe defined by a user to provide customised functionality. Whether a subclass or the default implementation in the superclass is used is determined by the dcma server, based on information contained in the system database.
CmaObject includes methods to perform the standard actions on an object. The constructor loads all necessary information from the database/s and parameters accompanying the request. A doAction method executes the appropriate method based on the action id parameter.
The second core part of the DCMA system is the ObjectDetail class. This class represents a cell in the table. Like CmaObject, user defined subclasses ("widget classes") can be used for customised functionality. It is usually instantiated in the constructor of CmaObject for each of the fields in that object. Methods of this class are called by the action methods in CmaObject to execute code specific to each field. Computer Implementation
The method for dynamic content management can be implemented using a computer program product in conjunction with a computer system 100 as shown in Fig. 1. In particular, the method for dynamic content management can be implemented as software, or computer readable program code, executing on the computer system 100.
The computer system 100 includes a computer 150, a video display 110, and input devices 130, 132. In addition, the computer system 100 can have any of a number of other output devices including line printers, laser printers, plotters, and other reproduction devices connected to the computer 150. The computer system 100 can be connected to one or more other computers via a communication interface 164 using an appropriate communication channel 140 such as a modem communications path, an electronic network, or the like. The network may include a local area network (LAN), a wide area network (WAN), an Intranet, and/or the Internet 120.
The computer 150 includes the control module 166, a memory 170 that may include random access memory (RAM) and/or read-only memory (ROM), input/output (I O) interfaces 164, 172, a video interface 160, and one or more storage devices generally represented by the storage device 162. The control module 166 is implemented using a central processing unit (CPU) that executes or runs a computer readable program code that performs a particular function or related set of functions.
The video interface 160 is connected to the video display 110 and provides video signals from the computer 150 for display on the video display 110. User input to operate the computer 150 can be provided by one or more of the input devices 130, 132 via the I/O interface 172. For example, a user of the computer 150 can use a keyboard as I/O interface 130 and or a pointing device such as a mouse as I/O interface 132. The keyboard and the mouse provide input to the computer 150. The storage device 162 can consist of one or more of the following: a floppy disk, a hard disk drive, a magneto- optical disk drive, CD-ROM, magnetic tape or any other of a number of non-volatile storage devices well known to those skilled in the art. Each of the elements in the computer system 150 is typically connected to other devices via a bus 180 that in turn can consist of data, address, and control buses. The method steps for dynamic content management are effected by instructions in the software that are carried out by the computer system 100. Again, the software may be implemented as one or more modules for implementing the method steps.
In particular, the software may be stored in a computer readable medium, including the storage device 162 or that is downloaded from a remote location via the interface 164 and communications channel 140 from the Internet 120 or another network location or site. The computer system 100 includes the computer readable medium having such software or program code recorded such that instructions of the software or the program code can be carried out.
The computer system 100 is provided for illustrative purposes and other configurations can be employed without departing from the scope and spirit of the invention. The foregoing is merely an example of the types of computers or computer systems with which the embodiments of the invention may be practised. Typically, the processes of the embodiments are resident as software or a computer readable program code recorded on a hard disk drive as the computer readable medium, and read and controlled using the control module 166. Intermediate storage of the program code and any data including entities, tickets, and the like may be accomplished using the memory 170, possibly in concert with the storage device 162.
In some instances, the program may be supplied to the user encoded on a CD-ROM or a floppy disk (both generally depicted by the storage device 162), or alternatively could be read by the user from the network via a modem device connected to the computer 150. Still further, the computer system 100 can load the software from other computer readable media. This may include magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer and another device, a computer readable card such as a PCMCIA card, and the Internet 120 and Intranets including email transmissions and information recorded on Internet sites and the like. The foregoing are merely examples of relevant computer readable media. Other computer readable media may be practised without departing from the scope and spirit of the invention. The method for dynamic content management can be realised in a centralised fashion in one computer system 100, or in a distributed fashion where different elements are spread across several interconnected computer systems.
Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation or b) reproduction in a different material form.
A web-based interface is typically provided to manage the content in the database. A wizard-style interface is typically provided to assist and speed-up initial setup of content and system table data in the database.
The foregoing describes only a few arrangements and/or embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the arrangements and/or embodiments being illustrative and not restrictive.
Table A - Javadocs Relating to Java Servlet Embodiment
Package com.superchai.common
Figure imgf000023_0001
Figure imgf000023_0002
com.superchai.common Class FrontDoorServlet j ava . lang . Obj ect
+--javax. servlet .GenericServlet
I
+--javax. servlet .http.HttpServlet
+- -com. superchai . common. FrontDoorServlet
All Implemented Interfaces: java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig public class FrontDoorServlet extends javax.servlet.http.HttpServlet
Standard Servlet for all Superchai web applications. Request Parameters are placed in a properties object and passed to a SuperchaiServer.
com.superchai.common Class Query Results java . lang .Object
+--com. superchai . common.QueryResults public class QueryResults extends java.lang.Object This class is used as a replacement for ResultSet which does not require the statement to be kept open.
Field Summary boolean result setok
Figure imgf000024_0001
com.superchai.common Class SuperchaiServer jav . lang .Object
I
+- -com. superchai . common. SuperchaiServer public class SuperchaiServer extends j ava.lang.Obj ect
SuperchaiServer handles page requests for all Superchai web applications, with the application to call determined by the (sub)domain used, for example dcma.superchai.com will return a dcma page, while www.superchai.com will display the appropriate Artificial Monkey page. Required Parameters DcmaConfigPath - path to the config file. Generally specified in the proxy jsp file.
Figure imgf000024_0002
Figure imgf000025_0001
Method Summary j ava . lang . String! deobfuscate (j ava . lang . String str)
Convert a password stored in the database to plain text java . lang . String displayLoginPage (j ava . lang . String domain) Display a login form. java . lang . String displayPage (j ava . lang . String domain) Display a page from any Superchai web application based on the (sub)domain used in the request void execute (j ava . lang . String query)
Run a query on the default (system) database without returning a resultset. void execute (j ava . lang . String query, int databaseld) Run a query without returning a resultset. java .util . Hash ap getAHRoles Q Get all roles in the system. j ava . lang . String getAltText (j ava . lang . String tbl , java. lang. String col, java. lang. String row, java. lang. String lang)
Check if a translation in the specified language is available for the specified database cell. j ava . text . SimpleDateFormat getPateFormat ( int databaseiD)
Get the date formatting as appropriate for a SQL statement on the specified database j ava . sql . Connection getDbConnection ( ) Return a connection to the system database java . sql . Connection getDbConnection (int databaseld) Return a connection to the specified database java . lang . String getFileParam (j ava . lang . String key) Get a parameter from the config file only. java .util . Properties getFileParams ( ) Return file parameters int getNextID (j ava . lang . String tableName , int databaseiD)
Gets a number from the next id table to use as a primary key in the specified table and increments the value for use next time getNextID is called. java . lang . String g_etPara ( j ava . lang . String key)
Get a parameter from either the config file or request parameters j ava . util . Properties getParams ( )
Figure imgf000026_0001
Figure imgf000027_0001
Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail siteName public j ava . lang . String siteName
Name of the Artificial Monkey site the current user is authorised to access. Used by the Artificial Monkey extensions to the DCMA. username public j ava . lang . String username Username of the current user userEmail public java. lang. String userEmail
Email of the current user
Constructor Detail SuperchaiServer public SuperchaiServer ( ) Method Detail load public void load ( java . util . Properties p) throws SuperchaiException This method performs the tasks that would normally be in the constructor. It is done this way so that if any part of this method (particularly the authentication system) throws a SuperchaiException, the class is still properly instantiated and able to perform tasks such as displaying a login page. Parameters: p - Contains parameters determined by the calling servlet, generally from http request parameters. All parameters are treated as strings. Binaries are stored as strings of hex digits, beginning with "Ox". This encoding is also used to store multilingual text in the database where the database field can not store Unicode. getParam public java. lang. String getParam(java. lang. String key)
Get a parameter from either the config file or request parameters getRequestParam public j ava . lang . String getRequestParam ( j ava . lang . String key) Get a parameter from the request parameters only. Used when a
DcmalnstallException has been thrown and the request includes updates to the config file getFileParam public j ava . lang . String getFileParam ( j ava . lang . String key)
Get a parameter from the config file only. Generally the request parameters should not be used for things such as detemining database connections. setParam public void setParam ( j ava . lang . String key, j ava . lang . String val) Set a parameter for saving to the config file. getParams public j ava . util . Properties getParams ( ) Return all parameters getReq uestParams public j ava . util . Properties getRequestParams ( ) Return request parameters
getFileParams public j ava . util . Properties getFileParams ( ) Return file parameters deobfuscate public java. lang. String deobfuscate (java. lang. String str) Convert a password stored in the database to plain text obfuscate public java. lang. String obfuscate (java. lang. String str) Encrypt a password for storing in the database toOxStr public java. lang. String toOxStr (java. lang. String inp)
Convert a Unicode string to a string of hex digits to allow storage in a non-unicode format. No conversion is performed if the high byte of every character is 0. getAltText public java. lang. String getAltText (java. lang. String tbl, java. lang. String col, java. lang. String row, java. lang. String lang) throws SuperchaiException Check if a translation in the specified language is available for the specified database cell. An empty string is returned if no translation is available. setAltText public void setAltText (java. lang. String tbl, java. lang. String col, java. lang. String row, java. lang. String lang, java. lang. String val) throws SuperchaiException Add an alternative language value for a particular cell in the database. reEncode public java. lang. String reEncode (java. lang. String inp) Convert a string stored by to0xStr() back to a Unicode string getNextID public int getNextID (java. lang. String tableName, int databaseiD) throws SuperchaiException Gets a number from the next id table to use as a primary key in the specified table and increments the value for use next time getNextID is called. quoteSQL public java. lang. String quoteSCjL (int cmaObjectlD, java. lang. String pk, ava. lang. String ri) throws SuperchaiException Returns the supplied value in a format suitable for use in an SQL statement, based on the datatype field set in the DCMA_OBJECT_DETAIL record quoteSOL public java. lang. String quoteSQL (java. lang. String ri)
Returns a string surrounded by " suitable for use in a SQL query. This version assumes that the supplied value is to be handled by the database as text. pkeqri public java . lang . String pkeqri (int cmaObjectlD, j ava . lang . String pk, j ava . lang . String ri ) Returns an sql clause which is usually equivalent to "pk = ri" but extended to return "pkl = ril and pk2 = ri2" if the object has multiple primary keys. getpkval public j ava . lang . String getpkval (QueryResults obj ectlnfo , java . lang . String pk) throws SuperchaiException Returns the value of the column named pk in the supplied resultset, or multiple values separated by "-" if pk is of the form column l-column2 pksqllist public java. lang. String pksqllist (java. lang. String pk)
Converts a list of columns separtated by "-" and returns a comma separated list for use in SQL select clauses. getDateFormat public java. text .SimpleDateFormat getDateFormat (int databaseiD) throws SuperchaiException
Get the date formatting as appropriate for a SQL statement on the specified database query public QueryResults query (j ava . lang . String query, int databaseiD) throws SuperchaiException Run a query against the specified database query public QueryResults quer (j ava . lang . String query) throws SuperchaiException Run a query against the system database. This version throws a
DcmalnstallException if something goes wrong, since this indicates that the system database or some other part of the system is incorrectly configured. getDbConnection public j ava . sql . Connection getDbConnection (int databaseld) throws SuperchaiException Return a connection to the specified database getPbConnection public j ava . sql . Connection getDbConnection ( ) throws SuperchaiException Return a connection to the system database , . execute public void execute (java. lang. String query, int databaseld) throws SuperchaiException Run a query without returning a resultset. Generally used for writing to the database. execute public void execute (j ava . lang . String query) throws SuperchaiException
Run a query on the default (system) database without returning a resultset. Generally used for writing to the database. getRoles public j ava . util . HashSet getRoles ( )
Get all roles assigned to the current user
Returns: a Hashset containing strings, each being the NAME field from the DCMA_ROLE table getAHRoles public j ava . util . HashMap getAHRoles ( )
Get all roles in the system. Returns: a HashMap containing strings, the key being ROLE_ID and the value being
NAME from the DCMA_ROLE table hasRole public boolean hasRole (j ava . lang . String role) Returns true iff the current user is assigned the specified role.
Parameters: role - value for NAME in DCMA_ROLE getRoleSqlList public j ava . lang . String getRoleSqlList ( )
Get a SQL list of roles assigned to the current user.
Returns: a string of the form "'rolel', 'role2', 'role3'" displayLoginPage public java. lang. String displayLoginPage (java. lang. String domain)
Display a login form. Returns: string containing html for a login form. displayPage public java . lang . String displayPage (j ava . lang . String domain) throws SuperchaiException
Display a page from any Superchai web application based on the (sub)domain used in the request split public j ava . lang . string [] split (j ava . lang . String inp)
Split a comma seperated list. This functionality is the same as String. split(), but is included here to allow use of pre 1.4 JDK vewrsions. showRepairDatabase public java. lang. String showRepairDatabase ( ) throws SuperchaiException
Check that the system tables exist, and if not create them. Called when attempting to run a query on the system database throws a DcmalnstallException showRepairlnstall public j ava . lang . String showRepairlnstall (DcmalnstallException e) throws SuperchaiException Handle non-database DcmalnstallExceptions by displaying a form for the user to enter configuration information.
Package com.superchai.dcma
Main DCMA classes.
See:
Description
Figure imgf000032_0001
Figure imgf000033_0001
com.superchai.dcma Class CmaObject j ava . lang . Obj ect
.--com. superchai. dcma. CmaObject
Direct Known Subclasses:
Default, SamCategory, Samltem, SamSite. SvstemObject public class CmaObject extends j ava. lang. Obj ect
Represents a CMA object, which generally corresponds to a row in a table. The main class in the dcma system is CmaObject. Subclasses may be defined by a user to provide custom functionality. Whether to use one of these subclasses or the default implementation in the superclass is determined by the dcma server based on information in the system database. CmaObject contains methods to perform the standard actions on an object. The constructor loads all necessary information from the databases and request parameters. A doAction method is included to execute the appropriate method based on the action id parameter.
Figure imgf000033_0002
Figure imgf000034_0001
Figure imgf000034_0002
Figure imgf000034_0003
Figure imgf000035_0001
Methods inherited from class java.lang.Object clone , equals , finalize , getClass , hashCode , notify, notifyAll , toString , wait , wait , wait
Field Detail databaseiD public int databaseiD
The database holding this object cmaObjectlD public int cmaObjectlD
Unique identifier for the object friendlvName public java. lang. String friendlyName
Name a user sees for this object tableName public java. lang. String tableName
Name of the table holding this object primaryKey public java. lang. String primaryKey
Name of the Primary key column in the table, or if there are multiple keys, a list of the keys separated by "-" nameColumn public java. lang. String nameColumn
Column in the table holding a name for the row s public Dcma s
Link back to the DCMA Server object title public java. lang. String title
Title to use for the page, generally made up of the friendly name and the action name paths public j ava . lang . String [ ] paths
Paths associated with the object. The first is used to get a preview URL for the object, subsequent paths are used for cache clearing. workflowID public j va. lang. String workflowID
ID of the workflow associated with this object, if any isAssociationObiect public boolean isAssociationObject
True if this object is only used to link two other objects previewPath public java. lang. String previewPath The url used to show the object in a CD A template rowID public java. lang. String rowID
Value of the primary key column for the selected row, or a list separated by "-" if there are multiple primary key columns associationSearch public int associationSearch
The rowld of the object to be populated cols public java.util .Vector cols Object Details (Columns) in this table searches public j ava . util .Vector searches Searches available on this object
Constructor Detail
CmaObject public CmaObj ect ( int DBID, j ava . lang . String row, Dcma srv) throws SuperchaiException
Constructor used instead of load if no subclass is being used
CmaObject protected CmaObj ect O Default constructor. loadFromDB must be called before any other methods are called.
Method Detail loadFromDB public void loadFromDB (int DBID, j ava . lang . String row, Dcma srv) throws SuperchaiException Load all the required information for this CMA object. Normally this would go in the constructor,but it is in a seperate procedure to avoid problems with the subclasses. Parameters:
DBID - ED of the database containing this object. 100 for system objects, row - Value of the primary key for this object, can be set to null for non row- specific operations such as search or add. srv - the Dcma that instantiated this object detailView public j ava . lang . String detailVie (boolean writeAccess) throws SuperchaiException Displays a table with either edit boxes or read-only display of each column in the object. In the edit configuration fields are named in the form
DCMAF_objectDetailId_rowED to allow the form processor to find them
Parameters:. writeAccess - If true edit boxes will be displayed searchForm public java. lang. String searchForm () throws SuperchaiException Display forms for all searches defined on this object. Each search has a submit button named DCMASF_searchId. If any of these buttons are found in the request parameters, the appropriate search will be executed and the results displayed below the form. addToDeleteList public void addToDeleteList (com . superchai . dcma . CmaObj ect . deletelnf o di ) throws SuperchaiException Build a list of objects to be deleted
Parameters: di - an object being deleted, this object and any others that requre it to exist will be added to the deletion list deleteObject public java. lang. String deleteObject () throws SuperchaiException Delete this object, and any other objects that require it to exist Returns: A confirmation screen or, if the request parameter deleteConfirmed is set to "Yes", a success message saveObject protected j ava . lang . String saveObjec O throws SuperchaiException
Process a submitted add/edit form. This method executes an inset or update SQL query built by iterating over columns in the object and calling
ObjectDetail. getSavelnfo
Returns: an error message if any problems occur, an empty string otherwise editObject public java. lang. String editObject () throws SuperchaiException Display an add/edit form. If this is called to process a form, do Validation and saveObject are called, then a read only view of the saved object is displayed, unless there are errors, in which case the edit form is redisplayed with error messages. doValidation protected boolean doValidation () throws ValidationException Run Validation, iterate over columns. Return false if any errors are found, continue over all details so multiple error messages can be given to the user. buildObiect public java. lang. String buildObject () throws SuperchaiException Build page Read only view of the columns in this object is displayed, followed by a search result style listing of any other objects linked to this object through foreign key relationships. doAction public java. lang. String doActio (int actionID) throws SuperchaiException Call the appropriate method for the specified action ID getCustomActions public j ava . lang . string getCustomActions ( )
List custom actions for this object, to allow links from side nav beforeSave protected j ava . lang . String beforeSave ( ) User exit called before saving the object to the database afterSave protected java. lang. String afterSave ()
User exit called immediately after the database write saving the object afterDelete protected j ava . lang . String afterDelete ( )
User exit called immediately after the object has been deleted from the database getFriendlvName public j ava . lang . String getFriendlvName ( ) Returns:
The value of the column specified as FRIENDLY_NAME in DCMA CMA OBJECT getPetailBvWidget public Obj ectDetail getDetailByWidge (int widgetID)
Get the first ObjectDetail in cols that uses the specified widget. getLanguages public j ava . util . HashMap getLanguages ( ) throws SuperchaiException get all languages available for the current user to work with in the DCMA key: SAM_LANGUAGE.LANGUAGE_ID value: SAM LANGUAGE.DESCP PTION
com.superchai.dcma Class Dcma java . lang .Object
+- -com. superchai .dcma.Dcma
Direct Known Subclasses:
AdminDcma public class Dcma extends java.lang.Object Handles DCMA Server functions DCMA related parameters required to be accessible by SuperchaiServer.getParamO actionID Specifies the action to be performed. Build, edit, search and delete are the standard actions. Special actions Display homepage, display setup wizard, and display binary file are also available. Additional actions can be added by the user if additional functionality is required. cmaObjectlD Specifies the type of object being worked with, generally corresponding to a table in the content database. rowID Specifies which row in the table is being worked on. This can be left undefined if the row does not yet exist or for an action such as search which does not operate on a specific row. Form fields An edit form includes a number of form fields containing user entered content which is to be saved to the database. These are named systematically so that the system knows what fields to look for when processing form input. Miscellaneous A number of parameters not a core part of the system are accepted, mainly for user friendliness purposes. For example saveRedirect, which tells the system to display a page other than the default after an object is successfully saved.
Figure imgf000040_0002
Figure imgf000040_0001
Figure imgf000040_0003
Figure imgf000041_0001
Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail server public SuperchaiServer server primaryObject public CmaObject primaryObject The object being worked on rowID public java. lang. String rowID
ID of the record in primaryObject cmaObjectlD public int cmaObjectlD ID of the CMA object actionID public int actionID Action ID langld public int langld
Language ID Constructor Detail
Dcma public Dcma O
Default Constructor
Dcma public Dcma (SuperchaiServer svr) throws SuperchaiException Parameters: syr - The SuperchaiServer object that instantiated this dcma
Method Detail load protected void load O throws SuperchaiException Initialise the DCMA Server Parameters: o - CMA Object ID r - Row ID a - Action ID p2 - Properties object holding everything from the request getHelpText protected java. lang. String getHelpText ( ) throws SuperchaiException getOwnerSQL public java. lang. String getOwnerSQ (CmaObject o, boolean strict)
Get an SQL clause to check that the owner column is either set to one of the roles assigned to the current user or null.
Parameters: o - the object being searched on strict - if true null owner rows will not be returned - ie only rows created by the current user will be returned, not those shared between users.
Returns:
"(columnname in ('rolel', 'role2', 'role3') or columnname is null) canModify public boolean canModif (CmaObj ect o)
Returns true if the current user owns the specified object. displayPageHeader protected j ava . lang . String displayPageHeader (j ava . lang . String title) Display a standard page header displaySideNav protected java. lang. String displaySideNav () throws SuperchaiException
Display the side nav , displayHome protected j ava . lang . String displayHome ( ) Display the DCMA homepage displayPage public java. lang. String displayPage () throws SuperchaiException Display a DCMA Page based on the request parameters deleteSideNav public void deleteSideNa ( ) Delete cached sidenav files exportData public j ava . lang . String exportData ( ) throws SuperchaiException Get SQL insert statements representing everything in the system database and write to a file
com.superchai.dcma
Class FormStyle j ava . lang . Obj ect
+--com. superchai .dcma. FormStyle public class FormStyle extends j ava. lang. Obj ect
Form Style holds a piece of HTML containing codes in the form %code% which are replaced by dynamic elements when the CMA is rendered.
Field Summary j ava . lang . String html
Constructor Summary
FormStyle (Dcma svr, int DBID) Method Summary void subst (j ava . lang . String token, j ava . lang . String fullText)
Replaces the given token with the full text value.
com.superchai.dcma Class ObjectDetail j ava . lang . Obj ect
+- -com. superchai . dcma . Obj ectDetail
Direct Known Subclasses:
CategorySelect. CmsRecord. CreateUser, CreateUserEmail, DateTime, DisplayOrder, FileWidget. FkSearch. ImageS elect. IntText. Invalid. ModifyUser. ModifyUserEmail. Mtm Select. Owner, Password. PrimaryKey. RoleSelect, Select. TextBox . WebEdit public class ObjectDetail extends j ava. lang. Obj ect Object Detail Represents the value of a column in one row of a table. The second core part of the DCMA system is the ObjectDetail class. This class represents a cell in the table. Like CmaObject, user defined subclasses ("widget classes") can be used for custom functionality. It is usually instantiated in the constructor of CmaObject for each of the fields in that object. Methods of this class are called by the action methods in CmaObject to execute code specific to each field.
Figure imgf000044_0001
Figure imgf000045_0001
Figure imgf000045_0002
Figure imgf000046_0001
Methods inherited from class java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Field Detail detaillD public int detaillD
Primary key from DCMA_OBJECT_DETAIL friendlyName public java. lang. String friendlyName user friendly description for this column columnName public java. lang. String columnName
Name of the corresponding column in the database widgetID public int widgetID
ID of the widget used for this column width public j ava . lang . String width Width of an input field height public int height height of an input field cmaObjectlD public int cmaObjectlD
ID of the parent object displayOrder public int displayOrder position of this field within the parent object helpNote public j ava . lang . String helpNote brief text telling the user the purpose of this column validationID public int validationID
ID of the validation for this object linkColumnName public j ava . lang . String linkColumnName key column in linkObject linkedTo public j ava . lang . String linkedTo Not Used visible public boolean visible
True if this field is visible to the user cascadeDelete public boolean cascadeDelete Not Used required public boolean required
True if this is a required field projectPath public j ava . lang . String proj ectPath
Path, generally used for vignette CMS paths value public java. lang. String value Value ofthe field widgetName public j ava . lang . String widgetName Not Used errorText public java . lang . String errorText
Error message for validation rowID public 2 ! j jjj aaaavvvvaaaa .... l lllaaaannnngggg .... SSSSttttrrrriiiinnnngggg rrrroooowwwwIIIIDDDD
Value of the primary key from the parent object tableName public java. lang. String tableName
Name of the table from the parent object primaryKey public j va . lang . String primaryKey primary key column name from the parent object linkObjectlD public int linkObj ectlD ID of the link object if this is a foreign key widget validations public j ava . util . Vector validations validations defined on this field dataType public java. lang. String dataType datatype of this column - text, int, date, etc databaseiD public int databaseiD
ID of the database holding the parent object
public Dcma s
Dcma Server for access to standard functions parentobj public CmaObj ect parentobj Parent object
Constructor Detail ObjectDetail protected ObjectDetail () Default Constructor ObjectDetail public ObjectDetail (int DBID,
CmaObject o, Dcma svr) throws SuperchaiException Constructor for use if no subclass is needed
Method Detail loadFromDB public void loadFromDB ( int DBID,
CmaObject o, Dcma svr) throws SuperchaiException
Load Object Detail from database. editWidget public java. lang. String editWidget (java. lang. String fieldName) throws SuperchaiException
Display a field for an edit form displayWidget public java. lang. String displayWidget () throws SuperchaiException
Display the value of the field, for use on the build page deleteWidget public java. lang. String deleteWidge (java. lang. String fieldName) throws SuperchaiException run any additional code necessary for this widget when the parent object is deleted getSavelnfo public Savelnfo getSavelnfo () throws SuperchaiException
Return a column-value pair for use in a database write searchWidget public java. lang. String searchWidget (java. lang. String fieldName) throws SuperchaiException
Display a field for a search form doValidation public boolean doValidation () throws SuperchaiException
Run widget specific validation code com. superchai. dcma Class Savelnfo java . lang . Object +- -com. superchai.dcma. Savelnfo public class Savelnfo extends java. lang. Obj ect
Holds the information needed to save a value to the database. Used as a return type for ObjectDetail. getSavelnfoQ
Figure imgf000050_0001
com.superchai.dcma Class SearchResult java. lang. Object
+- -com. superchai .dcma. SearchResult public class SearchResult extends java.lang.Object
Search Result - Displays an object as a listing on a search page. This class is essentially a cut down version of CmaObject
Field Summary j ava . lang . String html
Constructor Summary
SearchResult (Dcma svr, int obj, java. lang. String row, java. lang. String tbl, java. lang. String pkcol, java. lang. String nc, java. lang. String loi, java. lang. String lri, int dbid)
Figure imgf000050_0002
com. superchai. dcma Class Validation java . lang .Obj ect
I
+- -com. superchai .dcm .Validation public class Validation extends java.lang.Object
Form Validation - check a submitted form field against validation rules as defined in the system database.
Figure imgf000051_0001
Constructor Summary
Validation (Dcma s , int DBID)
Load validation rules from the database
Method Summary jav . lang . String checkCMSAuth ( j ava . lang . String value)
Check with the workflow system that the current user is allowed to access this object java . lang . String! checkCus torn (j ava . lang . String value) Custom validation method java . lang. String checkMax eng th ( j ava . lang . String value) Check maximum length (string values only) java . lang . String checkMaxVal (j ava . lang . String value) Check maximum value (numeric values only) j ava . lang . Stringi checkMinLeng th ( j ava . lang . String value) Check minimum length (string values only) j ava . lang . String checkMinVal (j ava . lang . String value) check minimum vaue (numeric values only) java . lang . String checkRegExp ( j ava . lang . String value) Check that value matches the validation regular expression java . lang. String checkRequired (j ava . lang . String value) Check that value is not null or blank if this is a required field java . lang . String checkValidation ( j ava . lang . String value) Check value against all the Validation rules
Package com.superchai.dcma.objects
Custom CMA Object subclasses to provide alternate functionality at the object level
See:
Description
Class Summary
Default CmaObject subclass for all objects, which will be used if no
Default alternate class is specified.
SystemObject CmaObject subclass for the system objects.
Package com.superchai.dcma.widgets
Widget classes (subclasses of ObjectDetail) as currently included in the standard distribution
See:
Description
Figure imgf000052_0001
Figure imgf000053_0001

Claims

1. A method for managing content stored in an electronic content database, said method including the steps of: storing, in a database, first data representative of data structures holding said content; storing, in a database, second data relating to the appearance and functionality of at least one electronic form; generating an electronic form for a user to specify an action and data on which said action is to be performed, wherein said form is generated in accordance with said first and second stored data; and performing said specified action on said specified data.
2. The method of claim 1, wherein said specified data comprises at least a portion of one of the group comprising: content stored in said content database; said first stored data representative of data structures holding said content; and said second stored data relating to the appearance and functionality of at least one electronic form.
3. The method of claim 1 or claim 2, wherein said specified action is selected from the group consisting of: adding data to said specified data; editing said specified data; deleting said specified data; searching for said specified data; and viewing said specified data.
4. A method for managing content in an electronic content database, said method including the steps of: storing, in a database, first data representative of data structures holding said content; storing, in a database, second data relating to the appearance and functionality of at least one electronic form; generating an electronic form for a user to specify an action to perform on said content, wherein said form is generated in accordance with said first and second stored data; and performing said specified action on said content.
5. The method of claim 4, further including the step of querying a database to retrieve said first data.
6. The method of claim 4, further including the step of querying a database to retrieve said second data.
7. The method of claim 4, wherein said action is performed on a specified portion of said content, said portion specified in said electronic form by said user.
8. The method of claim 4, wherein said specified action is selected from the group consisting of: adding content to said content database; editing content in said content database; deleting content from said content database; searching for content in said content database; and viewing content in said content database.
9. A system for managing content stored in an electronic content database, including: storing means for storing, in a database, first data representative of data structures holding said content; storing means for storing, in a database, second data relating to the appearance and functionality of at least one electronic form; processor means for generating an electronic form for a user to specify an action and data on which said action is to be performed, wherein said form is generated in accordance with said first and second stored data; and processor means for performing said specified action on said specified data.
10. The system of claim 9, wherein said specified data comprises at least a portion of one of the group comprising: content stored in said content database; said first stored data representative of data structures holding said content; and said second stored data relating to the appearance and functionality of at least one electronic form.
11. The system of claim 9 or claim 10, wherein said specified action is selected from the group consisting of: adding data to said specified data; editing said specified data; deleting said specified data; searching for said specified data; and viewing said specified data.
12. A system for managing content in an electronic database, including: storing means for storing, in a database, first data representative of data structures holding said content; storing means for storing, in a database, second data relating to the appearance and functionality of at least one electronic form; processor means for generating an electronic form for a user to specify an action to perform on said content, wherein said form is generated in accordance with said first and second stored data; and processor means for performing said specified action on said content.
13. The system of claim 12, further including processor means for querying a database to retrieve said first data.
14. The system of claim 12, further including processor means for querying a database to retrieve said second data.
15. The system of claim 12, wherein said action is performed on a specified portion of said content, said portion specified in said electronic form by said user.
16. The system of claim 12, wherein said specified action is selected from the group consisting of: adding content to said content database; editing content in said content database; deleting content from said content database; searching for content in said content database; and viewing content in said content database.
17. A computer program product having a computer readable medium having a computer program recorded therein for managing content stored in an electronic database, said computer program product including: computer program code means for storing, in a database, first data representative of data structures holding said content; computer program code means for storing, in a database, second data relating to the appearance and functionality of at least one electronic form; computer program code means for generating an electronic form for a user to specify an action and data on which said action is to be performed, wherein said form is generated in accordance with said first and second stored data; and computer program code means for performing said specified action on said specified data.
18. The computer program product of claim 17, wherein said specified data comprises at least a portion of one of the group comprising: content stored in said content database; said first stored data representative of data structures holding said content; and said second stored data relating to the appearance and functionality of at least one electronic form.
19. The computer program product of claim 17 or claim 18, wherein said specified action is selected from the group consisting of: adding data to said specified data; editing said specified data; deleting said specified data; searching for said specified data; and viewing said specified data.
20. A computer program product having a computer readable medium having a computer program recorded therein for managing content in an electronic database, said computer program product including: computer program code means for storing, in a database, first data representative of data structures holding said content; computer program code means for storing, in a database, second data relating to the appearance and functionality of at least one electronic form; computer program code means for generating an electronic form for a user to specify an action to perform on said content, wherein said form is generated in accordance with said first and second stored data; and computer program code means for performing said specified action on said content.
21. The computer program product of claim 20, further including computer program code means for querying a database to retrieve said first data.
22. The computer program product of claim 20, further including computer program code means for querying a database to retrieve said second data.
23. The computer program product of claim 20, wherein said action is performed on a specified portion of said content, said portion specified in said electronic form by said user.
24. The computer program product of claim 20, wherein said specified action is selected from the group consisting of: adding content to said content database; editing content in said content database; deleting content from said content database; searching for content in said content database; and viewing content in said content database.
PCT/AU2002/000606 2001-05-18 2002-05-17 Dynamic content management application WO2002095617A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AUPR5097 2001-05-18
AUPR5097A AUPR509701A0 (en) 2001-05-18 2001-05-18 Dynamic content management application

Publications (1)

Publication Number Publication Date
WO2002095617A1 true WO2002095617A1 (en) 2002-11-28

Family

ID=3829077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2002/000606 WO2002095617A1 (en) 2001-05-18 2002-05-17 Dynamic content management application

Country Status (2)

Country Link
AU (1) AUPR509701A0 (en)
WO (1) WO2002095617A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082033A1 (en) * 2012-09-14 2014-03-20 Salesforce.Com, Inc. Methods and systems for managing files in an on-demand system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000074294A2 (en) * 1999-05-31 2000-12-07 Webnara Co., Ltd. General-purpose robot agent and real-time search method
WO2001027833A2 (en) * 1999-10-08 2001-04-19 The Belo Company Method and system for operating a content management system
WO2001098918A1 (en) * 2000-06-20 2001-12-27 Fatwire Corporation System and method for least work publishing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000074294A2 (en) * 1999-05-31 2000-12-07 Webnara Co., Ltd. General-purpose robot agent and real-time search method
WO2001027833A2 (en) * 1999-10-08 2001-04-19 The Belo Company Method and system for operating a content management system
WO2001098918A1 (en) * 2000-06-20 2001-12-27 Fatwire Corporation System and method for least work publishing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082033A1 (en) * 2012-09-14 2014-03-20 Salesforce.Com, Inc. Methods and systems for managing files in an on-demand system
US9977788B2 (en) * 2012-09-14 2018-05-22 Salesforce.Com, Inc. Methods and systems for managing files in an on-demand system

Also Published As

Publication number Publication date
AUPR509701A0 (en) 2001-06-14

Similar Documents

Publication Publication Date Title
US9159040B2 (en) Accessing a ERP application over the internet using strongly typed declarative language files
US5835712A (en) Client-server system using embedded hypertext tags for application and database development
US7165073B2 (en) Dynamic, hierarchical data exchange system
US9336137B2 (en) System and method for performing data management in a collaborative development environment
US8484561B1 (en) System and method for updating an object instance based on instructions received from multiple devices
US6810429B1 (en) Enterprise integration system
US20060294459A1 (en) Method and apparatus for end-to-end content publishing system using xml with an object dependency graph
US20070239726A1 (en) Systems and methods of transforming data for web communities and web applications
US20050210000A1 (en) Semantic web portal graphic interface
US20020085032A1 (en) Method and apparatus for providing a graphical user interface for creating and editing a mapping of a first structural discription to a second structural description
US20060015839A1 (en) Development of software systems
EP1484675A2 (en) System and method for generating scripts for defining database objects
EP1290575A1 (en) A document processing system and method
US20040230897A1 (en) Systems and methods for generating web sites
US20150195311A1 (en) Systems and Methods for Providing Access to a Document Associated with a Third Party Software Application Via Interframe Communication
US20150193406A1 (en) System and Method to Provide Collaborative Document Processing Services Via Interframe Communication
Kerer et al. Layout, content and logic separation in web engineering
US7225202B2 (en) Method and apparatus for generating query and response statements at runtime from generic requests
US6931599B1 (en) Page sub-component prerequisite control mechanism
US20070094289A1 (en) Dynamic, hierarchical data exchange system
US6922813B1 (en) Page prerequisite control mechanism
JP2003281149A (en) Method of setting access right and system of structured document management
US7266561B2 (en) Method and apparatus for splitting and merging request and response data at runtime
WO2002095617A1 (en) Dynamic content management application
Faulstich Building Hyper View web sites

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP