WO2001046861A9 - Method and apparatus for deploying data among data destinations for website development and maintenance - Google Patents
Method and apparatus for deploying data among data destinations for website development and maintenanceInfo
- Publication number
- WO2001046861A9 WO2001046861A9 PCT/US2000/032538 US0032538W WO0146861A9 WO 2001046861 A9 WO2001046861 A9 WO 2001046861A9 US 0032538 W US0032538 W US 0032538W WO 0146861 A9 WO0146861 A9 WO 0146861A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- website
- data
- file
- content
- development
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Definitions
- the invention relates generally to methods and apparatuses for developing and maintaining network websites and, more particularly, to a method and apparatus for managing the deployment of data both internally and externally among one or more destinations while developing and maintaining network websites.
- Figure 1 is a diagrammatic view of a website development system for hosting a deployment method according to the invention
- Figure 2 is a diagrammatic view of a data deployment system according to the invention.
- Figure 3 is a diagrammatic view of a data deployment system according to the invention.
- Figure 4 is a diagrammatic view of a data deployment system according to the invention
- Figure 5 is a diagrammatic view of a data deployment system according to the invention
- Figure 6 is a diagrammatic view of a tracker table according to the invention
- Figure 7 is a diagrammatic view of a data deployment system according to the invention
- Figure 8 is a diagrammatic view of a data deployment system according to the invention
- Figure 9 is a diagrammatic view of a data deployment system according to the invention.
- Figure 10 is a table chart illustrating a deployment method according to the invention
- Figure 1 1 is a table chart illustrating a deployment method according to the invention
- Figure 12 is a table chart illustrating a deployment method according to the invention.
- Figure 13 is a diagrammatic view of a data deployment system according to the invention.
- a method and apparatus are provided for dynamically organizing and tracking website content during its deployment. Organizing and tracking may be done internally to a website development system during development and externally to outside destinations such as production servers that provide access to websites via the Internet or intranet.
- the content may include data, graphic displays and other content including such content undergoing modifications by individual contributors and deployment within a system.
- a system incorporating the invention would be able to create and stage proposed changes for scrutiny before the final product is deployed to a website.
- the deployment of the data, both internally to the development system as well as externally to a destination, such as a production server, is accomplished in an organized manner.
- the method of internal deployment includes the process of deploying data among workstations, storage areas, such as a backing store, staging areas, editing areas and other internal areas during the development of website content.
- a tracking system is able to track such changes as the content is being created, including information regarding their source and history.
- the method of external deployment includes different schemes for deploying the finished website content to one or more destinations, such as production servers. A similar tracking system may also be included for tracking the external deployments to keep track of what content is sent, to where and by whom.
- the invention also includes a method and apparatus for creating templates for use in deploying data, both internally and externally. The method of using templates provides a highly configurable way to capture, edit and store data imported from end-users who are developing websites.
- the method also provides for the integration of captured data with other applications.
- the invention accomplishes this by efficiently keeping the data separate from the data template presentation.
- the method allows the transfer of the data separate from the presentation so that the data can be modified and so that different templates can be utilized for presenting the data.
- the templating mechanism for capturing data content from end-users may separate from the mechanism for defining the appearance of the contents when it is displayed.
- This architecture allows for the unlimited re-use of data after the data is captured and stored. It further allows a user to define different appearances and behaviors for the same data content based on how, when, where, or to whom the data is displayed.
- the isolation of the data apart from the manner in which it is presented allows for easy manipulation of the data and efficient storage.
- the Invention provides a method and apparatus for deploying website content.
- the method may store and track proposed content changes during or before deployment to a website.
- an organized tracking system is provided to keep track of changes made by other people operating within separate workstations.
- a staging area may be included to post proposed changes to a website and to track their source and history.
- the method may include the ability to track the transfer of data among several data destinations used in developing and maintaining websites.
- the user's content may be separately stored and tracked by the system internally so that the source and history of content changes can be kept track of during development.
- tracking can include recording the source and history of content that is deployed externally so that external deployment of the content can be optimized.
- Such changes may include proposed changes to an existing site or new content.
- a template mechanism is provided to further organize both the capturing of data during development and the presentation of content on a website.
- the invention is described in the context of a system and method for website maintenance and development, it is not limited to any narrow interpretation of such implementation, but may be applicable to other applications where the efficient organization, tracking and deployment of data is desired.
- Such a system would be able to fully control the creation, maintenance and release of versions of website content. It further allows the control of who can authorize a release, based on predetermined priorities. Such a system is able to govern that which any one person or entity can release based on predetermined authorizations. It may also control where content can be released, whether it is released at one or more websites, and the manner in which a release can occur. Such a system would also have the ability to automatically control content distribution. Content may be distributed according to certain events. Releases that occur in response to the occurrence of such may be preauthorized so that the release occurs automatically. Using a system that employs the features and methods of the invention may allow the application of complex distributions of content among one or more websites. Such
- Deployment of content according to the invention may also benefit a system by improving the integrity of information transmissions.
- the transmissions of information are actually transactional in nature, where certain safeguards are established to ensure proper deployment.
- Control of the deployments may also allow for the rollback of an external deployment before it occurs. With robust control features provided, a deployment can be held back for analysis before the deployment occurs.
- a website management system may also be highly scalable. Since complex hierarchies of control may exist in such a system, the invention could allow a website management application to be flexible enough to accommodate a sizeable team of content contributors in a system. Such a system could then accommodate virtually unlimited amounts of content contributed from multiple sources and deploy the content to one or more destinations in an efficient and organized manner.
- FIG 1 a computer network system 100 for website development is illustrated.
- development workstations 102 website developers may add, remove, edit and examine files for a website.
- Development workstations may include conventional personal computers, UNIX workstations, or other workstations that can be configured to develop content.
- the development workstations 102 may be connected to a development server 104 via a computer network 106, such as the Internet or LAN.
- the development server 104 may include a web server 108 for serving up content to web browsers, and a backing storage 110 for storing versions of website content.
- the server 108 processes HTTP requests from the development stations 102 for website content (e.g., files).
- the website files may be physically stored in the backing store 1 10 which may be conventional, such as the WINDOWS NT files system commercially available from Microsoft Corporation.
- the development server 104 may also include a conventional memory 1 12 (e.g., RAM) and a conventional processor 114, which implements the website development methods of the present invention by executing software 1 16 stored in the memory 1 12.
- An HTTP protocol virtual ization module 1 18 may be executed by the processor 114, allowing web server 108 to operate as if it were multiple servers.
- the module may also be stored in the memory 1 12.
- the development server 104 may be coupled to a website production web server 120 via a network 122.
- Network 122 may be the same network as network 106 or a different network.
- the web server 120 may also be coupled to the Internet or an intranet 124. When a website is ready to be posted on the World Wide Web or on an intranet, the development server 104 sends the website content to the production web server 120 which then provides Internet or intranet access to the website.
- a website is generally comprised of the contents of an arbitrary file system.
- the website development system 100 of the present invention may include hierarchical file systems. Each such file system of the present invention provides an environment for managing and manipulating individual files.
- the website development software 1 16 When executed, the website development software 1 16 enables the management and manipulation of files.
- the backing storage 110 is where the files and corresponding metadata, e.g., owner identification, group identification, access control, file name, modification times, creation times, extended attributes (EAs) etc., may be physically stored.
- metadata e.g., owner identification, group identification, access control, file name, modification times, creation times, extended attributes (EAs) etc.
- a hierarchical file system of the present invention is referred to an "area.” There may be different types of areas including work areas, staging areas and edition areas.
- a work area is typically a modifiable file system that is used by persons who create and maintain web content in work files for eventual use in a website.
- a staging area is usually an area where content from these work files is assembled before it is published.
- a central control person such as a webmaster, may edit content submitted from work areas within a staging area or an edition area. Since the work areas are generally areas for creating and maintaining content exclusively, the staging and edition areas may be restricted to only assembling and displaying content. By design then, they may be configured as read-only file systems.
- a work area may initially include a virtual copy of an entire website, unless there is no existing website, in which case the work area may be empty. In other words, a work area may initially have the same contents as the file system designated as the website.
- a work area provides a developer's personal view of a website in which the developer may contribute to the website.
- a work area For example, in a work area, developers can freely add, delete and modify website content and see how their changes fit into the context of the entire website. Changes made by developers in work areas preferably do not affect the website or the work of other contributors in other work areas. This is because each work area may be a separate file system.
- a work area is_ located at workstation 102. Developers may integrate their work in a staging area by submitting the contents of their work areas into a staging area. This action is referred to as an internal deployment, or a simple data deploy, where data is transferred to a backing store, which contains file versions of web content.
- the staging area is a file system available to multiple developers that provides a shared view of the website. Thus, a staging area may hold the collective work of several developers' work areas and may allow the developers to share and integrate their changes. In a staging area, the developers can see how their changes fit together.
- the staging area is typically located at the development server 104.
- Copying is said to be "virtual" where areas share directory trees, but are configured such that the directory trees do not need to be physically copied.
- the collective work in a staging area changes as different contributors submit new content from work areas. Work areas are most effective when the content and other information in the staging area is virtually copied back to one or more private work areas. This helps to keep the individual work areas up-to-date with respect to the staging area while contributors are performing website related tasks such as creating and maintaining content.
- an edition is typically a read-only file system, it is a frozen snapshot of the content of the entire website.
- An edition area is typically located in the production server 120. The invention provides for the deployment of such data so that virtual copies of information will be available for workstations.
- workflow configuration is a calculated arrangement of tasks to be performed.
- the arrangement may include tasks performed in serial order, in parallel with each other or in combinations of serial and parallel operation.
- a workflow model is a general workflow configuration that can be used repeatedly. Each workflow model describes a process that can include user tasks as well as a wide variety of automated tasks. Workflow models are typically designed by business managers and configured by a system administrator. The present invention provides the ability to enable a workflow configuration to be organized and managed according to the criteria established within the system.
- a first work area 202 includes memory for temporarily storing files 204.
- the files 204 define the portion of the website to which the user of the work area 202 is contributing as well as the changes the user is making.
- a table 206 In communication with the work area 202 is a table 206, referred to herein as a delta table.
- the delta table 206 maintains indicia of changes made by the user in work area 202.
- Work area 202 is in communication with a staging area 208.
- number of additional work areas (work areas 2-N), each with a delta table (delta tables 2-N)
- delta tables 2-N may be in communication with the staging area 208.
- Base table 210 is a storage area of the staging area 208 that maintains indicia of a base website configuration, such as an original version before it is modified in one or more workstations. This gives each work area a baseline from which to add, delete or otherwise modify content.
- the information maintained in the delta tables is with respect to the original website configuration information maintained in the base table 210.
- the contents of the base table 210 taken in combination with the contents of the delta table 206, specifies the website as modified in the first work area 202.
- a user in work area 202 may download a file or files containing some or all of the current data appearing on a website.
- This data file may include content, metadata, extended attributes, etc.
- An extended attribute is information attached to a file that is representative of information contained in the file.
- the downloaded file or files may be considered a type of "snapshot" of the website as it exists at a particular time.
- the user of work area 202 may then perform one or more tasks which result in changes to the website snapshot.
- the changes with respect to the snapshot are recorded in delta table 206.
- the user can submit the proposed changes to the staging area 208 for eventual recordation in base table 210.
- a decision is then made by a decision-making authority (e.g., a designated "webmaster") as to whether to incorporate the changes so as to update the final website in response to the changes.
- a decision-making authority e.g., a designated "webmaster
- the user of the work area 202 may also update its snapshot of the website by requesting an update from the staging area 208. Depending on the circumstances, this update may affect the user's snapshot of the website in a number of different ways. In one embodiment, changes made to the website in other work areas are incorporated in the user's snapshot, thus, updating the user's snapshot. In another embodiment, the snapshot is maintained in the work area 202 unchanged from that of the staging area 208, such that the same snapshot of the database may be used in each work area unaffected by changes made in the other work areas. Tracking table 212 tracks the different changes proposed for the website as it is modified in response to changes proposed by each work area and accepted by the authority in the staging area.
- the tracking table 212 is configured to track the various tables created, such as base tables, and also tracks the interrelationship among the various tables.
- the tracking table may keep track of the characteristics of the different tables such as the times and dates in which they are created, the interrelationships of the tables such as which base tables correspond with different delta tables, and other characteristics.
- FIG. 3 an operational flow diagram of the system 100 ( Figure 1) is illustrated.
- the data deployment method illustrated is computer-implemented for deploying data within a website development environment.
- An example of such an environment is a development system made up of development workstations 102 and development server 104 connected by network 106 in Figure 1. These deployments are internal to a development system, as opposed to external deployments, which would be deployments to destinations outside a development system.
- An example of an external deployment would be from a development system (such as 102, 104, 106 above) to production server 120 via network 122.
- the development system is configured to transfer data within the system in a useful manner in order to organize and track website development activities by concurrent users. Information may be transferred and tracked within the development system in the form of tuples.
- tuples are ordered sets of particular elements. More specifically to the invention, tuples are standard sets of data that define the proposed changes to a website by a work area. For example, each tuple may include the following information fields:
- Path An area-relative path name of the file associated with a key-value pair (see below.
- Value A data value for the item stored in the tuples' Key field. In the above example, "Sports" is the value. Thus, a key-value pair includes a key and an associated value. 4. State: The status of the tuple. For example, a proposed change to a website represented by a tuple can be characterized as "new,” “modified,” “deleted” or “not present.” If information is unchanged for the website, the term "original” may characterize the state of such unchanged information.
- Tuples may be produced in the system where data is located, the location where it is to be deployed. For example, information may be deployed from the work area 202 to its associated delta table 206.
- a tuple producer 302 which may in fact be the work area 202 itself, may package the data as a tuple and send it to a tuple destination 312, such as a database or other storage area, staging area, base table, delta table, etc.
- the tuple can then be transferred to a relational database 314, such as the base table 210 of the staging area 208, for storage.
- the mapping of tuples in such a relational database is triggered by the action of storing the tuples.
- Tuple 1 is for a "News- Section: Sports” extended attribute from the file “docroot/news/front.html”.
- Tuple 2 is for the "Locale: SF" extended attribute from the same file.
- relational database 314 may be the base table 210 of the staging area 208, which stores all information related to the base website information.
- relational database 314 may store a work area's delta table, such as the delta table 206, which stores the changes made by the work area 202.
- the tuple may also be sent to memory 320 and stored in an XML file 318. This could, for example, represent storage of the snapshot of the website in file storage 204 of the work area 202. Tuples may also be transferred among relational databases 314, 316. This could represent the transfer of data from delta table 206 to base table 210, such as when a submission of changes is made from a work area to a staging area. Using this system of data deployment, information can easily be transferred between work areas and staging areas so that website contributions can be organized and tracked.
- a tuple may also be passed through a filter such as in filter 308.
- the filter may be a software module placed at any point of the system, which reads, modifies and sends tuples. Thus, tuples can be modified anywhere in the system.
- a filter may alter certain attributes of tuples and may have an expression for transformation of the tuples. For example, one may assume a particular Key is a particular persons' age in years at a particular point in time. A filter may convert all such Keys to a range of ages, thus associating each person with an age group rather than a specific age.
- Staging area 208 includes website files 402 which may include a summation of the extended attributes contributed by the different work areas.
- the extended attributes may be extracted from the corresponding files, converted to tuples by a tuple producer and stored in the staging area 208.
- the tuples stored in the staging area 208 may be organized in base table 210 and versions of website tracked in tracking table 212.
- the base table 210 keeps track of the path, key, value and state of information, e.g., extended attributes converted to tuples, related to a website.
- the state can include original designation (i.e., "Orig"), new designation (i.e., "New”), modified designation (i.e., "Mod”) and deleted designation (i.e., "Del").
- the base table 210 can also include fields where information is not present.
- Work area 202 may include extended attribute files 204 that contain information related to the contributions of a user in work area 202 to a website.
- the extended attributes may be converted to tuples.
- Delta table 206 organizes the website information, such as the tuples, related to work area 202 with respect to the base website. For example, in the path P
- a work area 202 can receive a snapshot of a database from base table 210, which includes all relevant information of a website. While working on the website, work area 202 will track changes made by a user in delta table 206. Information received from the base table 210 will then be modified by changing the path, key, value or possibly the state of the information. Once a work area has completed a task, it can submit a tuple to the staging area for recordation of the changes. The changes are recorded on the base table 210. The change is also recorded in tracking table 212, which dynamically tracks the changes being made by the workstation.
- a work area can receive an update, sent in the form of tuples, in order to update the snapshot of the website in which a user is working.
- a development system can be configured to update the work area, for example, when requested by a user.
- updates to a work area are limited to information that has been submitted and approved for the final website. This can be done either automatically or in response to a request from a work area. This feature allows a system to maintain consistency so that all work areas are modifying a website using the same snapshot.
- the tracker table is a registry of tables that exist in the development system.
- the tracker table may keep track of the table names, such as the base or delta tables, the associated base table and the time in which an update was made.
- delta table 206 is associated with base table 210 and, within the tracker table, would be represented as such.
- all changes made to web content may be maintained in memory for use by the system.
- a log of deployments may be maintained at each end of the transaction so that both entities may maintain the deployment history.
- a development system may keep a Server Log that tracks log entries that are relevant to the development of content that is deployed.
- a destination such as a production server may keep a Client Log, which records log entries that may be relevant to a production server.
- Such logs may or may not be identical, depending on the individual system configurations.
- Such a history may include source information of the content, destination information, reasons for deployment, error alerts, and other information that may be relevant or otherwise helpful to external deployments.
- the logs may be in various levels of detail. The reasons a deployment is made may be deployed along with a content deployment and may include the following reasons illustrated in the table below.
- a log may be generated on either side of a deployment in order to track such deployments.
- the table below illustrates and example of a log file that may be used as a Client Log or a Server Log, i.e., either side may also keep copies of the log that is kept on the other side of the deployment.
- the system keeps track of changes internally, transparent from the user.
- the user in a work area may view the entire environment, which is a snapshot of the proposed website page or pages of the website that the user is working in and is allowed to make changes in.
- This snapshot can be replicated to other branches in a system so that other users may work on a similar snapshot of the website in their work area.
- the delta and base tables may also be used interchangeably within a branch so that information of an entire website or number of websites can be tracked efficiently.
- files once files are created in the development area, they may be deployed to an external destination, such as a production server.
- the deployment is an open type of deployment, which means that it allows flexibility in sending content to the external destination, and may include deployment to multiple destinations.
- the mechanism for external deployment may be different than that used internal to the development server.
- the manner in which files are deployed is dependent on the application. For example, one way to deploy files and directories is by directory comparison. This option could compare the directory being deployed from the source, such as an editing area or some other area prior to publishing, to a directory at the destination, such as a production server that hosts a website. It may by default deploy only the files from the source of deployment that are newer than their corresponding files at the destination, or that vary in size or other in other attributes than those at the destination. This configuration may be useful as a default deploy directory for websites that need to be updated on a regular basis.
- FIG. 10 an embodiment of such a configuration is illustrated in a table chart form.
- the deployment webserver e.g., sever 104 ( Figure 1)
- the production server e.g., server 120 ( Figure 1).
- File 1 in the development server is older than the corresponding file by just under 3 days, so it is not deployed.
- File 2 has the same date and size as its counterpart, so it also is not deployed.
- File 3 is newer in the development server than its corresponding file in the production webserver, so it is deployed.
- File 4 is of a different size than its counterpart file, so it is deployed as well.
- File 5 of the development webserver simply does not exist in the production server, so it is deployed with the others.
- File 6 does not exist in the development server, so it may be ignored. It is possible, however, to delete the file on the production server with a command sent along with the deployment.
- the production server may be updated according to the comparison protocol established within the software application that configures the deployment of the files.
- Another configuration for specifying which files to deploy is a revert option. The revert option allows the production server to revert back to previous content displayed on a webserver.
- This option may be useful, for example, if an update to a website was meant as a limited offer or that was possibly inaccurate. For example, if an airline wanted to offer a low fare for a certain flight, but only wanted to run it for a week, it could first deploy updated files using a default deployment as discussed above to produce a special fare rate on the website. After the limited period for the special fare, it may then want to revert back to the original offer. The revert option would do just that. The content on the web would revert back to the original fare offer, ending the special fare offer. This may also be useful for correcting a mistake. For example, if the new low fare was mistakenly too low, the revert function may allow the airline to conveniently revert back to the original fare, saving themselves from financial loss.
- FIG. 1 a scenario illustrating one embodiment of the revert option is illustrated in a table chart form.
- File 1 in the development server which is older than its corresponding file in the production webserver, is deployed. This is in contrast to the default function discussed above, which did not deploy the File 1 because it was older.
- File 2 is not deployed to replace its counterpart, since it is unchanged in both age and size from its counterpart found in the production server.
- File 3 again unlike the default method, is not deployed because the file from File 3 in the production server is older. Since this method is reverting to the former content, the older file is kept in tact in the production server.
- File 4 is deployed to the production server to replace its counterpart in the second method, as it was in the first method, but for different reasons.
- the purpose was to send any file that has changed in size.
- One reason for this may be that, if the date and time are the same, but the content has changed in size, then the content may have been deployed initially in error. From one perspective, this gives deference to the development server for accuracy and integrity of the content.
- Figure 5 shows deployment to the production server in this second method, but, again, for different reasons than the first method.
- one of the goals was to update old files on the production server with files that were created on the development server. The opposite goal is desired in the second method.
- File 5 does not exist in the production server, it is presumed that the file was deleted in the later version. Therefore, reverting back to the older version may require that the file be deployed.
- the system could, however, be configured to simply not transfer the file in this case.
- a file such as File 6 exists in the production server, and does not have a counterpart in the development server, the file may be left alone or may be deleted by a separate command. If the concern is that the production webserver content will not fully revert back to an older version of the content if the file is new, or if the file was actually deleted in the production server, then the system may be configured to delete the file upon deployment of the other files sent for the reversion. If this is not a concern, then the file may be left to remain.
- files may be deployed if there is any change in the size of the file or the date the file was created. This may be helpful if a hybrid of the default and revert configuration is desirable. For example, an airline website may desire to offer special lower fares in one area of the website, yet revert another fare back to an older offer in another area of the website. This third configuration would then be useful. Referring to Figure 12, a scenario illustrating one embodiment of such a configuration is illustrated in a table chart. As can be seen, all files may be deployed to replace their counterparts, except when the date is the same. Similarly, when a file exists in the production server but not in the development server, the system may be selectively configured to either leave or delete the file from the production server.
- the manner in which the files are deployed depends in part on how certain files are excluded, deleted, ignored or otherwise handled in achieving the goals set out by the system administrator in deploying files. According to the invention, when a file or directory is excluded, it is not deployed. Files may be excluded on the development server, e.g., 104 ( Figure 1), the production server, e.g., 120 ( Figure 1), or both servers.
- the system 700 includes a development webserver 702, otherwise known as a deploy client, that is configured to deploy files and directories production webserver 704, also known as a deploy server.
- the development server 702 may be configured to create and maintain content, such as that to be deployed to a production server that hosts a website.
- the production server 704 is configured to receive such deployments from the development server 702.
- the production server 704 may include one or more files and associated directories.
- Directory 706, for example, includes a branch 708 that associates files 710, 712, 714 with the directory.
- sub-directory 716 which is associated with directory 706 via branch 708 includes branch 717 that associates files 718J20 with the sub-directory.
- the production webserver 704 includes corresponding directory 706' that includes files 710', 712', 714' associated with that directory.
- corresponding subdirectory 716' includes corresponding files 718'J20'. In this scenario, subdirectory 716 along with files 718, 720 are excluded from deployment, and file 720 is further targeted for deletion.
- both files 718, 720 are set for exclusion.
- Corresponding file 718' is ignored.
- Corresponding file 720' is deleted according to a delete file command transferred with the development server 702. It may also be advantageous to exclude only certain files or directories from the development server 702. For example, a main directory along with its associated files could be excluded from a deployment, with its subdirectories not excluded. Many different scenarios are possible when excluding different files and directories at the development server 702. Referring to Figure 8, and exemplary system 800 for excluding files from the destination side of the process, such as a production server, is illustrated. This is a scenario where files or directories are not excluded from a development server 802, but only excluded only from a production server 804 side.
- directory 806 includes branch 807 associating files 808, 810, 812 with the file.
- sub-directory 814 also associated with the directory via the same branch, includes branch 815 associating files 816, 818 with this sub-directory.
- Corresponding directory 806' along with associated files 808', 810', 812' are deployed in normal course.
- the production server such as illustrated, may include corresponding directory 814' and associated corresponding files 816', 818'. This directory along with its associated files, excluded on the production server 804, would be overwritten upon deployment.
- the production server 804 may also include one or more directories and files such as subdirectory 820, having branch 821 that associates files 824, 826, 828 with this subdirectory. Since these files have no corresponding files that were deployed, this directory and all of its associated files get ignored.
- this configuration allows a development server 802 to deploy certain directories and files, and leave certain other files located on the production server alone.
- Development websever 902 is configured to deploy files and directories to production server 904 and includes directory 906 having a branch 907 that associates files 908, 910, 912 and subdirectory 914 with the directory.
- Corresponding directory 906' along with corresponding associated files 908', 910', 912' may be deployed as a matter of course.
- corresponding subdirectory 914' along with corresponding associated files 916', 918' which are all excluded on both the deployment source and destination, are all excluded and ignored upon receiving the deployment at the production server 904. This allows all associated files that are excluded to be simply left alone on both sides of the transmission.
- targets to which data is to be deployed can be specified, for example, specific production servers.
- deployments can take on many forms. Deployments can even occur in reverse, where a production server deploys its current content, for example, back to a development server. This may be useful in a scenario where it is desired that the development server track or otherwise monitor the activities of the production server.
- the tracking function discussed above and illustrated in Figure 6 would be relevant for such a configuration.
- the target of a deployment typically needs to be identified. For example, a deployment to a production server, such as a server that hosts a website, would typically require a port number and a server name.
- data may be deployed to multiple targets from a single location. Once data is authorized to be published, the data may be deployed to, for example, a number of production servers, for hosting of a website. This is a valuable feature that may be useful to websites that publish certain amount common information in different geographical regions, but that include other information in each individual region that may be specific to that region. Being able to deploy the data to remote locations from a single location according to the invention would be very useful to such an application, giving it the ability to geographically centralize the control of the website's maintenance and development.
- an application is configured to access a database without the need to search through all of the website hierarchical files looking for attributes. This is accomplished by selecting attributes (e.g., extended attributes) to represent website information relevant to searching.
- the attributes may be converted to data, such as tuples, suitable for storing in a database.
- the database may be more easily and conveniently searched than the file system.
- certain selected attributes are separately distinguished for easy searching. This provides an elegant compromise between a file system and a database.
- Organizations may wish to use file systems so that files can be maintained, the architecture can remain open and the files can be easy to work with. Attributes of files from the file system may be inserted into database so that data can be easily searched.
- the invention provides a useful hybrid architecture that allows for files to be maintained and also be easily identified and searched using separate extended attributed information that can be easily accessed by searching software. Organizing and tracking the transfer of these files is made more efficient by the invention, which organizes and tracks modifications to a website made at a workstation. This allows for the organization and tracking of changes made to a website by concurrent users.
- extended attributes may be represented as a tuple and transferred among the system entities while the website is being developed.
- a method and apparatus for creating templates and dynamically using templates in deploying data provides a highly configurable way to capture, edit and store data imported from end-users who are developing websites.
- the method also provides for the integration of captured data with other applications, and allows a system to centralize administration of a website and its page design.
- one example of the utility of this feature of the invention is the ability for a system to enforce consistent processes for developing and maintaining a website among multiple workstations.
- Templates may be useful for deploying data internally, such as in a backing store, e.g., backing store 110 ( Figure 1), where data is stored for access by the various areas.
- Templates may also be useful externally among data destinations such as production servers for further consistency in website development and maintenance.
- the invention accomplishes this with the templates by efficiently keeping the data separate from the data template presentation. This allows the data to be transferred separately from the presentation so that the data can be modified. This also allows the ability to allow different templates to present the data.
- the invention provides for the extension of application tags so that a user of the system can add tags to the website easily. For example, a user may want to add a link to a database so that the database can be searched.
- the template mechanism for capturing data content from end-users may be separate from the mechanism for defining the appearance of the contents when it is displayed. This architecture allows for the unlimited re-use of data after the data is captured and stored.
- the data is captured, it is configured and stored according to a data capture template, which defines the data captured for use in a work area.
- the data stored in the data capture template can be displayed via presentation templates. Either template may optionally deployed to a database for storage.
- the isolation of the data apart from the manner in which it is presented allows for easy deployment and manipulation of the data.
- This feature also allows for the flexibility to deploy captured data according to different presentation templates.
- a default template is chosen and enforced, a system could allow a user to input data without having any website content development skill. A user may simply input or modify data, then deploy the resulting content, either internally or externally. No special programming skills are necessarily required.
- templates are stored in Extensible Markup Language (XML).
- XML is an open standard that gives flexibility in incorporating textual and graphical data. The use of the standard allows a programmer to write definition that allows a system to capture data and store it in an XML data content record file. This data content is kept separate from whatever presentation template that is to be used to display the data.
- An XML template file is kept separate, and defines the manner in which the data content is presented on a web page.
- a work area may contain a directory of multiple presentation and data capture templates to be used in different applications. These different templates may be designed in a work area, or may be standardized within a system by a system administrator. The content created in a work area may then be merged with the template to produce an HTML file. Such methods of merging documents are well known to those skilled in the software programming arts.
- the file may then be deployed internally and stored in a database or other storage means.
- the HTML file may also be used to display the content on a website according to the template.
- the HTML file may be deployed according to the methods discussed above in order to update a website on the production server. Since the data is kept in a separate file from the template file, either the data or the associated template may be modified, recombined, and then deployed with ease. Different templates may also be used to deploy the data according to the same or a different presentation at different locations.
- the system includes a work area computer 1002 connected to a monitor 1004 having a display 1006 for displaying data to a user.
- the work area computer 1002 includes a CPU 1008 for controlling the inter-workings of the computer and a modem 1010 connected to a network 1011 for sending information to other destinations.
- the work area computer 1002 further includes cache 1012 for storing frequently used data.
- Memory 1014, controlled by CPU 1008, can be a conventional memory and can be a random access memory (RAM), a dynamic random access memory (DRAM), a static random access memory (SRAM), or any other memory configured to store and transfer digital data therefrom.
- Memory 1014 includes work area software application 1016 that includes template codes for creating and storing templates used for displaying data. These templates define the displays used on the website, so that a user having a graphic user interface (GUI) can read the data displayed in the selected template format. Also stored in the memory 1014 is data tuple code 1020 for storing and transferring data in the tuple format. Also communicating with work area computer 1002 is an optional database 1022 for storing data that is easily accessed by a user. Data can optionally be stored in data files 1023, which gives a user an organized way to store data. Work area computer 1002 also includes a keyboard 1024 and mouse 1026 that allow a user to input data.
- GUI graphic user interface
- the website building system of Figure 13 further includes a website server 1030 having a CPU 1032 for controlling the inter-workings of the server 1030 and a modem 1034 connected to network 1012 for transferring data using the network 1012.
- the server 1030 further includes a cache memory 1036 for storing frequently used data and a conventional memory 1038.
- Memory 1038 may include template code 1040 for storing and creating templates to be used on a website.
- the server 1030 may further include tuple code 1042 for storing and transferring data in a tuple format. Tuple code may be a software application configured to deploy data. Further included is a staging application
- the staging application 1044 can configure the template code and tuple code for displaying data on a website in a given template format. Also included is an optional database 1046 for storing data to be accessed by the website server 1032. ISP 1048 may also be included in the system of Figure 13 to allow the work area computer 1002 and website server 1030 to exchange data via the Internet, another example of network 101 1.
- the invention may include the utilization of dedicated processors, webservers configured to receive and route browser requests, application servers, state servers and other types of computer processors configured to communicate amongst each other and that may be connected to one or more networks, including a Local Area Network (LAN), an intranet and the Internet.
- LAN Local Area Network
- the invention may have greater applicability and utility in many other applications where efficient routing and processing of data within one or more networks is involved. Equivalent structures embodying the invention could be configured for such applications without diverting from the spirit and scope of the invention.
- the invention may include personal computers, application servers, state servers or Internet webservers that are designed and implemented on a computer and may be connected to a network for communication with other computers to practice the invention.
- a system configured to operate according to the invention may include a plurality of personal computers connected to the Internet via individual modems or other communication means such as wireless communications.
- the invention may also involve a number of functions to be performed by a computer processor, such as a microprocessor.
- the microprocessor may be a specialized or dedicated microprocessor that is configured to perform particular tasks by executing machine-readable software code that defines the particular tasks.
- the microprocessor may also be configured to operate and communicate with other devices such as direct memory access modules, memory storage devices, Internet related hardware, and other devices that relate to the transmission of data in accordance with the invention.
- the software code may be configured using software formats such as Java, C++, XML (Extensible Mark-up Language) and other languages that may be used to define functions that relate to operations of devices required to carry out the functional operations related to the invention.
- the code may be written in different forms and styles, many of which are known to those skilled in the art. Different code formats, code configurations, styles and forms of software programs and other means of configuring code to define the operations of a microprocessor in accordance with the invention will not depart from the spirit and scope of the invention, which is defined by the appended
- Cache memory devices are often included in such computers for use by the central processing unit as a convenient storage location for information that is frequently stored and retrieved.
- a persistent memory is also frequently used with such computers for maintaining information that is frequently retrieved by a central processing unit, but that is not often altered within the persistent memory, unlike the cache memory.
- Main memory is also usually included for storing and retrieving larger amounts of information such as data and software applications configured to perform functions according to the invention when executed by the central processing unit.
- RAM random access memory
- SRAM static random access memory
- DRAM dynamic random access memory
- flash memory and other memory storage devices that may be accessed by a central processing unit to store and retrieve information.
- RAM random access memory
- SRAM static random access memory
- DRAM dynamic random access memory
- flash memory and other memory storage devices that may be accessed by a central processing unit to store and retrieve information.
- the invention is not limited to any particular type of memory device, nor any commonly used protocol for storing and retrieving information to and from these memory devices respectively.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00983810A EP1342170A4 (en) | 1999-11-29 | 2000-11-29 | Method and apparatus for deploying data among data destinations for website development and maintenance |
CA002388772A CA2388772A1 (en) | 1999-11-29 | 2000-11-29 | Method and apparatus for deploying data among data destinations for website development and maintenance |
JP2001547308A JP2003518295A (en) | 1999-11-29 | 2000-11-29 | Method and apparatus for deploying data between data destinations for website development and maintenance |
AU20519/01A AU2051901A (en) | 1999-11-29 | 2000-11-29 | Method and apparatus for deploying data among data destinations for website development and maintenance |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16815699P | 1999-11-29 | 1999-11-29 | |
US60/168,156 | 1999-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001046861A1 WO2001046861A1 (en) | 2001-06-28 |
WO2001046861A9 true WO2001046861A9 (en) | 2002-07-04 |
Family
ID=22610352
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/032540 WO2001088757A1 (en) | 1999-11-29 | 2000-11-29 | Method for enforcing workflow processes for website development and maintenance |
PCT/US2000/032538 WO2001046861A1 (en) | 1999-11-29 | 2000-11-29 | Method and apparatus for deploying data among data destinations for website development and maintenance |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/032540 WO2001088757A1 (en) | 1999-11-29 | 2000-11-29 | Method for enforcing workflow processes for website development and maintenance |
Country Status (5)
Country | Link |
---|---|
EP (2) | EP1234257A4 (en) |
JP (2) | JP2003518295A (en) |
AU (2) | AU1933801A (en) |
CA (2) | CA2389586A1 (en) |
WO (2) | WO2001088757A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103612B2 (en) * | 2002-08-01 | 2006-09-05 | Oracle International Corporation | Instantiation of objects for information-sharing relationships |
US7076312B2 (en) * | 2002-08-02 | 2006-07-11 | Fisher-Rosemount Systems, Inc. | Integrated electronic signatures for approval of process control and safety system software objects |
GB0219649D0 (en) * | 2002-08-20 | 2002-10-02 | Neobard Timothy J | A method of creating a target computer file and a method of designing a website to be hosted on a user's server |
US9785948B1 (en) * | 2003-07-08 | 2017-10-10 | Ca, Inc. | On-line task advisor |
EP2135162B1 (en) * | 2007-04-12 | 2020-03-25 | GVBB Holdings S.A.R.L | Operational management solution for media production and distribution |
US8131663B1 (en) | 2007-10-12 | 2012-03-06 | Bonamy Taylor | Apparatus for generating software logic rules by flowchart design |
JP2010039857A (en) * | 2008-08-06 | 2010-02-18 | Ricoh Co Ltd | Electronic document management server, electronic document management system, and electronic document update method |
JP2009070406A (en) * | 2008-11-28 | 2009-04-02 | Ricoh Co Ltd | Display method, program, and recording medium |
US9223989B2 (en) | 2013-03-18 | 2015-12-29 | International Business Machines Corporation | Approval of content updates |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0528617B1 (en) * | 1991-08-19 | 1999-12-22 | Sun Microsystems, Inc. | Method and apparatus for change control in multiple development environments. |
US5649200A (en) * | 1993-01-08 | 1997-07-15 | Atria Software, Inc. | Dynamic rule-based version control system |
US5835601A (en) * | 1994-03-15 | 1998-11-10 | Kabushiki Kaisha Toshiba | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
US5745901A (en) * | 1994-11-08 | 1998-04-28 | Kodak Limited | Workflow initiated by graphical symbols |
CA2137492C (en) * | 1994-12-07 | 1998-07-28 | Lenny Kwok-Ming Hon | System for and method of providing delta-versioning of the contents of pcte file objects |
US5774661A (en) * | 1995-04-18 | 1998-06-30 | Network Imaging Corporation | Rule engine interface for a visual workflow builder |
US5706452A (en) * | 1995-12-06 | 1998-01-06 | Ivanov; Vladimir I. | Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers |
US5754857A (en) * | 1995-12-08 | 1998-05-19 | Sun Microsystems, Inc. | Distributed asynchronous workflow on the net |
DE19607149A1 (en) * | 1996-02-26 | 1997-08-28 | Siemens Ag | Method for computer-aided comparison of several file copies of a stored file stored in at least one computer |
US5907705A (en) * | 1996-10-31 | 1999-05-25 | Sun Microsystems, Inc. | Computer implemented request to integrate (RTI) system for managing change control in software release stream |
US6088693A (en) * | 1996-12-06 | 2000-07-11 | International Business Machines Corporation | Data management system for file and database management |
US5953525A (en) * | 1997-03-31 | 1999-09-14 | International Business Machines Corporation | Multi-tier view project window |
US6148311A (en) * | 1997-04-25 | 2000-11-14 | Adobe Systems Incorporation | Web site construction by inferring navigational structure from physical file structure |
EP1057121B1 (en) * | 1998-02-17 | 2006-10-04 | Intergraph Hardware Technologies Company | Apparatus and method for transmitting documents between a server computer and a client computer |
-
2000
- 2000-11-29 JP JP2001547308A patent/JP2003518295A/en active Pending
- 2000-11-29 EP EP00982283A patent/EP1234257A4/en not_active Withdrawn
- 2000-11-29 WO PCT/US2000/032540 patent/WO2001088757A1/en not_active Application Discontinuation
- 2000-11-29 WO PCT/US2000/032538 patent/WO2001046861A1/en not_active Application Discontinuation
- 2000-11-29 EP EP00983810A patent/EP1342170A4/en not_active Withdrawn
- 2000-11-29 CA CA002389586A patent/CA2389586A1/en not_active Abandoned
- 2000-11-29 JP JP2001585081A patent/JP2004501436A/en active Pending
- 2000-11-29 AU AU19338/01A patent/AU1933801A/en not_active Abandoned
- 2000-11-29 CA CA002388772A patent/CA2388772A1/en not_active Abandoned
- 2000-11-29 AU AU20519/01A patent/AU2051901A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CA2388772A1 (en) | 2001-06-28 |
EP1342170A4 (en) | 2006-01-25 |
AU2051901A (en) | 2001-07-03 |
AU1933801A (en) | 2001-11-26 |
JP2004501436A (en) | 2004-01-15 |
EP1234257A1 (en) | 2002-08-28 |
WO2001046861A1 (en) | 2001-06-28 |
JP2003518295A (en) | 2003-06-03 |
EP1234257A4 (en) | 2005-11-09 |
CA2389586A1 (en) | 2001-11-22 |
WO2001088757A1 (en) | 2001-11-22 |
EP1342170A1 (en) | 2003-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20010011265A1 (en) | Method and apparatus for deploying data among data destinations for website development and maintenance | |
US20010044834A1 (en) | Method and apparatus for automatically deploying data in a computer network | |
US6732111B2 (en) | Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database | |
US7818663B2 (en) | Editable information management system and method | |
US6505212B2 (en) | System and method for website development | |
US20010027457A1 (en) | Method and apparatus for storing changes to file attributes without having to store an additional copy of the file contents | |
US8738663B2 (en) | Rule-based transformation of metadata | |
US20050080804A1 (en) | System and method for maintaining componentized content | |
US20010039594A1 (en) | Method for enforcing workflow processes for website development and maintenance | |
US20020004824A1 (en) | Method and apparatus for automatically deploying data and simultaneously Executing computer program scripts in a computer network | |
US20030028517A1 (en) | System and method for website development | |
US20050262439A1 (en) | Automatic web publishing | |
WO2001046861A9 (en) | Method and apparatus for deploying data among data destinations for website development and maintenance | |
WO1999045482A1 (en) | Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database | |
Karayiannis et al. | Creating a Dynamic Content Web Site | |
CA2475325A1 (en) | System and method for maintaining componentized content | |
Russell | " Yes, but does it scale?" practical considerations for database-driven information systems | |
JP2001282602A (en) | System and method for sharing information and storage medium |
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 CR CU CZ DE DK DM DZ 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 PL PT RO RU SD SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA 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 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 GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2000983810 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2388772 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 518738 Country of ref document: NZ |
|
WWE | Wipo information: entry into national phase |
Ref document number: 20519/01 Country of ref document: AU |
|
ENP | Entry into the national phase in: |
Ref country code: JP Ref document number: 2001 547308 Kind code of ref document: A Format of ref document f/p: F |
|
AK | Designated states |
Kind code of ref document: C2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 PL PT RO RU SD SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG 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 GW ML MR NE SN TD TG |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1-26, DESCRIPTION, REPLACED BY NEW PAGES 1-25; PAGE 27, CLAIMS, REPLACED BY A NEW PAGE 26; PAGES 1/10-10/10, DRAWINGS, REPLACED BY NEW PAGES 1/12-12/12; AFTER RECTIFICATION OF OBVIOUS ERRORS AS AUTHORIZED BY THE INTERNATIONAL SEARCHING AUTHORITY |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 2000983810 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000983810 Country of ref document: EP |