US20110314127A1 - Quick deploy of content - Google Patents

Quick deploy of content Download PDF

Info

Publication number
US20110314127A1
US20110314127A1 US13/222,295 US201113222295A US2011314127A1 US 20110314127 A1 US20110314127 A1 US 20110314127A1 US 201113222295 A US201113222295 A US 201113222295A US 2011314127 A1 US2011314127 A1 US 2011314127A1
Authority
US
United States
Prior art keywords
job
destination
item
remote job
list
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US13/222,295
Inventor
Gautam Vishwas Vaidya
Glen Buhlmann
Gunawan Herri
James S. Masson
Viktoriya Taranov
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Priority to US13/222,295 priority Critical patent/US20110314127A1/en
Publication of US20110314127A1 publication Critical patent/US20110314127A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

Links

Images

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

Definitions

  • Content to be published can be created by authors on one network (e.g., an authoring network) and then moved to another network (e.g., a perimeter network) where the content can be accessed by others.
  • an administrator controls the movement of the content from the authoring network to the perimeter network.
  • the administrator can be a “bottleneck” when trying to quickly move content from the authoring network to the perimeter network.
  • non-administrators can selectively move content from a source network to a destination network.
  • the source network includes a deployment server that can deploy an item and its dependencies (if any) listed in a quick deploy list without having to get specific administrator authorization for the deployment.
  • the deployment server can be configured to check the quick deploy list relatively frequently (e.g., every five minutes) so that any items listed in the quick deploy list are quickly deployed.
  • the listing of items in the quick deploy list is organized into “jobs” and identifies a path that indicates the source and destination for each job.
  • a job is associated with one path and specifies one or more items of the source to be deployed and a schedule to deploy the specified item(s).
  • the deployment server is configured by the administrator with permissions for specific authors to list items in the quick deploy list.
  • the configuration can limit the paths that an author is permitted to quick deploy content.
  • the deployment server creates a remote job on the destination network to import content being exported by the deployment server.
  • Embodiments may be implemented as a computer process, a computer system (including mobile handheld computing devices) or as an article of manufacture such as a computer program product.
  • the computer program product may be a computer storage medium readable by a computer system and encoding a computer program of instructions for executing a computer process.
  • the computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
  • FIG. 1 is a block diagram representing an exemplary system that supports quick deployment of content between networks, in accordance with an embodiment.
  • FIG. 2 is a block diagram representing some components of a deployment server, in accordance with an embodiment.
  • FIG. 3 is a representation of data structures used in deploying content between a source and a destination, in accordance with an embodiment.
  • FIG. 4 is a flow diagram representing operational flow in creating and adding an item to a quick deploy list, in accordance with an embodiment.
  • FIG. 5 is a flow diagram representing operational flow of a content source in deploying content, in accordance with an embodiment.
  • FIG. 6 is a flow diagram representing operational flow of a content destination in deploying content, in accordance with an embodiment.
  • the logical operations of the various embodiments are implemented (1) as a sequence of computer implemented steps running on a computing system and/or (2) as interconnected machine modules within the computing system.
  • the implementation is a matter of choice dependent on the performance requirements of the computing system implementing the embodiment. Accordingly, the logical operations making up the embodiments described herein are referred to alternatively as operations, steps or modules.
  • system 100 includes a firewall 107 and a load balancer 108 coupled between perimeter network 102 and external network 106 .
  • System 100 also includes a firewall 109 coupled between authoring network 104 and perimeter network 102 , in this embodiment.
  • load balancer 108 and firewalls 107 and 109 may be omitted.
  • Administrator console 204 provides an interface for an administrator to enter settings of deployment module 212 .
  • an administrator can use administer console 204 to: add, delete and modify paths and jobs listed in path/job list 212 .
  • a path identifies a source site collection and a destination site collection for deploying content.
  • a path can be disabled by setting a disabled property of the path.
  • a site collection can be a web page.
  • paths can contain authentication information, settings for how to handle user information (e.g., the author who created or modified the content), and settings for how to handle security settings and access control lists (ACLs).
  • deployment module 202 includes one deployment table 218 per path.
  • deployment module 202 also controls which items can be added to quick deploy list 214 (by adding the item's reference or identifier) via quick deploy verifier module 216 .
  • verifier module 216 can determine whether the author attempting to add an item to quick deploy list 214 has permission to do so.
  • the verifier in one embodiment, includes an authentication component to ensure that the author is not being “impersonated”.
  • verifier module 216 can also determine whether the author has permission to quick deploy content for the path associated with the job. For example, in a news website scenario, a sportswriter may have permission to quick deploy sports stories or scores, but not other types of news.
  • Deployment module 202 also updates job history table 220 to include information related to the job (e.g., a job identifier, the time that the job was started, the time when the job ended, success or failure of the job, etc.).
  • information related to the job e.g., a job identifier, the time that the job was started, the time when the job ended, success or failure of the job, etc.
  • source 300 includes a site collection 302 - 1 containing an object 11 through an object 1 X as content items, a site collection 302 - 2 containing an object 21 through an object 2 Y as content items, and so on to a site collection 302 -N containing an object N 1 through an object NZ as content items.
  • source 300 also includes the aforementioned path/job list 212 , quick deploy list 214 for site collection 302 - 2 and deployment table 218 .
  • the other site collections of source 300 may each have a corresponding quick deploy list (not shown).
  • Destination 310 includes a site collection 312 - 1 containing an object 11 # through an object 1 X# as content items, a site collection 312 - 2 containing objects as content items, and so on to a site collection 312 -M containing an object M 1 # through an object MY#.
  • destination 310 also includes a job list 314 used to track jobs and their status (e.g., completed or failed).
  • FIG. 3 shows an example in which Object 11 of site collection 302 - 1 is deployed site collection 312 - 1 using Path 1 when a Job 11 is performed, as indicated by an arrow 316 .
  • a deployment module (not shown) residing in the network containing destination 310 then processes the received package and deploys Object 11 in destination 310 , which is shown as Object 11 # in destination 310 .
  • the deployment module then updates job list 314 .
  • Object 11 is also deployed to site collection 312 - 2 using Path 2 when a Job 21 is performed, as indicated by an arrow 318 .
  • Job 21 is commonly performed at a different time than Job 11 .
  • the deployment module of destination 310 deploys Object 11 as an Object 21 # in site collection 312 - 2 .
  • the deployment module updates job list 314 . Jobs 11 and 21 are listed in path/job list 212 .
  • Job QD 1 listed in quick deploy list 214 specifies that Object 2 Y is to be deployed using Path 3 .
  • Path 3 in this example is the path from site collection 302 - 2 of source 300 to site collection 312 - 2 of destination 310 .
  • a deployment module such as deployment module 202 ( FIG. 2 ) residing in the network containing source 300 , when woken up by timing module 208 ( FIG. 2 ), inspects quick deploy list 214 and performs Job QD 1 of quick deploy list 214 .
  • the deployment module packages and exports Object 2 Y and its dependencies from site collection 302 - 1 to site collection 312 - 1 , as indicated by an arrow 320 in FIG. 3 .
  • the deployment module residing in the network containing destination 310 then processes the received package and deploys Object 2 Y in destination 310 , which is shown as Object 2 Y# in FIG. 3 .
  • the dependencies of Object 2 Y are also deployed in site collection 312 - 1 and the references to the dependencies deployed in destination 310 are corrected in the resource gallery.
  • the destination's deployment module then updates job list 314 .
  • Path 3 includes a Job 31 as shown in path/job list 212 .
  • This normal deployment of Object 2 Y and its dependencies to site collection 312 - 2 is indicated by an arrow 322 in FIG. 3 .
  • Path 4 is the path from site collection 302 -N to site collection 312 -M
  • Job 41 is the deployment of multiple objects.
  • Object N 1 of site collection 302 -N is deployed as Object M 1 # of site collection 312 -M as part of Job 41 , as indicated by an arrow 324 of FIG. 3 .
  • Object NZ of site collection 312 -N is deployed as Object MY# of site collection 312 -M.
  • this job would be performed according to the schedule, which is included in the job's information in one embodiment.
  • the deployment module would access the deployment table 218 corresponding to Path 4 to determine when Objects N 1 and NZ of site collection 302 - 2 were last deployed, and then determine what content has changed or is new (i.e., the “delta”) and then deploy this delta rather than Objects N 1 and NZ and their dependencies in their entirety.
  • FIG. 4 illustrates an operational flow 400 in using a quick deploy list, in accordance with an embodiment.
  • Operational flow 400 may be performed in any suitable computing environment.
  • operational flow 400 may be executed by a system such as system 200 ( FIG. 2 ). Therefore, the description of operational flow 400 may refer to at least one of the components of FIG. 2 .
  • any such reference to components of FIG. 2 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 2 are a non-limiting environment for operational flow 400 .
  • a schedule for deploying items in the quick deploy list (such as quick deploy list 214 shown in FIG. 2 ) is received.
  • an administrator can use an administrator console such as administrator console 204 ( FIG. 2 ) to set a schedule for deploying items listed in the quick deploy list.
  • the administrator can set the schedule so that a deployment module such as deployment module 202 ( FIG. 2 ) will check the quick deploy list every five minutes.
  • the schedule is set on a per-quick deploy job basis.
  • the schedule may assign different times for performing those quick deploy jobs.
  • multiple items may be quick deployed in one quick deploy job.
  • quick deploy permission for selected author(s) is received.
  • the administrator can also use the administrator console to select which author or author have permission to list items in the quick deploy list.
  • the administrator can also select the path(s) that each author has permission to use quick deploy. After the quick deploy list is “configured” with a schedule and permissions, operational flow 400 can proceed to a block 410 .
  • a request to list an item in the quick deploy list is received.
  • an author can use an author console such as author console 206 to select an item and path for quick deploy. This request is then received by the deployment module.
  • the request is received by a verifier module, such as quick deploy verifier module 216 ( FIG. 2 ).
  • a block 412 it is determined whether the author making the request has permission to add items in the quick deploy list (e.g., by adding the items' identifiers or locators to the quick deploy list).
  • the aforementioned verifier module determines whether the author is authorized to add items in the quick deploy list. If it is determined that the author does not have permission to quick deploy, operational flow 400 can proceed to a block 414 at which the author is given an error message or indicate and the item is not added in the quick deploy list. However, if it is determined that the author does have permission to quick deploy, operational flow 400 can proceed to a block 416 .
  • the verifier module determines whether the author making the request has permission to quick deploy along the selected path of the request. In this embodiment, the verifier module also makes this determination. If the selected path is not permitted for the author, operational flow 400 can proceed to previously described block 414 . However, if it is determined that the author is permitted to use the path, the item and path are added to the quick deploy table as indicated by a block 418 .
  • each site collection of the source may have a corresponding quick deploy list.
  • permissions are set on a per quick deploy list basis.
  • the quick deploy jobs may have different schedules but share the same permissions.
  • FIG. 5 illustrates an operational flow 500 of a content source in deploying content, in accordance with an embodiment.
  • Operational flow 500 may be performed in any suitable computing environment.
  • operational flow 500 may be executed by a system such as system 200 ( FIG. 2 ). Therefore, the description of operational flow 500 may refer to at least one of the components of FIG. 2 .
  • any such reference to components of FIG. 2 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 2 are a non-limiting environment for operational flow 500 .
  • a deployment module such as deployment module 202 ( FIG. 2 ) receives a signal or message from a timing module to wake-up and determine whether any content needs to be deployed.
  • the timing module is configured to wake-up the deployment module according to a schedule that meets the scheduling requirements of the quick deploy feature and all of the “normal” deployment jobs. The deployment module then determines which job(s) are scheduled to be performed.
  • a block 504 it is determined whether the path associated with the job is enabled.
  • the aforementioned deployment module inspects a disabled property of a set of global settings that apply to all paths.
  • a path can be disabled on a per-path basis instead of or in addition to the global basis. If the path is disabled, operational flow 500 can proceed to a block 506 to exit. However, if the path is enabled, operational flow 500 can proceed to a block 508 .
  • the aforementioned deployment module inspects a disabled property of the aforementioned global settings to determine whether all of the jobs are disabled.
  • a job can be disabled on a per-job basis instead of or in addition to the global basis. If the is disabled, operational flow 500 can proceed to block 506 to exit. However, if the job is enabled, operational flow 500 can proceed to a block 510 .
  • the job type of the job is determined.
  • the deployment module inspects a job type property of the indication provided at block 502 to determine whether the job type is a quick deploy type or a normal deploy type. If it is determined that the job type is a quick deploy type, operational flow proceeds to a block 512 .
  • the deployment module inspects the quick deploy list to determine if there are any quick deploy jobs to be performed. If it is determined that the quick deploy list is empty, operational flow 500 can proceed to block 506 to exit. However, if it is determined that the quick deploy list is not empty, operational flow 500 can proceed to a block 516 .
  • all items listed in the quick deploy list (for the particular quick deploy job being performed) is exported.
  • the deployment module obtains the item(s) and its dependencies (if any) from a content database such as content database 124 ( FIG. 1 ).
  • the item(s) and its dependencies are then packaged for export to the destination specified in the quick deploy job.
  • a module such as import/export module 210 ( FIG. 2 ) packages the item and dependencies into a CAB file. This block can be repeated for each job listed in the quick deploy list.
  • a remote job is created at the destination.
  • the deployment module provides an indication to a deployment server of a network in which the destination resides to create the remote job.
  • the destination's deployment server may implement a method that the deployment module can call to create the remote job.
  • a deployment table such as deployment table 218 ( FIGS. 2 and 3 ) is read.
  • the deployment module inspects a path/job list such as path/job list 212 ( FIG. 2 ) to determine the path and job that is to be performed.
  • the deployment module can then read the deployment table associated with the job's path to determine when the items were last deployed. As previously described, this deployment information can then be selectively used to determine the “delta” of the item(s) to be deployed.
  • the item(s) of the job are exported.
  • the item(s) and their dependencies are then packaged for export to the destination specified in the job definition.
  • the aforementioned import/export module packages the item(s) and dependencies into a CAB file. Then operational flow 500 can proceed to previously described block 518 to create a remote job at the destination.
  • the package is uploaded to the destination.
  • the module that packaged the item(s) and dependencies also uploads the package to the destination using one or more SOAP HTTP messages.
  • the remote job created at block 518 is started.
  • the deployment module provides an indication to the destination's deployment server to start the remote job.
  • the destination's deployment server may implement a method that the deployment module can call to start the remote job.
  • Block 526 causes the destination to deploy the content contained in the package.
  • a block 528 it is determined whether the remote job has completed or timed-out.
  • the deployment module will poll the destination to determine whether the remote job has completed. If the remote job has timed-out, operational flow 500 can return to block 506 to exit. However, if the remote job has completed, operational flow 500 can proceed to a block 530 .
  • the result of the remote job is written to a job history such as job history 220 ( FIG. 2 ).
  • the deployment module writes the result to the job history.
  • block 532 the job type of the job is determined.
  • block 532 is basically the same as previously described block 510 . If the job type was determined to be the quick deploy type, then operational flow 500 can proceed to a block 534 at which the quick deploy list is cleared because all of the quick deploy jobs were completed or timed out. Operational flow 500 can then proceed to a block 536 .
  • the remote job is deleted at the destination.
  • the deployment component causes the destination to delete the remote job.
  • the destination's deployment server may implement a method that the deployment module can call to delete the remote job.
  • operational flow 500 can proceed to a block 538 at which the deployment table corresponding to the job's path is updated to reflect the time at which the item(s) were deployed, Operational flow 500 can then proceed to previously described block 536 to delete the remote job.
  • FIG. 6 illustrates an operational flow 600 of a content destination in deploying content, in accordance with an embodiment.
  • Operational flow 600 may be performed in any suitable computing environment.
  • operational flow 600 may be executed by a system such as system 100 ( FIG. 1 ). Therefore, the description of operational flow 600 may refer to at least one of the components of FIG. 1 .
  • any such reference to components of FIG. 1 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 1 are a non-limiting environment for operational flow 600 .
  • a job refers to the process of receiving a package of content, unpacking the package and storing the content and its dependencies at the destination.
  • the destination is a network having a destination deployment server (e.g., a web front end server as web server 110 of FIG. 1 ) that handles content reception from another network.
  • the destination deployment server has a destination deployment component (not shown) that implements a method that can be called by another component to create a job on the destination, deployment server.
  • the method also creates a job identifier for the job and adds it to a job list such as job list 314 ( FIG. 3 ).
  • a deployment component of a source calls the method to create the job (e.g., see block 518 of FIG. 5 ).
  • operational flow 600 waits for an indication to start the job that was created at block 602 .
  • the destination deployment component implements another method that when called starts the job.
  • the deployment component that created the job also starts the job when the content is ready to be transferred (e.g., see block 526 of FIG. 5 ).
  • operational flow 600 can proceed to a block 606 .
  • the destination deployment component downloads the item(s) and dependencies (if any) that was package by the source and stores them in a content database such as content database 114 . Further, the destination deployment component also corrects the references to the dependencies so that they reference items residing in the destination rather than the source.
  • the job list is updated.
  • the destination deployment component writes information into a status field of the job list to indicate success or failure of the job.
  • the source can poll the job list to determine whether the job has completed (e.g., see block 528 of FIG. 5 ).
  • operational flow 600 waits for an indication to delete the job.
  • the destination deployment component implements another method that deletes the job when called.
  • the deployment component that created the job also deletes the job when it detects that the job has completed (e.g., see block 536 of FIG. 5 ).
  • the job is completed when the status indicates either success or failure or timed-out.

Abstract

Non-administrators selectively move content from a source network to a destination network. The source network includes a deployment server that can deploy an item and its dependencies (if any) listed in a quick deploy list without having to get specific administrator authorization for the deployment. The deployment server can be configured to check the quick deploy list relatively frequently so that any items listed in the quick deploy list are quickly deployed. The listing of items in the quick deploy list is organized into “jobs” and identifies a path that indicates the source and destination for each job. A job is associated with one path and specifies one or more items of the source to be deployed and a schedule to deploy the specified item(s). The deployment server is configured by the administrator with permissions for specific authors to list items in the quick deploy list.

Description

    BACKGROUND
  • Content to be published can be created by authors on one network (e.g., an authoring network) and then moved to another network (e.g., a perimeter network) where the content can be accessed by others. Typically, an administrator controls the movement of the content from the authoring network to the perimeter network. The administrator can be a “bottleneck” when trying to quickly move content from the authoring network to the perimeter network. This background information is not intended to identify problems that must be addressed by the claimed subject matter.
  • SUMMARY
  • This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detail Description Section. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
  • According to aspects of various described embodiments, non-administrators (including authors) can selectively move content from a source network to a destination network. In one aspect, the source network includes a deployment server that can deploy an item and its dependencies (if any) listed in a quick deploy list without having to get specific administrator authorization for the deployment. The deployment server can be configured to check the quick deploy list relatively frequently (e.g., every five minutes) so that any items listed in the quick deploy list are quickly deployed.
  • In another aspect, the listing of items in the quick deploy list is organized into “jobs” and identifies a path that indicates the source and destination for each job. A job is associated with one path and specifies one or more items of the source to be deployed and a schedule to deploy the specified item(s).
  • In another aspect, the deployment server is configured by the administrator with permissions for specific authors to list items in the quick deploy list. In some implementations, the configuration can limit the paths that an author is permitted to quick deploy content.
  • In yet another aspect, the deployment server creates a remote job on the destination network to import content being exported by the deployment server.
  • Embodiments may be implemented as a computer process, a computer system (including mobile handheld computing devices) or as an article of manufacture such as a computer program product. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Non-limiting and non-exhaustive embodiments are described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various views unless otherwise specified.
  • FIG. 1 is a block diagram representing an exemplary system that supports quick deployment of content between networks, in accordance with an embodiment.
  • FIG. 2 is a block diagram representing some components of a deployment server, in accordance with an embodiment.
  • FIG. 3 is a representation of data structures used in deploying content between a source and a destination, in accordance with an embodiment.
  • FIG. 4 is a flow diagram representing operational flow in creating and adding an item to a quick deploy list, in accordance with an embodiment.
  • FIG. 5 is a flow diagram representing operational flow of a content source in deploying content, in accordance with an embodiment.
  • FIG. 6 is a flow diagram representing operational flow of a content destination in deploying content, in accordance with an embodiment.
  • DETAILED DESCRIPTION
  • Various embodiments are described more fully below with reference to the accompanying drawings, which form apart hereof, and which show specific exemplary embodiments for practicing various embodiments. However, other embodiments may be implemented in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete. Embodiments may be practiced as methods, systems or devices. Accordingly, embodiments may take the form of a hardware implementation, an entirely software implementation or an implementation combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
  • The logical operations of the various embodiments are implemented (1) as a sequence of computer implemented steps running on a computing system and/or (2) as interconnected machine modules within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the embodiment. Accordingly, the logical operations making up the embodiments described herein are referred to alternatively as operations, steps or modules.
  • Exemplary Content Deployment System
  • FIG. 1 illustrates a system 100 that supports quick deployment of content between networks, in accordance with an embodiment. In this exemplary embodiment, system 100 includes a perimeter network 102 and an authoring network 104. In some embodiments, perimeter network 102 and authoring network 104 are independent server farms. In other embodiments, system 100 includes one or more staging networks (not shown) coupled between perimeter and authoring networks 102 and 104. In still other embodiments, system 100 includes multiple perimeter networks. In yet other embodiments, system 100 includes multiple authoring networks. Content authored in authoring network 104 can be deployed to perimeter network 102 for access via an external network 106 such as, for example, the Internet.
  • Further, in this embodiment, system 100 includes a firewall 107 and a load balancer 108 coupled between perimeter network 102 and external network 106. System 100 also includes a firewall 109 coupled between authoring network 104 and perimeter network 102, in this embodiment. In some other embodiments, one or more of load balancer 108 and firewalls 107 and 109 may be omitted.
  • Perimeter network 102, in this embodiment, includes a web server 110, a database server 112, a content database 114, and other servers 116. Content to be accessible to external network is stored in content database 114. Users connected to external network 106 can access the content stored in content database 114 via web server 110 and database server 112. In some embodiments, servers 116 include one or more of an application server, a domain controller server, operations management servers, backup servers, etc., that are typically used in server farms. In some embodiments, the deployment function including the quick deploy feature may be implemented using any of the servers of perimeter network 102.
  • Authoring network 104, in this embodiment, includes a web server 120, a database server 122, a content database 124, other servers 126, and a deployment server 128. Web server 120, database server 122, content database 124 and other servers 126, in one embodiment, are similar to previously described web server 110, database server 112, content database 114 and other servers 116. In accordance with this embodiment, deployment server 128 includes a quick deploy feature that allows deployment server 128 to deploy content (e.g., an item and any of its dependencies) listed in a quick deploy list (not shown) to another network (e.g., perimeter network 102) without having to get specific administrator authorization for the deployment. In some embodiments, deployment server 128 may be omitted and the deployment function (including the quick deploy feature) may be implemented using any of the servers of authoring network 104. Exemplary components to implement one embodiment of the quick deploy feature are described below in conjunction with FIG. 2.
  • This quick deploy feature is advantageously used to quickly deploy content that the author considers time sensitive, without having to find the administrator. For example, if the author wants to deploy content related to an important event that has recently occurred (e.g., a news story, an emergency, etc.), the author can quickly deploy updated content to replace the previously deployed content. Another scenario in which the quick deploy feature is useful is when the author discovers that some previously deployed content should not have been deployed because it contained inaccurate information, malicious code, confidential information, etc. The author can use the quick deploy feature to replace the “defective” content.
  • FIG. 2 illustrates several components of a deployment server 200 that can be used in implementing deployment server 128 (FIG. 1), in accordance with an embodiment. In this exemplary embodiment, deployment server 200 includes a deployment module 202, an administrator console 204, an author console 206, a timing module 208 and an import/export module 210. Further, in this embodiment, deployment module 202 includes a path/job list 212, a quick deploy list 214, a quick deploy verifier module 216, a deployment table 218 and a job history 220. These components are described below.
  • Administrator console 204, in this embodiment, provides an interface for an administrator to enter settings of deployment module 212. For example, an administrator can use administer console 204 to: add, delete and modify paths and jobs listed in path/job list 212. In this embodiment, a path identifies a source site collection and a destination site collection for deploying content. In addition, in this embodiment, a path can be disabled by setting a disabled property of the path. In some implementations, a site collection can be a web page. In addition, paths can contain authentication information, settings for how to handle user information (e.g., the author who created or modified the content), and settings for how to handle security settings and access control lists (ACLs). Further, in this embodiment, deployment module 202 includes one deployment table 218 per path. In one embodiment, a job (in this content deployment context) is associated with one path and specifies one or more items of the source site collection to be deployed and a schedule on with to deploy the specified item(s). In one embodiment, a job can be disabled by setting a disabled property of the job.
  • Further, in accordance with this embodiment, administrator console 204 can be used by the administrator to set permissions for quick deploy list 214. For example, the administrator can give permission to selected authors to add items to quick deploy list 214. In some embodiments, an administrator can limit which path(s) a particular author has permission to use the quick deploy feature.
  • Author console 206, in this embodiment, provides an interface for an author to add content to a site collection (e.g., site collections residing in the authoring, network). In addition, author console 206 also provides an interface for an author to make add content information (e.g., item and path identifiers) to quick deploy list 214.
  • Timing module 208, in this embodiment, provides a signal to deployment module 202 whenever a job is to be performed. In one embodiment, an administrator may use administrator console 204 to configure timing module 208 to “wake up” deployment module 202 at scheduled times.
  • Import/export module 210, in this embodiment, implements a transport mechanism to obtain the content from a content datastore (e.g., content database 124 of FIG. 2), package the content, and send the packaged content to the destination. In this embodiment, import/export module 210 can also receive packaged content, unpack the content and store the content in the content datastore. In one embodiment, the content is packaged into a Microsoft cabinet (“CAB”) file, and sent using one or more Simple Object Access Protocol (SOAP) HyperText Transfer Protocol (HTTP) messages (e.g., according to SOAP Version 1.2 specification 24 Jun. 2003).
  • In accordance with this embodiment, import/export module 210 also includes in the package all of the dependencies of each item being packaged. As used in this context, dependencies refer to other items that referred to by the item. For example, the item may be a web page having links to other web pages, images, etc. In one embodiment, a resource gallery (not shown) is used to identify the dependencies. Further, when receiving a package (i.e., during an import), import/export module 210 determines the proper references for the dependencies when deployed in the destination network. For example, if the item is a web page that includes a dependency that is a link to another web page, at the destination, the link is corrected so that it references an address in the destination network (where the dependency web page is deployed) instead of to an address in the source network.
  • Deployment module 202, in this embodiment, controls what content is deployed and where it is deployed. In accordance with one embodiment, deployment module 202, when “woken up” by timing module 208, accesses path/job list 212 and quick deploy list 214 to determine: if there are jobs are scheduled to be performed at this time; the location of the source content (e.g., the source site collection), the location of the destination (e.g., the destination site collection), the job type, etc. In one embodiment, deployment module 202 first checks quick deploy list 214 for any quick deploy jobs to be performed, and then checks path/job list 212 for jobs scheduled to be performed.
  • Further, in accordance with this embodiment, deployment module 202 also controls which items can be added to quick deploy list 214 (by adding the item's reference or identifier) via quick deploy verifier module 216. For example, verifier module 216 can determine whether the author attempting to add an item to quick deploy list 214 has permission to do so. The verifier, in one embodiment, includes an authentication component to ensure that the author is not being “impersonated”. In some embodiments, verifier module 216 can also determine whether the author has permission to quick deploy content for the path associated with the job. For example, in a news website scenario, a sportswriter may have permission to quick deploy sports stories or scores, but not other types of news.
  • In one implementation, in performing a job, deployment module 202 inspects deployment table 218 corresponding to the job's path to determine when an item of a site collection was last deployed. In one embodiment, the deployment table includes a listing of items and timestamps (each timestamp represents the time the corresponding item was last deployed). Depending on the job type and other job settings, an item included in the job may not need to be completely or canonically deployed; rather, only the data that has changed since the last deployment of the item will be deployed in some embodiments. In such embodiments, deployment module 202 compares the current version of the item to be deployed with the version corresponding to the timestamp of the last deployment (from deployment table 218) and can then determine the “delta” between the two versions. The deployment can then include just the “delta”, which can advantageously reduce the amount of data that needs to be transferred and the time needed to deploy the item.
  • Deployment module 202, in this embodiment, also updates job history table 220 to include information related to the job (e.g., a job identifier, the time that the job was started, the time when the job ended, success or failure of the job, etc.).
  • FIG. 3 illustrates data structures used in deploying content between a source 300 and a destination 310, in accordance with an embodiment. For example, source 300 can reside in an authoring network such as authoring network 104 (FIG. 1) and destination 310 can reside in a perimeter network such as perimeter network 102 (FIG. 1).
  • In this exemplary embodiment, source 300 includes a site collection 302-1 containing an object 11 through an object 1X as content items, a site collection 302-2 containing an object 21 through an object 2Y as content items, and so on to a site collection 302-N containing an object N1 through an object NZ as content items. In this example embodiment, source 300 also includes the aforementioned path/job list 212, quick deploy list 214 for site collection 302-2 and deployment table 218. In this embodiment, the other site collections of source 300 may each have a corresponding quick deploy list (not shown).
  • As illustrated in FIG. 3, path/job list 212 lists a Path 1 ID having a Job 11 through a Job 1A, . . . , and so on to a path ID Path 4 having a Job 41 through a Job C4E.
  • In this example, quick deploy list 214 corresponds to site collection 302-2 and lists a Job QD1 specifying an Object 2Y and path ID for Path 3, . . . , and so on to a Job QDW specifying an Object 21 and path ID for Path G (not shown in FIG. 3). In other embodiments, the path ID is omitted from quick deploy list 214 because the path ID is implicit in the job (i.e., a job belongs to only one path). Deployment table 218, in this example, containing a list of object IDs and, corresponding to each object ID, the timestamp of the last deployment time of the object identified by the object ID.
  • Destination 310 includes a site collection 312-1 containing an object 11# through an object 1X# as content items, a site collection 312-2 containing objects as content items, and so on to a site collection 312-M containing an object M1# through an object MY#. In this example embodiment, destination 310 also includes a job list 314 used to track jobs and their status (e.g., completed or failed).
  • An object can be deployed to one or multiple site collections in the destination using normal deployment jobs. FIG. 3 shows an example in which Object 11 of site collection 302-1 is deployed site collection 312-1 using Path 1 when a Job 11 is performed, as indicated by an arrow 316. A deployment module (not shown) residing in the network containing destination 310 then processes the received package and deploys Object 11 in destination 310, which is shown as Object 11# in destination 310. The deployment module then updates job list 314.
  • In addition, Object 11 is also deployed to site collection 312-2 using Path 2 when a Job 21 is performed, as indicated by an arrow 318. Job 21 is commonly performed at a different time than Job 11. The deployment module of destination 310 deploys Object 11 as an Object 21# in site collection 312-2. After Job 21 is performed, the deployment module updates job list 314. Jobs 11 and 21 are listed in path/job list 212.
  • An object can also be deployed to one or more site collections in the destination using quick deploy jobs. In this example, Job QD1 listed in quick deploy list 214 specifies that Object 2Y is to be deployed using Path 3. Path 3 in this example is the path from site collection 302-2 of source 300 to site collection 312-2 of destination 310. A deployment module (not shown) such as deployment module 202 (FIG. 2) residing in the network containing source 300, when woken up by timing module 208 (FIG. 2), inspects quick deploy list 214 and performs Job QD1 of quick deploy list 214. In this example, the deployment module packages and exports Object 2Y and its dependencies from site collection 302-1 to site collection 312-1, as indicated by an arrow 320 in FIG. 3. The deployment module residing in the network containing destination 310 then processes the received package and deploys Object 2Y in destination 310, which is shown as Object 2Y# in FIG. 3. As previously mentioned, in some embodiments the dependencies of Object 2Y are also deployed in site collection 312-1 and the references to the dependencies deployed in destination 310 are corrected in the resource gallery. The destination's deployment module then updates job list 314.
  • Further, the same path and objects of a quick deploy job can also be defined in a normal deployment job (which would be performed at a different time compared to the quick deploy job). In this example, Path 3 includes a Job 31 as shown in path/job list 212. This normal deployment of Object 2Y and its dependencies to site collection 312-2 is indicated by an arrow 322 in FIG. 3.
  • Also shown in this example is the normal deployment of content (i.e., a Job 41) along a Path 4. In this example, Path 4 is the path from site collection 302-N to site collection 312-M, and Job 41 is the deployment of multiple objects. In this example, Object N1 of site collection 302-N is deployed as Object M1# of site collection 312-M as part of Job 41, as indicated by an arrow 324 of FIG. 3. In addition, in this example, Object NZ of site collection 312-N is deployed as Object MY# of site collection 312-M. As previously described, this job would be performed according to the schedule, which is included in the job's information in one embodiment. In addition, in some deployment jobs, the deployment module would access the deployment table 218 corresponding to Path 4 to determine when Objects N1 and NZ of site collection 302-2 were last deployed, and then determine what content has changed or is new (i.e., the “delta”) and then deploy this delta rather than Objects N1 and NZ and their dependencies in their entirety.
  • Exemplary Source Operational Flow in Deploying Content
  • FIG. 4 illustrates an operational flow 400 in using a quick deploy list, in accordance with an embodiment. Operational flow 400 may be performed in any suitable computing environment. For example, operational flow 400 may be executed by a system such as system 200 (FIG. 2). Therefore, the description of operational flow 400 may refer to at least one of the components of FIG. 2. However, any such reference to components of FIG. 2 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 2 are a non-limiting environment for operational flow 400.
  • At a block 402, a schedule for deploying items in the quick deploy list (such as quick deploy list 214 shown in FIG. 2) is received. In one embodiment, an administrator can use an administrator console such as administrator console 204 (FIG. 2) to set a schedule for deploying items listed in the quick deploy list. For example, the administrator can set the schedule so that a deployment module such as deployment module 202 (FIG. 2) will check the quick deploy list every five minutes. In one embodiment, the schedule is set on a per-quick deploy job basis. Thus, in scenarios in which the quick deploy list contains entries for multiple items to be deployed via multiple quick deploy jobs, the schedule may assign different times for performing those quick deploy jobs. In some embodiments, multiple items may be quick deployed in one quick deploy job.
  • At a block 404, quick deploy permission for selected author(s) is received. In some embodiments, the administrator can also use the administrator console to select which author or author have permission to list items in the quick deploy list. In one embodiment, the administrator can also select the path(s) that each author has permission to use quick deploy. After the quick deploy list is “configured” with a schedule and permissions, operational flow 400 can proceed to a block 410.
  • At block 410, a request to list an item in the quick deploy list is received. In some embodiments, an author can use an author console such as author console 206 to select an item and path for quick deploy. This request is then received by the deployment module. In one embodiment, the request is received by a verifier module, such as quick deploy verifier module 216 (FIG. 2).
  • At a block 412, it is determined whether the author making the request has permission to add items in the quick deploy list (e.g., by adding the items' identifiers or locators to the quick deploy list). In one embodiment, the aforementioned verifier module determines whether the author is authorized to add items in the quick deploy list. If it is determined that the author does not have permission to quick deploy, operational flow 400 can proceed to a block 414 at which the author is given an error message or indicate and the item is not added in the quick deploy list. However, if it is determined that the author does have permission to quick deploy, operational flow 400 can proceed to a block 416.
  • At block 416, it is determined whether the author making the request has permission to quick deploy along the selected path of the request. In this embodiment, the verifier module also makes this determination. If the selected path is not permitted for the author, operational flow 400 can proceed to previously described block 414. However, if it is determined that the author is permitted to use the path, the item and path are added to the quick deploy table as indicated by a block 418.
  • As previously described, each site collection of the source may have a corresponding quick deploy list. In some such embodiments, permissions are set on a per quick deploy list basis. Thus, in scenarios in which there are multiple quick deploy jobs originating from the same site collection but going to different destination site collections, the quick deploy jobs may have different schedules but share the same permissions.
  • Although operational flow 400 is illustrated and described sequentially in a particular order, in other embodiments, the operations described in the blocks may be performed in different orders, multiple times, and/or in parallel. Further, in some embodiments, one or more operations described in the blocks may be separated into another block, omitted or combined.
  • FIG. 5 illustrates an operational flow 500 of a content source in deploying content, in accordance with an embodiment. Operational flow 500 may be performed in any suitable computing environment. For example, operational flow 500 may be executed by a system such as system 200 (FIG. 2). Therefore, the description of operational flow 500 may refer to at least one of the components of FIG. 2. However, any such reference to components of FIG. 2 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 2 are a non-limiting environment for operational flow 500.
  • At a block 502, an indication to deploy an item is received. In one embodiment, a deployment module such as deployment module 202 (FIG. 2) receives a signal or message from a timing module to wake-up and determine whether any content needs to be deployed. In one embodiment, the timing module is configured to wake-up the deployment module according to a schedule that meets the scheduling requirements of the quick deploy feature and all of the “normal” deployment jobs. The deployment module then determines which job(s) are scheduled to be performed.
  • At a block 504, it is determined whether the path associated with the job is enabled. In one embodiment, the aforementioned deployment module inspects a disabled property of a set of global settings that apply to all paths. In some embodiments, a path can be disabled on a per-path basis instead of or in addition to the global basis. If the path is disabled, operational flow 500 can proceed to a block 506 to exit. However, if the path is enabled, operational flow 500 can proceed to a block 508.
  • At block 508, it is determined whether the job is enabled. In one embodiment, the aforementioned deployment module inspects a disabled property of the aforementioned global settings to determine whether all of the jobs are disabled. In some embodiments, a job can be disabled on a per-job basis instead of or in addition to the global basis. If the is disabled, operational flow 500 can proceed to block 506 to exit. However, if the job is enabled, operational flow 500 can proceed to a block 510.
  • At block 510, the job type of the job is determined. In this embodiment, the deployment module inspects a job type property of the indication provided at block 502 to determine whether the job type is a quick deploy type or a normal deploy type. If it is determined that the job type is a quick deploy type, operational flow proceeds to a block 512.
  • At block 512, it is determined whether the quick deploy list is empty. In one embodiment, the deployment module inspects the quick deploy list to determine if there are any quick deploy jobs to be performed. If it is determined that the quick deploy list is empty, operational flow 500 can proceed to block 506 to exit. However, if it is determined that the quick deploy list is not empty, operational flow 500 can proceed to a block 516.
  • At block 516, all items listed in the quick deploy list (for the particular quick deploy job being performed) is exported. In one embodiment, the deployment module obtains the item(s) and its dependencies (if any) from a content database such as content database 124 (FIG. 1). In one embodiment, the item(s) and its dependencies are then packaged for export to the destination specified in the quick deploy job. In one embodiment, a module such as import/export module 210 (FIG. 2) packages the item and dependencies into a CAB file. This block can be repeated for each job listed in the quick deploy list.
  • At a block 518, a remote job is created at the destination. In one embodiment, the deployment module provides an indication to a deployment server of a network in which the destination resides to create the remote job. For example, the destination's deployment server may implement a method that the deployment module can call to create the remote job. Returning to block 510, if it is determined that the job type is a normal deploy type, operational flow 500 can proceed to a block 520.
  • At block 520, a deployment table such as deployment table 218 (FIGS. 2 and 3) is read. In one embodiment, the deployment module inspects a path/job list such as path/job list 212 (FIG. 2) to determine the path and job that is to be performed. The deployment module can then read the deployment table associated with the job's path to determine when the items were last deployed. As previously described, this deployment information can then be selectively used to determine the “delta” of the item(s) to be deployed.
  • At a block 522, the item(s) of the job are exported. In one embodiment, the item(s) and their dependencies are then packaged for export to the destination specified in the job definition. In one embodiment, the aforementioned import/export module packages the item(s) and dependencies into a CAB file. Then operational flow 500 can proceed to previously described block 518 to create a remote job at the destination.
  • At block 524, the package is uploaded to the destination. In one embodiment, the module that packaged the item(s) and dependencies also uploads the package to the destination using one or more SOAP HTTP messages.
  • At a block 526, the remote job created at block 518 is started. In one embodiment, the deployment module provides an indication to the destination's deployment server to start the remote job. For example, the destination's deployment server may implement a method that the deployment module can call to start the remote job. Block 526 causes the destination to deploy the content contained in the package.
  • At a block 528, it is determined whether the remote job has completed or timed-out. In one embodiment, the deployment module will poll the destination to determine whether the remote job has completed. If the remote job has timed-out, operational flow 500 can return to block 506 to exit. However, if the remote job has completed, operational flow 500 can proceed to a block 530.
  • At block 530, the result of the remote job is written to a job history such as job history 220 (FIG. 2). In one embodiment, the deployment module writes the result to the job history.
  • At a block 532, the job type of the job is determined. In one embodiment, block 532 is basically the same as previously described block 510. If the job type was determined to be the quick deploy type, then operational flow 500 can proceed to a block 534 at which the quick deploy list is cleared because all of the quick deploy jobs were completed or timed out. Operational flow 500 can then proceed to a block 536.
  • At block 536, the remote job is deleted at the destination. In one embodiment, the deployment component causes the destination to delete the remote job. For example, the destination's deployment server may implement a method that the deployment module can call to delete the remote job.
  • However, if at block 532 (or block 510) the job type was determined to be the normal deploy type, then operational flow 500 can proceed to a block 538 at which the deployment table corresponding to the job's path is updated to reflect the time at which the item(s) were deployed, Operational flow 500 can then proceed to previously described block 536 to delete the remote job.
  • Although operational flow 500 is illustrated and described sequentially in a particular order, in other embodiments, the operations described in the blocks may be performed in different orders, multiple times, and/or in parallel. Further, in some embodiments, one or more operations described in the blocks may be separated into another block, omitted or combined.
  • Exemplary Destination Operational Flow in Deploying Content
  • FIG. 6 illustrates an operational flow 600 of a content destination in deploying content, in accordance with an embodiment. Operational flow 600 may be performed in any suitable computing environment. For example, operational flow 600 may be executed by a system such as system 100 (FIG. 1). Therefore, the description of operational flow 600 may refer to at least one of the components of FIG. 1. However, any such reference to components of FIG. 1 is for descriptive purposes only, and it is to be understood that the implementations of FIG. 1 are a non-limiting environment for operational flow 600.
  • At a block 602, an indication to create a job is received by a content deployment destination. In this context, a job refers to the process of receiving a package of content, unpacking the package and storing the content and its dependencies at the destination. In one embodiment, the destination is a network having a destination deployment server (e.g., a web front end server as web server 110 of FIG. 1) that handles content reception from another network. In this embodiment, the destination deployment server has a destination deployment component (not shown) that implements a method that can be called by another component to create a job on the destination, deployment server. In one embodiment, the method also creates a job identifier for the job and adds it to a job list such as job list 314 (FIG. 3). In one scenario, a deployment component of a source calls the method to create the job (e.g., see block 518 of FIG. 5).
  • At a block 604, operational flow 600 waits for an indication to start the job that was created at block 602. In this embodiment, the destination deployment component implements another method that when called starts the job. In one scenario, the deployment component that created the job also starts the job when the content is ready to be transferred (e.g., see block 526 of FIG. 5). When the job is started, operational flow 600 can proceed to a block 606.
  • At block 606, the content specified by the job is imported from the source. In one embodiment, the destination deployment component downloads the item(s) and dependencies (if any) that was package by the source and stores them in a content database such as content database 114. Further, the destination deployment component also corrects the references to the dependencies so that they reference items residing in the destination rather than the source.
  • At a block 608, the job list is updated. In one embodiment, the destination deployment component writes information into a status field of the job list to indicate success or failure of the job. In one embodiment, the source can poll the job list to determine whether the job has completed (e.g., see block 528 of FIG. 5).
  • At a block 610, operational flow 600 waits for an indication to delete the job. In one embodiment, the destination deployment component implements another method that deletes the job when called. In one scenario, the deployment component that created the job also deletes the job when it detects that the job has completed (e.g., see block 536 of FIG. 5). In one embodiment, the job is completed when the status indicates either success or failure or timed-out.
  • Although operational flow 600 is illustrated and described sequentially in a particular order, in other embodiments, the operations described in the blocks may be performed in different orders, multiple times, and/or in parallel. Further, in some embodiments, one or more operations described in the blocks may be separated into another block, omitted or combined.
  • Reference has been made throughout this specification to “one embodiment,” “an embodiment,” or “an example embodiment” meaning that a particular described feature, structure, or characteristic is included in at least one embodiment. Thus, usage of such phrases may refer to more than just one embodiment. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
  • One skilled in the relevant art may recognize, however, that embodiments may be practiced without one or more of the specific details, or with other methods, resources, materials, etc. In other instances, well known structures, resources, or operations have not been shown or described in detail merely to avoid obscuring aspects of the embodiments.
  • While example embodiments and applications have been illustrated and described, it is to be understood that the invention is not limited to the precise configuration and resources described above. Various modifications, changes, and variations apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems disclosed herein without departing from the scope of the claimed invention.

Claims (21)

1.-20. (canceled)
21. A computer-implemented method for deploying content from a source to a destination, the method comprising:
creating, by a deployment module, a remote job at the destination for deploying a first item;
uploading the first item to the destination;
starting, by the deployment module, the remote job at the destination to import the uploaded first item, wherein starting the remote job comprises calling a method to start the remote job;
polling, by the deployment module, to determine a status of the remote job at the destination;
tracking, by the deployment module, job history information, wherein the job history information comprises information related to the remote job, and wherein the information related to the remote job comprises a time when the remote job was started, a time when the remote job ended, and an indication whether the remote job succeeded; and
causing, by the deployment module, the destination to delete the remote job.
22. The method of claim 21, further comprising:
controlling, by the deployment module, import of a job at the destination, wherein the job is different from the remote job.
23. The method of claim 22, further comprising determining whether the job is listed in a quick deploy list.
24. The method of claim 23, wherein an author listed the job in the list without having to seek permission from an administrator.
25. The method of claim 23, further comprising clearing the list in response to the job being completed.
26. The method of claim 21, further comprising determining what data has changed in the first item since the first item was last deployed.
27. The method of claim 26, further comprising updating a table with information indicative of the first item's version.
28. An apparatus for deploying content from a source to a destination, the apparatus comprising:
one or more processors for executing processor executable instructions;
one or more computer storage media, wherein the computer storage media does not consist of a signal, for storing the processor executable instructions that when executed by the one or more processor perform a method comprising:
creating, by a deployment module, a remote job at the destination for deploying a first item;
uploading the first item to the destination;
starting, by the deployment module, the remote job at the destination to import the uploaded first item, wherein starting the remote job comprises calling a method to start the remote job;
polling, by the deployment module, to determine a status of the remote job at the destination;
tracking, by the deployment module, job history information, wherein the job history information comprises information related to the remote job, and wherein the information related to the remote job comprises a time when the remote job was started, a time when the remote job ended, and an indication whether the remote job succeeded; and
causing, by the deployment module, the destination to delete the remote job.
29. The apparatus of claim 28, further comprising further comprising:
obtaining, by the deployment module, the first item and one or more dependencies of the first item referred to by the first item.
30. The apparatus of claim 29, further comprising a database in the destination network to store the one or more dependencies and the uploaded first item with one or more references to locations at which the dependencies are stored in the database.
31. The apparatus of claim 28, further comprising a first list identifying items that are to be deployed at a time scheduled, and a second list containing paths and jobs, wherein items identified in the second list are to be deployed according to a schedule specified by one or more jobs.
32. The apparatus of claim 31, wherein an author is able to list the first item in the first list without having to seek permission from an administrator.
33. A computer-readable storage medium, wherein the computer storage media does not consist of a signal, storing computer-executable instructions for deploying content from a source to a destination, the method comprising the steps of:
creating, by the deployment module, a remote job at the destination for deploying the first item;
uploading the package to the destination;
starting, by the deployment module, the remote job at the destination to import the uploaded first item, wherein starting the remote job comprises calling a method to start the remote job;
polling, by the deployment module, to determine a status of the remote job at the destination;
tracking, by the deployment module, job history information, wherein the job history information comprises information related to the remote job, and wherein the information related to the remote job comprises a time when the remote job was started, a time when the remote job ended, and an indication whether the remote job succeeded; and
causing, by the deployment module, the destination to delete the remote job.
34. The computer-readable storage medium of claim 33, further comprising:
controlling, by the deployment module, import of a job at the destination, wherein the job is different from the remote job.
35. The computer-readable storage medium of claim 34, further comprising:
determining whether the job is listed in a quick deploy list.
36. The computer-readable storage medium of claim 35, wherein an author listed the job in the list without having to seek permission from an administrator.
37. The computer-readable storage medium of claim 35, further comprising clearing the list in response to the remote job being completed.
38. The computer-readable storage medium of claim 33, further comprising determining what data has changed in the first item since the first item was last deployed.
39. The computer-readable storage medium of claim 38, further comprising updating a table with information indicative of the first item's version.
40. The computer-readable storage medium of claim 33, further comprising updating, by the deployment module, a job history table to indicate if the remote job is completed.
US13/222,295 2005-08-15 2011-08-31 Quick deploy of content Abandoned US20110314127A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/222,295 US20110314127A1 (en) 2005-08-15 2011-08-31 Quick deploy of content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/205,739 US8019827B2 (en) 2005-08-15 2005-08-15 Quick deploy of content
US13/222,295 US20110314127A1 (en) 2005-08-15 2011-08-31 Quick deploy of content

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/205,739 Continuation US8019827B2 (en) 2005-08-15 2005-08-15 Quick deploy of content

Publications (1)

Publication Number Publication Date
US20110314127A1 true US20110314127A1 (en) 2011-12-22

Family

ID=37743836

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/205,739 Active 2028-12-31 US8019827B2 (en) 2005-08-15 2005-08-15 Quick deploy of content
US13/222,295 Abandoned US20110314127A1 (en) 2005-08-15 2011-08-31 Quick deploy of content

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/205,739 Active 2028-12-31 US8019827B2 (en) 2005-08-15 2005-08-15 Quick deploy of content

Country Status (1)

Country Link
US (2) US8019827B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306629A1 (en) * 2014-11-10 2016-10-20 International Business Machines Corporation Visualizing a congruency of versions of an application across phases of a release pipeline

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050431A1 (en) * 2005-08-26 2007-03-01 Microsoft Corporation Deploying content between networks
EP1989827B3 (en) 2006-03-02 2015-11-11 Nokia Corporation Supporting an access to a destination network via a wireless access network
EP2028813A1 (en) * 2007-07-02 2009-02-25 British Telecmmunications public limited campany Method of synchronizing intermittently connected mobile terminals
US20090083738A1 (en) * 2007-09-25 2009-03-26 Microsoft Corporation Automated data object set administration
US8832176B1 (en) * 2012-05-09 2014-09-09 Google Inc. Method and system for processing a large collection of documents
US20200004585A1 (en) * 2018-06-29 2020-01-02 Advanced Micro Devices, Inc. Techniques for reducing serialization in divergent control flow
EP4224347A4 (en) * 2020-09-30 2023-11-01 Fujitsu Limited Control method, information processing device, control program, and information processing system
CN116204248B (en) * 2023-05-05 2023-07-07 北京睿企信息科技有限公司 Configuration system of cluster server

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606493A (en) * 1992-06-18 1997-02-25 International Business Machines Corporation Distributed applications processing network
US6115471A (en) * 1996-11-28 2000-09-05 Fujitsu Limited Member-exclusive service system and method through internet
US6144960A (en) * 1995-10-05 2000-11-07 Fujitsu Limited Software registering/managing system and method thereof
US6148323A (en) * 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
US20010044834A1 (en) * 2000-03-22 2001-11-22 Robert Bradshaw Method and apparatus for automatically deploying data in a computer network
US20010056572A1 (en) * 2000-06-19 2001-12-27 Hewlett-Packard Company Process for installing a software package in a client computer, and server for doing the same
US20020004824A1 (en) * 2000-05-17 2002-01-10 Cuan William G. Method and apparatus for automatically deploying data and simultaneously Executing computer program scripts in a computer network
US20030097422A1 (en) * 2001-11-21 2003-05-22 Dave Richards System and method for provisioning software
US20030233483A1 (en) * 2002-04-23 2003-12-18 Secure Resolutions, Inc. Executing software in a network environment
US20040193461A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method and apparatus for obtaining status information in a grid
US20050080801A1 (en) * 2000-05-17 2005-04-14 Vijayakumar Kothandaraman System for transactionally deploying content across multiple machines
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US7024696B1 (en) * 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US20060123414A1 (en) * 2004-12-03 2006-06-08 International Business Machines Corporation Method and apparatus for creation of customized install packages for installation of software
US20060288097A1 (en) * 2005-06-20 2006-12-21 Xerox Corporation Integration of local and remote jobs in the job queue
US7562341B2 (en) * 2004-05-24 2009-07-14 Sap Ag Deploy callback system with bidirectional containers
US7587713B1 (en) * 2002-12-31 2009-09-08 Emc Corporation System and method for controlling installation of one or more components for a data storage management system
US7669209B2 (en) * 1998-09-25 2010-02-23 Hitachi, Ltd. Method for optimizing remote procedure call (RPC) and program execution method by use of the optimized RPC
US7702766B2 (en) * 2003-06-13 2010-04-20 Oracle America, Inc. Testing framework for communication in a distributed environment
US8224932B2 (en) * 2009-01-29 2012-07-17 International Business Machines Corporation Deployment of remote portlets into a portal
US20120246086A1 (en) * 2004-09-30 2012-09-27 Avaya Inc. Generation of enterprise-wide licenses in a customer environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212397A (en) * 1996-01-31 1997-08-15 Toshiba Corp File reading method
US5812773A (en) * 1996-07-12 1998-09-22 Microsoft Corporation System and method for the distribution of hierarchically structured data
US6119167A (en) * 1997-07-11 2000-09-12 Phone.Com, Inc. Pushing and pulling data in networks
US20010032278A1 (en) * 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US6044403A (en) * 1997-12-31 2000-03-28 At&T Corp Network server platform for internet, JAVA server and video application server
US6286047B1 (en) * 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6351761B1 (en) * 1998-12-18 2002-02-26 At&T Corporation Information stream management push-pull based server for gathering and distributing articles and messages specified by the user
US6567411B2 (en) * 1998-12-31 2003-05-20 Qwest Communications International, Inc. Method and apparatus for continuous narrowcast of individualized information over a data network
DE19943058A1 (en) * 1999-09-09 2001-03-22 Bosch Gmbh Robert Method and system for transmitting information content data
US6944642B1 (en) * 1999-10-04 2005-09-13 Microsoft Corporation Systems and methods for detecting and resolving resource conflicts
JP2001125823A (en) * 1999-10-29 2001-05-11 Fujitsu Ltd Push service system and push service processing method
JP2001202310A (en) * 2000-01-20 2001-07-27 Square Co Ltd Information providing method, recording medium with recorded program for providing the same method and information providing system
US7096269B2 (en) * 2001-03-30 2006-08-22 Hitachi, Ltd. Path selection methods for storage based remote copy
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
US7376693B2 (en) * 2002-02-08 2008-05-20 Jp Morgan Chase & Company System architecture for distributed computing and method of using the system
US7149759B2 (en) * 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7277913B2 (en) * 2002-05-09 2007-10-02 Sun Microsystems, Inc. Persistent queuing for distributed file systems
US7464176B2 (en) * 2002-06-17 2008-12-09 Microsoft Corporation Multicast system and method for deploying multiple images simultaneously
US6901590B2 (en) * 2003-03-03 2005-05-31 Computer Associates Think, Inc. System and method for single transparent deployment flow
US20040193952A1 (en) * 2003-03-27 2004-09-30 Charumathy Narayanan Consistency unit replication in application-defined systems
US7478383B2 (en) * 2004-03-23 2009-01-13 Toshiba Corporation System and method for remotely securing software updates of computer systems
US7571464B2 (en) * 2004-08-27 2009-08-04 International Business Machines Corporation Secure bidirectional cross-system communications framework
US20070050431A1 (en) * 2005-08-26 2007-03-01 Microsoft Corporation Deploying content between networks

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606493A (en) * 1992-06-18 1997-02-25 International Business Machines Corporation Distributed applications processing network
US6144960A (en) * 1995-10-05 2000-11-07 Fujitsu Limited Software registering/managing system and method thereof
US6148323A (en) * 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
US6115471A (en) * 1996-11-28 2000-09-05 Fujitsu Limited Member-exclusive service system and method through internet
US7669209B2 (en) * 1998-09-25 2010-02-23 Hitachi, Ltd. Method for optimizing remote procedure call (RPC) and program execution method by use of the optimized RPC
US20010044834A1 (en) * 2000-03-22 2001-11-22 Robert Bradshaw Method and apparatus for automatically deploying data in a computer network
US20050080801A1 (en) * 2000-05-17 2005-04-14 Vijayakumar Kothandaraman System for transactionally deploying content across multiple machines
US20020004824A1 (en) * 2000-05-17 2002-01-10 Cuan William G. Method and apparatus for automatically deploying data and simultaneously Executing computer program scripts in a computer network
US7024696B1 (en) * 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US20010056572A1 (en) * 2000-06-19 2001-12-27 Hewlett-Packard Company Process for installing a software package in a client computer, and server for doing the same
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment
US20030097422A1 (en) * 2001-11-21 2003-05-22 Dave Richards System and method for provisioning software
US20030233483A1 (en) * 2002-04-23 2003-12-18 Secure Resolutions, Inc. Executing software in a network environment
US7587713B1 (en) * 2002-12-31 2009-09-08 Emc Corporation System and method for controlling installation of one or more components for a data storage management system
US20040193461A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method and apparatus for obtaining status information in a grid
US7702766B2 (en) * 2003-06-13 2010-04-20 Oracle America, Inc. Testing framework for communication in a distributed environment
US7562341B2 (en) * 2004-05-24 2009-07-14 Sap Ag Deploy callback system with bidirectional containers
US20120246086A1 (en) * 2004-09-30 2012-09-27 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US20060123414A1 (en) * 2004-12-03 2006-06-08 International Business Machines Corporation Method and apparatus for creation of customized install packages for installation of software
US20060288097A1 (en) * 2005-06-20 2006-12-21 Xerox Corporation Integration of local and remote jobs in the job queue
US8224932B2 (en) * 2009-01-29 2012-07-17 International Business Machines Corporation Deployment of remote portlets into a portal

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306629A1 (en) * 2014-11-10 2016-10-20 International Business Machines Corporation Visualizing a congruency of versions of an application across phases of a release pipeline
US9916156B2 (en) 2014-11-10 2018-03-13 International Business Machines Corporation Visualizing a congruency of versions of an application across phases of a release pipeline
US9921826B2 (en) * 2014-11-10 2018-03-20 International Business Machines Corporation Visualizing a congruency of versions of an application across phases of a release pipeline

Also Published As

Publication number Publication date
US20070038726A1 (en) 2007-02-15
US8019827B2 (en) 2011-09-13

Similar Documents

Publication Publication Date Title
US20110314127A1 (en) Quick deploy of content
US8239954B2 (en) Access control based on program properties
KR101122787B1 (en) Security-related programming interface
US8812451B2 (en) Programming model for synchronizing browser caches across devices and web services
US20160202963A1 (en) Software deployment over a network
US7765551B2 (en) System for dynamically loading application resources from the first server to the second server based on the modified application resources from the first server
EP2989543B1 (en) Method and device for updating client
US20010051515A1 (en) Mobile application peer-to-peer security system and method
EP3499846B1 (en) File distribution method, file download method, distribution server, client, and system
US20070118572A1 (en) Detecting changes in data
US20140007117A1 (en) Methods and apparatus for modifying software applications
CN109614167B (en) Method and system for managing plug-ins
WO2012054218A2 (en) Routing traffic in an online service with high availability
KR20110125698A (en) Security providing method and device for executing of mobile web application
WO2007123620A1 (en) Isolation of application execution
US8600960B2 (en) Processing proposed changes to data
US9942267B1 (en) Endpoint segregation to prevent scripting attacks
US20100036892A1 (en) Determination of an updated data source from disparate data sources
US20100318967A1 (en) Supplementary deployment actions
CN104639599A (en) System and method for downloading files in bulk
JP2004303243A (en) Security attributes of nodes in trusted computing systems
US20090216548A1 (en) License Management in a Networked Software Application Solution
JP2010250548A (en) Log output device
US10235187B2 (en) Merging application configurations to enhance multi-layer performance
US8353013B2 (en) Authorized application services via an XML message protocol

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034544/0001

Effective date: 20141014