Способ управления репликацией файлов в приложениях

Иллюстрации

Показать все

Изобретение относится к системам управления версиями электронного файла. Техническим результатом является обеспечение возможности запрашивания процесса синхронизации файла и управления этим процессом. При осуществлении способа распознают первую и вторую версии электронного файла и инициируют событие синхронизации. Программный интерфейс приложения осуществляет доступ к первой и второй версиям, сравнивает информацию, связанную с каждой из них, генерирует результат и сообщает этот результат первому приложению программного обеспечения. Второе приложение программного обеспечения генерирует пользовательский интерфейс в соответствии с признаком второго приложения программного обеспечения, согласно которому электронный файл связан со вторым приложением программного обеспечения, а пользовательский интерфейс отображается на отображающем устройстве. 2 н. и 18 з.п. ф-лы, 4 ил.

Реферат

Настоящая заявка на патент связана с принадлежащей тому же правообладателю и одновременно рассматриваемой заявкой № АА/ВВВССС на патент США, поданной 27 февраля 2003 г. под названием "Method and System for Managing Multiple File States" («Способ и система для управления множественными состояниями файлов») и имеющей номер MSFT-1586 в реестре патентного поверенного.

Область техники, к которой относится изобретение

Настоящее изобретение посвящено способам управления множественными версиями электронного файла. Более конкретно, настоящее изобретение относится к способам использования функциональных возможностей релевантных приложений для согласования версий файла во время события синхронизации.

Предпосылки создания изобретения

В среде компьютеров, объединенных в сеть, пользователь компьютера обычно участвует в совместной работе по созданию некоторого электронного документа вместе с другим пользователем сети. Такая сеть может быть локальной (вычислительной) сетью (LAN), глобальной (вычислительной) сетью (WAN), сетью Internet и т.п. В процессе такой совместной работы каждый пользователь может создавать и редактировать электронный файл, пользуясь приложением программного обеспечения, таким как прикладное программное обеспечение общего назначения или программное обеспечение, разработанное специально для того типа файла, который является предметом совместной работы, и т.п.

Проведение совместной работы возможно путем поддержания главной версии электронного файла в месте, доступном для всех пользователей, которые будут совместно работать над файлом. В обычной среде компьютеров, объединенных в сеть, могут существовать серверный компьютер и один или более пользовательских компьютеров. Сервер поддерживает каналы связи между пользовательскими компьютерами и доступ к каждому из них, вследствие чего может хранить главную версию файла, являющегося предметом совместной работы пользователей, и управлять этой версией. Участвуя в совместной работе над электронным файлом, пользователь может сначала осуществить доступ к главной версии файла, находящейся на сервере, а затем скопировать этот файл в свой компьютер. Затем пользователь может работать над файлом, изменяя этот файл любым способом, который приложение обеспечивает этому пользователю. Например, если приложение представляет собой программу подготовки и редактирования текстов, программу подготовки и редактирования электронных таблиц, базу данных и/или нечто подобное, это приложение сможет обеспечить средство для решения таких задач, как редактирование, копирование, исключение и/или подобные им задачи. По завершении любых изменений пользователь может сохранить изменения в версию файла, хранящуюся на пользовательском компьютере, если этот пользователь захочет зафиксировать эти изменения в файл. В других системах, таких как система, в которой нет серверного компьютера, главная версия может храниться в пользовательском компьютере.

Чтобы принять участие в совместной работе с другими пользователями через посредство сервера, пользователь, обладающий измененной версией, хранящейся в пользовательском компьютере, должен синхронизировать версию файла, находящуюся в его компьютере, с главной версией файла, находящейся в сервере. Синхронизация множества версий электронного файла в ее простейшей форме гарантирует, что все версии сразу же после синхронизации станут идентичными. Таким образом, пользователь, осуществляющий синхронизацию, гарантирует всем пользователям, принимающим участие в совместной работе, доступ ко вновь измененному файлу. Обычно синхронизация осуществляется синхронизирующей утилитой. Синхронизирующая утилита обычно отделена от приложения и во многих случаях является частью операционной системы компьютера пользователя. Синхронизирующая утилита в типичном случае отделена от приложения, а во многих случаях является частью операционной системы пользовательского компьютера. Обычная синхронизирующая утилита осуществляет синхронизацию в предварительно определенные моменты времени или по запросам операционной системы.

При обычной синхронизации синхронизирующая утилита будет сравнивать пользовательскую версию файла с главной версией файла всякий раз, когда появляется информация о копиях, которую этот объект «в состоянии осмыслить». Как правило, такая информация сводится к дате и/или времени последнего обновления каждой версии. Если дата и/или время оказываются идентичными, то синхронизирующая утилита определяет, что обе версии идентичны и поэтому синхронизированы, так что никакое дополнительное действие не требуется. Однако если имеется различие в дате и/или времени, синхронизирующая утилита предоставляет пользовательский интерфейс пользователю, связанному с компьютером, запускающим событие синхронизации. Пользовательский интерфейс обычно предоставляет пользователю краткое уведомление о наличии различия, дату и/или время этого последнего обновления каждой версии файла, а также запрос команды пользователя по поводу того, какую копию файла пользователь хочет поддерживать. Если пользователь выбирает поддержание пользовательской версии, то синхронизирующая утилита записывает пользовательскую версию поверх главной версии (затирает главную версию пользовательской версией), тем самым делая пользовательскую версию главной версией в сервере. Если пользователь желает поддержать главную версию, то никакое действие не предпринимается или главная версия записывается поверх пользовательской версии (пользовательская версия затирается главной версией). В некоторых интерфейсах пользователя пользователю предоставляется опция отказа от синхронизации, а не выбора версии, становящейся главной версией.

Обычная синхронизация, о которой шла речь выше, имеет серьезные недостатки. Поскольку обычная синхронизирующая утилита имеет ограниченные функциональные возможности применительно к электронному файлу, пользовательский интерфейс, создаваемый обычным объектом, предоставляет пользователю лишь ограниченное количество информации, приглашая пользователя выбрать образ действий. Поэтому такое ограниченное количество информации может сделать пользователя не информированным, вследствие чего он может принять неправильное решение о том, какой образ действий следует предпочесть. Например, первый пользователь может изменить ранее синхронизированную пользовательскую версию файла, после чего обычная синхронизирующая утилита в некоторый момент инициирует событие синхронизации. После уведомления посредством обычного интерфейса пользователя пользователь может заметить, что пользовательская версия обновлена позже, чем главная версия, и поэтому принять решение о записи поверх главной версии. Однако информация, представленная посредством обычного интерфейса пользователя, не уведомляет пользователя о том, осталась ли главная версия неизменной после того, как пользователь начал изменять пользовательскую версию. Это приводит к проблемной ситуации, в которой второму пользователю может потребоваться внесение изменений в другую пользовательскую версию, а затем синхронизировать эту пользовательскую версию перед синхронизацией, проводимой вследствие работы первого пользователя. Версия первого пользователя является более новой, т.е. обновленной позже, но второй пользователь подверг главную версию изменениям, которые не были внесены, когда первый пользователь первоначально копировал файл из сервера. В результате изменения, внесенные вторым пользователем в главную версию, оказываются утраченными сразу же после того, как первый пользователь завершает синхронизацию.

Вышеупомянутая ситуация вызывается присущей утилите, осуществляющей обычную синхронизацию, недостаточностью полного диапазона функциональных возможностей в приложении, релевантном (имеющем отношение) к файлу, вследствие чего эта утилита оказывается неспособной воспользоваться такими функциональными возможностями во время события синхронизации. Следовательно, такая утилита может предоставить пользователю лишь ограниченное количество информации, касающейся различных версий электронного файла и представляющей собой, например, такие рассмотренные выше сведения, как дата и/или время последнего обновления каждой версии файла.

Другой недостаток, вызываемый ограниченными функциональными возможностями утилит, осуществляющих обычную синхронизацию, является недостаток множественных действий, доступных пользователю во время синхронизации. Так, в примере, рассмотренном выше, пользовательский интерфейс предоставляет лишь три опции: обновление (замена) главной копии пользовательской копией, обновление (замена) пользовательской копии главной копией или отказ.

Дополнительный недостаток утилиты, осуществляющей обычную синхронизацию, вытекает из недостатка интеграции такой утилиты с таким приложением. Например, как говорилось выше, утилита, осуществляющая обычную синхронизацию, является частью операционной системы пользовательского или серверного компьютера. Следовательно, процесс синхронизации, как и любой имеющийся пользовательский интерфейс, обычно не учитывает предысторию работы пользователя с приложением. Это может привести к путанице среди пользователей, которые - хотя и могут иметь опыт работы с приложением - не имеют опыта работы с утилитой операционной системы. Кроме того - и в результате недостатка интеграции, - синхронизация может инициироваться синхронизирующей утилитой в момент, не являющийся оптимальным для наступления такого события. Дополнительным недостатком обычных утилит синхронизации является невозможность использования такой утилиты в качестве компонента приложения программного обеспечения. Например, пользуясь обычными способами, разработчик компьютерных программ не сможет создать первое приложение программного обеспечения, в котором используется синхронизирующей утилитой и которое способно использовать второе приложение, подходящее для электронного файла в плане согласования множественных версий этого электронного файла. Следовательно, существует потребность в эффективном средстве использования функциональных возможностей релевантных приложений программного обеспечения для разрешения конфликтов между копиями файла во время синхронизации.

Краткое изложение сущности изобретения

Ввиду вышеизложенного в настоящем изобретении предложен программный интерфейс приложения, обеспечивающий приложению возможность запрашивать процесс синхронизации файла и управлять этим процессом с учетом предыстории работы пользователя с приложением. В изобретении предложен способ управления первой и второй версиями электронного файла. При осуществлении этого способа распознают первую и вторую версии электронного файла и инициируют событие синхронизации с помощью первого приложения программного обеспечения, работающего на первом компьютере. Программный интерфейс приложения осуществляет доступ к первой и второй версиям, сравнивает информацию, связанную с каждой из них, генерирует результат и сообщает этот результат первому приложению программного обеспечения. Второе приложение программного обеспечения генерирует пользовательский интерфейс в соответствии с особенностью второго приложения программного обеспечения, когда электронный файл связан со вторым приложением программного обеспечения, а пользовательский интерфейс отображается на отображающем устройстве.

В изобретении также предусмотрена возможность генерирования опции синхронизации вторым приложением программного обеспечения, а также предоставления этой опции с помощью интерфейса пользователя и отображения интерфейса пользователя на отображающем устройстве. Второе приложение программного обеспечения также может принимать вариант выбора опции и соответственно синхронизировать первую и вторую версии электронного файла. Изобретение также предусматривает, что первое приложение программного обеспечения и второе приложение программного обеспечения могут быть одним и тем же приложением программного обеспечения. Это приложение может обеспечивать предоставление пользователю любого количества информации, касающейся первой и второй версий, а пользователь может вводить любое количество или любой тип вариантов выбора синхронизации. В одном конкретном варианте осуществления пользователь может создать третью версию, содержащую любую часть либо первой либо второй версии или их обе или не содержащую ни одну часть ни первой, ни второй версии, ни их обе. Это приложение может инициировать синхронизацию в любой момент, например, по запросу пользователя. Дополнительные признаки и преимущества изобретения изложены в нижеследующем описании.

Краткое описание чертежей

Предшествующее краткое изложение сущности изобретения, а также нижеследующее подробное описание предпочтительных конкретных вариантов осуществления станут более понятными при изучении их со ссылками на прилагаемые чертежи. В целях иллюстрации изобретения на чертежах приведены возможные конкретные варианты осуществления изобретения, однако изобретение не сводится к описываемым ниже конкретным способам и аппаратуре. В связи с чертежами нужно отметить, что:

на фиг. 1 представлена блок-схема, иллюстрирующая возможную вычислительную среду, в которой можно реализовать аспекты изобретения;

на фиг. 2 представлена функциональная схема, иллюстрирующая пример взаимосвязи между первым компьютером, сетью и вторым компьютером;

на фиг. 3 представлен алгоритм, иллюстрирующий процесс синхронизации в соответствии с одним конкретным вариантом осуществления настоящего изобретения;

на фиг. 4 представлен алгоритм, иллюстрирующий способ инициирования процесса синхронизации в соответствии с одним конкретным вариантом осуществления настоящего изобретения.

Подробное описание иллюстративных конкретных вариантов осуществления изобретения

Обзор

В настоящем изобретении предложены способы интеграции программного интерфейса приложения с приложением программного обеспечения, что обеспечивает этому приложению возможность запрашивать процесс синхронизации файла и управлять этим процессом с учетом предыстории (опыта) работы пользователя с приложением. В изобретении предложен способ управления первой и второй версиями электронного файла. При осуществлении этого способа распознают первую и вторую версии электронного файла и инициируют событие синхронизации для осуществления синхронизации первой версии, находящейся на первом компьютере, со второй версией с помощью первого приложения программного обеспечения, работающего на первом компьютере. Программный интерфейс приложения осуществляет доступ к первой и второй версиям, сравнивает информацию, связанную с каждой из первой и второй версий, и генерирует результат. Результат сравнения сообщается первому приложению программного обеспечения. Обеспечивают генерирование интерфейса пользователя вторым приложением программного обеспечения в соответствии с признаком второго приложения программного обеспечения, по которому электронный файл связан со вторым приложением программного обеспечения, а пользовательский интерфейс отображается на отображающем устройстве.

В изобретении также предусмотрена возможность генерирования опции синхронизации вторым приложением программного обеспечения, а также обеспечивается предоставление этой опции синхронизации с помощью интерфейса пользователя и отображение на отображающем устройстве. Второе приложение программного обеспечения также принимает вариант выбора опции и синхронизирует первую и вторую версии электронного файла в соответствии с этим вариантом выбора опции. Изобретение также предусматривает, что первое приложение программного обеспечения и второе приложение программного обеспечения могут быть одним и тем же приложением программного обеспечения, вследствие чего все этапы могут выполняться с помощью единственного приложения.

Это приложение может обеспечивать предоставление пользователю любого количества информации, касающейся первой и второй версий, а пользователь получает возможность вводить любое количество или любой тип вариантов выбора синхронизации. В одном конкретном варианте осуществления пользователь может создать третью версию, содержащую любую часть либо первой, либо второй версии или их обе или не содержащую ни одну часть ни первой, ни второй версии, ни их обе. Это приложение может инициировать синхронизацию в любой момент, например, по запросу пользователя.

Пример вычислительной среды

На фиг. 1 изображена подходящая вычислительная системная среда 100, в которой можно осуществить изобретение. Вычислительная системная среда 100 представляет собой лишь один пример подходящей вычислительной среды и не предполагает внесение какого-либо ограничения, касающегося объема применения или функциональных возможностей изобретения. Также не следует интерпретировать вычислительную среду 100 как имеющую какую-либо зависимость или подчиняющуюся какому-либо требованию в связи с любым из иллюстрируемых компонентов возможной операционной среды 100 или с любой их совокупностью.

Изобретение работоспособно и со многими другими вычислительными системными средами или конфигурациями общего назначения или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут оказаться подходящими для использования совместно с предлагаемым изобретением, включают в себя, но не в ограничительном смысле, персональные компьютеры, серверные компьютеры, карманные или портативные компьютерные устройства, многопроцессорные системы, системы на основе микропроцессоров, компьютерные приставки к телевизорам, программируемые потребительские электронные приборы, сетевые персональные компьютеры (ПК), миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств и т.п.

Изобретение может быть описано в обобщенном контексте исполняемых компьютером команд, таких, как программные модули, исполняемые компьютером. В общем случае, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые решают конкретные задачи или реализуют конкретные абстрактные типы данных. Изобретение также может быть воплощено в распределенных вычислительных средах, в которых задачи решаются удаленными процессорными устройствами, связанными посредством сети связи или другой среды передачи данных. В распределенной вычислительной среде программные модули и другие данные могут находиться на компьютерных носителях информации, включая запоминающие устройства как локальных, так и удаленных компьютеров.

Обращаясь к фиг. 1, отмечаем, что возможная система для осуществления изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в ограничительном смысле, процессорный блок 120, системную память 130 и системную шину 121, которая связывает различные системные компоненты, включая системную память, с процессорным блоком 120. Системная шина 121 может относиться к любому из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, и в ней может быть использовано множество шинных архитектур (топологий). В качестве примера, не носящего ограничительный характер, можно отметить, что такие архитектуры включают в себя шину стандартной промышленной архитектуры (шину ISA), шину микроканальной архитектуры (шину МСА), шину расширенной стандартной промышленной архитектуры (шину EISA), локальную шину стандарта «Ассоциации по стандартизации в области видеоэлектроники» (шину VESA) и шину взаимного соединения периферийных компонентов (шину PCI) (также известную под названием «шина второго уровня»).

Компьютер 110 в типичном случае включает в себя совокупность считываемых компьютером носителей. Считываемые компьютером носители могут быть любыми имеющимися в продаже носителями, доступ к которым можно получить с помощью компьютера 110, и включают в себя как энергозависимые, так и энергонезависимые носители, как сменные, так и несменяемые носители. В качестве примера, не носящего ограничительный характер, следует отметить, что считываемые компьютером носители информации могут представлять собой компьютерные носители информации и средства компьютерной связи. Компьютерные носители информации включают в себя как энергозависимые, так и энергонезависимые, как сменные или несменяемые носители, реализованные с помощью любого способа или любой технологии запоминания информации, такой, как считываемые компьютером команды, структуры данных, программные модули или иные данные. Считываемые компьютером носители включают в себя, но не в ограничительном смысле, оперативную память (RAM), называемую также памятью с произвольным доступом, постоянную память (ROM), электрически стираемую программируемую постоянную память (EEPROM), флэш-память или память, созданную по иной технологии, постоянную память на компакт-дисках (CD-ROM), память на универсальных цифровых дисках (DVD) или иных оптических дисках, запоминающие устройства на магнитных лентах, магнитных дисках или иных магнитных носителях или любой другой носитель, который можно использовать для запоминания желаемой информации и доступ к которому возможен с помощью компьютера 110. Средства связи обычно воплощают считываемые компьютером команды, структуры данных, программные модули или иные данные в виде модулированного сигнала, такого как несущая волна, или реализуют иной транспортный механизм, и включают в себя любые средства доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более характеристик которого задаются или изменяются с обеспечением возможности кодирования информации в этом сигнале. В качестве примера, не носящего ограничительный характер, следует отметить, что средства связи включают в себя проводные средства такие, как проводная сеть или соединение прямого доступа, и беспроводные средства, такие как акустические, радиочастотные, инфракрасные и иные беспроводные средства. К числу считываемых компьютером носителей относятся также комбинации любых из тех, которые упоминались выше.

Системная память 130 включает в себя компьютерные носители информации в форме энергозависимой и/или энергонезависимой памяти, такие как ROM 131 или RAM 132. В ROM 131, как правило, хранится базовая система 133 ввода-вывода (BIOS), содержащая базовые подпрограммы, способствующие передаче информации между элементами внутри компьютера 110, например, во время запуска. RAM 132 в типичном случае содержит информационные и/или программные модули, к которым возможен немедленный доступ и/или с которыми в данный момент работает процессорный блок 120. В качестве примера, не носящего ограничительный характер, отметим, что на фиг. 1 изображены операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 также может включать в себя другие - сменные и/или несменяемые, энергозависимые и/или энергонезависимые - компьютерные носители информации. Лишь в качестве примера, следует отметить, что на фиг. 1 изображен накопитель 142 на жестких дисках, который осуществляет считывание с несменяемых энергонезависимых магнитных носителей и запись на них, накопитель 151 на магнитных дисках, который осуществляет считывание со сменного энергонезависимого магнитного диска 152 и запись на него, и накопитель 155 на оптических дисках, который осуществляет считывание со сменного энергонезависимого оптического диска 156, такого как CD-ROM или другой оптический носитель, и запись на него. Другие сменные и/или несменяемые, энергозависимые и/или энергонезависимые компьютерные носители информации, которые можно использовать в возможной операционной среде, включают в себя, но не в ограничительном смысле, кассеты с магнитными лентами, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельную оперативную память (RAM), твердотельную постоянную память (ROM) и т.п. Накопитель 141 на жестких дисках в типичном случае подсоединен к системной шине 121 посредством интерфейса несменяемой памяти, такого как интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках в типичном случае подсоединены к системной шине 121 посредством интерфейса сменной памяти, такого как интерфейс 150.

Накопители и связанные с ними компьютерные носители информации, рассмотренные выше и изображенные на фиг. 1, обеспечивают запоминание считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. Например, накопитель 141 на жестких дисках показан на фиг. 1 как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Отметим, что эти компоненты могут быть либо такими же, как операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137, либо другими. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 обозначены здесь разными позициями, чтобы проиллюстрировать, что они, как минимум, представляют собой разные копии. Пользователь может вводить команды и информацию в компьютер 110 посредством устройств ввода, таких как клавиатура 162 и указательное устройство 161, в общем случае именуемое мышью, шаровым указателем (трекболом) или сенсорной панелью. Другие устройства (не показаны) могут включать в себя микрофон, рычажный указатель (джойстик), игровую панель, спутниковую антенну-тарелку, сканер и т.п. Эти и другие устройства ввода часто подсоединяют к процессорному блоку 120 посредством пользовательского интерфейса 160 ввода, который связан с системной шиной, но могут быть подсоединены и посредством других структур интерфейсов и шин, например, посредством параллельного порта, игрового порта или универсальной последовательной шины (USB). К системной шине 121 через такой интерфейс, как видеоинтерфейс 190, также подсоединен монитор 191 или отображающее устройство другого типа. Помимо монитора компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые можно подсоединить с помощью интерфейса 195 периферийных устройств вывода.

Компьютер 110 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым персональным ПК, равноправным (одноранговым) устройством или иным обычным сетевым узлом, и в типичном случае включает в себя многие из элементов, описанных выше в связи с компьютером 110, или все эти элементы, хотя на фиг. 1 изображено лишь одно запоминающее и хранящее устройство 181. Изображенные логические соединения включают в себя локальную (вычислительную) сеть (LAN) 171 и глобальную (вычислительную) сеть (WAN) 173, но могут включать в себя и другие сети. Такие сетевые среды обычно практикуются в жилых домах, офисах, компьютерные сетях предприятий, интерсетях и сети Internet.

При использовании в сетевой среде LAN компьютер 110 подсоединяют к LAN 171 посредством сетевого интерфейса или адаптера 170. При использовании в сетевой среде WAN компьютер 110 в типичном случае включает в себя модем 172 или другие средства для установления связи через WAN 173, такую как Internet. Модем 172, который может быть внутренним или внешним, можно подсоединять к системной шине 121 через пользовательский интерфейс 160 ввода или с помощью другого подходящего механизма. В сетевой среде программные модули, показанные относящимися к компьютеру 110, или их части можно хранить в удаленном запоминающем и хранящем устройстве. В качестве примера, не носящего ограничительный характер, удаленные прикладные программы 185 изображены на фиг. 1 как записанные в запоминающем устройстве 181. Следует понять, что проиллюстрированные сетевые соединения являются лишь возможными, и для установления канала связи между компьютерами можно использовать другие средства.

Примерные распределенные вычислительные структуры или архитектуры

В свете слияния персональных вычислений и Internet уже разработаны и разрабатываются в настоящее время различные распределенные вычислительные структуры. Вследствие этого пользователям, являющимся физическими и юридическими лицами, предоставляется интерфейс прямого доступа, обеспечивающий возможности взаимодействия и работы с web-страницами для приложений и вычислительных устройств, который представляет собой справляющийся с нарастающим объемом вычислительных операций web-браузер или браузер, ориентированный на сеть.

Например, платформа MICROSOFT®'s.NET включает в себя серверы, средства предоставления услуг по созданию блоков, такие как средства хранения данных на основе web-страниц и загружаемое программное обеспечение устройств. Вообще говоря, платформа MICROSOFT®'s.NET обеспечивает: (1) возможность совместной работы всей номенклатуры вычислительных устройств, а также автоматического обновления и синхронизации информации пользователя со всеми этими устройствами; (2) повышенную работоспособность в интерактивном режиме для web-сайтов, гарантируемую расширенным использованием такого языка форматирования web-документов, как расширяемый язык разметки (XML), вместо языка гипертекстовой разметки (HTML); (3) разновидности оперативного обслуживания (услуги), которые реализуют настраиваемый доступ и предоставление продуктов и услуг пользователю из центрального исходного пункта для управления различными приложениями, например, такими, как электронная почта, или программным обеспечением, например, таким, как Office.NET; (4) централизованное хранение данных, которое будет увеличивать эффективность доступа к информации и упрощать его, а также синхронизацию информации между пользователями и устройствами; (5) возможность интеграции различных средств связи, таких как электронная почта, факсы и телефоны; (6) для разработчиков - возможность создавать модули многоразового использования, увеличивая тем самым производительность и уменьшая количество ошибок программирования; а также (7) многие другие особенности межплатформной интеграции.

Хотя возможные конкретные варианты осуществления описаны здесь в связи с программным обеспечением, установленным на вычислительном устройстве, одну или более частей изобретения также можно реализовать посредством операционной системы, программного интерфейса приложения (API) или «промежуточного» объекта между сопроцессором и запрашивающим объектом, так что реализация услуг, их поддержка и доступ к ним возможны через посредство всех языков и услуг, предоставляемых платформой MICROSOFT®'s.NET, а также в других вычислительных структурах.

Примеры вариантов осуществления

Когда сформировано более одной версии электронного файла, в соответствии с изобретением можно конфигурировать программный интерфейс приложения так, чтобы обеспечить управление процессом синхронизации множества версий посредством приложения программного обеспечения, связанного с файлом. В одном конкретном варианте осуществления приложение может инициировать синхронизацию автоматически, в то время как в другом приложение может инициировать синхронизацию на основе данных, вводимых пользователем. В другом конкретном варианте осуществления приложение предоставляет пользователю опции синхронизации, обуславливаемые функциональными возможностями приложения, и позволяет этому пользователю выбирать опции и решать задачи с использованием функциональных возможностей приложения. В еще одном конкретном варианте осуществления первое приложение инициирует синхронизацию, тогда как второе приложение предоставляет опции синхронизации пользователю.

Обращаясь теперь к фиг. 2, следует отметить, что первый компьютер 210 содержит первый процессор 220 в оперативной связи с запоминающим устройством 218. Первый компьютер 210 может быть настольным персональным или портативным компьютером общего назначения, рабочей станцией, специализированным вычислительным устройством и/или подобным средством. Аналогично, первый процессор 220 может быть компьютерным процессором общего назначения, специализированным процессором, сетью процессоров и т.п. С первым компьютером 210 оперативно связано отображающее устройство 230. Отображающее устройство 230 может быть любым средством предоставления опций и т.п. пользователю, например, таким как монитор, динамики и т.п. Такая оперативная связь отображающего устройства 230 с первым компьютером 210 может быть реализована любыми проводными или беспроводными соединительными средствами. Хотя отображающее устройство 230 показано на фиг. 2 как находящееся внутри первого компьютера 210, отображающее устройство 230 может находиться в любом месте, где оно окажется в оперативной связи с первым процессором 220, включая удаленное место и т.п.

Запоминающее устройство 218 может представлять собой накопитель на жестких дисках, CD-ROM, магнитный диск, DVD, RAM и/или аналогичное средство. Подобно отображающему устройству 230, запоминающее устройство 218 может находиться в любом месте, где оно окажется в оперативной связи с первым процессором 220, включая удаленное место и т.п. Оперативные связи в такой ситуации могут быть проводными, беспроводными или их комбинацией. Внутри запоминающего устройства 218 содержится первая версия 212 электронного файла. Такая первая версия 212 может относиться к любому типу электронного файла, например, может быть документом, созданным с помощью программы подготовки и редактирования текстов или программы подготовки и редактирования электронных таблиц, базой данных и/или чем-либо подобным.

Первое приложение 208 и второе приложение 214 могут храниться в запоминающем устройстве 218. Первое приложение 208 и второе приложение 214 могут представлять собой исполняемые компьютером команды любого типа, например, такие как команды программы подготовки и редактирования текстов, электронных таблиц, базы данных, программируемого сценария (например, диалога «человек-машина»), специализированного программного обеспечения и т.п. В рассматриваемых ниже конкретных вариантах осуществления, где присутствуют и первое приложение 208, и второе приложение 214, как описано ниже, только второе приложение 214 должно быть совместимым с электронным файлом. В альтернативном варианте, который также будет рассмотрен ниже, первое приложение 208 и второе приложение 214 могут представлять собой одно и то же приложение. Одно из первого приложения 208 и второго приложения 214 может или они оба могут находиться вне запоминающего устройства 218, поскольку только одно из них должно находиться в оперативной связи с первым компьютером 210.

Программный интерфейс 216 приложения представляет собой исполняемые компьютером команды любого типа, предназначенные для проверки и сравнения двух или более копий электронного файла с целью синхронизации, и может быть автономным программным обеспечением, которое специально разработано для синхронизации двух или более копий электронного документа, объектом программного обеспечения, который работает как компонент другого приложения, интегральным компонентом первого или второго приложения 208, 214 и/или чем-либо подобным. Программный интерфейс 216 приложения может также решать дополнительные задачи, которые могут быть связаны или не связаны с синхронизацией. Первая версия 212, первое приложение 208, второе приложение 214 и программный интерфейс 216 приложения могут храниться в одном и том же запоминающем устройстве или в или на любом количестве разных запоминающих устройств 218.

Второй компьютер 222 содержит второй процессор 224 и запоминающее устройство 228, которое содержит вторую версию 226 электронного файла, упоминавшегося выше в связи с первой версией 212. Аналогично сказанному выше запоминающее устройство 228 может находиться в любом месте, где оно