US20120030167A1 - Data migration for service upgrades - Google Patents

Data migration for service upgrades Download PDF

Info

Publication number
US20120030167A1
US20120030167A1 US12/847,485 US84748510A US2012030167A1 US 20120030167 A1 US20120030167 A1 US 20120030167A1 US 84748510 A US84748510 A US 84748510A US 2012030167 A1 US2012030167 A1 US 2012030167A1
Authority
US
United States
Prior art keywords
service
data
user
act
user data
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.)
Granted
Application number
US12/847,485
Other versions
US10417200B2 (en
Inventor
Madan Appiah
Nitin Sharma
Lokesh M. Dave
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 US12/847,485 priority Critical patent/US10417200B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHARMA, NITIN, DAVE, LOKESH M., APPIAH, MADAN
Priority to CN201110221876.5A priority patent/CN102411511B/en
Publication of US20120030167A1 publication Critical patent/US20120030167A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Application granted granted Critical
Publication of US10417200B2 publication Critical patent/US10417200B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Definitions

  • Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently.
  • Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
  • software applications are designed to interact with other software applications or other computer systems.
  • software applications may provide services to various computer system users. In some cases, these services may be provided to customers on a subscription basis. The customers will typically log in to the server or computer system providing the service and, once authenticated, the user will have access to the service.
  • the changes may be implemented in the form of a new service version.
  • the new version may differ substantially from the original (or last) version.
  • the user may be hesitant to change to the newer version without having tried it.
  • effecting such changes may require a great deal of time and effort on the part of the user.
  • Embodiments described herein are directed to efficiently migrating data from one version of a service to another version and to temporarily transitioning a user to a different service for evaluation.
  • a computer system pre-transfers user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service.
  • the user data includes identification information identifying users of the first service.
  • the computer system receives an indication that a first service user is to be transitioned to the second service.
  • the computer system transfers service data used by the first service to the second service and synchronizes any changes in the user data that occurred between the user data pre-transfer and the service data transfer, so that the second service is provided using the transferred service data and the synchronized user data.
  • a computer system transfers a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service.
  • the computer system receives an indication that the user intends to evaluate the second service and temporarily transfers service data corresponding to the first service to the second service, so that the second service operates using the user's user data and service data from the first service.
  • the user data and service data may be updated during service operation.
  • the computer system also determines that the user's evaluation period has ended and may be transferred the updated user data and service data from the second service to the first service, so that the first service operates using the updated user data and service data.
  • FIG. 1 illustrates a computer architecture in which embodiments of the present invention may operate including efficiently migrating data from one version of a service to another version and temporarily transitioning a user to a different service for evaluation.
  • FIG. 2 illustrates a flowchart of an example method for efficiently migrating data from one version of a service to another version.
  • FIG. 3 illustrates a flowchart of an example method for temporarily transitioning a user to a different service for evaluation.
  • FIG. 4 illustrates an embodiment of the present invention in which application-specific services are used in service migrations.
  • Embodiments described herein are directed to efficiently migrating data from one version of a service to another version and to temporarily transitioning a user to a different service for evaluation.
  • a computer system pre-transfers user profile data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service.
  • the user profile data may include a user's first name, last name, address, etc. as well as user identification and authentication data including user ID, password, etc.
  • the user data includes identification information identifying users of the first service.
  • the computer system receives an indication that a first service user is to be transitioned to the second service.
  • the computer system transfers service data used by the first service to the second service and synchronizes any changes in the user data that occurred between the user data pre-transfer and the service data transfer, so that the second service is provided using the transferred service data and the synchronized user data.
  • Service data may refer to data pertaining to a given service but also relevant to a user (e.g. a user's email inbox) or to a company (e.g. the company's word processing documents).
  • synchronization may occur only during the transfer of a user from a first service to a second service. In such cases, once the service transition is complete and indicated to user then the synchronization stops, as the user's move from the first service to the second service is complete.
  • a computer system transfers a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service.
  • the computer system receives an indication that the user intends to evaluate the second service and temporarily transfers service data corresponding to the first service to the second service, so that the second service operates using the user's user data and service data from the first service.
  • the user data and service data are updated during service operation.
  • the computer system also determines that the user's evaluation period has ended and transfers the updated user data and service data from the second service to the first service, so that the first service operates using the updated user data and service data.
  • Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below.
  • Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures.
  • Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
  • Computer-readable media that store computer-executable instructions are computer storage media.
  • Computer-readable media that carry computer-executable instructions are transmission media.
  • embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
  • Computer storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
  • a “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices.
  • a network or another communications connection can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
  • program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa).
  • computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system.
  • a network interface module e.g., a “NIC”
  • NIC network interface module
  • computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
  • Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
  • the computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
  • the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like.
  • the invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks.
  • program modules may be located in both local and remote memory storage devices.
  • FIG. 1 illustrates a computer architecture 100 in which the principles of the present invention may be employed.
  • Computer architecture 100 includes first service 120 and second service 130 .
  • Each of these services includes user data 126 and service data 127 .
  • the services may be any type of software service, application, function or other hardware/software combination that provides a portion of functionality to a user.
  • second service 130 may comprise a newer or updated version of first service 120 .
  • user 135 may be upgrading or simply switching between service versions.
  • Migration engine 105 may be used to perform such service migrations.
  • Migration engine 105 may be configured to transfer data between first service 120 and second service 130 .
  • migration engine 105 may transfer (or initiate the transfer of) user data 126 and/or service data 127 from the first service to the second service.
  • the migration engine may transfer at least a portion of the user data and/or the service data for user 135 before the user has indicated that he or she wishes to switch to the newer version.
  • the second service can be provided quickly and efficiently.
  • migration engine 105 may be configured to facilitate upgrades between services or service versions for substantially any number of users.
  • Each service may be configured to provide its functionality to one or more different users (e.g. user 135 ).
  • the service provides the functionality using the user data 126 and service data 127 stored in data store 125 .
  • the user data may include any type of information used to identify the user including user name, authentication information, biographical information (name, address, etc.), email address or other identifying information.
  • the user data 126 may identify the user as part of a group of users or as a corporate customer.
  • the service data 127 may include any type of information related to the service being provided including which functionality to provide to given user or group of users, user settings, as well as the actual data that provides the service's functionality.
  • migration engine 105 may determine when to begin sending a user's user data 126 and/or service data 127 from an older version (e.g. first service 120 ) to a newer version (e.g. second service 130 ). In some cases, the migration engine may begin sending the user data and/or service data before receiving an indication (e.g. transition indication 111 ) from a user that the user wishes to upgrade or switch to the newer (or simply different) version. In some embodiments, migration engine 105 may pre-transfer the user data 126 for any or all users of the first service to the data store or data partition of the second service.
  • an indication e.g. transition indication 111
  • the migration engine may transfer the service data 127 , as well as initiate a synchronization via synchronization module 110 to synchronize any data changes in the user data. This and other concepts will be explained in greater detail below with regard to method 200 of FIG. 2 .
  • FIG. 2 illustrates a flowchart of a method 200 for efficiently migrating data from one version of a service to another version.
  • the method 200 will now be described with frequent reference to the components and data of environment 100 of FIG. 1 and environment 400 of FIG. 4 .
  • Method 200 includes an act of pre-transferring at least a portion of user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service, wherein the user data includes identification information identifying one or more users of the first service (act 210 ).
  • migration engine 105 may pre-transfer at least a portion of user data 126 from first service 120 to second service 130 before receiving transition indication 111 from user 135 indicating that the is to be transitioned from the first service to the second service.
  • User data 126 may include information that identifies the user requesting the transition (user 135 ) to a different version or different service.
  • the user data may further indicate the user's membership in a group or other organizational unit.
  • second service 130 e.g. a newer or updated version of the service provided by first service 120
  • second service 130 may comprise a multi-partition, multi-tenant service.
  • each user or tenant may have its own actual or virtual partition in which its user and service data is stored.
  • Method 200 includes an act of receiving an indication that one or more of the first service users are to be transitioned to the second service (act 220 ).
  • migration engine 105 may receive transition indication 111 from user 135 indicating that the user is to be transitioned from the first service 120 to the second service 130 .
  • migration engine 105 may be configured to monitor a user upgrade status for at least one of the first service users (e.g. user 135 ).
  • the user upgrade status may indicate that the user is eligible for upgrade or, at least, is eligible to temporarily evaluate the newer version.
  • migration engine 105 may begin pre-transferring user and/or service data upon learning that a given user is eligible to upgrade to (or evaluate) the newer version. Then, when the eligible user actually opts to begin evaluating the second service, the second service will already have much (if not all) of the information needed to begin providing the second service to the user.
  • the user's user data 126 and service data 127 may be temporarily transferred to the second service.
  • the second service provides the second service to the user 135 , it will use the user's user data and service data.
  • This data may be stored on the data store of the second service for as long as the user is eligible to evaluate the second service.
  • the user may subscribe to the second service and continue using it as it was used during the evaluation (possibly with more features not provided during the evaluation).
  • migration engine 105 may determine that the user's evaluation period has expired and, at least in some cases, may transfer the updated user data and service data 127 to the first service. Then, the first service may provide service for the user using the updated user data and service data.
  • migration engine 105 may be configured to perform various different calculations including pre-calculating each step that is to be taken to upgrade user 135 from the first service 120 to the second service 130 .
  • These pre-calculated steps may be combined to form a workflow.
  • the steps of the workflow may be executed as part of a typical workflow execution.
  • This ensures data consistency between the user data and the service data of the first service and the user data and the service data of the second service. Accordingly, the same data used in providing the first service will be transferred to and used in providing the second service.
  • the user evaluating the second service opts not to continue using the second service, the data will be transferred back to the first service as part of the workflow execution and the first service will then provide the service to the user.
  • method 200 includes an act of transferring at least a portion of service data used by the first service to the second service (act 230 ).
  • migration engine 105 may transfer at least a portion of service data 127 used by first service 120 to second service 130 .
  • the transfer may be initiated upon receiving transition indication 111 or at some point thereafter.
  • multiple different application-specific services may be instantiated which are configured to transfer data from one service to another.
  • Application-specific services (or “app-specific services” herein) may be used in cases where a service (e.g. first service 120 ) provides multiple different applications as part of its service.
  • first service 120 may provide office suite applications such as word processing, spreadsheet, presentation, email management and other applications. Many other applications of all different types may also be provided by a service. Each of those applications may have a separate app-specific service that is configured to transfer data from a first service to a different one.
  • first service 420 which includes user data 426 and service data 427 may send the user data and service data for a word processing application (for example) to app-specific service 431 A for transfer to second service 430 .
  • second service 430 may be configured to provide at least those applications provided by the first service, as well as other, different applications.
  • second service 430 may then begin to provide the application using the data transferred by the app-specific service.
  • app-specific services Although only three app-specific services are shown ( 431 A, 431 B and 431 C), it will be understood by one skilled in the art that substantially any number of applications may be provided by a service and that a corresponding number of application-specific services may be instantiated to transfer that application's data between services.
  • method 200 includes an act of synchronizing any changes in the user data that occurred between the user data pre-transfer and the service data transfer, such that the second service is provided using the transferred service data and the synchronized user data (act 240 ).
  • user data synchronization module 410 of migration engine 405 may synchronize any changes in user data 426 that occurred between the pre-transfer of the user data and the subsequent transfer of the service data.
  • the second service 430 may be provided using the transferred service data 427 and the synchronized (and thus up-to-date) user data 426 . Any changes to the user data made during synchronization will be finalized in act 250 .
  • a scheduler may be used to determine the optimal time to transfer the service data and perform the synchronization. Moreover, the scheduler may schedule the transfer of the service data and then set up synchronization for the determined optimal time.
  • user data and service data from multiple different users or tenants are batched together for transfer from the first service to the second service.
  • the migration engine may include licenses 413 dictating to which services a user has been given access. For instance, the licenses may indicate that a user is to given access to two different applications provided by the second service. Like the user and service data, the licenses may be reconciled upon performing a synchronization.
  • FIG. 3 illustrates a flowchart of a method 300 for temporarily transitioning a user to a different service for evaluation.
  • the method 300 will now be described with frequent reference to the components and data of environment 100 .
  • Method 300 includes an act of transferring a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service (act 310 ).
  • migration engine 105 may transfer user 135 's user data 126 from first service 120 to second service 130 before receiving transition indication 111 indicating that the user intends to evaluate (and thus transition to) the second service.
  • the evaluation period may be configurable and may be extended or cut short from its original time. In other cases, there may be no time limit for the evaluation.
  • the evaluation may allow the user to access any or all of the applications provided by the second service. Moreover, access to the applications provided by the second service may be limited according to policies dictated in licenses 413 .
  • Method 300 includes an act of receiving an indication that the user intends to evaluate the second service (act 320 ).
  • migration engine 105 may receive transition indication 111 indicating that user 135 intends to evaluate second service 130 .
  • This indication may be any type of communication between the user and the migration engine that can communicate the user's intention to evaluate the second service.
  • Other indications may be used to indicate that a group of users is to be transitioned to the second service for evaluation.
  • the migration engine may perform the steps as listed herein for a group of users instead of just a single user.
  • user data may be grouped together for transfer through one or more different channels in parallel. In this manner, data transfer throughput is increased. Additionally or alternatively, a group of users may be batched together for transfer from the first service to the second service, so that service data for the group of users is transferred together. New services may also optionally be added to aid in transferring data.
  • Method 300 further includes an act of temporarily transferring service data corresponding to the first service to the second service, such that the second service operates using the user's user data and service data from the first service, wherein the user data and service data are updated during operation (act 330 ).
  • migration engine 105 may temporarily transfer service data 127 of the first service 120 to the second service 130 .
  • the transferred service data may be used to provide the second service including any of the second service's applications.
  • Method 300 also includes an act of determining that the user's evaluation period has ended (act 340 ).
  • migration engine 105 may determine that user 135 's evaluation period has ended.
  • the evaluation period may comprise substantially any timeframe and is fully configurable by a system administrator.
  • the evaluation period may last for minutes, days, weeks or years. In some cases, the evaluation period is specific to each user. Thus, one user may have an evaluation period of a week while another user has an evaluation period of a month.
  • time frames may be extended to some customizable end time.
  • the evaluation period may, in effect, be extended indefinitely or at least for the life of the user's subscription to the second service.
  • Method 300 includes an act of transferring the updated user data and service data from the second service to the first service, such that the first service operates using the updated user data and service data (act 350 ).
  • migration engine 105 may transfer updated user data and the service data from second service 130 to first service 120 .
  • the first service may then provide the first service using the updated user data and the service data 127 .
  • a user or group of users may evaluate the second service for a period of time, after which the user(s) are transitioned back to the first service.
  • methods, systems and computer program products which both efficiently migrate data from one version of a service to another version and temporarily transition a user from a first service to a second service for evaluation. Users may thus transition to a different service quickly and efficiently, as well as temporarily evaluate other services to determine whether to subscribe to those services. Upon determining not to subscribe to the evaluated service, transitioning back to the original, first service is also quick and efficient.

Abstract

Embodiments are directed to efficiently migrating data from one version of a service to another version and to temporarily transitioning a user to a different service for evaluation. A computer system pre-transfers user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service. The user data includes identification information identifying users of the first service. The computer system receives an indication that a first service user is to be transitioned to the second service. The computer system transfers service data used by the first service to the second service and synchronizes any changes in the user data that occurred between the user data pre-transfer and the service data transfer, so that the second service is provided using the transferred service data and the synchronized user data.

Description

    BACKGROUND
  • Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
  • In many cases, software applications are designed to interact with other software applications or other computer systems. For example, software applications may provide services to various computer system users. In some cases, these services may be provided to customers on a subscription basis. The customers will typically log in to the server or computer system providing the service and, once authenticated, the user will have access to the service.
  • Over time, service providers tend to make changes to the services they provide. The changes may be implemented in the form of a new service version. In some cases, the new version may differ substantially from the original (or last) version. In such cases, the user may be hesitant to change to the newer version without having tried it. Moreover, effecting such changes may require a great deal of time and effort on the part of the user.
  • BRIEF SUMMARY
  • Embodiments described herein are directed to efficiently migrating data from one version of a service to another version and to temporarily transitioning a user to a different service for evaluation. In one embodiment, a computer system pre-transfers user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service. The user data includes identification information identifying users of the first service. The computer system receives an indication that a first service user is to be transitioned to the second service. The computer system transfers service data used by the first service to the second service and synchronizes any changes in the user data that occurred between the user data pre-transfer and the service data transfer, so that the second service is provided using the transferred service data and the synchronized user data.
  • In another embodiment, a computer system transfers a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service. The computer system receives an indication that the user intends to evaluate the second service and temporarily transfers service data corresponding to the first service to the second service, so that the second service operates using the user's user data and service data from the first service. The user data and service data may be updated during service operation. The computer system also determines that the user's evaluation period has ended and may be transferred the updated user data and service data from the second service to the first service, so that the first service operates using the updated user data and service data.
  • This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. 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.
  • Additional features and advantages will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the teachings herein. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • To further clarify the above and other advantages and features of embodiments of the present invention, a more particular description of embodiments of the present invention will be rendered by reference to the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
  • FIG. 1 illustrates a computer architecture in which embodiments of the present invention may operate including efficiently migrating data from one version of a service to another version and temporarily transitioning a user to a different service for evaluation.
  • FIG. 2 illustrates a flowchart of an example method for efficiently migrating data from one version of a service to another version.
  • FIG. 3 illustrates a flowchart of an example method for temporarily transitioning a user to a different service for evaluation.
  • FIG. 4 illustrates an embodiment of the present invention in which application-specific services are used in service migrations.
  • DETAILED DESCRIPTION
  • Embodiments described herein are directed to efficiently migrating data from one version of a service to another version and to temporarily transitioning a user to a different service for evaluation. In one embodiment, a computer system pre-transfers user profile data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service. The user profile data may include a user's first name, last name, address, etc. as well as user identification and authentication data including user ID, password, etc. The user data includes identification information identifying users of the first service. The computer system receives an indication that a first service user is to be transitioned to the second service.
  • The computer system transfers service data used by the first service to the second service and synchronizes any changes in the user data that occurred between the user data pre-transfer and the service data transfer, so that the second service is provided using the transferred service data and the synchronized user data. Service data, as used herein, may refer to data pertaining to a given service but also relevant to a user (e.g. a user's email inbox) or to a company (e.g. the company's word processing documents). Furthermore, it should be noted that, at least in some cases, synchronization may occur only during the transfer of a user from a first service to a second service. In such cases, once the service transition is complete and indicated to user then the synchronization stops, as the user's move from the first service to the second service is complete.
  • In another embodiment, a computer system transfers a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service. The computer system receives an indication that the user intends to evaluate the second service and temporarily transfers service data corresponding to the first service to the second service, so that the second service operates using the user's user data and service data from the first service. The user data and service data are updated during service operation. The computer system also determines that the user's evaluation period has ended and transfers the updated user data and service data from the second service to the first service, so that the first service operates using the updated user data and service data.
  • The following discussion now refers to a number of methods and method acts that may be performed. It should be noted, that although the method acts may be discussed in a certain order or illustrated in a flow chart as occurring in a particular order, no particular ordering is necessarily required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.
  • Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are computer storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
  • Computer storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
  • A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
  • Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system. Thus, it should be understood that computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
  • Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
  • Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
  • FIG. 1 illustrates a computer architecture 100 in which the principles of the present invention may be employed. Computer architecture 100 includes first service 120 and second service 130. Each of these services includes user data 126 and service data 127. The services may be any type of software service, application, function or other hardware/software combination that provides a portion of functionality to a user. In some cases, second service 130 may comprise a newer or updated version of first service 120. Thus, as shown in FIG. 1, user 135 may be upgrading or simply switching between service versions. Migration engine 105 may be used to perform such service migrations.
  • Migration engine 105 may be configured to transfer data between first service 120 and second service 130. For instance, migration engine 105 may transfer (or initiate the transfer of) user data 126 and/or service data 127 from the first service to the second service. The migration engine may transfer at least a portion of the user data and/or the service data for user 135 before the user has indicated that he or she wishes to switch to the newer version. In such cases, because the data has already been transferred to the newer version (i.e. second service 130), the second service can be provided quickly and efficiently. It should be noted that while two services are shown in FIG. 1, substantially any number of services may be implemented and, correspondingly, migration engine 105 may be configured to facilitate upgrades between services or service versions for substantially any number of users.
  • Each service may be configured to provide its functionality to one or more different users (e.g. user 135). The service provides the functionality using the user data 126 and service data 127 stored in data store 125. The user data may include any type of information used to identify the user including user name, authentication information, biographical information (name, address, etc.), email address or other identifying information. Moreover, the user data 126 may identify the user as part of a group of users or as a corporate customer. The service data 127 may include any type of information related to the service being provided including which functionality to provide to given user or group of users, user settings, as well as the actual data that provides the service's functionality.
  • Thus, migration engine 105 may determine when to begin sending a user's user data 126 and/or service data 127 from an older version (e.g. first service 120) to a newer version (e.g. second service 130). In some cases, the migration engine may begin sending the user data and/or service data before receiving an indication (e.g. transition indication 111) from a user that the user wishes to upgrade or switch to the newer (or simply different) version. In some embodiments, migration engine 105 may pre-transfer the user data 126 for any or all users of the first service to the data store or data partition of the second service. Then, upon receiving a transition indication 111 from the user 135 indicating that the user wishes to switch to the second version, the migration engine may transfer the service data 127, as well as initiate a synchronization via synchronization module 110 to synchronize any data changes in the user data. This and other concepts will be explained in greater detail below with regard to method 200 of FIG. 2.
  • In view of the systems and architectures described above, methodologies that may be implemented in accordance with the disclosed subject matter will be better appreciated with reference to the flow charts of FIGS. 2 and 3. For purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks. However, it should be understood and appreciated that the claimed subject matter is not limited by the order of the blocks, as some blocks may occur in different orders and/or concurrently with other blocks from what is depicted and described herein. Moreover, not all illustrated blocks may be required to implement the methodologies described hereinafter.
  • FIG. 2 illustrates a flowchart of a method 200 for efficiently migrating data from one version of a service to another version. The method 200 will now be described with frequent reference to the components and data of environment 100 of FIG. 1 and environment 400 of FIG. 4.
  • Method 200 includes an act of pre-transferring at least a portion of user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service, wherein the user data includes identification information identifying one or more users of the first service (act 210). For example, migration engine 105 may pre-transfer at least a portion of user data 126 from first service 120 to second service 130 before receiving transition indication 111 from user 135 indicating that the is to be transitioned from the first service to the second service. User data 126 may include information that identifies the user requesting the transition (user 135) to a different version or different service. As indicated above, the user data may further indicate the user's membership in a group or other organizational unit. The user's level of access to various features of the service(s) may be limited or granted based on the user's membership in the group. In some embodiments, second service 130 (e.g. a newer or updated version of the service provided by first service 120) may comprise a multi-partition, multi-tenant service. In such cases, each user or tenant may have its own actual or virtual partition in which its user and service data is stored.
  • Method 200 includes an act of receiving an indication that one or more of the first service users are to be transitioned to the second service (act 220). For example, migration engine 105 may receive transition indication 111 from user 135 indicating that the user is to be transitioned from the first service 120 to the second service 130. In some cases, migration engine 105 may be configured to monitor a user upgrade status for at least one of the first service users (e.g. user 135). The user upgrade status may indicate that the user is eligible for upgrade or, at least, is eligible to temporarily evaluate the newer version. Thus, in such cases, migration engine 105 may begin pre-transferring user and/or service data upon learning that a given user is eligible to upgrade to (or evaluate) the newer version. Then, when the eligible user actually opts to begin evaluating the second service, the second service will already have much (if not all) of the information needed to begin providing the second service to the user.
  • In cases where a user is temporarily evaluating the second service, the user's user data 126 and service data 127 may be temporarily transferred to the second service. Thus, when the second service provides the second service to the user 135, it will use the user's user data and service data. This data may be stored on the data store of the second service for as long as the user is eligible to evaluate the second service. Moreover, if the user determines at some point during the evaluation that he or she wishes to keep using the second service, the user may subscribe to the second service and continue using it as it was used during the evaluation (possibly with more features not provided during the evaluation). In cases where the user opts not to subscribe to the second service, migration engine 105 may determine that the user's evaluation period has expired and, at least in some cases, may transfer the updated user data and service data 127 to the first service. Then, the first service may provide service for the user using the updated user data and service data.
  • In some embodiments, migration engine 105 may be configured to perform various different calculations including pre-calculating each step that is to be taken to upgrade user 135 from the first service 120 to the second service 130. These pre-calculated steps may be combined to form a workflow. The steps of the workflow may be executed as part of a typical workflow execution. By performing each of the pre-calculated steps as part of the workflow, this ensures data consistency between the user data and the service data of the first service and the user data and the service data of the second service. Accordingly, the same data used in providing the first service will be transferred to and used in providing the second service. Moreover, if the user evaluating the second service opts not to continue using the second service, the data will be transferred back to the first service as part of the workflow execution and the first service will then provide the service to the user.
  • Returning to FIG. 2, method 200 includes an act of transferring at least a portion of service data used by the first service to the second service (act 230). For example, migration engine 105 may transfer at least a portion of service data 127 used by first service 120 to second service 130. The transfer may be initiated upon receiving transition indication 111 or at some point thereafter. In some cases, as shown in FIG. 4, multiple different application-specific services may be instantiated which are configured to transfer data from one service to another. Application-specific services (or “app-specific services” herein) may be used in cases where a service (e.g. first service 120) provides multiple different applications as part of its service. For instance, first service 120 may provide office suite applications such as word processing, spreadsheet, presentation, email management and other applications. Many other applications of all different types may also be provided by a service. Each of those applications may have a separate app-specific service that is configured to transfer data from a first service to a different one.
  • Accordingly, first service 420 which includes user data 426 and service data 427 may send the user data and service data for a word processing application (for example) to app-specific service 431A for transfer to second service 430. In some embodiments, second service 430 may be configured to provide at least those applications provided by the first service, as well as other, different applications. Thus, upon receiving the user data 426 and service data 427 for the user for a specific application (e.g. the word processing application), second service 430 may then begin to provide the application using the data transferred by the app-specific service. Although only three app-specific services are shown (431A, 431B and 431C), it will be understood by one skilled in the art that substantially any number of applications may be provided by a service and that a corresponding number of application-specific services may be instantiated to transfer that application's data between services.
  • Returning again to FIG. 2, method 200 includes an act of synchronizing any changes in the user data that occurred between the user data pre-transfer and the service data transfer, such that the second service is provided using the transferred service data and the synchronized user data (act 240). For example, user data synchronization module 410 of migration engine 405 may synchronize any changes in user data 426 that occurred between the pre-transfer of the user data and the subsequent transfer of the service data. In this manner, the second service 430 may be provided using the transferred service data 427 and the synchronized (and thus up-to-date) user data 426. Any changes to the user data made during synchronization will be finalized in act 250.
  • In some cases, a scheduler may be used to determine the optimal time to transfer the service data and perform the synchronization. Moreover, the scheduler may schedule the transfer of the service data and then set up synchronization for the determined optimal time. In some embodiments, user data and service data from multiple different users or tenants are batched together for transfer from the first service to the second service. Moreover, the migration engine may include licenses 413 dictating to which services a user has been given access. For instance, the licenses may indicate that a user is to given access to two different applications provided by the second service. Like the user and service data, the licenses may be reconciled upon performing a synchronization.
  • Moving now to FIG. 3, FIG. 3 illustrates a flowchart of a method 300 for temporarily transitioning a user to a different service for evaluation. The method 300 will now be described with frequent reference to the components and data of environment 100.
  • Method 300 includes an act of transferring a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service (act 310). For example, migration engine 105 may transfer user 135's user data 126 from first service 120 to second service 130 before receiving transition indication 111 indicating that the user intends to evaluate (and thus transition to) the second service. In some cases, the evaluation period may be configurable and may be extended or cut short from its original time. In other cases, there may be no time limit for the evaluation. The evaluation may allow the user to access any or all of the applications provided by the second service. Moreover, access to the applications provided by the second service may be limited according to policies dictated in licenses 413.
  • Method 300 includes an act of receiving an indication that the user intends to evaluate the second service (act 320). For example, migration engine 105 may receive transition indication 111 indicating that user 135 intends to evaluate second service 130. This indication may be any type of communication between the user and the migration engine that can communicate the user's intention to evaluate the second service. Other indications may be used to indicate that a group of users is to be transitioned to the second service for evaluation. Thus, the migration engine may perform the steps as listed herein for a group of users instead of just a single user.
  • In some embodiments, user data may be grouped together for transfer through one or more different channels in parallel. In this manner, data transfer throughput is increased. Additionally or alternatively, a group of users may be batched together for transfer from the first service to the second service, so that service data for the group of users is transferred together. New services may also optionally be added to aid in transferring data.
  • Method 300 further includes an act of temporarily transferring service data corresponding to the first service to the second service, such that the second service operates using the user's user data and service data from the first service, wherein the user data and service data are updated during operation (act 330). For example, migration engine 105 may temporarily transfer service data 127 of the first service 120 to the second service 130. The transferred service data may be used to provide the second service including any of the second service's applications.
  • Method 300 also includes an act of determining that the user's evaluation period has ended (act 340). For example, migration engine 105 may determine that user 135's evaluation period has ended. The evaluation period may comprise substantially any timeframe and is fully configurable by a system administrator. The evaluation period may last for minutes, days, weeks or years. In some cases, the evaluation period is specific to each user. Thus, one user may have an evaluation period of a week while another user has an evaluation period of a month. These are, of course, merely examples of possible time frames. Moreover, these time frames may be extended to some customizable end time. Still further, as mentioned above, if a user subscribes to the second service during or at the end of the evaluation period, the evaluation period may, in effect, be extended indefinitely or at least for the life of the user's subscription to the second service.
  • Method 300 includes an act of transferring the updated user data and service data from the second service to the first service, such that the first service operates using the updated user data and service data (act 350). For example, in some cases, migration engine 105 may transfer updated user data and the service data from second service 130 to first service 120. Upon receiving the updated user data and service data from the second service, the first service may then provide the first service using the updated user data and the service data 127. In this manner, a user (or group of users) may evaluate the second service for a period of time, after which the user(s) are transitioned back to the first service.
  • Accordingly, methods, systems and computer program products are provided which both efficiently migrate data from one version of a service to another version and temporarily transition a user from a first service to a second service for evaluation. Users may thus transition to a different service quickly and efficiently, as well as temporarily evaluate other services to determine whether to subscribe to those services. Upon determining not to subscribe to the evaluated service, transitioning back to the original, first service is also quick and efficient.
  • The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (20)

1. At a computer system including a processor and a memory, in a computer networking environment including a plurality of computing systems, a computer-implemented method for efficiently migrating data from one version of a service to another version, the method comprising:
an act of pre-transferring at least a portion of user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service, wherein the user data includes identification information identifying one or more users of the first service;
an act of receiving an indication that one or more of the first service users are to be transitioned to the second service;
an act of transferring at least a portion of service data used by the first service to the second service; and
an act of synchronizing any changes in the user data that occurred between the user data pre-transfer and the service data transfer, such that the second service is provided using the transferred service data and the synchronized user data.
2. The method of claim 1, further comprising an act of monitoring a user upgrade status for at least one of the first service users.
3. The method of claim 1, further comprising instantiating a separate, different transfer service for each service that is specially configured to transfer that transfer service's user and service data.
4. The method of claim 1, wherein at least one of the first service users opts to temporarily evaluate the second service.
5. The method of claim 4, wherein the user's service data is temporarily transferred to the second service, such that the second service provides the second service to the user using the user's user data and service data.
6. The method of claim 5, further comprising an act of finalizing the synchronized service changes in the user data.
7. The method of claim 1, further comprising an act of pre-calculating each step that is to be taken to upgrade the user from the first service to the second service.
8. The method of claim 7, wherein the pre-calculated steps are combined to form a workflow.
9. The method of claim 8, wherein the performing the pre-calculated steps of the workflow ensures data consistency between the user data and the service data of the first service and the user data and the service data of the second service.
10. The method of claim 1, further comprising an act of batching a plurality of data migrations from the first service to the second service.
11. The method of claim 1, wherein the first and second services each include licenses dictating usage policies that are to be followed when using the first and second services.
12. The method of claim 11, wherein the licenses are reconciled upon performing the synchronization.
13. The method of claim 1, wherein the second service is a multi-partition, multi-tenant service.
14. The method of claim 1, wherein a scheduler determines the optimal time to transfer the service data and perform the synchronization and schedules the service data transfer and synchronization for the determined optimal time.
15. A computer program product for implementing a method for temporarily transitioning a user to a different service for evaluation, the computer program product comprising one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform the method, the method comprising:
an act of transferring a user's user data from a first service to a second service before receiving an indication that the user intends to evaluate the second service;
an act of receiving an indication that the user intends to evaluate the second service;
an act of temporarily transferring service data corresponding to the first service to the second service, such that the second service operates using the user's user data and service data from the first service, wherein the user data and service data are updated during operation;
an act of determining that the user's evaluation period has ended; and
an act of transferring the updated user data and service data from the second service to the first service, such that the first service operates using the updated user data and service data.
16. The computer program product of claim 15, wherein a group of users is transitioned to the second service for evaluation.
17. The computer program product of claim 16, further comprising grouping at least a portion of user data to transfer through one or more different channels in parallel.
18. The computer program product of claim 16, wherein the group of users are batched together for transfer from the first service to the second service, such that service data for the group of users is transferred together.
19. The computer program product of claim 16, wherein one or more new services are added to transfer data.
20. A computer system comprising the following:
one or more processors;
system memory;
one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method for efficiently migrating data from one version of a service to another version, the method comprising the following:
an act of pre-transferring at least a portion of user data from a first service to a second, different service before an indication is received that the user is to be transitioned from the first service to the second service, wherein the user data includes identification information identifying one or more users of the first service;
an act of monitoring a user upgrade status for at least one of the first service users;
an act of receiving an indication that one or more of the first service users are to be transitioned to the second service;
an act of pre-calculating each step that is to be taken to upgrade the user from the first service to the second service, wherein the pre-calculated steps are combined to form a workflow, the workflow being configured to ensure data consistency between the user data and the service data of the first service and the user data and the service data of the second service;
an act of transferring at least a portion of service data used by the first service to the second service; and
an act of synchronizing any changes in the user data that occurred between the user data pre-transfer and the service data transfer, such that the second service is provided using the transferred service data and the synchronized user data.
US12/847,485 2010-07-30 2010-07-30 Data migration for service upgrades Active 2031-01-23 US10417200B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/847,485 US10417200B2 (en) 2010-07-30 2010-07-30 Data migration for service upgrades
CN201110221876.5A CN102411511B (en) 2010-07-30 2011-07-29 Data migration for service upgrades

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/847,485 US10417200B2 (en) 2010-07-30 2010-07-30 Data migration for service upgrades

Publications (2)

Publication Number Publication Date
US20120030167A1 true US20120030167A1 (en) 2012-02-02
US10417200B2 US10417200B2 (en) 2019-09-17

Family

ID=45527764

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/847,485 Active 2031-01-23 US10417200B2 (en) 2010-07-30 2010-07-30 Data migration for service upgrades

Country Status (2)

Country Link
US (1) US10417200B2 (en)
CN (1) CN102411511B (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120321070A1 (en) * 2011-05-25 2012-12-20 Echopass Corporation Systems and methods for managing multi-tenant callback services
US20130297828A1 (en) * 2011-01-18 2013-11-07 Paul J. Broyles, III Flag to Synchronize a Service
US10394768B2 (en) 2017-08-07 2019-08-27 Microsoft Technology Licensing, Llc Selective data migration on schema breaking changes
US10776313B2 (en) 2012-09-28 2020-09-15 Tekla Corporation Converting source objects to target objects
US20220060458A1 (en) * 2020-08-18 2022-02-24 Fujifilm Business Innovation Corp. Information processing apparatus and non-transitory computer readable medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9444891B2 (en) * 2013-07-01 2016-09-13 Emoire Technology Development LLC Data migration in a storage network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714937B1 (en) * 2000-08-11 2004-03-30 Dell Products L.P. System and method for virtual setup and configuration for a build-to-order computer
US20060020636A1 (en) * 2004-07-26 2006-01-26 Akira Murotani Network storage system and handover method between plurality of network storage devices
US20060271925A1 (en) * 2005-05-31 2006-11-30 Horst Schuelein Software upgrades with centralized preparation
US20070061355A1 (en) * 2005-09-13 2007-03-15 International Business Machines Corporation Computer- implemented method, system, and program product for managing data for an information technology (IT) migration
US20080320040A1 (en) * 2007-06-19 2008-12-25 Marina Zhurakhinskaya Methods and systems for use of a virtual persona emulating activities of a person in a social network
US20090037515A1 (en) * 2005-09-28 2009-02-05 Ontela, Inc. System and method for automatic transfer of data from one device to another
US20090265425A1 (en) * 2004-07-12 2009-10-22 Netsuite, Inc. Phased rollout of version upgrades in web-based business information systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100571059B1 (en) * 1997-08-06 2006-04-14 태크욘 인코포레이티드 Distributed Systems and Methods for Prefetching
WO2000014627A1 (en) 1998-09-04 2000-03-16 Fujitsu Limited Method of upgrade control and data processing system
US20040015950A1 (en) 2001-05-10 2004-01-22 International Business Machines Corporation Application service provider upgrades
TWI242725B (en) 2001-06-11 2005-11-01 Oce Tech Bv A method for executing a hot migrate operation through an incremental roll-over process that uses migration plug-in means for conversion during an upgrade transition, and a multiprocessing system and a system arranged for implementing such method
US7080221B1 (en) * 2003-04-23 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a clustered computer system environment
US7313792B2 (en) 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7484206B2 (en) * 2005-01-12 2009-01-27 International Business Machines Corporation Synchronization of password and user data during migration from a first operating system platform to a second operating system platform
JP4693540B2 (en) 2005-08-04 2011-06-01 富士通株式会社 Database reconfiguration device and database reconfiguration program
US20070156849A1 (en) 2005-12-30 2007-07-05 Wolfgang Becker Systems and methods for delivering software upgrades in a provider-tenant environment
KR100779215B1 (en) * 2006-09-29 2007-11-26 한국전자통신연구원 Method and apparatus for automatically migrating user's working data
US9218137B2 (en) * 2008-03-05 2015-12-22 International Business Machines Corporation System and method for providing data migration services
US9003059B2 (en) * 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
JP5247230B2 (en) * 2008-05-14 2013-07-24 キヤノン株式会社 Image forming apparatus, control method therefor, and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714937B1 (en) * 2000-08-11 2004-03-30 Dell Products L.P. System and method for virtual setup and configuration for a build-to-order computer
US20090265425A1 (en) * 2004-07-12 2009-10-22 Netsuite, Inc. Phased rollout of version upgrades in web-based business information systems
US20060020636A1 (en) * 2004-07-26 2006-01-26 Akira Murotani Network storage system and handover method between plurality of network storage devices
US20060271925A1 (en) * 2005-05-31 2006-11-30 Horst Schuelein Software upgrades with centralized preparation
US20070061355A1 (en) * 2005-09-13 2007-03-15 International Business Machines Corporation Computer- implemented method, system, and program product for managing data for an information technology (IT) migration
US20090037515A1 (en) * 2005-09-28 2009-02-05 Ontela, Inc. System and method for automatic transfer of data from one device to another
US20080320040A1 (en) * 2007-06-19 2008-12-25 Marina Zhurakhinskaya Methods and systems for use of a virtual persona emulating activities of a person in a social network

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130297828A1 (en) * 2011-01-18 2013-11-07 Paul J. Broyles, III Flag to Synchronize a Service
US20120321070A1 (en) * 2011-05-25 2012-12-20 Echopass Corporation Systems and methods for managing multi-tenant callback services
US9031223B2 (en) * 2011-05-25 2015-05-12 Echopass Corporation Systems and methods for managing multi-tenant callback services
US9602668B2 (en) 2011-05-25 2017-03-21 Echopass Corporation Systems and methods for managing multi-tenant callback services
US9742918B2 (en) 2011-05-25 2017-08-22 Echopass Corporation Systems and methods for managing multi-tenant callback services
US10129404B2 (en) 2011-05-25 2018-11-13 Echopass Corpoartion Systems and methods for managing multi-tenant callback services
US10776313B2 (en) 2012-09-28 2020-09-15 Tekla Corporation Converting source objects to target objects
US10394768B2 (en) 2017-08-07 2019-08-27 Microsoft Technology Licensing, Llc Selective data migration on schema breaking changes
US20220060458A1 (en) * 2020-08-18 2022-02-24 Fujifilm Business Innovation Corp. Information processing apparatus and non-transitory computer readable medium
US11671417B2 (en) * 2020-08-18 2023-06-06 Fujifilm Business Innovation Corp. Information processing apparatus and non-transitory computer readable medium

Also Published As

Publication number Publication date
CN102411511B (en) 2015-04-01
US10417200B2 (en) 2019-09-17
CN102411511A (en) 2012-04-11

Similar Documents

Publication Publication Date Title
US10042636B1 (en) End-to end project management platform with artificial intelligence integration
US8023934B2 (en) Synchronizing communications and data between mobile devices and servers
US20190066008A1 (en) Optimization of a workflow employing software services
RU2610288C2 (en) Providing capabilities of configured technological process
US8019863B2 (en) Synchronizing events between mobile devices and servers
US8997054B2 (en) Software application certification service
US10417200B2 (en) Data migration for service upgrades
US9032367B2 (en) Providing a demo appliance and migrating the demo appliance to a production appliance
US20110119680A1 (en) Policy-driven schema and system for managing data system pipelines in multi-tenant model
US20140278641A1 (en) Systems and methods for incident queue assignment and prioritization
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
CA3071057A1 (en) Smart contract regulation
EP3627426A1 (en) Integrated entity view across distributed systems
US8386423B2 (en) Scalable policy-based database synchronization of scopes
US20130067451A1 (en) Application deployment and registration in a multi-user system
US10055393B2 (en) Distributed version control of orchestration templates
US9038054B1 (en) System and method for automated product version rollback
US20160170734A1 (en) Revision Safe Upgrade in a Hybrid Cloud Landscape
AU2019203190A1 (en) Digital project management office
CN112035396B (en) Processor-implemented method, system, and storage medium for provisioning a set of solutions
US9442746B2 (en) Common system services for managing configuration and other runtime settings of applications
US20160125015A1 (en) Database data distribution management
US8930499B2 (en) Data replication between software versions
US11650858B2 (en) Maintaining stream processing resource type versions in stream processing
US20240061668A1 (en) Automatic upgrade of on-premise software

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:APPIAH, MADAN;SHARMA, NITIN;DAVE, LOKESH M.;SIGNING DATES FROM 20100727 TO 20100730;REEL/FRAME:024789/0168

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

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4