RU2419849C2 - Mechanism for synchronising set of applications for efficient work and business applications - Google Patents
Mechanism for synchronising set of applications for efficient work and business applications Download PDFInfo
- Publication number
- RU2419849C2 RU2419849C2 RU2008114502/08A RU2008114502A RU2419849C2 RU 2419849 C2 RU2419849 C2 RU 2419849C2 RU 2008114502/08 A RU2008114502/08 A RU 2008114502/08A RU 2008114502 A RU2008114502 A RU 2008114502A RU 2419849 C2 RU2419849 C2 RU 2419849C2
- Authority
- RU
- Russia
- Prior art keywords
- application
- lob
- productive work
- software
- request
- Prior art date
Links
- 230000007246 mechanism Effects 0.000 title description 7
- 230000027455 binding Effects 0.000 claims abstract description 43
- 238000009739 binding Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 23
- 230000001360 synchronised effect Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 18
- 230000009471 action Effects 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000000284 extract Substances 0.000 abstract 1
- 230000003993 interaction Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000003287 optical effect Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000012508 change request Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 208000027571 Body Integrity Identity disease Diseases 0.000 description 3
- 208000034332 Body integrity dysphoria Diseases 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 101000857680 Xenopus laevis Runt-related transcription factor 1 Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
Description
Уровень техникиState of the art
Предусмотрен ряд комплектов программных приложений, доступных пользователям, которые включают в себя приложения для создания календаря событий, сохранения информации контактов, поддержки электронной почты, сохранения информации задач и т.д. Один пример - это Microsoft Outlook®, предлагаемый Microsoft Corporation, Редмонд, Вашингтон. Microsoft Outlook® - это часть комплекта программных приложений Microsoft Office®. Многие пользователи знакомы с такими приложениями комплектов программных приложений и используют их на регулярной основе.A number of software application kits are available for users, which include applications for creating an event calendar, saving contact information, email support, saving task information, etc. One example is Microsoft Outlook® offered by Microsoft Corporation, Redmond, Wash. Microsoft Outlook® is part of the Microsoft Office® software suite. Many users are familiar with such software bundle applications and use them on a regular basis.
Некоторые пользователи комплектов программных приложений для продуктивной работы также используют коммерческие прикладные программы или системы, разработанные для конкретных вариантов бизнес-применения (также упоминаемых в данном документе как бизнес-системы или LOB-системы). Один пример - это системы управления взаимоотношениями с клиентами (CRM), предлагаемые рядом компаний. Большая часть информации, которая управляется посредством LOB-систем, может включать в себя управление контактами, создание календаря событий и задач, помимо прочего.Some users of productive software suites also use commercial applications or systems designed for specific business applications (also referred to as business systems or LOB systems in this document). One example is customer relationship management (CRM) systems offered by a number of companies. Most of the information that is managed through LOB systems can include managing contacts, creating a calendar of events and tasks, among other things.
Во многих случаях комплект программных приложений для продуктивной работы не может обмениваться или синхронизировать свою информацию с LOB-системой автоматически. Например, если пользователь добавляет бизнес-задачу в комплект программных приложений для продуктивной работы пользователя, информация задачи не переносится автоматически в LOB-систему. Вместо этого эта информация обнаруживается пользователем в каждой различной системе. В типичном варианте пользователи должны вводить информацию задачи второй раз в LOB-систему. Некоторые пользователи могут захотеть предоставить возможность сохранения LOB-информации в системах электронной почты и синхронизации с LOB-информацией в системах баз данных.In many cases, a set of software applications for productive work cannot exchange or synchronize their information with the LOB system automatically. For example, if a user adds a business task to a set of software applications for productive user work, task information is not automatically transferred to the LOB system. Instead, this information is detected by the user in each different system. Typically, users need to enter task information a second time into the LOB system. Some users may want to provide the ability to store LOB information in email systems and synchronize with LOB information in database systems.
Сущность изобретенияSUMMARY OF THE INVENTION
В соответствии с различными аспектами раскрытых вариантов осуществления способ синхронизации выполнен с возможностью разрешать синхронизацию между клиентской машиной, которая включает в себя приложение комплекта программных приложений для продуктивной работы, и серверной машиной, которая включает в себя бизнес-приложение (LOB). Приложением комплекта программных приложений для продуктивной работы может быть приложение персональной информационной системы (PIM), такое как Outlook® (предлагается Microsoft Corporation, Редмонд, Вашингтон), или какое-либо другое приложение, такое как Lotus Notes, Star Office и т.д. Примеры приложений комплекта программных приложений для продуктивной работы включают в себя управление электронной почтой, управление назначенными встречами, управление составлением плана/календаря, управление заметками, управление задачами, управление контактами и т.п. Синхронизация может обрабатываться между элементами данных в приложении комплекта программных приложений для продуктивной работы и объектами в LOB-приложении посредством использования представлений XML-данных и сохраненной информации связывания.In accordance with various aspects of the disclosed embodiments, the synchronization method is configured to allow synchronization between a client machine, which includes a software application suite for productive work, and a server machine, which includes a business application (LOB). An application for a software product suite for productive work can be a personal information system (PIM) application, such as Outlook® (offered by Microsoft Corporation, Redmond, Washington), or some other application, such as Lotus Notes, Star Office, etc. Examples of productive application suite software applications include email management, appointment management, scheduling / calendar management, note management, task management, contact management, etc. Synchronization can be processed between data elements in a software application suite for productive work and objects in a LOB application by using representations of XML data and stored binding information.
В одной конкретной реализации информация, которая используется для синхронизации, сохраняется в виде XML-данных. Представление XML-данных может быть сохранено в качестве свойства элемента данных в приложении комплекта программных приложений для продуктивной работы. Представление XML-данных может быть передано в LOB-приложение, которое затем может оперировать собственным разрешением конфликтов и хранением данных для LOB-объектов. Изменение в объекты LOB-приложения затем может предоставляться как XML, который затем может быть форматирован в управляющее сообщение, которое передается в приложение комплекта программных приложений для продуктивной работы. Представления XML-данных предоставляют единообразный интерфейс, который просто управляется посредством каждого соответствующего приложения.In one particular implementation, the information that is used for synchronization is stored as XML data. The representation of XML data can be stored as a property of a data element in a software suite application for productive work. The representation of XML data can be transferred to the LOB application, which can then operate with its own conflict resolution and data storage for LOB objects. The change to LOB application objects can then be provided as XML, which can then be formatted into a control message, which is transmitted to the software suite application for productive work. Representations of XML data provide a consistent interface that is simply managed through each respective application.
В другом аспекте выполняется шифрование информации на основе пользователя. Этот аспект преимущественно может помогать обеспечивать то, что информация, содержащаяся в любом PIM-элементе, которая отправляется получателю электронной почты, не может быть считана этим получателем и, тем самым, не может быть непреднамеренно совместно использована. В связанном аспекте шифрование помогает предотвращать вызывание неожиданного режима работы информацией на стороне получателя. Например, в некоторых традиционных системах информация, содержащаяся в назначениях встреч, легко может быть совместно использована посредством отправки приглашения на встречу. Таким образом, пользователь может совместно использовать информацию, даже не зная об этом. Шифрование информации предотвращает такое проявление непреднамеренного совместного использования информации. Тем не менее, в случае если пользователь имеет несколько устройств, описанное шифрование не предотвращает совместное использование информации на нескольких устройствах пользователя.In another aspect, user-based information encryption is performed. This aspect can advantageously help to ensure that the information contained in any PIM element that is sent to the email recipient cannot be read by this recipient and thus cannot be inadvertently shared. In a related aspect, encryption helps to prevent an unexpected mode of operation of information on the recipient side. For example, in some conventional systems, the information contained in appointment appointments can easily be shared by sending an invitation to a meeting. Thus, the user can share information without even knowing about it. Information encryption prevents this unintentional sharing of information. However, if the user has several devices, the described encryption does not prevent the sharing of information on multiple user devices.
В другом аспекте информация сохраняется в персональном свойстве, уменьшая возможность перезаписи. В некоторых традиционных системах информация может неявно обмениваться с приглашенной стороной в запросе на встречу без ведома запрашивающей стороны. Когда запрашивающая и приглашенная сторона совместно используют информацию посредством отправки информации явно или неявно, есть вероятность того, что информация будет сохранена в одном свойстве. Поскольку поддерживается последняя сохраненная информация, информация от одного из пользователей может быть перезаписана. В одном аспекте настоящей заявки конкретное имя свойства назначается для того, чтобы сохранять дополнительную информацию с тем, чтобы не допускались конфликты.In another aspect, information is stored in a personal property, reducing the possibility of rewriting. In some traditional systems, information may be implicitly exchanged with an invited party in a meeting request without the knowledge of the requester. When the requesting and invited parties share information by sending information explicitly or implicitly, it is likely that the information will be stored in one property. Since the last stored information is supported, information from one of the users can be overwritten. In one aspect of the present application, a specific property name is assigned in order to retain additional information so that conflicts are avoided.
В другом аспекте информация может быть перемещена на более высокий уровень и на более низкий уровень, так что элементы или атрибуты информации (т.е. которые находятся в XML) не могли быть реплицированы (дублированы) в свойства в содержащихся PIM-элементах. Например, в одной реализации стандартный UI Microsoft Outlook® может быть использован для того, чтобы отображать или обрабатывать эти значения и/или значения, которые могут быть совместно использованы с другими пользователями. В одном аспекте настоящей заявки представление XML-данных предоставляется в LOB-приложение с тем, чтобы LOB-элементы могли изменяться только посредством LOB-приложения. В другом аспекте LOB-элемент форматируется в виде XML-данных, которое затем используется для синхронизации с элементами приложений комплекта программных приложений для продуктивной работы. Поскольку XML может быть использован в качестве механизма переноса информации, могут быть реализованы упрощенные пользовательские интерфейсы для приложения комплекта программных приложений для продуктивной работы.In another aspect, information can be moved to a higher level and to a lower level, so that information elements or attributes (that is, which are in XML) could not be replicated (duplicated) to properties in the contained PIM elements. For example, in one implementation, the standard Microsoft Outlook® UI can be used to display or process these values and / or values that can be shared with other users. In one aspect of the present application, the presentation of XML data is provided to the LOB application so that the LOB elements can only be modified by the LOB application. In another aspect, the LOB element is formatted as XML data, which is then used to synchronize the product suite of software applications for productive work. Since XML can be used as a mechanism for transferring information, simplified user interfaces can be implemented for application of a set of software applications for productive work.
В другом аспекте диалоги взаимно синхронизируются между комплектом программных приложений для продуктивной работы и LOB-приложением. Диалоги могут разрабатываться на любом соответствующем языке, таком как, например, расширяемый язык разметки приложений (XAML). Синхронизация между диалогами преимущественно предоставляет возможность нескольким диалогам, показывающим один и тот же элемент, быть открытыми одновременно. Когда пользователь вводит информацию в один диалог, информация автоматически изменяется во всех остальных местах, где она показывается. Например, в реализации Microsoft Outlook®, когда одна информация показывается в диалоге Microsoft Outlook® (Inspector) и на панели задач или панели действий, она должна быть синхронизирована. Этот аспект предоставляет механизмы, которые позволяют нескольким диалогам в Microsoft Outlook® совместно использовать один экземпляр данных (будучи в процессе редактирования).In another aspect, dialogs are mutually synchronized between a suite of software applications for productive work and a LOB application. Dialogs can be developed in any appropriate language, such as, for example, Extensible Application Markup Language (XAML). Synchronization between dialogs predominantly allows several dialogs showing the same element to be open at the same time. When the user enters information in one dialogue, the information automatically changes in all other places where it is displayed. For example, in a Microsoft Outlook® implementation, when one information is displayed in the Microsoft Outlook® dialog (Inspector) and in the taskbar or action bar, it should be synchronized. This aspect provides mechanisms that allow multiple dialogs in Microsoft Outlook® to share a single instance of data (while in the editing process).
В еще одном другом аспекте приложение комплекта программных приложений для продуктивной работы в клиентской машине сконфигурировано так, чтобы отправлять запросы посредством обращения к веб-серверу, чтобы обновлять, удалять или создавать новый объект в LOB-приложении. LOB-приложение извлекает запрос из клиентской машины, при этом запрос может быть предоставлен в виде XML-данных. Серверная машина отправляет запросы посредством управляющих сообщений, которые вложены в электронную почту, чтобы обновлять, удалять или создавать элемент в приложении комплекта программных приложений для продуктивной работы, при этом элемент ассоциативно связан с LOB-объектом. Управляющие сообщения скрыты от пользователя и извлекаются клиентской машиной для оценки, разрешения конфликтов, продвижения на более высокий уровень свойств и привязки между LOB-объектом и элементом приложения комплекта программных приложений для продуктивной работы.In yet another aspect, a software application suite for productive work in a client machine is configured to send requests by accessing a web server to update, delete, or create a new object in a LOB application. The LOB application retrieves the request from the client machine, and the request can be provided as XML data. The server machine sends requests through control messages that are attached to e-mail in order to update, delete, or create an element in the application of the software application suite for productive work, while the element is associated with the LOB object. Control messages are hidden from the user and are retrieved by the client machine to evaluate, resolve conflicts, move to a higher level of properties and link between the LOB object and the application element of the software application suite for productive work.
В дополнительном аспекте приложение может передавать LOB-идентификатор в почтовом сообщении, при этом LOB-идентификатор ассоциативно связан с предшествующей привязкой между элементом комплекта программных приложений для продуктивной работы и LOB-объектом. LOB-идентификатор может быть вложенным в почтовое сообщение в заголовке, ассоциативно связанном с почтовым сообщением. Почтовое сообщение необязательно должно содержать (вложенным или иным образом) сам LOB-объект, поскольку LOB-идентификатор ссылается на LOB-объект. После того как почтовое сообщение принято, дескриптор электронной почты для комплекта программных приложений для продуктивной работы может идентифицировать конкретный элемент комплекта программных приложений для продуктивной работы в тени синхронизации или хранилище данных синхронизации, который обращается к LOB-идентификатору. В одном примере пользователь может осуществлять доступ к элементу комплекта программных приложений для продуктивной работы посредством выбора ссылки (к примеру, URL-ссылки в любом числе форм, например, HTTP, HTTPS, FTP, FTPS, OBA и т.д.) и другой внедренной информации (к примеру, представления XML-данных или другого представления данных), которая ассоциативно связана с LOB-идентификатором в почтовом сообщении. В другом примере панель действий или панель задач может быть активирована для доступа к конкретному элементу комплекта программных приложений для продуктивной работы. Поскольку LOB-идентификатор может быть вложен в ссылку, любое требуемое действие, ассоциативно связанное с элементом комплекта программных приложений для продуктивной работы, может быть осуществлено посредством конфигурирования дескриптора (к примеру, URL-дескриптора) соответствующим образом.In a further aspect, an application may transmit a LOB identifier in a mail message, wherein the LOB identifier is associated with a preceding binding between an element of the software application suite for productive work and the LOB object. The LOB identifier may be embedded in the mail message in the header associated with the mail message. The mail message does not have to contain (nested or otherwise) the LOB object itself, since the LOB identifier refers to the LOB object. After the email message is received, the email descriptor for the productive software suite can identify a particular element of the software suite for productive work in the shadow of synchronization or the synchronization data store that accesses the LOB identifier. In one example, a user can access an element of a software application suite for productive work by selecting a link (for example, URL links in any number of forms, for example, HTTP, HTTPS, FTP, FTPS, OBA, etc.) and another embedded information (for example, a representation of XML data or another representation of data) that is associated with a LOB identifier in an email message. In another example, an action bar or task bar can be activated to access a specific element of a software application suite for productive work. Since the LOB identifier can be embedded in a link, any required action associated with an element of the software application suite for productive work can be carried out by configuring the descriptor (for example, the URL descriptor) accordingly.
Краткое описание чертежейBrief Description of the Drawings
Неограничивающие и неисчерпывающие варианты осуществления описаны со ссылками на следующие чертежи, на которых одинаковые цифры ссылок ссылаются на одинаковые элементы в различных представлениях, если не указано иное.Non-limiting and non-exhaustive embodiments are described with reference to the following drawings, in which like reference numerals refer to like elements in different representations, unless otherwise indicated.
Фиг.1 - это блок-схема, представляющая общее вычислительное окружение, которое может быть использовано для того, чтобы реализовать методики, описанные в данном документе, согласно варианту осуществления.Figure 1 is a block diagram representing a general computing environment that can be used to implement the techniques described herein according to an embodiment.
Фиг.2 иллюстрирует пример системы, в которой клиентское устройство выполнено с возможностью синхронизации с LOB-системой.Figure 2 illustrates an example system in which a client device is configured to synchronize with the LOB system.
Фиг.3 иллюстрирует то, как устанавливается корреляция между привязываемым элементом и LOB-объектом, когда новый связываемый элемент создается посредством LOB-системы.FIG. 3 illustrates how a correlation is established between an anchor element and a LOB object when a new link element is created by the LOB system.
Фиг.4 иллюстрирует то, как устанавливается корреляция между привязываемым элементом и LOB-объектом, когда новый связываемый элемент создается посредством комплекта программных приложений для продуктивной работы.FIG. 4 illustrates how a correlation is established between a bindable element and a LOB object when a new bindable element is created through a suite of software applications for productive work.
Фиг.5 иллюстрирует то, как изменяется корреляция между привязываемым элементом и LOB-объектом, когда связываемый элемент обновляется или удаляется в комплекте программных приложений для продуктивной работы.FIG. 5 illustrates how the correlation between a bindable element and a LOB object changes when a bindable element is updated or deleted in a software application suite for productive work.
Фиг.6 иллюстрирует то, как изменяется корреляция между привязываемым элементом и LOB-объектом, когда связываемый элемент обновляется или удаляется посредством LOB-системы.6 illustrates how the correlation between the linked element and the LOB object changes when the linked element is updated or deleted by the LOB system.
Фиг.7 иллюстрирует примерный поток информации между клиентом и сервером в ходе операции помещения в стек.7 illustrates an example flow of information between a client and a server during a stack operation.
Фиг.8 и 9 иллюстрируют операцию извлечения, которая может быть использована в другой примерной системе.8 and 9 illustrate an extraction operation that may be used in another exemplary system.
Фиг.10 иллюстрирует примерную структуру подсистемы синхронизации для комплекта программных приложений, который используется на клиентской машине.10 illustrates an exemplary structure of a synchronization subsystem for a software application suite that is used on a client machine.
Фиг.11 иллюстрирует еще один поток информации между клиентом и сервером.11 illustrates another flow of information between a client and a server.
Фиг.12 иллюстрирует примерную подсистему синхронизации.12 illustrates an example synchronization subsystem.
Фиг.13 - это блок-схема последовательности операций примерного способа синхронизации.13 is a flowchart of an example synchronization method.
Подробное описание изобретенияDETAILED DESCRIPTION OF THE INVENTION
Различные варианты осуществления подробнее описываются ниже со ссылкой на прилагаемые чертежи, которые составляют их часть и которые иллюстрируют конкретные примерные варианты осуществления для использования на практике различных вариантов осуществления. Тем не менее, другие варианты осуществления могут быть реализованы во многих различных формах и не должны рассматриваться как ограничивающие вариантами осуществления, изложенными в данном документе; наоборот, эти варианты осуществления предоставляются с тем, чтобы данная сущность была всесторонней и полной. Варианты осуществления могут быть использованы на практике как способы, системы или устройства. Соответственно, варианты осуществления могут принимать форму аппаратной реализации, полностью программной реализации или реализации, комбинирующей программные и аппаратные аспекты. Нижеследующее подробное описание, следовательно, не должно рассматриваться в ограничивающем смысле.Various embodiments are described in more detail below with reference to the accompanying drawings, which form part of them and which illustrate specific exemplary embodiments for practical use of various embodiments. However, other embodiments may be implemented in many different forms and should not be construed as limiting to the embodiments set forth herein; on the contrary, these options for implementation are provided so that this entity is comprehensive and complete. Embodiments may be used in practice as methods, systems or devices. Accordingly, embodiments may take the form of a hardware implementation, a fully software implementation, or an implementation combining software and hardware aspects. The following detailed description, therefore, should not be construed in a limiting sense.
Вкратце, способ синхронизации выполнен с возможностью предоставлять синхронизацию между клиентской машиной, которая включает в себя приложение комплекта программных приложений для продуктивной работы, и серверной машиной, которая включает в себя бизнес-приложение (LOB), такое как приложение управления взаимоотношениями с клиентами, или CRM. Клиентская машина отправляет запросы посредством обращения к веб-серверу для того, чтобы обновлять, удалять или создавать новый объект в LOB-приложении. LOB-приложение извлекает запрос, который принимается от клиентской машины, при этом запрос может быть предоставлен в виде XML-данных. Серверная машина отправляет запросы посредством управляющих сообщений, которые внедрены в электронную почту, чтобы обновлять, удалять или создавать элемент в приложении комплекта программных приложений для продуктивной работы, при этом этот элемент ассоциативно связан с LOB-объектом. Управляющие сообщения скрыты от пользователя и извлекаются клиентской машиной для оценки, разрешения конфликтов, продвижения на более высокий уровень свойств и привязки между LOB-объектом и элементом приложения комплекта программных приложений для продуктивной работы.In short, the synchronization method is configured to provide synchronization between a client machine, which includes a software application suite for productive work, and a server machine, which includes a business application (LOB), such as a customer relationship management application, or CRM . The client machine sends requests by accessing the web server in order to update, delete, or create a new object in the LOB application. The LOB application retrieves the request that is received from the client machine, and the request can be provided in the form of XML data. The server machine sends requests by means of control messages that are embedded in e-mail to update, delete, or create an element in the application of a set of software applications for productive work, while this element is associated with the LOB object. Control messages are hidden from the user and are retrieved by the client machine to evaluate, resolve conflicts, move to a higher level of properties and link between the LOB object and the application element of the software application suite for productive work.
Логические операции различных вариантов осуществления реализуются (1) как последовательность машинореализованных этапов, выполняющихся в вычислительной системе, и/или (2) как взаимосвязанные машинные модули в рамках вычислительной системы. Реализация является предметом выбора в зависимости от требований к производительности вычислительной системы, реализующей вариант осуществления. Следовательно, логические операции, составляющие варианты осуществления, описанные в данном документе, упоминаются как альтернативно как операции, этапы или модули.Logical operations of various embodiments are implemented (1) as a sequence of computer-implemented steps performed in a computer system, and / or (2) as interconnected machine modules within a computer system. The implementation is a matter of choice depending on the performance requirements of the computing system implementing the embodiment. Therefore, the logical operations constituting the embodiments described herein are referred to alternatively as operations, steps, or modules.
Различные модули, технологии и способы могут быть описаны в данном документе в общем контексте машиноисполняемых инструкций, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д. для выполнения конкретных задач или реализации конкретных абстрактных типов данных. В типичном варианте функциональность программных модулей может быть скомбинирована или распределена, как требуется в различных вариантах осуществления.Various modules, technologies, and methods may be described herein in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Typically, program modules include procedures, programs, objects, components, data structures, etc. to perform specific tasks or implement specific abstract data types. In a typical embodiment, the functionality of the software modules may be combined or distributed as required in various embodiments.
Осуществление таких модулей и технологий может быть сохранено или передано в некоторой форме машиночитаемого носителя. Машиночитаемый носитель может быть любым доступным носителем, к которому может быть получен доступ посредством компьютера. В качестве примера, но не ограничения, машиночитаемые носители могут содержать "компьютерные носители хранения" и "среду передачи данных".The implementation of such modules and technologies may be stored or transmitted in some form of computer-readable medium. A computer-readable medium may be any available medium that can be accessed by a computer. By way of example, but not limitation, computer-readable media may include “computer storage media” and “media”.
"Компьютерный носитель" хранения включает в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители хранения данных включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или память по другой технологии, CD-ROM, цифровые многофункциональные диски (DVD) или другие оптические носители, магнитные кассеты, магнитную ленту, магнитный носитель на диске или другие магнитные устройства хранения, либо любой другой носитель, который можно использовать для хранения желаемой информации и к которому можно обращаться с помощью компьютера.A "computer storage medium" includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as machine-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other technology, CD-ROM, digital multifunction disks (DVD) or other optical media, magnetic tapes, magnetic tape, magnetic disk media or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be accessed using a computer.
"Среда передачи данных" в типичном варианте воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей или другой механизм передачи. Среда передачи также включает в себя любую среду доставки информации. Термин "модулированный информационный сигнал" означает сигнал, который обладает одной или несколькими характеристиками, заданными или измененными так, чтобы кодировать информацию в сигнале. В качестве неограничивающего примера среда передачи данных включают в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная, RF), инфракрасная и другая беспроводная среда. Сочетания любого из вышеперечисленного также следует включить в число машиночитаемого носителя.A "data medium" typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier signal or other transmission mechanism. The transmission medium also includes any information delivery medium. The term "modulated information signal" means a signal that has one or more of the characteristics set or changed so as to encode information in the signal. By way of non-limiting example, a communication medium includes a wired medium, such as a wired network or a direct wired connection, and a wireless medium, such as an acoustic, RF (radio frequency, RF), infrared, and other wireless medium. Combinations of any of the above should also be included in the number of computer-readable media.
В данном подробном описании содержится ссылка на "один вариант осуществления", "вариант осуществления" или "примерный вариант осуществления", что означает то, что конкретный описанный признак, структура или характеристика включена, по меньшей мере, в один вариант осуществления. Таким образом, использование таких фраз может относиться более чем только к одному варианту осуществления. Помимо этого описанные признаки, структуры или характеристики могут быть комбинированы любым надлежащим образом в одном или более вариантов осуществления.This detailed description refers to “one embodiment”, “embodiment” or “exemplary embodiment”, which means that the particular feature, structure or characteristic described is included in at least one embodiment. Thus, the use of such phrases may refer to more than just one embodiment. In addition, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Тем не менее, специалисты в данной области техники могут признавать, что варианты осуществления могут быть использованы на практике без одной или более конкретных подробностей или с другими способами, ресурсами, материалами и т.д. В других случаях широко распространенные структуры, ресурсы или операции не показаны или описаны подробно просто для того, чтобы избежать затруднений в понимании аспектов вариантов осуществления.However, those skilled in the art may recognize that the embodiments may be practiced without one or more specific details or with other methods, resources, materials, etc. In other instances, widespread structures, resources, or operations are not shown or described in detail simply in order to avoid difficulties in understanding aspects of the embodiments.
Примерное вычислительное окружениеSample computing environment
Фиг.1 иллюстрирует общее вычислительное окружение 100, которое может быть использовано для осуществления методик, описанных в данном документе. Вычислительное окружение 100 является только одним примером вычислительного окружения и не имеет намерением наводить на мысль о каком бы то ни было ограничении в отношении объема использования или функциональности вычислительной и сетевой архитектур. Вычислительное окружение 100 не должно быть интерпретировано в качестве имеющего какую бы то ни было зависимость или требование, относящееся к любому одному или сочетанию из компонентов, проиллюстрированных в примерном вычислительном окружении 100.Figure 1 illustrates a general computing environment 100 that can be used to implement the techniques described herein. Computing environment 100 is just one example of a computing environment and does not intend to suggest any limitation as to the amount of use or functionality of the computing and network architectures. Computing environment 100 should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in exemplary computing environment 100.
Вычислительное окружение 100 включает в себя вычислительное устройство общего назначения в виде компьютера 102. Компоненты компьютера 102 могут включать в себя, но не ограничиваться этим, один или более процессоров или устройств 104 обработки, системную память 106 и системную шину 108, которая связывает различные компоненты системы, включающие в себя процессор 104, с системной памятью 106.Computing environment 100 includes a general-purpose computing device in the form of a computer 102. Components of a computer 102 may include, but are not limited to, one or more processors or processing devices 104, a system memory 106, and a system bus 108 that couples various system components including a processor 104, with system memory 106.
Системная шина 108 представляет один или более из каких-либо нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессорную или локальную шину, использующую любую из множества шинных архитектур. В качестве примера такая архитектура может включать в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), шину расширенной архитектуры ISA (EISA), локальную шину ассоциации по стандартизации в области видеотехники (VESA), шину межсоединения периферийных компонентов (PCI), также известную как "мезонинная шина", шину PCI Express, универсальную последовательную шину (USB), шину Secure Digital (SD) или шины IEEE 1394, т.е. FireWire.The system bus 108 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. As an example, such an architecture may include an industry standard architecture bus (ISA), microchannel architecture bus (MCA), an extended architecture ISA bus (EISA), a local video standardization association (VESA) bus, a peripheral component interconnect (PCI) bus ), also known as the "mezzanine bus," the PCI Express bus, the universal serial bus (USB), the Secure Digital (SD) bus, or the IEEE 1394 bus, i.e. Firewire
Компьютер 102 может включать в себя многообразие машиночитаемых носителей. Такие носители могут быть любыми доступными носителями, которые доступны посредством компьютера 102 и включают в себя и энергозависимые и энергонезависимые носители, съемные и несъемные носители.Computer 102 may include a variety of computer-readable media. Such media may be any available media that is accessible through computer 102 and includes both volatile and non-volatile media, removable and non-removable media.
Системная память 106 может включать в себя машиночитаемые носители в форме энергозависимой памяти, например, оперативное запоминающее устройство (RAM); и/или энергонезависимой памяти, например, постоянное запоминающее устройство (ROM) или флеш-RAM. Базовая система 114 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 102, к примеру, во время запуска, типично сохранена в ПЗУ 112 или флэш-RAM. RAM 110 типично содержит модули данных и/или программ, которые доступны непосредственно и/или, собственно, являются приводимыми в действие процессором 104.System memory 106 may include computer-readable media in the form of volatile memory, such as random access memory (RAM); and / or non-volatile memory, for example, read-only memory (ROM) or flash RAM. A basic input / output system (BIOS) 114 comprising basic procedures that help transfer information between elements within a computer 102, for example, during startup, is typically stored in ROM 112 or flash RAM. RAM 110 typically comprises data and / or program modules that are directly accessible and / or, in fact, are driven by a processor 104.
Компьютер 102 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители хранения. В качестве примера фиг.1 иллюстрирует накопитель 116 на жестких дисках для считывания и записи на стационарный энергозависимый магнитный носитель (не показан), накопитель 118 на магнитных дисках для считывания или записи на съемный энергонезависимый магнитный диск 120 (к примеру, гибкий диск) и накопитель 122 на оптических дисках для считывания и/записи на съемный энергонезависимый оптический диск 124, такой как CD-ROM, DVD-ROM или другой оптический носитель. Привод 116 жестких дисков, привод 118 магнитных дисков и привод 122 оптических дисков каждый соединены с системной шиной 108 одним или более интерфейсами 125 носителей данных. Альтернативно, привод 116 жестких дисков, привод 118 магнитных дисков и привод 122 оптических дисков могут быть соединены с системной шиной 108 одним или более другими интерфейсами (не показаны).Computer 102 may also include other removable / non-removable, volatile / non-volatile computer storage media. As an example, FIG. 1 illustrates a hard disk drive 116 for reading and writing to a stationary non-volatile magnetic medium (not shown), a magnetic disk drive 118 for reading or writing to a removable non-volatile magnetic disk 120 (for example, a flexible disk) and a drive 122 on optical disks for reading and / or writing to a removable non-volatile optical disk 124, such as a CD-ROM, DVD-ROM, or other optical medium. The hard disk drive 116, the magnetic disk drive 118, and the optical disk drive 122 are each connected to the system bus 108 by one or more storage media interfaces 125. Alternatively, the hard disk drive 116, the magnetic disk drive 118, and the optical disk drive 122 may be connected to the system bus 108 by one or more other interfaces (not shown).
Накопители на дисках и их ассоциативно связанные машиночитаемые носители предоставляют энергонезависимое хранение читаемых компьютером команд, структур данных, программных модулей и других данных для компьютера 102. Хотя пример иллюстрирует жесткий диск 116, съемный магнитный диск 120 и съемный оптический диск 124, следует понимать, что другие типы машиночитаемых носителей, которые могут хранить данные, которые доступны посредством компьютера, например, магнитные кассеты или другие магнитные устройства хранения, карты флэш-памяти, CD-ROM, цифровые многофункциональные диски (DVD) или другой оптический накопитель, оперативные запоминающие устройства (RAM), постоянные запоминающие устройства (ROM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM) и подобные могут также использоваться, чтобы осуществить примерную вычислительную систему и окружение.Disk drives and their associated computer-readable media provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for computer 102. Although the example illustrates hard disk 116, removable magnetic disk 120, and removable optical disk 124, it should be understood that others types of computer-readable media that can store data that is accessible by computer, for example, magnetic tapes or other magnetic storage devices, flash memory cards, CD-ROMs, numbers Newer multi-function discs (DVDs) or other optical storage media, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM) and the like can also be used to implement an example computing system and environment.
Любое число программных модулей может быть сохранено на жестком диске 116, магнитном диске 120, оптическом диске 124, ROM 112 и/или RAM 110, включая в себя в качестве примера операционную систему 126, одну или более прикладных программ 128, другие программные модули 130 и программные данные 132. Каждое из такой операционной системы 126, одной или более прикладных программ 128, других программных модулей 130 и программных данных 132 (или некоторая их комбинация) может осуществлять все или часть резидентных компонентов, которые поддерживают распределенную файловую систему.Any number of program modules may be stored on hard disk 116, magnetic disk 120, optical disk 124, ROM 112 and / or RAM 110, including, by way of example, operating system 126, one or more application programs 128, other program modules 130 and program data 132. Each of such an operating system 126, one or more application programs 128, other program modules 130 and program data 132 (or some combination thereof) may implement all or part of the resident components that support distributed file the system.
Пользователь может ввести команды и информацию в компьютер 102 через устройства ввода, такие как клавиатура 134 и указательные устройства 136 (к примеру, "мышь"). Другие устройства 138 ввода (не показаны конкретно) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, последовательный порт, сканер и/или подобное. Эти и другие устройства ввода присоединены к устройству 104 обработки через интерфейсы 140 ввода/вывода, которые присоединены к системной шине 108, но могут быть присоединены другим интерфейсом и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB).The user can enter commands and information into the computer 102 through input devices such as a keyboard 134 and pointing devices 136 (for example, a "mouse"). Other input devices 138 (not shown specifically) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and / or the like. These and other input devices are connected to the processing device 104 via the input / output interfaces 140, which are connected to the system bus 108, but can be connected to another interface and bus structures, such as a parallel port, a game port, or a universal serial bus (USB).
Монитор 142 или другой тип устройства отображения может также быть присоединен к системной шине 108 через интерфейс, такой как видеоадаптер 144. В дополнение к монитору 142 другие периферийные устройства вывода могут включать в себя компоненты, такие как динамики (не показаны) и принтер 146, которые могут быть присоединены к компьютеру 102 через интерфейсы 140 ввода/вывода.A monitor 142 or other type of display device may also be connected to the system bus 108 via an interface, such as a video adapter 144. In addition to the monitor 142, other peripheral output devices may include components such as speakers (not shown) and a printer 146, which can be connected to computer 102 via input / output interfaces 140.
Компьютер 102 может работать в сетевом окружении с помощью логических соединений с одним или более удаленными компьютерами, такими как удаленное вычислительное устройство 148. В качестве примера удаленное вычислительное устройство 148 может быть персональным компьютером, переносным компьютером, сервером, маршрутизатором, сетевым компьютером, равноправным устройством или другим общим узлом сети и т.п. Удаленное вычислительное устройство 148 иллюстрировано как переносной компьютер, который может включать в себя многие или все из элементов и признаков, описанных в данном документе, соответствующих компьютеру 102. Альтернативно, компьютер 102 может функционировать в не объединенном в сеть окружении.Computer 102 may operate in a networked environment using logical connections to one or more remote computers, such as remote computing device 148. As an example, remote computing device 148 may be a personal computer, laptop computer, server, router, network computer, peer device, or another common network node, etc. Remote computing device 148 is illustrated as a portable computer, which may include many or all of the elements and features described herein that correspond to computer 102. Alternatively, computer 102 may operate in a non-networked environment.
Логические соединения между компьютером 102 и удаленным компьютером 148 изображены как локальная вычислительная сеть (LAN) 150 и общая глобальная вычислительная сеть (WAN) 152. Такие сетевые окружения являются общепринятыми в офисах, корпоративных вычислительных сетях, интранет и Интернет.The logical connections between computer 102 and remote computer 148 are depicted as a local area network (LAN) 150 and a common wide area network (WAN) 152. Such network environments are common in offices, corporate networks, the intranet, and the Internet.
Когда используется в сетевом окружении LAN, компьютер 102 подключен к локальное сети 150 через сетевой интерфейс или адаптер 154. Когда используется в сетевом окружении WAN, компьютер 102 типично включает в себя модем 156 или другое средство для установления связи по глобальной сети 152. Модем 156, который может быть внутренним или внешним по отношению к компьютеру 102, может быть присоединен к системной шине 108 через интерфейсы ввода/вывода или другие подходящие механизмы. Должно быть оценено, что иллюстрированные сетевые соединения являются примерными, и что могут быть применены другие средства установления, по меньшей мере, одной линии связи между компьютерами 102 и 148.When used in a LAN environment, the computer 102 is connected to the local area network 150 via a network interface or adapter 154. When used in a WAN network environment, the computer 102 typically includes a modem 156 or other means for establishing communication over a wide area network 152. Modem 156, which may be internal or external to the computer 102, may be connected to the system bus 108 via input / output interfaces or other suitable mechanisms. It should be appreciated that the illustrated network connections are exemplary, and that other means of establishing at least one communication link between computers 102 and 148 can be applied.
В сетевом окружении, таком как иллюстрированное с вычислительным окружением 100, программные модули, изображенные по отношению к компьютеру 102, или их части могут храниться на удаленном устройстве хранения данных. В качестве примера удаленные прикладные программы 158 находятся в запоминающем устройстве удаленного компьютера 148. В целях иллюстрации прикладные программы и другие выполняемые программные компоненты, такие как операционная система, иллюстрированы в данном документе как отдельные блоки, хотя признано, что такие программы и компоненты находятся в различные моменты времени в разных компонентах хранения вычислительного устройства 102 и выполняются, по меньшей мере, одним процессором данных компьютера.In a networked environment, such as illustrated with computing environment 100, program modules depicted with respect to computer 102, or portions thereof, may be stored on a remote storage device. As an example, the remote application programs 158 are located in the storage device of the remote computer 148. For purposes of illustration, application programs and other executable program components, such as an operating system, are illustrated as separate blocks in this document, although it is recognized that such programs and components are in different time points in different storage components of computing device 102 and are executed by at least one computer data processor.
Далее приводится описание примерных интерфейсов и конфигурации, реализованной в Microsoft Outlook® для того, чтобы поддерживать синхронизацию информации Microsoft Outlook® с LOB-системой. В других вариантах осуществления другие приложения комплекта программных приложений для продуктивной работы могут быть использованы вместо или помимо Microsoft Outlook®.The following is a description of sample interfaces and configurations implemented in Microsoft Outlook® in order to maintain synchronization of Microsoft Outlook® information with the LOB system. In other embodiments, other productivity suite applications may be used in place of or in addition to Microsoft Outlook®.
Примерная конфигурацияSample configuration
Фиг.2 иллюстрирует пример системы, в которой клиентское устройство выполнено с возможностью синхронизации с LOB-системой. Как показано на чертеже, комплект программных приложений для продуктивной работы (220), такой как Microsoft Outlook®, доступен на клиентском устройстве. Microsoft Outlook® содержит один или более элементов, такие как: календарные назначения встреч, контакты, электронная почта и т.д. Каждый элемент (230) комплекта программных приложений для продуктивной работы включает в себя набор стандартных свойств (231), которые относятся к комплекту программных приложений для продуктивной работы, и один или более элементов данных (LOB-данные 232), которые связаны с LOB-системой. Дополнительные свойства системы также ассоциативно связаны с элементом, как, например, может быть необходимо для связывания данных и свойств с элементом (к примеру, привязывания информации в системном свойстве 233). Вне элемента (240) имеется набор системных свойств, которые связаны с синхронизацией (242), а также хранилище данных, которое используется для того, чтобы кэшировать данные (241) синхронизации.Figure 2 illustrates an example system in which a client device is configured to synchronize with the LOB system. As shown in the drawing, a suite of software applications for productive work (220), such as Microsoft Outlook®, is available on the client device. Microsoft Outlook® contains one or more items, such as: calendar appointments for appointments, contacts, email, etc. Each element (230) of a set of software applications for productive work includes a set of standard properties (231) that relate to a set of software applications for productive work, and one or more data elements (LOB data 232) that are associated with the LOB system . Additional system properties are also associated with the element, as, for example, it may be necessary to associate data and properties with the element (for example, binding information in the system property 233). Outside of element (240), there is a set of system properties that are associated with synchronization (242), as well as a data store that is used to cache synchronization data (241).
Один пользователь должен иметь возможность устанавливать клиентское программное обеспечение на нескольких машинах. Тем не менее, только первичная машина имеет возможность синхронизироваться с LOB-системой. Другие машины считаются вторичными машинами. LOB-система возвращает бизнес-ответ синхронно с первичной машиной. LOB-система взаимодействует со средством форматирования, чтобы предоставлять исходящие из LOB-системы "команды" на первичную машину, например, команды создания, обновления или удаления. В любое время может быть только одна первичная машина. Вторичные машины (к примеру, клиент 260), которые включают в себя собственную копию комплекта программных приложений для продуктивной работы (270), по-прежнему содержат копию информации, доступной на первичной машины, включая бизнес-состояние и состояние синхронизации связываемых элементов (к примеру, элемент 280 для продуктивной работы, включая свойства 281-283). Описанная система может быть выполнена с возможностью хранить кэш синхронизации на сервере, чтобы распространять ответы по бизнес-состоянию от сервера вторичным клиентам.One user should be able to install client software on multiple machines. However, only the primary machine has the ability to synchronize with the LOB system. Other machines are considered secondary machines. The LOB system returns a business response synchronously with the primary machine. The LOB system interacts with the formatter to provide “commands” to the primary machine, for example, create, update, or delete commands that originate from the LOB system. There can only be one primary machine at any time. Secondary machines (for example, client 260), which include their own copy of a suite of software applications for productive work (270), still contain a copy of the information available on the primary machine, including the business status and synchronization status of the connected items (for example element 280 for productive work, including properties 281-283). The described system can be configured to store a synchronization cache on a server in order to distribute business status responses from the server to secondary clients.
Элементы комплекта программных приложений для продуктивной работы (к примеру, элемент 230) должны содержать достаточно информации, чтобы система распознавала и воспроизводила привязываемые элементы. LOB-данные (включая перемещенные на более высокий уровень свойства) должны быть сохранены и ассоциативно связаны с элементом комплекта программных приложений для продуктивной работы. Системная информация, сохраненная в элементах комплекта программных приложений для продуктивной работы, должна быть статической. Другими словами, она не должна изменяться после того, как она задана, чтобы избегать появления "искусственных" конфликтов синхронизации. Система должна сохранять данные синхронизации и системные свойства, связанные с синхронизацией, вне элементов комплекта программных приложений для продуктивной работы. Маркер, который скрыт в свойстве, может быть использован для того, чтобы указывать то, какая машина является первичной. В некоторых случаях маркер может быть передан, с тем чтобы первичная машина могла быть изменена, например, в случае восстановления после сбоя.Elements of a set of software applications for productive work (for example, element 230) must contain enough information for the system to recognize and reproduce the attached elements. LOB data (including properties moved to a higher level) must be stored and associatively associated with an element of the software application suite for productive work. System information stored in the elements of a set of software applications for productive work should be static. In other words, it should not be changed after it is set in order to avoid the appearance of “artificial” synchronization conflicts. The system must save synchronization data and system properties associated with synchronization outside the elements of a set of software applications for productive work. A marker that is hidden in a property can be used to indicate which machine is primary. In some cases, the token may be transmitted so that the primary machine can be changed, for example, in the event of a recovery after a failure.
Фиг.3 иллюстрирует то, как устанавливается корреляция между привязываемым элементом (330) и LOB-объектом (370), когда новый привязываемый элемент создается посредством LOB-системы. Сначала LOB-объект (370) создается в LOB-системе (360), как указано посредством этапа 1 (391), при этом LOB-объект (370) включает в себя идентификатор (LOBID 372). LOB-система (360) передает запрос (392) на сервер (340), чтобы создать LOB-объект, идентифицированный посредством LOBID 372, в качестве привязываемого элемента, как указано посредством этапа 2. Сервер (340) принимает запрос (392) и применяет средство (250) форматирования к запросу (392), приводя к передаче команды (394) в первичный клиент (310), чтобы создать привязку. Подсистема (320) синхронизации для комплекта программных приложений для продуктивной работы (к примеру, Outlook) на сервере (310) принимает команду (392) в ходе следующей синхронизации и создает привязку к элементу (350) Outlook, как указано посредством этапа 5. Привязываемый элемент имеет уникальный идентификатор (UID 332), который назначается ему, и ассоциативно связывается с LOB-объектом посредством LOBID 334.Figure 3 illustrates how a correlation is established between an anchor element (330) and an LOB object (370) when a new anchor element is created by the LOB system. First, the LOB object (370) is created in the LOB system (360), as indicated by step 1 (391), wherein the LOB object (370) includes an identifier (LOBID 372). The LOB system (360) transmits the request (392) to the server (340) to create the LOB object identified by
Фиг.4 иллюстрирует то, как устанавливается корреляция между привязываемым элементом и LOB-объектом, когда новый привязываемый элемент создается посредством комплекта программных приложений для продуктивной работы. Сначала элемент (430) создается в комплекте программных приложений для продуктивной работы, как указано, посредством этапа 1 (491). Затем подсистема (420) синхронизации в комплекте программных приложений для продуктивной работы (к примеру, Outlook) передает (492) команду создания привязки в LOB-систему (460), как указано, посредством этапа 2. LOB-система (460) принимает команду создания привязки в ходе следующей синхронизации с клиентом и создает LOB-объект (470), идентифицированный посредством LOBID 472, как проиллюстрировано, посредством этапа 3 (493). LOB-система (460) необязательно передает LOBID (472) обратно клиенту (410) на этапе 4 (494), причем клиент (410) затем может ассоциативно связывать LOBID (434) с привязываемым элементом (430), как проиллюстрировано, посредством этапа 5 (495). В некоторых случаях LOBID (472) не передается обратно в комплект программных приложений для продуктивной работы.Figure 4 illustrates how a correlation is established between an anchor element and a LOB object when a new anchor element is created through a suite of software applications for productive work. First, the element (430) is created in a set of software applications for productive work, as indicated by step 1 (491). Then, the synchronization subsystem (420) in the set of software applications for productive work (for example, Outlook) transmits (492) the binding command to the LOB system (460), as indicated by
Фиг.5 иллюстрирует то, как изменяется корреляция между привязываемым элементом и LOB-объектом, когда привязываемый элемент обновляется или удаляется в комплекте программных приложений для продуктивной работы. Сначала элемент (530) изменяется в комплекте программных приложений для продуктивной работы, как указано, посредством этапа 1 (591). Далее подсистема (520) синхронизации в комплекте программных приложений для продуктивной работы (к примеру, Outlook) передает (к примеру, посредством обращения к веб-услуге), обновить либо удалить в LOB-систему (560), как указано, посредством этапа 2 (592). LOB-система (560) принимает команду обновления/удаления привязки в ходе следующей синхронизации с клиентом (510) и модифицирует либо удаляет LOB-объект (570), идентифицированный посредством LOBID 572, как проиллюстрировано, посредством этапа 3 (593). В некоторых случаях, когда LOBID (534) неизвестен посредством комплекта программных приложений для продуктивной работы, LOB-система (560) ссылается на идентификатор привязки BIID 532, чтобы определить то, какой LOB-объект (570) модифицировать или удалять.FIG. 5 illustrates how the correlation between a snap element and a LOB object changes when the tie element is updated or deleted in a software application suite for productive work. First, the element (530) is changed in the set of software applications for productive work, as indicated by step 1 (591). Next, the synchronization subsystem (520) in a set of software applications for productive work (for example, Outlook) transmits (for example, by accessing a web service), update or delete to the LOB system (560), as indicated by means of step 2 ( 592). The LOB system (560) receives the update / remove binding command during the next synchronization with the client (510) and modifies or deletes the LOB object (570) identified by
Фиг.6 иллюстрирует то, как изменяется корреляция между привязываемым элементом и LOB-объектом, когда привязываемый элемент обновляется или удаляется посредством LOB-системы. Сначала LOB-объект (670) модифицируется или удаляется в LOB-системе (660), как указано, посредством этапа 1 (691). LOB-система (660) передает запрос (692) в сервер (640), чтобы обновить или удалить LOB-объект, идентифицированный посредством, по меньшей мере, одного из LOBID (672) и BIID в запросе (692) на сервер (640). Сервер (640) принимает запрос (692) и применяет средство (650) форматирования к запросу (692), приводя к передаче команды или управляющего сообщения (694), чтобы изменить или удалить привязываемый элемент, как указано, посредством этапа 4. Подсистема (620) синхронизации комплекта программных приложений для продуктивной работы (к примеру, Outlook) на первичном клиенте (610) принимает команду в ходе следующей синхронизации и модифицирует либо удаляет привязку (к примеру, BIID 532 и LOBID 634) с соответствующим привязываемым элементом (630), как указано, посредством этапа 5 (695).FIG. 6 illustrates how the correlation between the anchor element and the LOB object changes when the anchor element is updated or deleted by the LOB system. First, the LOB object (670) is modified or deleted in the LOB system (660), as indicated by step 1 (691). The LOB system (660) sends the request (692) to the server (640) to update or delete the LOB object identified by at least one of the LOBID (672) and the BIID in the request (692) to the server (640) . The server (640) receives the request (692) and applies the formatting tool (650) to the request (692), leading to the transmission of a command or control message (694) to change or remove the anchor element, as indicated by
Подсистема синхронизации, описанная выше, развертывается на клиентских машинах, которые могут быть в рамках или вне корпоративной сети. Подключение по виртуальной частной сети или VPN к корпоративной сети ожидается, как и соединения удаленной синхронизации HTTP-типа, посредством серверного приложения, такого как Microsoft Exchange Server. LOB-синхронизация может выполняться как фоновый подпроцесс на клиентском устройстве, пока выполняется комплект программных приложений для продуктивной работы. Изменения, сделанные в комплекте программных приложений для продуктивной работы, предоставляются в LOB-систему посредством любого доступного RPC-механизма (к примеру, корпоративной сети, VPN, HTTP и т.д.), тогда как изменения в LOB-систему, как ожидается, выполняются только по корпоративной сети. Файловая синхронизация может обрабатываться любым надлежащим способом в корпоративной сети, например, посредством Microsoft Active Directory, которая может быть выполнена с возможностью предоставлять. NET API для этих целей.The synchronization subsystem described above is deployed on client machines, which can be on or off the corporate network. A virtual private network or VPN connection to the corporate network is expected, as well as HTTP-type remote synchronization connections, through a server application such as Microsoft Exchange Server. LOB synchronization can be performed as a background subprocess on a client device while a set of software applications for productive work is running. Changes made in the set of software applications for productive work are provided to the LOB system through any available RPC mechanism (for example, corporate network, VPN, HTTP, etc.), while changes to the LOB system are expected performed only on the corporate network. File synchronization can be processed in any appropriate way on the corporate network, for example, through Microsoft Active Directory, which can be configured to provide. NET API for these purposes.
Примерные определения интерфейсов синхронизацииSample definitions of synchronization interfaces
Для каждого типа привязываемого элемента подсистема синхронизации выполняет различное действие в зависимости от изменения, которое возникает (создание/обновление/удаление). Помимо этого действие "Query" может быть активировано в результате обработки управляющего сообщения запроса. Ниже указывается информация, которая должна быть передана и возвращена из каждого из этих действий.For each type of element to be bound, the synchronization subsystem performs a different action depending on the change that occurs (create / update / delete). In addition, the action "Query" can be activated as a result of processing the control message of the request. Below is the information that must be transmitted and returned from each of these actions.
Create вызывается системой каждый раз, когда обрабатывается создание Привязываемого Элемента на стороне клиента. Параметры для Create включают в себя BoundItemID, NewItemData и CultureName. Возвращаемые значения для Create включают в себя LOBID, BusinessStatus и Description. BoundItemID - это сформированная клиентом строка уникального идентификатора для привязываемого элемента. NewItemData - это XML-документ, который задается посредством схемы для LOB-системы с тем, чтобы LOB-данные для привязываемого элемента предоставлялись надлежащим образом. CultureName - это название культуры, которая должна быть использована для бизнес-состояния, описания и всех остальных сообщений, извлекаемых из вызова Create. LOBID - это строка, которая формируется посредством LOB в качестве уникального идентификатора типа элемента (к примеру, ContactID уникально идентифицирует контакт). BusinessStatus - это строка, которая соответствует краткому имени нового бизнес-состояния, которое должно быть назначено привязываемому элементу в результате Create. Это произвольное значение, предоставляемое посредством LOB-системы, синхронизация не делает никаких допущений по содержимому этого значения. Идея заключается в том, что это значение может быть использовано для того, чтобы фильтровать элементы, которые находятся в одном состоянии. Description - это необязательная строка, которая является пояснением к BusinessStatus. Она является частью информации привязываемых элементов, так чтобы при необходимости Description могла быть предоставлена в UI.Create is invoked by the system each time the client-side creation of the Bound Item is processed. Options for Create include BoundItemID, NewItemData, and CultureName. The return values for Create include LOBID, BusinessStatus, and Description. BoundItemID is the client-generated string of a unique identifier for the item to be bound. NewItemData is an XML document that is defined by a schema for the LOB system so that the LOB data for the bound element is provided properly. CultureName is the name of the culture that should be used for the business status, description, and all other messages retrieved from the Create call. A LOBID is a string that is formed by LOB as a unique identifier for an item type (for example, ContactID uniquely identifies a contact). BusinessStatus is a string that corresponds to the short name of the new business state that should be assigned to the element to be bound as a result of Create. This is an arbitrary value provided through the LOB system; synchronization does not make any assumptions about the contents of this value. The idea is that this value can be used to filter elements that are in the same state. Description is an optional line that is an explanation of BusinessStatus. It is part of the information of the binding elements, so that, if necessary, Description can be provided in the UI.
Update вызывается системой каждый раз, когда обрабатывается обновление привязываемого элемента на стороне клиента. Параметры Update включают в себя BoundItemID, RequestID, LOBID, PreviousItemData, NewItemData и CultureName. Возвращаемые значения для Update включают в себя BusinessStatus и Description. RequestID - это уникальный идентификатор сообщения обновления, чтобы предоставить возможность LOB-системе идентифицировать копии. Такой же идентификатор запроса должен быть отправлен, если дублированное сообщение обновления отправлено. PreviousItemData - это XML-документ, который соответствует всем LOB-данным из привязываемого элемента из последнего синхронизированного состояния.Update is called by the system every time a client-side binding update is processed. Update options include BoundItemID, RequestID, LOBID, PreviousItemData, NewItemData, and CultureName. Return values for Update include BusinessStatus and Description. RequestID is a unique identifier for the update message to enable the LOB system to identify copies. The same request identifier should be sent if a duplicate update message is sent. PreviousItemData is an XML document that matches all the LOB data from the bound element from the last synchronized state.
Delete вызывается системой каждый раз, когда обрабатывается обновление привязываемого элемента на стороне клиента. Параметры для Delete включают в себя BoundItemID, LOBID, PreviousItemData и CultureName. Возвращаемые значения для Delete включают в себя BusinessStatus и Description.Delete is called by the system every time a client-side binding update is processed. Options for Delete include BoundItemID, LOBID, PreviousItemData, and CultureName. Return values for Delete include BusinessStatus and Description.
QueryResult вызывается системой каждый раз, когда обрабатывается управляющее сообщение запроса. Параметр QueryResult - это XML-документ, содержащий перечень идентификаторов привязываемых объектов и их соответствующий LOBID для всех существующих привязываемых объектов указанного типа. Нет возвращаемых значений для QueryResult.QueryResult is called by the system every time a request control message is processed. The QueryResult parameter is an XML document that contains a list of identifiers for objects to be bound and their corresponding LOBID for all existing objects to be bound of the specified type. There are no return values for QueryResult.
Примерные определения управляющих сообщенийSample definitions of control messages
Данный раздел указывает информацию, которая ожидается в каждом типе управляющего сообщения. Управляющие сообщения включают в себя: Create Control Message, Update Control Message, Delete Control Message и Query Control Message.This section indicates the information that is expected in each type of control message. Control messages include: Create Control Message, Update Control Message, Delete Control Message, and Query Control Message.
Create Control Message включает в себя поля для: BoundItemID, LOBID, BoundItemType и LOBData. Update Control Message включает в себя поля для: LOBID, BoundItemType и LOBData. Delete Control Message включает в себя поля для: LOBID и BoundItemType. Query Control Message включает в себя поле для BoundItemType.The Create Control Message includes fields for: BoundItemID, LOBID, BoundItemType, and LOBData. Update Control Message includes fields for: LOBID, BoundItemType and LOBData. Delete Control Message includes fields for: LOBID and BoundItemType. Query Control Message includes a field for BoundItemType.
BoundItemID - это уникальный идентификатор, назначаемый новому привязываемому элементу. BoundItemID формируется средством форматирования, как подробнее описано ниже. BoundItemType - это строка, которая соответствует полному имени типа привязываемого элемента, включая решение и версию. BoundItemType может быть использован системой для того, чтобы находить соответствующее определение привязываемого элемента, которое описывает свойства, которые должны быть привязаны к элементу комплекта программных приложений для продуктивной работы, а также то, как элемент комплекта программных приложений для продуктивной работы должен быть синхронизирован с LOB-объектом. Как ранее описано, LOBID - это уникальный идентификатор, назначенный посредством LOB-системы привязываемому элементу, а LOB-данные - это XML-документ, содержащий все LOB-данные для привязываемого элемента.BoundItemID is a unique identifier assigned to a new binding element. BoundItemID is generated by the formatter, as described in more detail below. BoundItemType is a string that matches the fully qualified type name of the element to be bound, including the solution and version. BoundItemType can be used by the system to find an appropriate definition of a binding element that describes the properties that should be bound to an element of a software application suite for productive work, as well as how an element of a software application suite for productive work should be synchronized with LOB- object. As previously described, the LOBID is a unique identifier assigned by the LOB system to the attached element, and the LOB data is an XML document containing all the LOB data for the attached element.
Примерная система синхронизацииSample synchronization system
Система может быть скомпонована так, что она не основывается на событиях из комплекта программных приложений для продуктивной работы (к примеру, Microsoft Outlook), чтобы активировать и обнаруживать синхронизацию. Чтобы обнаруживать изменения (создание / обновление / удаление), система использует подход 3-сторонней синхронизации между комплектом программных приложений для продуктивной работы, хранилищем данных синхронизации (SDS) и информацией, полученной непосредственно из LOB-системы. Данные могут быть изменены из нескольких входных точек в системе. Информация может быть изменена во множестве различных мест, включая точки веб-доступа, мобильные устройства и другие клиентские машины. Изменения в итоге синхронизируются с первичной клиентской машиной (к примеру, посредством синхронизации Outlook/Exchange).The system can be arranged so that it is not based on events from a set of software applications for productive work (for example, Microsoft Outlook) in order to activate and detect synchronization. To detect changes (create / update / delete), the system uses a 3-way synchronization approach between a set of software applications for productive work, a synchronization data storage (SDS) and information obtained directly from the LOB system. Data can be changed from several input points in the system. Information can be changed in many different places, including web access points, mobile devices and other client machines. Changes are ultimately synchronized with the primary client machine (for example, through Outlook / Exchange synchronization).
LOB-система может обнаруживать и обрабатывать дублированные запросы на основе уникального идентификатора запроса. Исходящая (клиент-сервер) связь с LOB-системой может быть осуществлена посредством веб-служб, тогда как входящие (сервер-клиент) сообщения предоставляются клиентам посредством серверного приложения (к примеру, Microsoft Exchange).The LOB system can detect and process duplicate requests based on a unique request identifier. Outgoing (client-server) communication with the LOB system can be carried out through web services, while incoming (server-client) messages are provided to clients through a server application (for example, Microsoft Exchange).
Обнаружение конфликтов также обрабатывается системой, когда один привязываемый элемент изменяется посредством LOB-системы и комплекта программных приложений для продуктивной работы. Если система обнаруживает то, что один привязываемый элемент обновлен пользователем и LOB-системы, идентифицируется конфликт, и разрешение конфликтов разрешает его соответствующим образом.Conflict detection is also handled by the system when one binding element is changed through the LOB system and a set of software applications for productive work. If the system detects that one of the items to be bound is updated by the user and the LOB system, a conflict is identified, and conflict resolution resolves it accordingly.
LOB-система поддерживает предоставление немедленных бизнес-ответов, когда принято синхронное обращение к веб-службе. LOB-системе не требуется принимать подтверждения или оповещения об ошибке по успешности обработки команд Create, Update, Delete или Query.The LOB system supports the provision of immediate business responses when a synchronous call to the web service is accepted. The LOB system does not need to accept acknowledgment or error messages about the success of processing Create, Update, Delete, or Query commands.
Этот раздел описывает высокоуровневые потоки информации между LOB-системой и клиентом. Следующие схемы предоставляют обзор возможных потоков информации, которые поддерживаются.This section describes the high-level information flows between the LOB system and the client. The following diagrams provide an overview of the possible flows of information that are supported.
Фиг.7 иллюстрирует примерный поток информации между клиентом и сервером в ходе операции выталкивания (записи). Операция выталкивания может быть инициирована клиентом (710) или сервером (750), как описывается.7 illustrates an example flow of information between a client and a server during a push (write) operation. A push operation may be initiated by a client (710) or a server (750) as described.
Этап 1 иллюстрирует инициированный клиентом (710) поток, в котором процесс обнаружения изменения выполняется системой на клиенте. На этапе 1 логика (730) синхронизации в системе идентифицирует новые, обновленные и удаленные привязываемые элементы и создает (791) виртуальный список запросов на изменение, которые должны быть предоставлены в LOB-систему. Виртуальный список может быть предоставлен в очереди, такой как виртуальная исходящая очередь (VOQ 712). Список обрабатывается, когда есть подключение (связность) (к примеру, обращение 792 к веб-службе) к LOB-системе (к примеру, серверу 750), на этапе 2. Если подключение к LOB-системе не идентифицировано на этапе 2, то список повторяется в следующий раз, когда выполняется процесс обнаружения изменений
При создании виртуального списка запросов система также учитывает новые поступающие управляющие сообщения (оповещения создания, обновления, удаления, исходящие из LOB-системы, из списка 714 управляющих сообщений), чтобы обнаруживать и разрешать либо вызывать конфликты соответствующим образом. Конфликт обнаруживается посредством логики (730) синхронизации, когда один элемент модифицирован в комплекте программных приложений для продуктивной работы и в LOB-системе либо когда одна сторона пытается обновить элемент, пока другая пытается удалить его. Для каждого обнаруженного изменения (создания, обновления, удаления), которое не приводит к конфликту, система предоставляет запрос в LOB-систему (к примеру, сервер 750) посредством обращения к веб-службе (792), как, к примеру, описано в определениях интерфейса синхронизации.When creating a virtual request list, the system also takes into account new incoming control messages (notifications of creation, updates, deletions coming from the LOB system, from the list of 714 control messages) in order to detect and resolve or cause conflicts accordingly. The conflict is detected by the synchronization logic (730) when one element is modified in a set of software applications for productive work and in the LOB system, or when one side tries to update the element while the other tries to delete it. For each detected change (creation, update, deletion) that does not lead to conflict, the system provides a request to the LOB system (for example, server 750) by accessing the web service (792), as, for example, described in the definitions synchronization interface.
LOB-система (к примеру, сервер 750 с LOB-приложением 760) также может инициировать выполнение действия создания, обновления, удаления или запроса в клиенте (710), когда соответствующие действия осуществляются в LOB-системе. На этапе 3 LOB-система обращается к веб-службе (793), которая предоставляется средством (770) форматирования. В случае запросов создания средство (770) форматирования возвращает уникальный идентификатор, который используется системой для того, чтобы идентифицировать новый привязываемый элемент. Подробности по информации, отправляемой в качестве части обращения к веб-службе, см. в разделе "Определения интерфейса синхронизации", описанном в данном документе.The LOB system (for example, a
На этапе 4 средство (770) форматирования формирует управляющее сообщение (794) и отправляет его в указанный почтовый ящик, ассоциативно связанный с комплектом программных приложений для продуктивной работы (к примеру, почтовый ящик Outlook). Управляющие сообщения (794) отправляются от специализированной учетной записи. Когда управляющее сообщение доставляется в целевой почтовый ящик (к примеру, посредством Microsoft Exchange Server или какого-либо другого сервера 780 электронной почты и каталогов), оно автоматически перемещается в скрытую папку посредством правила на стороне сервера, с тем чтобы случайное удаление управляющих сообщений предотвращалось. Правило на стороне сервера поддерживается (создается и повторно создается) клиентом (к примеру, подробные сведения см. в техническом описании "Outlook Add-in").At
На этапе 5 управляющие сообщения (795) доставляются в клиент (710) посредством механизма типа электронной почты, который отформатирован для приложения комплекта программных приложений для продуктивной работы (720). Клиент (710) обрабатывает управляющие сообщения (795) на этапе 6 (796) посредством выполнения процесса синхронизации, который создает, обновляет и удаляет привязываемые элементы при необходимости. При обработке управляющих сообщений система также учитывает локальные изменения (создание, обновление, удаление привязываемых элементов), которые должны быть переданы в LOB-систему, чтобы обнаруживать и помечать конфликты соответствующим образом.At
Фиг.8 и 9 иллюстрируют операцию извлечения, которая может быть использована в другой примерной системе, причем извлечение может быть инициировано посредством веб-службы синхронизации или посредством принудительного «подталкивания», которое инициировано посредством LOB-системы.Figs. 8 and 9 illustrate a retrieval operation that can be used in another exemplary system, the retrieval can be triggered by the synchronization web service or by a forced push that is triggered by the LOB system.
Логика синхронизацииSynchronization logic
Привязываемые элементы могут быть изменены, поскольку пользователь изменяет их непосредственно или косвенно посредством синхронизации (к примеру, интерфейса веб-доступа). Требуется процесс, который сравнивает элементы и определяет различия между клиентом и LOB-системой, чтобы принять решение о том, должны ли изменения на одной стороне распространяться на другую сторону.Bound items can be changed because the user changes them directly or indirectly through synchronization (for example, a web access interface). It takes a process that compares the elements and identifies the differences between the client and the LOB system in order to decide whether changes on one side should propagate to the other side.
Изменение может выполняться одним из четырех способов. Во-первых, пользователь может изменить привязываемый элемент в комплекте программных приложений для продуктивной работы. Система обнаруживает и автоматически предоставляет запрос на изменения в LOB-систему. Во-вторых, изменение может быть выполнено посредством другого клиента, и это влияет и на клиента комплекта программных приложений для продуктивной работы посредством синхронизации и на LOB-систему. Изменения в комплекте программных приложений для продуктивной работы и LOB-системе могут осуществляться в любой последовательности с любой задержкой. В-третьих, изменения могут быть выполнены посредством смартфона, веб-доступа или любого другого средства и синхронизированы через сервер с комплектом программных приложений для продуктивной работы. Эти изменения должны обнаруживаться посредством процесса синхронизации. В-четвертых, изменения могут выполняться в самой LOB-системе. Каждый тип изменения должен рассматриваться посредством процесса синхронизации.Change can be done in one of four ways. Firstly, the user can change the anchor element in a set of software applications for productive work. The system detects and automatically submits a request for changes to the LOB system. Secondly, the change can be made through another client, and this affects the client of the set of software applications for productive work through synchronization and the LOB system. Changes in the set of software applications for productive work and the LOB system can be made in any sequence with any delay. Thirdly, changes can be made through a smartphone, web access or any other means and synchronized through a server with a set of software applications for productive work. These changes must be detected through the synchronization process. Fourth, changes can be made to the LOB system itself. Each type of change should be considered through a synchronization process.
Локальное хранилище данных синхронизации (SDS) сохраняет исходную версию. SDS синхронизируется и затем используется для того, чтобы отслеживать дельты (разницы) между комплектом программных приложений для продуктивной работы и LOB-системой. Дельты затем добавляются в виртуальную очередь запросов, содержащих все служебные запросы к LOB-системе. Процедуры обновления определяют, когда изменения должны быть распространены в LOB-систему. Логика синхронизации формулирует запрос и предоставляет его в LOB-систему, когда есть подключение. При обновлении комплекта программных приложений для продуктивной работы логика синхронизации использует информацию LOB-системы для того, чтобы обновлять Outlook, а затем обновляет SDS.Local synchronization data storage (SDS) retains the original version. SDS is synchronized and then used to track deltas (differences) between a set of software applications for productive work and the LOB system. Deltas are then added to the virtual request queue containing all service requests to the LOB system. Update procedures determine when changes should be propagated to the LOB system. The synchronization logic formulates a request and provides it to the LOB system when there is a connection. When updating a suite of software applications for productive work, the synchronization logic uses the information of the LOB system to update Outlook, and then updates the SDS.
Большая часть привязываемых данных содержится в двух местах: в качестве элемента в комплекте программных приложений для продуктивной работы и в LOB-системе. Предполагается, что каждая копия содержит дополнительные данные, которые отсутствуют в другой копии. Система синхронизации отвечает за синхронизацию совместно используемого поднабора свойств, хранящихся в свойстве BoundData привязываемого элемента, и наличие привязываемого элемента, к примеру, элемент может быть создан или уничтожен в результате синхронизации. Система синхронизации допускает одно определение истины: LOB-система всегда права. В то же время система синхронизация не имеет какого-либо прямого доступа к LOB-объектам и, тем самым, хранит отдельную копию в SDS того, что, как она предполагает, сохранено в LOB-системе.Most of the data to be bound is contained in two places: as an element in a set of software applications for productive work and in the LOB system. It is assumed that each copy contains additional data that is not in the other copy. The synchronization system is responsible for synchronizing a shared subset of properties stored in the BoundData property of the bound element, and the presence of the bound element, for example, the element can be created or destroyed as a result of synchronization. The synchronization system allows one definition of truth: the LOB system is always right. At the same time, the synchronization system does not have any direct access to LOB objects and, therefore, stores a separate copy in SDS of what it assumes is stored in the LOB system.
Процесс синхронизации может быть разделен на несколько отдельных фаз. В фазе обзора все привязываемые элементы в почтовом ящике сравниваются с SDS. Несовпадения ссылочной целостности между почтовым ящиком и SDS обнаруживаются и сразу исправляются. Модифицированные элементы обнаруживаются и помечаются для дальнейшей обработки. Удаленные элементы далее обнаруживаются и передаются в средство синхронизации с тем, чтобы соответствующий запрос на удаление мог быть отправлен в LOB-систему. В некоторых реализациях различные фазы процесса синхронизации, описанные выше, могут быть объединены в один интегрированный процесс, где различные функции (к примеру, привязка, обзор, разрешение и т.п.) могут быть комбинированы в упрощенный алгоритм. Упрощенный алгоритм может достигать большей скорости исполнения или достигать некоторой другой большей эффективности (к примеру, снижение использования памяти/диска, устранение избыточности и т.д.).The synchronization process can be divided into several separate phases. In the browse phase, all bindable items in the mailbox are compared with SDS. Referential integrity mismatches between the mailbox and the SDS are detected and corrected immediately. Modified elements are detected and marked for further processing. Deleted items are then detected and transmitted to the synchronization tool so that a corresponding deletion request can be sent to the LOB system. In some implementations, the various phases of the synchronization process described above can be combined into one integrated process, where various functions (for example, snap, browse, resolution, etc.) can be combined into a simplified algorithm. A simplified algorithm can achieve greater execution speed or achieve some other greater efficiency (for example, reducing memory / disk usage, eliminating redundancy, etc.).
Любые управляющие сообщения, которые идентифицированы, обрабатываются в ходе второй фазы. Далее выполняется промотирование (расширение) свойств на более высокий уровень для всех элементов, которые помечены как модифицированные. Результирующее обновленное представление XML-данных сравнивается с копией SDS, и оповещается средство синхронизации. Средство синхронизации запускается в фоновом подпроцессе и в этом варианте осуществления использует копии SDS. Средство синхронизации отвечает за предоставление запросов Create, Update и Delete, а также обработку запросов.Any control messages that are identified are processed during the second phase. Next, promotion (expansion) of properties to a higher level is performed for all elements that are marked as modified. The resulting updated representation of the XML data is compared with a copy of SDS, and the synchronization tool is notified. The synchronization tool runs in the background subprocess and in this embodiment uses copies of SDS. The synchronization tool is responsible for providing Create, Update, and Delete queries, as well as query processing.
Копия SDS содержит те же свойства, что и упомянутые выше. В обычной ситуации EntryID, BoundltemID, BoundItemType и LOBID являются одинаковыми для элемента комплекта программных приложений для продуктивной работы и копии SDS. Все различия между элементом комплекта программных приложений для продуктивной работы и копией SDS интерпретируются как запрос на обновление LOB-объекта. Если нет, ссылочная целостность нарушается, и элемент комплекта программных приложений для продуктивной работы должен быть дополнительно проанализирован. Основные причины любых различий состоят в следующем: элемент создан пользователем, еще нет копии SDS для этого элемента, но свойство BoundData является читаемым, и элемент скопирован, перемещен либо удален пользователем, привязка между EntryID и BoundItemID нарушена; может быть нуль, один или более элементов, все из которых связаны с одной копией SDS, и их свойства BoundData являются читаемыми, обновленной запрос встречи или запрос задачи принят пользователем; были повреждены соответствующее назначение встречи или задача (привязываемый элемент). EntryID сохранился, но свойство BoundData более не читается. Копия постороннего привязываемого объекта принята от другого пользователя. Свойство BoundData не читается, и нет соответствующей копии для этого элемента в SDS. Копия или привязываемый элемент отправлен другому пользователю, а затем он отправлен обратно. Это разновидность предшествующих возможностей, и она не может рассматриваться как специальный случай. Возможно, произошло повреждение данных.A copy of SDS contains the same properties as those mentioned above. In a typical situation, EntryID, BoundltemID, BoundItemType, and LOBID are the same for a productive suite item and a copy of SDS. All differences between an element of a software application suite for productive work and a copy of SDS are interpreted as a request to update a LOB object. If not, referential integrity is violated, and an element of the software application suite for productive work needs to be further analyzed. The main reasons for any differences are as follows: an element is created by the user, there is no SDS copy for this element yet, but the BoundData property is readable, and the element is copied, moved or deleted by the user, the binding between EntryID and BoundItemID is broken; there may be zero, one or more elements, all of which are associated with one copy of SDS, and their BoundData properties are readable, an updated meeting request, or a task request is accepted by the user; The corresponding appointment or task (anchor item) has been damaged. The EntryID is preserved, but the BoundData property is no longer readable. A copy of a foreign bound object was received from another user. The BoundData property is not readable, and there is no corresponding copy for this element in SDS. A copy or anchor item is sent to another user, and then it is sent back. This is a variation of previous possibilities, and it cannot be considered as a special case. Data corruption may have occurred.
Имеется встроенное допущение, что BoundItemID является уникальным (первичный ключ), и комбинация BoundItemType+LOBID также является уникальной (вторичный ключ). Эти ограничения должны быть активированы в базе данных SDS. Разумеется, в почтовом ящике EntryID также является уникальным. Любой элемент, где свойство BoundData является нечитаемым или где дублированные свойства, сохраненные внутри, не соответствуют таким же свойствам (BoundItemID, BoundItemType и LOBID) в элементе Outlook, считается поврежденным. В качестве общего правила привязка данного поврежденного элемента автоматически отменяется. Любой дублированный элемент (где несколько элементов Outlook имеют один BoundItemID) обнаруживается и либо преобразуется в новый привязываемый элемент, либо его привязка отменяется; оригинал сопоставляется с копией SDS (в случае перемещения мы выбираем одну копию).There is a built-in assumption that BoundItemID is unique (primary key), and the combination of BoundItemType + LOBID is also unique (secondary key). These restrictions must be activated in the SDS database. Of course, in the mailbox EntryID is also unique. Any item where the BoundData property is unreadable or where duplicate properties stored internally do not match the same properties (BoundItemID, BoundItemType and LOBID) in the Outlook item are considered corrupted. As a general rule, the binding of this damaged item is automatically canceled. Any duplicate element (where several Outlook elements have one BoundItemID) is detected and either converted to a new binding element or its binding is canceled; the original is compared with a copy of SDS (in case of movement, we select one copy).
Поток информацииInformation flow
Фиг.10 иллюстрирует другой примерный поток информации между комплектом программных приложений для продуктивной работы на клиенте и LOB-системой. LOB-система (1070) может инициировать обновления в привязанных элементах посредством управляющих сообщений (Create, Update и Delete). Служба средства (1080) форматирования создает управляющие сообщения, как запрошено, посредством LOB-системы (1070). Управляющие сообщения передаются в комплект программных приложений для продуктивной работы посредством электронного сообщения в почтовом ящике (1010). Правило на стороне сервера перемещает управляющее сообщение в указанную (скрытую) папку (к примеру, папку 1020 управляющих сообщений), из которой они выбираются посредством процессора (1030) управляющих сообщений. Запросы Create, Update и Delete обрабатываются сразу, тогда как запросы Query помещаются в очередь в SDS (1050) и обрабатываются средством (1060) синхронизации. Служба средств (1040) привязки/обзора/разрешения (или службы, в зависимости от реализации) выполнена с возможностью сравнивать все привязываемые элементы в почтовом ящике (1010) с SDS (1050) и идентифицировать несовпадения/изменения в привязываемых элементах.Figure 10 illustrates another exemplary flow of information between a set of software applications for productive work on the client and the LOB system. The LOB system (1070) can initiate updates in anchored elements through control messages (Create, Update, and Delete). The format tool (1080) service generates control messages, as requested, through the LOB system (1070). Control messages are transferred to a set of software applications for productive work by means of an electronic message in the mailbox (1010). The server-side rule moves the control message to the specified (hidden) folder (for example, the control message folder 1020) from which they are selected by the control message processor (1030). Create, Update, and Delete queries are processed immediately, while Query queries are queued in SDS (1050) and processed by synchronization tool (1060). The binding / review / permission tool (1040) service (or services, depending on the implementation) is configured to compare all bindable items in the mailbox (1010) with SDS (1050) and identify mismatches / changes in the bindable items.
Хотя не очень распространенный, но при этом важный, сценарий включает в себя повторное создание LOB-системой всех привязываемых элементов для данного пользователя. Это может быть использовано для того, чтобы заполнить почтовый ящик начальными привязываемыми элементами, а также как часть восстановления после сбоя, когда некоторые элементы были потеряны или повреждены. Разновидность этого сценария может быть использована для того, чтобы обновлять существующие привязываемые элементы до нового определения (схемы) привязки. Она также может запрашивать информацию о текущем состоянии привязываемых элементов (Query). Другое распространенное использование заключается в том, чтобы отправлять обычные почтовые сообщения в почтовый ящик пользователя (1010); в этом случае система синхронизации не участвует.Although not very common, but important at the same time, the scenario involves the re-creation by the LOB system of all the binding elements for a given user. This can be used to populate the mailbox with initial snap items, as well as as part of a crash recovery when some items were lost or damaged. A variation of this scenario can be used to update existing binding elements to a new binding definition (schema). It can also request information about the current state of the linked items (Query). Another common use is to send regular mail messages to the user's mailbox (1010); in this case, the synchronization system is not involved.
Идентификационные данные отправителя используются для того, чтобы отличать допустимые управляющие сообщения от неавторизованных (или ложных) управляющих сообщений. Информация в управляющем сообщении может быть зашифрована, чтобы защитить его конфиденциальность.Sender ID is used to distinguish valid control messages from unauthorized (or false) control messages. Information in the control message can be encrypted to protect its confidentiality.
Первичная машина отвечает за обработку управляющих сообщений, продвижение свойств на более высокий уровень, разрешение конфликтов и предоставление обновлений в LOB. Это поддерживает SDS и почтовый ящик синхронизированными. Вторичная машина может быть использована для того, чтобы обновлять привязываемые элементы посредством UI. Она также привязывает собственную базу данных SDS с использованием синхронизации, но с некоторыми важными отличиями. Вторичная машина не обрабатывает управляющее сообщение и не выполняет продвижение (промотирование) свойств на более высокий уровень в ходе синхронизации, также вторичная машина не отправляет изменения в LOB-систему. При составлении SDS вторичная машина предполагает, что данные в почтовом ящике корректные. Все сбои по обновлению SDS вследствие проблем ссылочной целостности "тихо" игнорируются, поскольку предполагается, что первичная машина в итоге разрешит конфликт, и что разрешение будет распространено на вторичную машину. Важное следствие этих правил заключается в том, что SDS на вторичной машине не содержит полное состояние всех ожидающих выполнения изменений, а следовательно, оно не может быть расширено на первичную.The primary machine is responsible for processing control messages, pushing properties to a higher level, resolving conflicts, and providing updates to the LOB. It keeps SDS and mailbox synchronized. A secondary machine can be used to update binding items via the UI. It also binds its own SDS database using synchronization, but with some important differences. The secondary machine does not process the control message and does not advance (promote) the properties to a higher level during synchronization, nor does the secondary machine send the changes to the LOB system. When compiling SDS, the secondary machine assumes that the data in the mailbox is correct. All failures to update SDS due to referential integrity issues are silently ignored, since it is assumed that the primary machine will eventually resolve the conflict, and that the resolution will be extended to the secondary machine. An important consequence of these rules is that SDS on the secondary machine does not contain the full state of all pending changes, and therefore it cannot be extended to the primary.
Сервер может быть выполнен с возможностью хранить кэш синхронизации (к примеру, аналогично SDS, но исключая информацию привязываемых данных) для целей распространения ответов по бизнес-состоянию от сервера в различные вторичные клиентские машины. Периодически сервер может проталкивать (записывать) изменения на вторичный клиент, так чтобы вторичные клиенты имели самую свежую копию соответствующих данных SDS.The server can be configured to store a synchronization cache (for example, similar to SDS, but excluding data to be bound) for the purpose of distributing business status responses from the server to various secondary client machines. Periodically, the server can push (write) changes to the secondary client so that the secondary clients have the latest copy of the corresponding SDS data.
Подсистема синхронизацииSynchronization subsystem
Подсистема синхронизации проиллюстрирована на фиг.11, и она состоит из следующих основных компонентов: контроллер (1102), диспетчер (1106) привязываемых элементов, средство упаковки привязываемых элементов, средство (1112) обзора, средство (1109) разрешения, процессор (1110) управляющих сообщений, поставщик (1107) данных и средство (1105) синхронизации.The synchronization subsystem is illustrated in Fig. 11, and it consists of the following main components: controller (1102), attached items manager (1106), attached items packaging tool, review tool (1112), resolution tool (1109), control processor (1110) messaging provider (1107) data and means (1105) synchronization.
Контроллер (1102) - это общедоступный компонент, используемый для того, чтобы управлять процессом синхронизации.A controller (1102) is a public component used to control the synchronization process.
Диспетчер (1106) привязываемых элементов - это общедоступный компонент, который используется для того, чтобы создавать и/или непосредственно осуществлять доступ к привязываемым элементам. Средство упаковки привязываемых элементов - это общедоступное средство упаковки, которое инкапсулирует элемент комплекта программных приложений для продуктивной работы как привязываемый элемент или отменяет привязку элемента. В некоторых реализациях функциональность диспетчера (1106) привязываемых элементов может быть включена как часть контроллера (1102) или как часть другого компонента.A binding element manager (1106) is a public component that is used to create and / or directly access binding elements. A snap-in packaging tool is a publicly available packaging tool that encapsulates an element of a software application suite for productive work as a snap-in item or undo an item. In some implementations, the functionality of the dispatcher (1106) of the bindable elements may be included as part of the controller (1102) or as part of another component.
Средство (1112) обзора - это внутренний компонент, используемый для того, чтобы находить привязываемые элементы, которые должны быть проанализированы (поскольку они изменились с момента, когда произошла последняя синхронизация). В некоторых реализациях функциональность средства (1112) обнаружения может быть включена как часть контроллера (1102) или как часть другого компонента.The viewer (1112) is an internal component used to find anchorable items that need to be analyzed (since they have changed since the last synchronization occurred). In some implementations, the functionality of the detection tool (1112) may be included as part of the controller (1102) or as part of another component.
Средство (1109) разрешения - это внутренний компонент, используемый для того, чтобы анализировать привязываемые элементы и либо разрешать изменения локально (посредством расширения (распространения) свойств на более высокий уровень), и/или помечать их для полной синхронизации. В некоторых реализациях функциональность средства (1109) разрешения может быть включена как часть контроллера (1102) или как часть другого компонента.The resolution tool (1109) is an internal component used to analyze binding elements and either allow changes locally (by expanding (distributing) properties to a higher level) and / or mark them for complete synchronization. In some implementations, the functionality of the resolution tool (1109) may be included as part of a controller (1102) or as part of another component.
Процессор (1110) управляющих сообщений - это внутренний компонент, используемый для того, чтобы обрабатывать управляющие сообщения из отслеживаемой указанной папки (1111) для сообщений, отправляемых средством форматирования. Управляющие сообщения обрабатываются так, чтобы обновлять элементы комплекта программных приложений для продуктивной работы в случае глаголов Create/Update/Delete либо предоставлять команды Query, которые должны быть обработаны средством синхронизации. В некоторых реализациях функциональность процессора (1110) управляющих сообщений может быть включена как часть контроллера (1102) или как часть другого компонента.The control message processor (1110) is an internal component used to process control messages from the indicated indicated folder (1111) for messages sent by the formatter. Control messages are processed in such a way as to update the elements of the software application suite for productive work in the case of the verbs Create / Update / Delete or to provide Query commands that must be processed by the synchronization tool. In some implementations, the functionality of the control message processor (1110) may be included as part of the controller (1102) or as part of another component.
Поставщик (1107) данных - это внутренний компонент, предоставляющий доступ к таблицам (1108) данных SDS. В некоторых реализациях функциональность поставщика (1107) данных может быть включена как часть контроллера (1102) или как часть другого компонента.A data provider (1107) is an internal component that provides access to SDS data tables (1108). In some implementations, the functionality of a data provider (1107) may be included as part of a controller (1102) or as part of another component.
Средство (1105) синхронизации - это внутренний компонент, отвечающий за: оповещение LOB-систем, когда привязываемые элементы создаются, обновляются или удаляются на клиенте, обновление хранилища данных синхронизации (SDS 1108) после успешных оповещений, обработку управляющих сообщений Query и сообщения состояния процесса синхронизации. В некоторых реализациях функциональность средства (1105) синхронизации может быть включена как часть контроллера (1102) или как часть другого компонента.The synchronization tool (1105) is an internal component responsible for: notifying LOB systems when linked items are created, updated or deleted on the client, updating the synchronization data store (SDS 1108) after successful notifications, processing Query control messages and synchronization process status messages . In some implementations, the functionality of the synchronization tool (1105) may be included as part of a controller (1102) or as part of another component.
Синхронизация изменений проиллюстрирована посредством фиг.12, как следует ниже. Изменения в привязываемые элементы могут выполняться только на первичной машине (машине с поддержкой OBA) либо посредством другого внутреннего интерфейса, например, из веб-службы (к примеру, Outlook Web Access или OWA), либо каких-либо других клиентов и мобильных устройств без поддержки OBA. В зависимости от того, где проведены изменения, система синхронизирует их с помощью немного отличающихся кодовых путей.The timing of the changes is illustrated by FIG. 12, as follows. Changes to binding elements can only be performed on the primary machine (a machine with OBA support) or through another internal interface, for example, from a web service (for example, Outlook Web Access or OWA), or any other clients and mobile devices without support OBA Depending on where the changes are made, the system synchronizes them using slightly different code paths.
Управление привязываемыми элементами: клиенты с поддержкойManage Bound Items: Supported Clients
Пользователь может создавать, обновлять и удалять привязываемые элементы в клиенте, который поддерживает синхронизацию, например, с помощью встроенного или подключаемого компонента. Система обнаруживает изменения и автоматически предоставляет запрос на изменения в LOB-систему. Запрос обрабатывается, и LOB-система отправляет обратно ответ успешности или сбоя на уровне приложения. Этот ответ принимается клиентом, и бизнес-состояние приложения привязываемого элемента обновляется. В случае новых привязываемых элементов (к примеру, созданных в Outlook) ответ из LOB-системы используется системой для того, чтобы коррелировать привязываемый элемент с LOB-объектом.The user can create, update and delete binding items in a client that supports synchronization, for example, using the built-in or plug-in component. The system detects changes and automatically provides a request for changes to the LOB system. The request is processed, and the LOB system sends back a success or failure response at the application level. This response is accepted by the client, and the business state of the bound item application is updated. In the case of new binding elements (for example, created in Outlook), the response from the LOB system is used by the system in order to correlate the attached element with the LOB object.
Управление привязываемыми элементами: веб-доступManage Bound Items: Web Access
Пользователь осуществляет доступ к своему почтовому ящику посредством веб-доступа. Привязываемые элементы предоставляются пользователю как стандартные элементы. Пользователь может изменять обычным образом стандартную информацию, но не расширенную информацию. Пользователь может обновлять или удалять существующие привязываемые элементы, но не может создавать новые за исключением случая копирования существующего привязанного элемента (косвенное создание). Когда пользователь возвращается к первичной машине, изменения, сделанные посредством веб-доступа, синхронизируются посредством серверного приложения (к примеру, посредством Microsoft Exchange). Система обнаруживает изменения и автоматически предоставляет соответствующий запрос на изменения в LOB-систему.The user accesses his mailbox through web access. Bound items are provided to the user as standard items. The user can change the standard information in the usual way, but not the extended information. The user can update or delete existing anchor elements, but cannot create new ones, except when copying an existing anchor element (indirect creation). When a user returns to the primary machine, changes made through web access are synchronized through a server application (for example, through Microsoft Exchange). The system detects changes and automatically submits the corresponding change request to the LOB system.
Управление привязываемыми элементами: клиенты без поддержкиManage Bound Items: Non-Supported Clients
Пользователь может осуществлять доступ к своему почтовому ящику с помощью клиента комплекта программных приложений для продуктивной работы, который не имеет соответствующей поддержки (не разрешен). Привязываемые элементы отображаются как стандартные элементы. Пользователь может изменять обычным образом стандартную информацию, но не расширенную информацию. Пользователь может обновлять или удалять существующие привязываемые элементы, но не может создавать новые. После этого пользователь синхронизируется с серверным приложением (к примеру, Microsoft Exchange). Когда пользователь возвращается к первичной клиентской машине, изменения, выполненные в клиенте без поддержки, синхронизируются из серверного приложения. Система обнаруживает изменения и автоматически предоставляет соответствующий запрос на изменения в LOB-систему.The user can access his mailbox with the help of a client of a set of software applications for productive work, which does not have the appropriate support (not allowed). Bound items are displayed as standard items. The user can change the standard information in the usual way, but not the extended information. The user can update or delete existing binding elements, but cannot create new ones. After that, the user is synchronized with the server application (for example, Microsoft Exchange). When the user returns to the primary client machine, changes made to the client without support are synchronized from the server application. The system detects changes and automatically submits the corresponding change request to the LOB system.
Управление привязываемыми элементами: мобильные устройстваManage Bound Items: Mobile Devices
Пользователь осуществляет доступ к своему почтовому ящику посредством мобильного устройства. Специальной поддержки мобильных устройств не предусмотрено, они трактуются как веб-доступ. Привязываемые элементы предоставляются пользователю как стандартные элементы. Пользователь может изменять обычным образом стандартную информацию, но не расширенную информацию. Пользователь может обновлять или удалять существующие привязываемые элементы, но не может создавать новые. Когда пользователь возвращается к первичной клиентской машине, изменения, сделанные на мобильном устройстве, синхронизируются посредством серверного приложения (к примеру, Microsoft Exchange). Система обнаруживает изменения и автоматически предоставляет соответствующий запрос на изменения в LOB-систему.The user accesses his mailbox through a mobile device. Special support for mobile devices is not provided, they are treated as web access. Bound items are provided to the user as standard items. The user can change the standard information in the usual way, but not the extended information. The user can update or delete existing binding elements, but cannot create new ones. When a user returns to the primary client machine, changes made on the mobile device are synchronized through a server application (for example, Microsoft Exchange). The system detects changes and automatically submits the corresponding change request to the LOB system.
Управление привязываемыми элементами: множество клиентов с поддержкойManage Bound Items: Many Supported Clients
Пользователь имеет "первичную" клиентскую машину и любое количество "вторичных" клиентских машин, причем каждая машина имеет установленное клиентское приложение, которое предоставляет синхронизацию между приложениями комплекта программных приложений для продуктивной работы и LOB-системой. Пользователь может создавать, обновлять или удалять привязываемые элементы на любой машине. Изменения, сделанные на одной машине, синхронизируются с другими посредством серверного приложения (к примеру, Microsoft Exchange), но в одном варианте осуществления только первичная машина имеет возможность синхронизироваться с LOB-системой. "Первичная" машина задается во время установки; другие машины считаются "вторичными" машинами. Нет специального предела на число вторичных машин, которое может иметь пользователь. Когда возможность подключения к LOB-системе доступна на первичной машине, система автоматически отправляет требуемые запросы на изменение в LOB-систему.The user has a “primary” client machine and any number of “secondary” client machines, and each machine has an installed client application that provides synchronization between applications of a set of software applications for productive work and the LOB system. The user can create, update or delete anchored items on any machine. Changes made on one machine are synchronized with others through a server application (for example, Microsoft Exchange), but in one embodiment, only the primary machine is able to synchronize with the LOB system. The "primary" machine is set during installation; other machines are considered "secondary" machines. There is no special limit on the number of secondary machines that a user can have. When the ability to connect to the LOB system is available on the primary machine, the system automatically sends the required change requests to the LOB system.
Описанная система может быть скомпонована так, что кэш синхронизации поддерживается на сервере для целей распространения ответов по бизнес-состоянию от сервера в различные вторичные клиентские машины. Для этого примера кэш синхронизации сервера обновляется до или после каждого обзора первичного клиента. Кэш синхронизации сервера может состоять из всех данных из SDS за исключением BoundData. Согласно расписанию интервалов обзоров кэш синхронизации сервера может загружаться с сервера в собственную SDS каждого вторичного клиента.The described system can be arranged so that the synchronization cache is maintained on the server for the purpose of distributing business status responses from the server to various secondary client machines. For this example, the server synchronization cache is updated before or after each primary client review. The server synchronization cache may consist of all data from the SDS except for BoundData. According to the schedule of review intervals, the server synchronization cache can be loaded from the server into the own SDS of each secondary client.
Управление привязываемыми элементами: распространение измененийManaging Bound Items: Propagating Changes
Когда изменения в соответствующие бизнес-объекты выполняются в LOB-системе, серверное приложение оповещается средством форматирования. Оповещение об изменения доставляется в клиенты с поддержкой (разрешенные), которым может потребоваться применить изменения к привязываемому элементу. Поскольку оповещение об изменениях вытолкнуто (передано), клиенты не должны перебрасывать обновление и могут немедленно отвечать без ожидания в течение назначенного времени синхронизации.When changes to the corresponding business objects are made in the LOB system, the server application is notified by the formatter. Notification of changes is delivered to clients with support (allowed), who may need to apply changes to the element to be bound. Since the change notification is pushed (transmitted), clients do not have to reload the update and can immediately respond without waiting for the appointed synchronization time.
Способ синхронизацииSynchronization method
Фиг.13 - это блок-схема последовательности операций примерного способа синхронизации. Периодически системный процесс средства обзора может находить и "помечать" привязываемые элементы, которые должны быть синхронизированы, при этом данные элементы помещаются в логический список для синхронизации (список синхронизации). Для каждого элемента в списке синхронизации запрос на создание, обновление или удаление (запрос CUD) формируется и сохраняется в исходящей очереди (к примеру, VOQ 712 с фиг.7). Обращение к веб-службе затем инициируется, с тем чтобы могло быть установлено соединение к LOB-системе. Обращение к веб-службе может завершиться успешно, ошибкой или сформировать исключение соединения.13 is a flowchart of an example synchronization method. Periodically, the system tool of the viewer can find and “tag” the elements to be linked that are to be synchronized, while these elements are placed in a logical list for synchronization (synchronization list). For each element in the synchronization list, a request to create, update or delete (CUD request) is generated and stored in the outgoing queue (for example,
Успешное соединение устанавливается, когда ответ получается от LOB в ответ на обращение к веб-службе. Для успешного соединения к веб-службе система обновляет копию привязываемого элемента в SDS информацией из ответа. Дополнительные запросы CUD обрабатываются аналогично для каждого элемента в списке синхронизации.A successful connection is established when a response is received from the LOB in response to a call to the web service. To successfully connect to the web service, the system updates the copy of the bound element in the SDS with information from the response. Additional CUD requests are handled similarly for each item in the synchronization list.
Ошибка соединения возникает, когда исключение, отличное от исключения соединения, предоставляется из LOB-системы в ответ на обращение к веб-службе. Для ошибки соединения к веб-службе запрос CUD сохраняется в исходящей очереди и помечается для повтора. Счетчик повторов запроса CUD может быть инициализирован, когда идентифицирована первая ошибка соединения. Повторы продолжаются до тех пор, пока либо не будет установлено успешное соединение, либо максимальное число попыток, разрешенных в заранее определенном интервале времени, не достигнет предела. Запрос CUD перемещается в очередь ошибочных запросов, когда максимальное число разрешенных попыток достигается без успеха. Дополнительные запросы CUD не обрабатываются до тех пор, пока успешное соединение не будет достигнуто.A connection error occurs when an exception other than a connection exception is thrown from the LOB system in response to a call to the web service. For an error connecting to the web service, the CUD request is stored in the outgoing queue and marked for retry. The CUD request retry counter can be initialized when the first connection error is identified. Repeats continue until either a successful connection is established or the maximum number of attempts allowed in a predetermined time interval reaches the limit. The CUD request moves to the error request queue when the maximum number of allowed attempts is reached without success. Additional CUD requests are not processed until a successful connection is reached.
Исключение соединения может возникать, когда клиент имеет допустимый куки-файл аутентификации, и передача на целевой сервер завершается ошибкой. Система переходит к следующему элементу в списке синхронизации, когда исключение соединения возникает в результате обращения к веб-службе.A connection exception can occur when the client has a valid authentication cookie, and the transfer to the target server fails. The system moves to the next item in the synchronization list when a connection exception occurs as a result of accessing the web service.
Примерный поток операций синхронизации проиллюстрирован на фиг.13, как описано ниже. Обработка начинается на этапе 1301 и переходит к этапу 1305 принятия решения.An exemplary synchronization workflow is illustrated in FIG. 13, as described below. Processing begins at
На этапе 1305 принятия решения система синхронизации комплекта программных приложений для продуктивной работы оценивает список синхронизации, чтобы идентифицировать все привязываемые элементы, которые должны быть синхронизированы между приложением комплекта программных приложений для продуктивной работы и LOB-приложением. Когда нет привязываемых элементов в списке синхронизации, обработка переходит к этапу 1310, на котором система ожидает в течение заранее определенного времени (к примеру, X минут) до повторной оценки списка синхронизации. Когда привязываемые элементы обнаружены в списке синхронизации, система определяет, достигнуто ли максимальное число ошибочных запросов, на этапе 1315. Когда максимальное число запросов достигнуто, обработка снова переходит к этапу 1310. Альтернативно, обработка переходит к этапу 1320, на котором создается запрос CUD.In
Переходя к этапу 1325, запрос CUD помещается в очередь исходящих запросов, например, VOQ 712 из фиг.7. На этапе 1330 система синхронизации приложений комплекта программных приложений для продуктивной работы отправляет каждый запрос в очереди исходящих запросов в LOB-систему посредством вызова (обращения к) службе, такого как обращение к веб-службе. Переходя к этапу 1335, запрос обращения CUD оценивается для того, чтобы определить то, был ли запрос успешно предоставлен в LOB-систему. Обработка переходит от этапа 1335 к этапу 1340 (на котором обновляется хранилище данных синхронизации, или SDS), когда запрос обращения CUD является успешным. Обработка переходит от этапа 1335 принятия решения к этапу 1345, когда запрос обращения CUD завершается ошибкой. В некоторых случаях исключение подключения формируется, и обработка переходит от этапа 1335 принятия решения к этапу 1305 принятия решения.Going to block 1325, the CUD request is queued for outgoing requests, for example,
На этапе 1345 система синхронизации приложения комплекта программных приложений для продуктивной работы пытается повторить запрос обращения CUD. На этапе 1350 система определяет то, принят ли ответ от запроса обращения. Когда ответ успешный, обработка переходит от этапа 1350 принятия решения к этапу 1340, на котором обновляется SDS. Когда ответ ошибочный, обработка переходит от этапа 1350 принятия решения к этапу 1360 принятия решения. Если ответ не принят, обработка переходит от этапа 1350 принятия решения к этапу 1355, на котором система ожидает в течение тайм-аута перед попыткой еще одного повтора на этапе 1345.At
На этапе 1360 принятия решения система определяет, достигнуто ли максимальное число повторов для запроса обращения CUD. Кода максимальное число повторов достигнуто, обработка переходит к этапу 1365, на котором запрос CUD перемещается в очередь ошибок. Когда максимальное число повторов не превышено, система увеличивает внутренний счетчик повторов на этапе 1370 и переходит к этапу 1355. чтобы дождаться еще одного повтора.At
Ссылка на синхронизированные элементыLink to synchronized items
Как описано выше, привязки создаются между LOB-объектами и PS-элементами. Когда система синхронизации не имеет какого-либо прямого доступа к LOB-объектам, система SDS хранит отдельную копию того, что как она считает, хранится в LOB-системе. Когда привязка между LOB-объектом и PS-элементом создана, копия синхронизированного PS-элемента может быть помещена в SDS, с тем чтобы PS-элемент мог быть индексирован с помощью LOBID, ассоциативно связанного с LOB-объектом. Другими словами, PS-элемент, который ассоциативно связан с LOB-объектом, может быть извлечен из SDS со ссылкой на LOBID. Поскольку PS-элемент может быть извлечен со ссылкой на LOBID, ряд «интересующихся» приложений, подключаемых модулей или других программных методов может быть реализован, которые могут использовать PS-элемент (к примеру, система поточной обработки баз данных).As described above, bindings are created between LOB objects and PS elements. When the synchronization system does not have any direct access to the LOB objects, the SDS system stores a separate copy of what it believes is stored in the LOB system. When the link between the LOB and the PS is created, a copy of the synchronized PS can be placed in the SDS so that the PS can be indexed using the LOBID associated with the LOB. In other words, the PS element that is associated with the LOB object can be retrieved from the SDS with reference to the LOBID. Since the PS element can be retrieved with reference to the LOBID, a number of "interested" applications, plug-ins, or other software methods can be implemented that can use the PS element (for example, a system for stream processing of databases).
В одном примере LOB-приложение может передавать LOB-идентификатор (к примеру, LOBID) в приложение комплекта программных приложений для продуктивной работы посредством почтового сообщения. Почтовое сообщение включает в себя внедренную информацию, которая ссылается на LOB-элемент. Например, LOBID может быть вложен в заголовок, ассоциативно связанный с почтовым сообщением. Почтовое сообщение необязательно должно содержать (вложенный или иным образом) сам LOB-объект, поскольку LOBID ссылается на LOB-объект. После того как почтовое сообщение принято, дескриптор электронной почты для комплекта программных приложений для продуктивной работы может идентифицировать конкретный элемент комплекта программных приложений для продуктивной работы в тени синхронизации или хранилище данных синхронизации, который обращается к LOB-идентификатору.In one example, a LOB application may send a LOB identifier (e.g., LOBID) to an application in a software suite for productive work through a mail message. An email message includes embedded information that refers to a LOB element. For example, a LOBID may be nested in a header associated with a mail message. The mail message does not have to contain (nested or otherwise) the LOB object itself, since the LOBID refers to the LOB object. After the email message is received, the email descriptor for the productive software suite can identify a particular element of the software suite for productive work in the shadow of synchronization or the synchronization data store that accesses the LOB identifier.
В другом примере пользователь может ссылаться на элемент комплекта программных приложений для продуктивной работы с помощью ссылки (к примеру, URL-ссылки в любом числе форм, например, HTTP, HTTPS, FTP, FTPS, OBA и т.д.), который ссылается на LOB-идентификатор, ассоциативно связанный с PS-элементом в SDS.In another example, a user can refer to an element of a software application suite for productive work using a link (for example, URL links in any number of forms, for example, HTTP, HTTPS, FTP, FTPS, OBA, etc.), which refers to LOB identifier associated with the PS element in SDS.
В еще одном примере панель действий, панель задач или другая подобная программная методология может быть активирована, когда LOB-система отправляет почтовое сообщение в систему комплекта программных приложений для продуктивной работы. После активации программная методология может извлекать элемент комплекта программных приложений для продуктивной работы из SDS посредством ссылки на LOBID и затем действовать согласно элементу комплекта программных приложений для продуктивной работы.In yet another example, an action bar, task bar, or other similar software methodology can be activated when the LOB system sends an email message to the software suite system for productive work. Once activated, the software methodology can retrieve an element of the software application suite for productive work from the SDS by referencing the LOBID and then act on the element of the software application suite for productive work.
Действия, которые могут выполняться для элемента комплекта программных приложений для продуктивной работы в программной методологии, могут приводить к созданию, обновлению или удалению элемента комплекта программных приложений для продуктивной работы, который затем может быть синхронизирован с LOB-системой, как описано выше. LOB-система может эффективно передавать задачу пользователю комплекта программных приложений для продуктивной работы посредством ссылки на программную методологию и LOBID в почтовом сообщении.Actions that can be performed for an element of a software application suite for productive work in a software methodology can lead to the creation, updating, or deletion of an element of a software application suite for productive work, which can then be synchronized with the LOB system, as described above. The LOB system can effectively transfer the task to the user of the software application suite for productive work by referring to the software methodology and the LOBID in the mail message.
В одной примерной программной методологии почтовое сообщение из LOB-системы может сообщать запрос пользователю, чтобы выполнить анализ (просмотр) или утверждение, ассоциативно связанное с конкретным элементом комплекта программных приложений для продуктивной работы, который синхронизирован с LOB-объектом, идентифицированным посредством LOBID. Почтовое сообщение может передаваться автоматически посредством LOB-системы, когда наступает крайний срок в LOB-системе или когда предоставляется посредством конкретного пользователя LOB-системы. Почтовое сообщение может быть создано посредством LOB-системы посредством передачи информации (к примеру, посредством представления XML-данных, посредством текста, посредством вложенных данных и т.д.) в средство форматирования, которое затем взаимодействует с сервером электронной почты и каталогов (см., к примеру, фиг.7), чтобы сформировать почтовое сообщение. Почтовое сообщение может подчеркивать необходимость завершить действие, которое ассоциативно связано с элементом комплекта программных приложений для продуктивной работы, предоставлять дополнительные пояснения и т.д., при этом почтовое сообщение может ссылаться на задачи в системе поточной обработки баз данных. Поскольку приложение комплекта программных приложений для продуктивной работы может интерпретировать ссылку, вложенную в почтовое сообщение, как задачу, фактическая информация по задаче может быть представлена автоматически. После этого пользователь может выбрать и перейти по ссылке, чтобы открыть элемент задачи в приложении комплекта программных приложений для продуктивной работы, при этом ассоциативно связанная информация системы баз данных может быть сохранена в виде XML-данных. Поскольку LOB-идентификатор может быть вложен в ссылку, любое требуемое действие, ассоциативно связанное с элементом комплекта программных приложений для продуктивной работы, может быть осуществлено посредством конфигурирования дескриптора (к примеру, URL-дескриптора) соответствующим образом.In one exemplary software methodology, a mail message from the LOB system can send a request to the user to perform an analysis (scan) or statement associated with a particular element of the software application suite for productive work, which is synchronized with the LOB object identified by the LOBID. A mail message can be transmitted automatically through the LOB system when a deadline in the LOB system occurs or when it is provided through a specific user of the LOB system. An e-mail message can be created by means of the LOB system by transmitting information (for example, by presenting XML data, by means of text, by means of embedded data, etc.) to a formatting tool, which then interacts with the email and directory server (see , for example, FIG. 7) to generate a mail message. An e-mail message may emphasize the need to complete an action that is associated with an element of the software application suite for productive work, provide additional explanations, etc., while the e-mail message can refer to tasks in the in-line database processing system. Since the application of the set of software applications for productive work can interpret the link attached to the mail message as a task, the actual information on the task can be presented automatically. After that, the user can select and follow the link to open the task element in the application of the set of software applications for productive work, while the associated database system information can be saved as XML data. Since the LOB identifier can be embedded in a link, any required action associated with an element of the software application suite for productive work can be carried out by configuring the descriptor (for example, the URL descriptor) accordingly.
Хотя проиллюстрированы и описаны примерные варианты осуществления и применения, следует понимать, что изобретение не ограничено точной конфигурацией и ресурсами, описанными выше. Различные модификации, изменения и вариации, очевидные специалистам в данной области техники, могут быть выполнены в структуре, работе и деталях способов и систем, раскрытых в данном документе, без отклонения от области применения заявленного изобретения. Поскольку многие варианты осуществления изобретения могут быть выполнены без отступления от духа и области применения изобретения, изобретение состоит в прилагаемой далее формуле изобретения.Although exemplary embodiments and applications are illustrated and described, it should be understood that the invention is not limited to the exact configuration and resources described above. Various modifications, changes and variations obvious to those skilled in the art can be made in the structure, operation and details of the methods and systems disclosed herein without deviating from the scope of the claimed invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention consists in the appended claims.
Claims (20)
принимают передаваемое в режиме выталкивания сообщение электронной почты с помощью приложения (720) комплекта программных приложений для продуктивной работы, при этом управляющее сообщение (795) внедрено в передаваемое в режиме выталкивания сообщение электронной почты, причем управляющее сообщение - это представление (793) XML-данных из LOB-приложения (760), которое задает изменения в LOB-объекте;
извлекают управляющее сообщение (795) из сообщения электронной почты с помощью приложения (720) комплекта программных приложений для продуктивной работы на клиентской машине (710); и
идентифицируют изменения для привязываемого элемента в ответ на извлеченное управляющее сообщение (795) в ходе процесса (796) синхронизации, так чтобы привязываемый элемент был ассоциативно связан как с элементом (230) комплекта программных приложений для продуктивной работы, так и LOB-объектом (251), при этом управляющее сообщение (795) указывает по меньшей мере одно из: создания LOB-объекта, обновления LOB-объекта и удаления (214) LOB-объекта.1. A machine-readable medium having computer-executable instructions for synchronizing information between a business application (LOB) and an application of a set of software applications for productive work, while the instructions comprise the steps of:
receive the e-mail message transmitted in the eject mode using the application (720) of the software application suite for productive work, while the control message (795) is embedded in the e-mail message transmitted in the eject mode, and the control message is a representation (793) of XML data from the LOB application (760), which sets the changes in the LOB object;
extracting the control message (795) from the email message using the application (720) of a set of software applications for productive work on the client machine (710); and
changes are identified for the anchor element in response to the extracted control message (795) during the synchronization process (796), so that the anchor element is associated with both the element (230) of the productive software suite and the LOB object (251) wherein the control message (795) indicates at least one of: creating the LOB object, updating the LOB object, and deleting (214) the LOB object.
аутентифицируют сообщение электронной почты до извлечения управляющего сообщения (795), с тем чтобы предотвращалась имитация доступа от неавторизованных отправителей.2. The machine-readable medium of claim 1, wherein the instructions further comprise the step of:
authenticate the e-mail message before retrieving the control message (795) so as to prevent simulated access from unauthorized senders.
предоставляют оповещение пользователю, когда управляющее сообщение (795) извлечено из сообщения электронной почты.3. The computer readable medium of claim 1, wherein the instructions further comprise the step of:
provide an alert to the user when the control message (795) is retrieved from the email message.
автоматически помещают извлеченное управляющее сообщение (795) по меньшей мере в одно из: скрытой папки и очереди (714) входящих сообщений.4. The computer-readable medium of claim 1, wherein the instructions further comprise the step of:
automatically place the extracted control message (795) in at least one of: a hidden folder and a queue (714) of incoming messages.
сохраняют каждый привязываемый элемент в хранилище данных синхронизации (SDS, 1050) на клиентской машине (710).5. The machine-readable medium of claim 1, wherein the instructions further comprise the step of:
save each attached element in the synchronization data store (SDS, 1050) on the client machine (710).
идентифицируют изменения между элементами (230) приложения комплекта программных приложений для продуктивной работы и ассоциативно связанными LOB-объектами (251) с помощью SDS (1050) и помещают запросы на идентифицированные изменения в виртуальную очередь (712) запросов для синхронизации с LOB-системой (250).6. The machine-readable medium of claim 5, wherein the instructions further comprise the step of:
identify the changes between the elements (230) of the application of the software suite for productive work and the associated LOB objects (251) using SDS (1050) and place the requests for the identified changes in the virtual queue (712) of requests for synchronization with the LOB system (250 )
сравнивают все привязываемые элементы в почтовом ящике (1010) для приложения (720) комплекта программных приложений для продуктивной работы с SDS (1050) и обнаруживают и фиксируют ссылочную целостность между почтовым ящиком (1010) и SDS (1050).7. The machine-readable medium of claim 5, wherein the instructions further comprise the step of:
comparing all the binding elements in the mailbox (1010) for the application (720) of the software suite for productive work with SDS (1050) and detect and record the link integrity between the mailbox (1010) and SDS (1050).
помечают модифицированные элементы для последующей обработки, повышают уровень свойств помеченных элементов; и
сравнивают результирующее обновленное представление XML-данных с SDS-копией.8. The machine-readable medium of claim 7, wherein the instructions further comprise the steps of:
mark modified elements for subsequent processing, increase the level of properties of marked elements; and
comparing the resulting updated representation of the XML data with the SDS copy.
создают исходящий запрос (212) в ответ на изменение элемента комплекта программных приложений для продуктивной работы на клиентской машине (210), при этом исходящий запрос содержит по меньшей мере одно из:
создания, обновления и удаления (212), ассоциативно связанных с элементом (230) комплекта программных приложений для продуктивной работы;
помещают исходящий запрос в исходящую очередь (712) для синхронизации с LOB-приложением (760);
инициируют обращение (792) к веб-службе для запроса в очереди к LOB-приложению (760) в первый момент времени, с тем чтобы LOB-приложение (760) могло извлечь исходящий запрос из веб-службы, когда веб-служба успешно подключается к LOB-приложению (760); и
удаляют исходящий запрос из исходящей очереди (712) и обновляют хранилище данных синхронизации (SDS, 1050), когда веб-служба успешно подключается к LOB-приложению (760).10. The machine-readable medium of claim 1, wherein the instructions further comprise the steps of:
create an outgoing request (212) in response to a change in an element of the set of software applications for productive work on the client machine (210), while the outgoing request contains at least one of:
creating, updating, and deleting (212) associated with element (230) of a set of software applications for productive work;
place the outgoing request in the outgoing queue (712) for synchronization with the LOB application (760);
initiate a call (792) to the web service for queuing a request to the LOB application (760) at the first moment of time so that the LOB application (760) can retrieve the outgoing request from the web service when the web service successfully connects to LOB application (760); and
remove the outbound request from the outbound queue (712) and update the synchronization data store (SDS, 1050) when the web service successfully connects to the LOB application (760).
инициируют второе обращение (792) к веб-службе для исходящего запроса в исходящей очереди (712) во второй момент времени, когда веб-служба первоначально не смогла успешно подключиться к LOB-приложению.11. The computer readable medium of claim 10, wherein the instructions further comprise the step of:
initiate a second call (792) to the web service for an outgoing request in the outgoing queue (712) at the second point in time when the web service was initially unable to successfully connect to the LOB application.
кодируют запрос в представление XML-данных для приема посредством LOB-приложения (760).12. The machine-readable medium of claim 10, wherein the instructions further comprise the step of:
encoding a request for presenting XML data for reception by a LOB application (760).
процессор (104);
машиночитаемый носитель (116, 118, 120, 122, 124);
операционное окружение (126), сохраненное на машиночитаемом носителе и выполняемое в процессоре (104); и
приложение (128, 130), работающее под управлением операционного окружения (126) и выполненное с возможностью выполнять действие, при этом приложение (128, 130) выполнено с возможностью:
создавать запрос (214) в ответ на изменение LOB-объекта (251), при этом запрос содержит по меньшей мере одно из инструкции создать LOB-объект, обновить LOB-объект и удалить LOB-объект;
формировать представление (793) XML-данных, ассоциативно связанное с изменением LOB-объекта (251);
форматировать представление (770) XML-данных в управляющее сообщение (794), которое кодировано в сообщении электронной почты (780); и
передают в режиме проталкивания сообщение электронной почты (780) в приложение (720) комплекта программных приложений для продуктивной работы, с тем чтобы изменения в LOB-объекте (251) могли быть синхронизированы (730) с элементами приложения комплекта программных приложений для продуктивной работы, посредством извлечения управляющего сообщения (795) из сообщения электронной почты.13. A device for synchronizing information between a business application (LOB) and an application of a set of software applications for productive work, while the device contains:
processor (104);
computer readable medium (116, 118, 120, 122, 124);
operating environment (126) stored on a computer-readable medium and executed on a processor (104); and
an application (128, 130) running under the control of the operating environment (126) and configured to perform an action, while the application (128, 130) is configured to:
create a request (214) in response to a change in the LOB object (251), while the request contains at least one of the instructions to create a LOB object, update the LOB object, and delete the LOB object;
form a representation (793) of XML data associated with a change in the LOB object (251);
format the presentation (770) of XML data into a control message (794), which is encoded in an email message (780); and
transmit in an push mode an e-mail message (780) to the application (720) of the software application suite for productive work, so that changes in the LOB object (251) can be synchronized (730) with the application elements of the software application package for productive work, by retrieving the control message (795) from the email message.
принимать обращение (792) к веб-службе;
извлекать запрос (791) обновления из обращения (792) к веб-службе, при этом запрос (791) обновления ассоциативно связан с изменением элемента приложения комплекта программных приложений для продуктивной работы; и
обновлять LOB-объект в ответ на извлеченный запрос обновления, причем извлеченный запрос обновления соответствует по меньшей мере одному из инструкции создавать элемент приложения комплекта программных приложений для продуктивной работы, обновлять элемент приложения комплекта программных приложений для продуктивной работы и удалять элемент приложения комплекта программных приложений для продуктивной работы.15. The device according to item 13, in which the application is additionally configured so that:
Accept an online service (792)
retrieve the update request (791) from the web service call (792), wherein the update request (791) is associated with a change in the application element of the software application suite for productive work; and
update the LOB object in response to the retrieved update request, wherein the retrieved update request corresponds to at least one of an instruction to create an application element of a software application suite for productive work, update an application element of a software application suite for productive work, and delete an application element for a software application suite for productive work.
принимать обращение (792) к веб-службе из приложения (720) комплекта программных приложений для продуктивной работы,
извлекать запрос из обращения к веб-службе, и
создавать LOB-объект в ответ на извлеченный запрос.17. The device according to item 13, in which the application is additionally configured so that:
accept a call (792) to a web service from an application (720) of a set of software applications for productive work,
retrieve a request from a web service call, and
Create a LOB object in response to the retrieved request.
принимают представление (793) XML-данных из LOB-приложения (760), при этом представление (793) XML-данных идентифицирует изменения, ассоциативно связанные с по меньшей мере одним объектом в LOB-приложении (760);
форматируют (770) представление (793) XML-данных в управляющее сообщение (740);
внедряют управляющее сообщение (794) в сообщение электронной почты (780); и
передают в режиме выталкивания сообщение электронной почты (795) в приложение (720) комплекта программных приложений для продуктивной работы, с тем чтобы изменения, ассоциативно связанные по меньшей мере с одним объектом в LOB-приложении (760), могли быть синхронизированы с приложением (720) комплекта программных приложений для продуктивной работы.18. A method for synchronizing information between a business application (LOB) and a software suite application for productive work, the method comprising the steps of:
receiving a representation (793) of XML data from a LOB application (760), wherein the representation (793) of XML data identifies changes associated with at least one object in the LOB application (760);
format (770) the representation (793) of the XML data into a control message (740);
embed a control message (794) in an email message (780); and
send an e-mail message (795) to the application (720) of the software application suite for productive work in the push mode, so that changes associated with at least one object in the LOB application (760) can be synchronized with the application (720 ) a set of software applications for productive work.
принимают другое представление (792) XML-данных из приложения (720) комплекта программных приложений для продуктивной работы;
идентифицируют изменения, ассоциативно связанные с по меньшей мере одним элементом в приложении комплекта программных приложений для продуктивной работы, из другого представления (792) XML-данных; и
обновляют по меньшей мере один объект в LOB-приложении (760) на основе идентифицированных изменений, с тем чтобы упомянутый по меньшей мере один объект в LOB-приложении был привязан к по меньшей мере одному элементу в приложении комплекта программных приложений для продуктивной работы.19. The method according to p, optionally containing stages in which:
accept another representation (792) of XML data from an application (720) of a set of software applications for productive work;
identifying changes associated with at least one element in the application of the software application suite for productive work, from another representation (792) of XML data; and
updating at least one object in the LOB application (760) based on the identified changes so that the at least one object in the LOB application is associated with at least one element in the application of the software application suite for productive work.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71769405P | 2005-09-16 | 2005-09-16 | |
US60/717,694 | 2005-09-16 | ||
US75297105P | 2005-12-21 | 2005-12-21 | |
US60/752,971 | 2005-12-21 | ||
US11/437,430 | 2006-05-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2008114502A RU2008114502A (en) | 2009-10-27 |
RU2419849C2 true RU2419849C2 (en) | 2011-05-27 |
Family
ID=41352418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2008114502/08A RU2419849C2 (en) | 2005-09-16 | 2006-09-18 | Mechanism for synchronising set of applications for efficient work and business applications |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2419849C2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2252451C2 (en) * | 1999-08-31 | 2005-05-20 | Американ Экспресс Тревл Рилейтед Сервисиз Компани, Инк. | Method for performing transactions, computerized method for network server protection, transaction system, electronic wallet server, computerized online shopping method (variants) and computerized access control method |
-
2006
- 2006-09-18 RU RU2008114502/08A patent/RU2419849C2/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2252451C2 (en) * | 1999-08-31 | 2005-05-20 | Американ Экспресс Тревл Рилейтед Сервисиз Компани, Инк. | Method for performing transactions, computerized method for network server protection, transaction system, electronic wallet server, computerized online shopping method (variants) and computerized access control method |
Also Published As
Publication number | Publication date |
---|---|
RU2008114502A (en) | 2009-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11630841B2 (en) | Traversal rights | |
US20070067354A1 (en) | Productivity suite to line of business synchronization mechanism | |
CN101310265B (en) | Synchronization mechanism from productivity suite to line of business | |
KR101323037B1 (en) | Interfaces for a productivity suite application and a hosted user interface | |
US8090681B2 (en) | Resolving conflicts in content management systems | |
RU2421799C2 (en) | Safety in applications of equivalent nodes synchronisation | |
EP1934783A1 (en) | Productivity suite to line of business synchronization mechanism | |
RU2419849C2 (en) | Mechanism for synchronising set of applications for efficient work and business applications | |
MX2008004933A (en) | Productivity suite to line of business synchronization mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150526 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20150919 |