СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ПЛАНИРОВАНИЯ РАБОТ В ЭЛЕКТРОННОЙ ЗАПИСНОЙ КНИЖКЕ
SHARED JOB SCHEDULING IN ELECTRONIC NOTEBOOK

УРОВЕНЬ ТЕХНИКИ
[0001] Электронные виртуальные записные книжки могут использоваться совместно, так что несколько пользователей могут одновременно открывать и редактировать. Существуют признаки совместно используемых записных книжек, которые могут извлечь выгоду из периодического запуска задач. Эти задачи, или работы, обычно нуждаются только в однократном запуске и только одним клиентом или машиной с открытой совместно используемой записной книжкой. В некоторых случаях, имея более чем одного человека или экземпляра, попытка выполнить ту же самую задачу может привести к непредсказуемым результатам или к потенциально поврежденным данным.
[0002] Примером признака, который использует запуск периодической работы, является HTML представление записной книжки. Для пользователей, которые не имеют установленного клиента записной книжки, но осуществляют доступ к записной книжке посредством веб-браузера, эти пользователи могут захотеть HTML представление содержимого записной книжки только в режиме чтения. Для HTML представления, чтобы иметь какое-либо значение, представление должно периодически обновляться и часто, если существуют изменения, но только одним клиентом с открытой программой записной книжки. Кроме того, решение о том, какой пользователь, запустивший программу записной книжки, будет выполнять работу, должно быть автоматическим и выполняться без пользовательского вмешательства или ввода.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Нижеследующее представляет упрощенную сущность изобретения для того, чтобы обеспечить базовое понимание некоторых описанных в настоящем документе новаторских вариантов осуществления. Эта сущность изобретения не является обширным обзором и не предназначена для идентификации ключевых/критических элементов или для описания сущности этого. Ее фундаментальным назначением является представление нескольких концептов в упрощенной форме в качестве прелюдии к более детальному описанию, которое представлено позже.
[0004] Раскрытая архитектура является методикой, где задача или работа могут быть опубликованы в совместно используемой записной книжке и синхронизация выполняется только одним экземпляром клиента записной книжки, тем самым устраняя необходимость пользовательского вмешательства и гарантируя, что только один экземпляр клиента записной книжки выполняет задачу.
[0005] Архитектура может содержать компонент отслеживания работы, связанный с совместно используемой электронной записной книжкой, для создания и обслуживания информации отслеживания обработанных работ в зависимости от информации совместно используемой записной книжки и компонент планирования для синхронизации новой работы посредством экземпляра клиента в зависимости от информации совместно используемой записной книжки, основанной на информации отслеживания. Экземпляр клиента может быть одним из нескольких экземпляров клиента, которые могут или взаимодействуют с совместно используемой электронной записной книжкой.
[0006] Информация отслеживания может быть файлом, хранящимся на корневом уровне совокупности иерархических данных, где совокупность иерархических данных представляет собой электронную записную книжку. Файл содержит свойства, относящиеся к работе, которая была обработана. Свойства обновляются по мере обработки новых работ. Планирование работ содержит обновления целого файла и/или инкрементальные обновления для информации совместно используемой записной книжки.
[0007] Архитектура может быть применена к любому механизму хранения, который поддерживает электронные записные книжки, и также масштабируется на любое число пользователей. Не требуется пользовательского взаимодействия, и обработка происходит в фоновом режиме.
[0008] Для достижения вышеуказанных и связанных целей конкретные иллюстративные аспекты описаны в настоящем документе в связи с нижеследующим описанием и прилагаемыми чертежами. Эти аспекты указывают на различные пути, в которых раскрытые в настоящем документе принципы могут быть применены на практике, и все аспекты и их эквиваленты предназначены находиться в границах заявленного объекта изобретения. Другие преимущества и новаторские признаки станут очевидны из нижеследующего подробного описания, когда рассмотрены совместно с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] На фиг. 1 проиллюстрирована реализованная на основе компьютера система планирования работ в соответствии с раскрытой архитектурой.
[0010] На фиг. 2 проиллюстрирован альтернативный вариант осуществления системы планирования работ.
[0011] На фиг. 3 проиллюстрировано визуальное описание примера архитектуры совместно используемой виртуальной электронной записной книжки для планирования работ.
[0012] На фиг. 4 проиллюстрирована система планирования работ записной книжки с целым файлом в соответствии с одним вариантом осуществления раскрытой архитектуры.
[0013] На фиг. 5 проиллюстрирована система планирования работ электронной записной книжки на основе ячеек в соответствии с одним вариантом осуществления раскрытой архитектуры.
[0014] На фиг. 6 проиллюстрированы способы планирования работ.
[0015] На фиг. 7 проиллюстрированы дополнительные аспекты способа с фиг. 6.
[0016] На фиг. 8 проиллюстрирована диаграмма состояний, которая представляет собой планирование и исполнение работ для работ с целым файлом.
[0017] На фиг. 9 проиллюстрирована диаграмма состояний, которая представляет собой планирование и исполнение работ для работ с редакцией.
[0018] На фиг. 10 проиллюстрирована структурная схема вычислительной системы, способной исполнять работы для электронных записных книжек в соответствии с раскрытой архитектурой.
[0019] На фиг. 11 проиллюстрирована схематичная структурная схема вычислительного окружения для планирования и синхронизации виртуальной электронной записной книжки.
ПОДРОБНОЕ ОПИСАНИЕ
[0020] Раскрытая архитектура позволяет множеству клиентов записной книжки запускать запланированные работы в зависимости от совместной электронной записной книжкой без прямой связи или координации между клиентами. Записываемый файл (также указанный как информация отслеживания) находится в связи с совместно используемой записной книжкой, и любой клиент записной книжки может поставить гарантированную элементарную блокировку на файл во время синхронизации с записной книжкой. Файл может сохранять свойства в записную книжку в корне и использовать для синхронизации работ экземпляров клиента. Свойства могут содержать время (например, UTC - универсальное глобальное время) последнего запуска этой работы и другие свойства, которые могут потребоваться.
[0021] Теперь сделана ссылка на чертежи, где подобные номера позиций используются для указания везде на подобные элементы. В следующем описании для целей объяснения многочисленные специфические детали излагаются для того, чтобы обеспечить полное понимание этого. Однако может быть очевидным, что новаторские варианты осуществления могут быть применены на практике без этих специфичных деталей. В иных случаях хорошо известные конструкции и устройства показаны в форме блок-схем для того, чтобы облегчить описание этого. Замысел состоит в том, чтобы покрыть все модификации, эквиваленты и альтернативы, укладывающиеся в суть и границы заявленного объекта изобретения.
[0022] На фиг. 1 проиллюстрирована реализованная на основе компьютера система 100 планирования работ в соответствии с раскрытой архитектурой. Система 100 содержит компонент 102 отслеживания работы, связанный с совместно используемой электронной записной книжкой 104 для создания и обслуживания информации 106 отслеживания работ 108, обработанных в зависимости от информации 110 совместно используемой записной книжки. Система 100 может также содержать компонент 112 планирования для синхронизации новой работы 114 экземпляром 116 клиента в зависимости от информации 110 совместно используемой записной книжки на основе информации 106 отслеживания. Экземпляр 116 клиента может быть одним из нескольких экземпляров 118 клиента, которые могут или взаимодействуют с совместно используемой электронной записной книжкой.
[0023] Информация 106 отслеживания может храниться в файле на корневом уровне совокупности иерархических данных, где совокупность иерархических данных представляет собой записную книжку. Файл содержит свойства, относящиеся к работе, которая была обработана. Свойства обновляются по мере обработки новых работ. Экземпляр 116 клиента получает элементарную блокировку информации 110 совместно используемой записной книжки, когда компонент 112 планирования синхронизирует новую работу 114 из экземпляра 116 клиента с информацией 110 совместно используемой записной книжки. Новая работа может быть работой с целым файлом, которая обрабатывает целый файл записной книжки, или новая работа является инкрементальной работой, такой что только часть данных файла обрабатывается для синхронизации.
[0024] Электронная записная книжка может быть описана как набор файлов и директорий подобно файлам и директориям в файловой системе. В качестве механизма целого файла записные книжки хранятся в виде целых файлов. Одиночный раздел записной книжки соотносится с одиночным файлом, и к этому файлу осуществляется доступ как к целому файлу каждый раз, когда вносится изменение, независимо от размера изменения. Записная книжка в виде целого файла соотносит разделы записной книжки с файлами и папки записной книжки с директориями. Корневая директория является высшей в записной книжке. Иллюстративное визуальное описание представления в электронном виде приведено в настоящем документе ниже, как и то, как набор файлов и директорий записной книжки перенести в файловую систему.
[0025] Обрабатывается элементарная блокировка файла, в которой был получен доступ в целому файлу записной книжки, за одиночную операцию, которая не может быть прервана. Как только получена блокировка целого файла, экземпляр клиента записной книжки гарантированно имеет эксклюзивный доступ к целому файлу - всем другим экземплярам клиента доступ запрещен, пока другой клиент имеет блокировку.
[0026] На фиг. 2 проиллюстрирован альтернативный вариант осуществления системы 200 планирования работ. Система 200 обеспечивает инкрементальную синхронизацию данных (работ) клиента записной книжки посредством реализации компонента 202 инкрементального обновления. Затем работы 108 могут состоять только в изменениях от одного обновления до другого (или дельта изменениях), а не в обновлении всего файла, как описано в настоящем документе.
[0027] Система 200 может также содержать компонент 102 отслеживания работы, связанный с совместно используемой электронной записной книжкой 104 для создания и обслуживания информации 106 отслеживания работ 108 (теперь инкрементальные обновления), обработанных в зависимости от информации 110 совместно используемой записной книжки. Система 200 также содержит компонент 112 планирования для синхронизации новой работы 114 (теперь нового инкрементального обновления) экземпляром 116 клиента в зависимости от информации 110 совместно используемой записной книжки на основе информации 106 отслеживания. Экземпляр 116 клиента может быть одним из нескольких экземпляров 118 клиента, которые могут или взаимодействуют с совместно используемой электронной записной книжкой.
[0028] Как и раньше, информация 106 отслеживания может храниться в файле на корневом уровне совокупности иерархических данных, где совокупность иерархических данных представляет собой записную книжку 104. Информация 106 отслеживания в инкрементальном варианте осуществления содержит свойства, относящиеся к работам, которые были обработаны. Свойства информации 106 отслеживания обновляются по мере обработки новых работ.
[0029] Работами являются инкрементальные обновления (также упоминаемые как редакции) файла на поддерживающем инкрементальные обновления сервере. Например, если в текстовом документе изменяется одна буква и сохраняется на сервере совместной работы, потребуется загрузить весь текстовый документ в виде целого файла. В отличие от этого поддерживающий инкрементальные обновления сервер допускает только малый пакет данных, описывающий внесенное(ые) изменение(я). Клиенты не используют элементарную блокировку файла, описанную в реализации целого файла.
[0030] Редакцию используют для описания пакета изменений, который отправляется вместо целого файла, когда в документ внесены малые изменения. Все редакции ячейки, когда сгруппированы вместе, составляют страницу или раздел. Ячейка является частью документа, для которого целесообразно быть самому по себе. Например, самый малый блок, который является ячейкой, может быть страницей в отличие от записной книжки в виде целого файла, в которой самый малый блок является разделом (который является файлом).
[0031] Иначе говоря, система 200 планирования работ содержит компонент 102 отслеживания работы, связанный с совместно используемой электронной записной книжкой 104 для создания и обслуживания информации 106 отслеживания работ, обработанных в зависимости от информации 110 совместно используемой записной книжки. Информация отслеживания хранится на корневом уровне совокупности иерархических данных, который представляет собой записную книжку 104, и информация отслеживания 106 содержит свойства, относящиеся к работе, которая была обработана. Система 200 также содержит компонент 112 планирования для синхронизации новой работы 114 из экземпляра 116 клиента с информацией 110 совместно используемой записной книжки, основываясь на информации 106 отслеживания, информация 106 отслеживания содержит информацию о времени последнего запуска новой работы 114.
[0032] Новая работа 114 может быть работой с целым файлом, и экземпляр 116 клиента получает блокировку файла на информацию 110 совместно используемой записной книжки, когда компонент 112 планирования синхронизирует работу с целым файлом с информацией 110 совместно используемой записной книжки. Компонент 112 планирования добавляет случайное количество дополнительного времени к новой работе 114 для снижения попыток одновременного исполнения работы экземплярами клиента.
[0033] Система 200 может дополнительно содержать компонент 202 инкрементального обновления для приема новой работы 114 в качестве инкрементального обновления к информации 110 совместно используемой записной книжки. Новая работа является пакетом изменений, относящихся только к измененным данным.
[0034] На фиг. 3 проиллюстрировано визуальное описание 300 примера архитектуры совместно используемой виртуальной электронной записной книжки для планирования работ. Электронная записная книжка содержит набор файлов и директорий, прямо как файлы и директории в файловой системе. Записные книжки в виде целого файла преобразовывают разделы записной книжки в файлы и папки записной книжки в директории. Корневая директория является высшей в записной книжке. Визуальное описание 300 показывает один пример представления 302 пользовательского интерфейса записной книжки и как представление 302 переносится в файлы и папки в файловой системе 304 ниже. Представление 302 показывает записные книжки, которые содержат рабочую записную книжку, которая содержит заметки собрания, проект А, проект В, исследование и папку. Папка раскрывается для содержания файлов записной книжки, названных путешествие, планирование и прочее.
[0035] Только для цели описания информация отслеживания помещена на корневой уровень как файл метки работы в списке системных файлов. Раскрытая архитектура помещает файл на корневой уровень записной книжки, которая хранит свойства. Файл метки работы используется для синхронизации работ и отслеживания с помощью свойств, времени (например, UTC) последнего запуска этой работы и любых других свойств, которые могут потребоваться.
[0036] Для реализации в виде целого файла экземпляр клиента помещает непрерывную элементарную блокировку файла на файл метки работы, когда происходит синхронизация. Однажды получив, экземпляр клиента гарантированно имеет эксклюзивный доступ.
[0037] Раскрытая архитектура предоставляет нескольким клиентам записной книжки возможность запускать запланированные работы в зависимости от совместно используемой записной книжки без прямой коммуникации или координации между клиентами.
[0038] На фиг. 4 проиллюстрирована система 400 планирования работ записной книжки в виде целого файла в соответствии с одним вариантом осуществления раскрытой архитектуры. Система 400 содержит экземпляр 116 клиента записной книжки, работающего посредством операционной системы 402, базирующейся на рабочей станции, для взаимодействия с совместно используемой записной книжкой 104.
[0039] Совместно используемая записная книжка 104 представлена как содержащая файлы 404 двух разделов, несмотря на то что могут использоваться другие файлы и папки. Дополнительно, файл 406 информации отслеживания (обозначенный файл метки работы) может создаваться, храниться и обслуживаться на корневом уровне файлов 404 совместно используемой записной книжки. Как проиллюстрировано, совместно используемая записная книжка 104 хранится и обслуживается на файловом сервере 408, который может быть, например, любым LDAP (облегченный протокол доступа к каталогу) файловым сервером.
[0040] На фиг. 5 проиллюстрирована система 500 планирования работ электронной записной книжки на основе ячеек в соответствии с одним вариантом осуществления раскрытой архитектуры. Используемая система 500 содержит экземпляр 116 клиента записной книжки, работающего посредством компонента 202 инкрементального обновления с операционной системой 402, базирующейся на рабочей станции, для взаимодействия с совместно используемой записной книжкой 104 на файловом сервере 408.
[0041] Здесь совместно используемая записная книжка 104 представлена как содержащая ячейки 502 двух разделов, несмотря на то что могут использоваться другие ячейки. Дополнительно, ячейка 504 информации отслеживания (обозначенная как ячейка метки работы) может создаваться, храниться и обслуживаться на корневом уровне ячеек 502 совместно используемой записной книжки. Как проиллюстрировано, совместно используемая записная книжка 104 может храниться и обслуживаться на файловом сервере 408, который может быть, например, любым LDAP (облегченный протокол доступа к каталогу) файловым сервером.
[0042] Содержащееся в настоящем документе является набором граф-схем, представляющим образцовые методологии для выполнения новаторских аспектов раскрытой архитектуры. Тогда как для целей простоты объяснения одна или более показанных в настоящем документе методологий, например, в виде граф-схем или блок-схем показаны и описаны как последовательность действий, это сделано для понимания и оценки того, что методологии не ограничены порядком действий, как могут некоторые действия, в соответствии с этим происходят в разном порядке и/или одновременно с другими действиями из тех, которые показаны и описаны в настоящем документе. Например, тот, кто является профессионалом в данной области техники, поймет и оценит, что методология может быть альтернативно представлена как серии взаимосвязанных состояний или событий так, как показано на диаграмме состояний. При всем этом не все проиллюстрированные в методологии действия требуются для новаторской реализации.
[0043] На фиг. 6 проиллюстрированы способы планирования работ. На этапе 600 создается и обслуживается информация отслеживания работ, обработанных в зависимости от информации совместно используемой записной книжки. На этапе 602 работа планируется для синхронизации с информацией совместно используемой записной книжки. На этапе 604 запланированная работа синхронизируется с информацией совместно используемой записной книжки на основе информации отслеживания.
[0044] На фиг. 7 проиллюстрированы дополнительные аспекты способа с фиг. 6. На этапе 700 информация отслеживания сохраняется в виде данных на корневом уровне информации совместно используемой записной книжки файлового сервера. На этапе 702 работа с целым файлом планируется для синхронизации целого файла с информацией совместно используемой записной книжки. На этапе 704 работа с редакцией планируется для синхронизации частичных обновлений с информацией совместно используемой записной книжки. На этапе 706 подтверждается редакция установки блокировки на информацию отслеживания, что зависит от предыдущей редакции. На этапе 708 до исполнения работы происходит ожидание в течение заранее заданного предельного срока. На этапе 710 осуществляется доступ к информации отслеживания для получения информации о времени последнего запуска работы.
[0045] На фиг. 8 проиллюстрирована диаграмма 800 состояний, которая представляет собой планирование и исполнение работ для работ с целым файлом. На этапе 802 считывается информация отслеживания в виде файла метки работы для обработки работы. Файл считывается из расположения серверного источника, и получается время последней исполненной работы, если до этого существовали какие-либо обработанные работы. На этапе 804 добавляется случайное количество дополнительного времени к планированию работы. Последние исполненные работы запоминаются (или используется значение по умолчанию), и добавляется случайное количество дополнительного времени. Это предназначено для снижения или предотвращения попыток исполнения клиентами работ в одно и то же время. На этапе 806 происходит вход в фоновое состояние ожидания, ожидающее превышения любым временем работы заранее заданного предела. Выполняется обратный отсчет, который в итоге совпадает со временем обработки работы. Это позволяет работам запускаться в разное время или с разной частотой (например, одна работа раз в час и другая работа раз в день).
[0046] Если время для работы закончилось, процесс переходит на следующий этап 808, где блокировка файла ставится на файл метки работы в корне записной книжки. Если установка блокировки неудачна, процесс возвращается на этап 802. Если установка блокировки удачна, из сервера извлекается файл метки работы. Это потому, что другая работа получила блокировку и получена новая информация отслеживания. На этапе 810 время последнего запуска работы получается из файла метки работы, чтобы гарантировать, что работа не была запущена, когда ставилась блокировка. Если с момента последнего запуска работы прошло недостаточно времени, блокировка снимается и процесс возвращается на этап 802.
[0047] Если работа не была запущена, процесс переходит с этапа 810 на этап 812 для исполнения работы. Если исполнение работы успешно, процесс переходит на этап 814 для обновления файла метки работы. Если исполнение работы неудачно, процесс переходит с этапа 812 на этап 816 для отмены работы. В любом случае удачного или неудачного исполнения работы процесс переходит на этап 818, чтобы снять блокировку с файла метки работы. Затем процесс переходит с этапа 818 обратно на этап 804, начинается заново и добавляет случайное количество дополнительного времени.
[0048] На фиг. 9 проиллюстрирована диаграмма 900 состояний, которая представляет собой планирование и исполнение работ для работ с редакцией. На этапе 902 все редакции ячеек меток работ запрашиваются из совместно используемой записной книжки файлового сервера. В этих редакциях будет время последней работы и информация о том, что имеет ли какой-либо клиент текущую блокировку ячейки. Файл считывается из расположения серверного источника и получается время последней исполненной работы, если до этого существовали какие-либо обработанные работы. На этапе 904 добавляется случайное количество дополнительного времени к планированию работы. Последние исполненные работы запоминаются (или используется значение по умолчанию) и добавляется случайное количество дополнительного времени. Это предназначено для предотвращения попыток исполнения клиентами работ в одно и то же время. На этапе 906 происходит вход в фоновое состояние ожидания, ожидающее превышения любым временем работы заранее заданного предела. Выполняется обратный отсчет, который в итоге совпадает со временем обработки работы. Это позволяет работам запускаться в разное время или с разной частотой (например, одна работа раз в час и другая работа раз в день).
[0049] Если время для работы закончилось, процесс переходит на следующий этап 908 для подтверждения редакции установки блокировки, которая зависит от предыдущей редакции. Это гарантирует, что если самая последняя редакция в ячейки изменена (что обычно означает, что другой клиент установил блокировку), эта текущая установка блокировки будет неудачной. Если установка блокировки неудачна, процесс возвращается на этап 902. Если установка блокировки удачна, процесс переходит с этапа 908 на этап 910, где копия всех редакций ячеек получается из сервера. На этапе 910 время последнего запуска работы получается из ячейки метки работы, чтобы гарантировать, что работа не была запущена, когда ставилась блокировка. Если с момента последнего запуска работы прошло недостаточно времени, блокировка снимается и процесс возвращается с этапа 910 на этап 902.
[0050] Если пришло время для исполнения работы, процесс переходит с этапа 910 на этап 912 для исполнения работы. Если исполнение работы успешно, процесс переходит на этап 914 для обновления свойств ячейки метки работы. Время запуска обновления обновляется в ячейке метки работы за счет подтверждения новой редакции для этого свойства. Если исполнение работы неудачно, процесс переходит с этапа 912 на этап 916 для отмены работы. В любом случае удачного или неудачного исполнения работы процесс переходит на этап 918, чтобы снять блокировку с ячейки метки работы за счет подтверждения редакции снятия блокировки. Затем процесс переходит с этапа 918 обратно на этап 904, начинается заново и добавляет дополнительное время.
[0051] Тогда как конкретные варианты отображения информации пользователям показаны и описаны с учетом конкретных фигур в качестве снимков экрана, те, кто являются профессионалами в данной области техники, признают, что могут использоваться другие различные альтернативы. Термины ″экран″, ″снимок экрана″, ″веб-страница″, ″документ″ и ″страница″ обычно используются взаимозаменяемо в настоящем документе. Страницы или экраны хранятся и/или передаются в качестве описаний дисплея как графические интерфейсы пользователя или другими способами изображения информации на экране (либо персонального компьютера, КПК, мобильного телефона или другого подходящего устройства, например), где раскладка и информация или контент для отображения на странице хранится в памяти, базе данных или другом средстве хранения.
[0052] Используемые в этой заявке термины, такие как ″компонент″ и ″система″, предназначены указывать на компьютерную принадлежность аппаратного обеспечения, комбинации аппаратного и программного обеспечения, программного обеспечения или исполняемого программного обеспечения. Например, компонент может быть, но не ограничен этим, процессом, запущенным на процессоре, процессором, накопителем на жестком диске, несколько накопителей (оптический, твердотельный и/или магнитный носитель информации), объектом, исполняемым файлом, потоком исполнения, программой, и/или компьютером. Путем иллюстрации оба - приложение, запущенное на сервере, и сервер - могут быть компонентом. Один или более компонентов могут находиться внутри процесса и/или потока выполнения и компонент может быть локализован на компьютере и/или распределен между двумя или более компьютерами. Слово ″образцовый″ может использоваться в настоящем документе в значении, выполняющем функцию примера, отдельного случая или иллюстрации. Любой аспект или проект, описанный в настоящем документе как ″образцовый″, не обязательно должен трактоваться как предпочтительный или выгодный относительно других аспектов или проектов.
[0053] Ссылаясь теперь на фиг. 10, там проиллюстрирована структурная схема вычислительной системы 1000, способной исполнять работы для электронных записных книжек в соответствии с раскрытой архитектурой. Для того чтобы предоставить дополнительный контекст для различных аспектов этого, фиг. 10 и следующее описание предназначены для предоставления краткого, общего описания подходящей вычислительной системы 1000, в которой могут быть реализованы различные аспекты. Тогда как вышеописанное находится в общем контексте исполняемые компьютером инструкций, которые могут запускаться на одном или более компьютерах, те, кто являются профессионалами в данной области техники, признают, что новаторский вариант осуществления также может быть реализован в комбинации с другими программными модулями и/или как комбинация аппаратного обеспечения и программного обеспечения.
[0054] Вычислительная система 1000 для реализации различных аспектов содержит компьютер 1002, имеющий блок(и) 1004 обработки данных, системную память 1006 и системную шину 1008. Блок(и) 1004 обработки данных могут являться любыми коммерчески доступными процессорами, такими как одиночный процессор, мультипроцессор, одноядерные блоки и многоядерные блоки. При всем этом те, кто являются профессионалами в данной области техники, оценят, что новаторские способы могут быть применены на практике с другими конфигурациями вычислительных систем, в том числе миникомпьютеры, мейнфреймы, равно как и персональные компьютеры (например, настольный, портативный и т.д.), карманные вычислительные устройства, основанная на микропроцессоре или программируемая потребительская электроника и тому подобное, каждое из которых может оперативно соединяться с одним или более связанными устройствами.
[0055] Системная память 1006 может содержать энергозависимую (VOL) память 1010 (например, оперативную память (RAM)) и энергонезависимую память (NON-VOL) 1012 (например, ROM, EPROM, EEPROM и т.д.). Базовая система ввода/вывода (BIOS) может храниться в энергонезависимой памяти 1012 и содержит базовые стандартные программы, которые облегчают передачу данных и сигналов между компонентами внутри компьютера 1002, как, например, во время запуска. Энергозависимая память 1010 может также содержать высокоскоростную RAM, такую как статическая RAM для кэширования данных.
[0056] Системная шина 1008 предоставляет интерфейс для компонентов системы, в том числе, но не ограничиваясь этим, подсистему 1006 памяти для блок(ов) 1004 обработки данных. Системная шина 1008 может быть любой из нескольких типов конструкций шин, которая может дополнительно связать с шиной памяти (с или без контроллера памяти), и периферийной шины (например, PCI, PCIe, AGP, LPC и т.д.), используя любую из многообразия коммерчески доступных архитектур шин.
[0057] Компьютер 1002 дополнительно содержит подсистему(ы) 1014 хранения данных и интерфейс(ы) 1016 хранения данных для сопряжения подсистем(ы) 1014 хранения данных с системной шиной 1008 и другими желаемыми компонентами компьютера. Подсистема(ы) 1014 хранения данных может содержать один или более накопителей на жестком диске (HDD), накопителей на гибких магнитных дисках (FDD) и/или накопителей на оптических дисках (например, дисковод CD-ROM, дисковод DVD), например. Интерфейс(ы) 1016 хранения данных могут содержать такие интерфейсные технологии, как EIDE, ATA, SATA и IEEE 1394, например.
[0058] Одна или более программ или данных могут храниться в подсистеме 1006 памяти, подсистеме 1018 сменной памяти (например, технология форм-фактора флэш-диска) и/или подсистеме(ах) 1014 хранения данных (например, оптической, магнитной, твердотельной), содержащей операционную систему 1020, одно или более прикладных программ 1022, другие программные модули 1024 и программные данные 1026.
[0059] Когда компьютер 1002 является машиной на основе рабочей станции, одна или более прикладных программ 1022, другие программные модули 1024 и программные данные 1026 могут содержать экземпляры 118 клиентов, работы 108 и новые работы 144 с фиг. 1, компонент 202 инкрементального обновления с фиг. 2, представление 302 с фиг. 3, операционную систему 403 с фиг. 4 и один или более этапов, проиллюстрированных в граф-схемах и диаграммах состояний на фиг. 6-9, например.
[0060] Когда компьютер 1002 является машиной на основе сервера, одна или более прикладных программ 1022, другие программные модули 1024 и программные данные 1026 могут содержать компонент 102 отслеживания работы, информацию 106 отслеживания, компонент 112 планирования, работы 108, новые работы 144, совместно используемую электронную записную книжку 104 и информацию 110 совместно используемой записной книжки с фиг. 1, файловую систему 304 с фиг. 3, файловый сервер 408, файлы 404 совместно используемой записной книжки и файл 406 информации отслеживания с фиг. 4, файлы 502 совместно используемой записной книжки и ячейку 504 информации отслеживания с фиг. 5, и один или более этапов, проиллюстрированных в граф-схемах и диаграммах состояний на фиг. 6-9, например.
[0061] В общем, программы содержат стандартные программы, способы, структуры данных, другие программные компоненты и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Вся или части операционной системы 1020, приложения 1022, модули 1024 и/или данные 1026 могут также кэшироваться в память, такую как, например, энергозависимая память 1010. Это сделано для оценки того, что раскрытая архитектура может быть реализована с различными коммерчески доступными операционными системами или комбинациями операционных систем (например, как виртуальные машины).
[0062] Подсистема(ы) 1014 хранения данных и подсистемы (1006 и 1018) памяти служат в качестве машиночитаемых носителей данных для энергозависимого и энергонезависимого хранилища данных, структур данных, исполняемых компьютером инструкций и так далее. Машиночитаемыми носителями данных могут быть любые носители, к которым можно осуществить доступ посредством компьютера 1002 и которые содержат энергозависимые и энергонезависимые носители, сменные и стационарные носители. Для компьютера 1002 накопители предоставляют хранение данных в любом подходящем цифровом формате. Теми, кто является профессионалами в данной области техники, должно быть оценено, что могут использоваться разные типы машиночитаемых носителей данных, таких как zip-дисковод, магнитная пленка, карты флэш-памяти, картриджи и тому подобные, для хранения исполняемых компьютером инструкций для выполнения новаторских способов раскрытой архитектуры.
[0063] Пользователь может взаимодействовать с компьютером 1002, программами и данными, используя внешние устройства 1028 пользовательского ввода, такие как клавиатура и мышь. Другие внешние устройства 1028 пользовательского ввода могут содержать микрофон, ИК (инфракрасный) пульт управления, джойстик, игровой контроллер, систему распознавания на основе камер, перо, сенсорный экран, системы жестов (например, движение глаз, движение головы и т.д.) и/или тому подобное. Пользователь может взаимодействовать с компьютером 1002, программами и данными, используя встроенные устройства 1030 пользовательского ввода, такие как сенсорная панель, микрофон, клавиатура и т.д., где компьютер 1002 является портативным компьютером, например. Эти и другие устройства ввода присоединены к блок(ам) 1004 обработки данных посредством интерфейса(ов) 1032 устройства ввода/вывода (I/O) через системную шину 1008, но могут быть присоединены посредством других интерфейсов, таких как параллельный порт, последовательный порт IEEE 1394, игровой порт, USB порт, ИК интерфейс и т.д. Интерфейс(ы) 1032 устройства ввода/вывода также облегчают использование периферийных устройств 1034 вывода, таких как принтеры, аудиоустройства, камеры и так далее, таких как звуковая карта и/или встроенная способность обработки аудио.
[0064] Один или более графических интерфейсов 1036 (также обычно указанные как графический процессор (GPU)) обеспечивают графические и видеосигналы между компьютером 1002 и внешним(и) дисплеем(ями) 1038 (например, LCD, плазма) и/или встроенным дисплеем 1040 (например, для портативного компьютера). Графический(е) интерфейс(ы) 1036 может(гут) также производиться как часть системной платы компьютера.
[0065] Компьютер 1002 может работать в сетевом окружении (например, IP), используя логические соединения посредством подсистемы проводной/беспроводной связи с одной или более сетями и/или другими компьютерами. Другие компьютеры могут содержать рабочие станции, серверы, роутеры, персональные компьютеры, развлекательные устройства на основе микропроцессоров, одноранговое устройство или другой общий сетевой узел и обычно содержат многие или все описанные элементы, относящиеся к компьютеру 1002. Логические соединения могут содержать возможность установления проводной/беспроводной связи с локальной сетью (LAN), глобальной сетью (WAN), точкой доступа к беспроводной сети и так далее. Сетевые окружения LAN и WAN размещаются в офисах и компаниях и обеспечивают в масштабе предприятия компьютерные сети, такие как интранет, каждая из которых может присоединиться к глобальной сети связи, такой как Интернет.
[0066] При использовании в сетевом окружении компьютер 1002 присоединяется к сети посредством подсистемы 1042 проводной/беспроводной связи (например, адаптер сетевого интерфейса, встроенная приемопередающая подсистема и т.д.) для осуществления связи с проводными/беспроводными сетями, проводными/беспроводными принтерами, проводными/беспроводными устройствами 1044 ввода и так далее. Компьютер 1002 может содержать модем или иметь другие средства для установления связи по сети. В сетевом окружении программы и данные, относящиеся к компьютеру 1002, могут храниться на удаленном устройстве памяти/хранения, как связанным с распределенной системой. Будет оценено, что показанные сетевые соединения являются образцовыми и могут использоваться другие средства установления канала связи между компьютерами.
[0067] Компьютер 1002 способен осуществлять связь с проводными/беспроводными устройствами или объектами, используя радиотехнологии, такие как семейство стандартов IEEE 802.хх, такими как беспроводные устройства, оперативно расположенные в беспроводной связи (например, IEEE 802.11 беспроводной способ модуляции), например, с принтером, сканером, настольным компьютером и/или портативным компьютером, карманным персональным компьютером (PDA), спутником связи, любой частью оборудования или размещением, связанным с обнаруживаемой беспроводным способом меткой (например, киоск, газетный киоск, туалет), и телефоном. Это содержит по меньшей мере Wi-Fi (или беспроводная достоверность) для точек доступа к беспроводной сети, беспроводные технологии WiMax и Bluetooth™. Таким образом, коммуникации могут быть заранее заданными структурами как со стандартной сетью или просто специализированной связью между по меньшей мере двумя устройствами. Wi-Fi сети используют радиотехнологии, называемые IEEE 802.1 lx (a, b, g и т.д.), для обеспечения безопасности, надежности, возможности установления быстрой беспроводной связи. Wi-Fi сеть может быть использована для соединения компьютеров друг с другом, с Интернет и с прободными сетями (которые используют относящуюся к IEEE 802.3 среду и функции).
[0068] Проиллюстрированные аспекты могут также применяться на практике в распределенных вычислительных окружениях, где конкретные задачи выполняются удаленными обрабатывающими устройствами, которые соединены через коммуникационную сеть. В распределенном вычислительном окружении программные модули могут быть расположены в локальном или удаленном хранилище и/или запоминающей системе.
[0069] Ссылаясь теперь на фиг. 11, там проиллюстрирована схематичная структурная схема вычислительного окружения 1100 для планирования и синхронизации виртуальной электронной записной книжки. Окружение 1100 содержит один или более клиентов 1102. Клиент(ы) 1102 может являться аппаратным обеспечением и/или программным обеспечением (например, потоки, процессы, вычислительные устройства). Клиент(ы) 1102 может вмещать cookie-файл(ы) и/или связанную контекстную информацию, например.
[0070] Окружение 1100 также содержит один или более серверов 1104. Сервер(ы) 1104 может также являться аппаратным обеспечением и/или программным обеспечением (например, потоки, процессы, вычислительные устройства). Серверы 1104 могут вмещать потоки для выполнения преобразований за счет использования архитектуры, например. Одна возможная связь между клиентом 1102 и сервером 1104 может быть в виде пакета данных, адаптированного к передаче между двумя или более процессами компьютера. Пакет данных может содержать cookie-файл и/или связанную контекстную информацию, например. Окружение 1100 содержит коммуникационную инфраструктуру 1106 (например, глобальную сеть связи, такую как Интернет), которая может использоваться для обеспечения связи между клиентом(ами) 1102 и сервером(ами) 1104.
[0071] Связь может быть обеспечена посредством проводной (в том числе оптоволокно) и/или беспроводной технологии. Клиент(ы) 1102 оперативно соединены с одним или более хранилищами 1108 клиентских данных, которые могут использоваться для хранения информации локально для клиента(ов) 1102 (например, cookie-файл(ы) и/или связанная контекстная информация). Аналогично сервер(ы) 1104 оперативно соединены с одним или более хранилищами 1110 серверных данных, которые могут использоваться для хранения информации для серверов 1104.
[0072] То, что было описано выше, содержит примеры раскрытой архитектуры. Конечно, невозможно описать каждую мыслимую комбинацию компонентов и/или методологий, но средний специалист в данной области техники может признать, что возможны множество дополнительных комбинаций и перестановок. Следовательно, новаторская архитектура предназначена объять все такие изменения, модификации и вариации, которые укладываются в суть и рамки прилагаемой формулы изобретения. Кроме того, в той степени, в которой термин ″содержит″ используют в подробном описании или в формуле изобретения, предполагают, что охват этого термина схож с таковым термина ″содержащий″, когда интерпретируют ″содержащий″, использованный в качестве переходного слова в пункте формулы изобретения.