HK1218981B - Visualization interface for information object system - Google Patents
Visualization interface for information object system Download PDFInfo
- Publication number
- HK1218981B HK1218981B HK16107003.2A HK16107003A HK1218981B HK 1218981 B HK1218981 B HK 1218981B HK 16107003 A HK16107003 A HK 16107003A HK 1218981 B HK1218981 B HK 1218981B
- Authority
- HK
- Hong Kong
- Prior art keywords
- information object
- information
- data
- collaboration server
- computing device
- Prior art date
Links
Description
联邦资助的研究Federally funded research
本申请部分地起源于代表美国国防部远景研究规划局(“DARPA”)进行的与DARPA主题#SB072-032有关的研究。This application originates in part from research conducted on behalf of the Defense Advanced Research Projects Agency ("DARPA") of the United States Department of Defense in connection with DARPA Subject #SB072-032.
优先权要求Priority claim
本申请要求2013年3月15日提交的并通过引用全部并入本文的美国临时申请序列号61/787,688的优先权和利益。This application claims priority to and the benefit of U.S. Provisional Application Serial No. 61/787,688, filed March 15, 2013, which is incorporated herein by reference in its entirety.
本申请还要求2014年3月13日提交的并通过引用全部并入本文的美国实用新型申请序列号14/208,346的优先权和利益。This application also claims priority to and the benefit of U.S. Utility Application Serial No. 14/208,346, filed March 13, 2014, which is incorporated herein by reference in its entirety.
技术领域Technical Field
本公开内容涉及,但不限于,信息对象系统的可视化界面。The present disclosure relates to, but is not limited to, visualization interfaces for information object systems.
背景background
以文件和其它数据格式将信息存储在计算机上。各种应用可使用文件或其它数据格式来以有助于人理解的方式显现信息。应用可进一步以有助于人理解的方式显示在单独条的信息之间的关系。Information is stored on computers in files and other data formats. Various applications can use files or other data formats to display information in a way that is helpful for people to understand. Applications can further display the relationships between separate pieces of information in a way that is helpful for people to understand.
概述Overview
公开了用于通过在客户端计算设备上执行的客户端应用的用户界面向用户显现信息的各种技术。数据在协作服务器上被存储为一系列信息对象。客户端应用可以用本文公开的方式中的任一个或多个显现存储在该系列信息对象中的信息。Various techniques are disclosed for presenting information to a user through a user interface of a client application executed on a client computing device. Data is stored on a collaboration server as a series of information objects. The client application can present the information stored in the series of information objects using any one or more of the methods disclosed herein.
在实施方式中,提供了体现程序的非临时计算机可读介质,该程序包括:在客户端计算设备上产生用户界面的代码;响应于再现信息对象的请求代表用户向协作服务器查询待在用户界面内再现的信息对象的代码;从接收自协作服务器的信息对象获取形式数据的代码;以及至少部分地基于信息对象的形式数据在用户界面内再现信息对象的代码。在任一个或多个实施方式中,程序还可包括从信息对象获取相关信息对象的标识的代码;向协作服务器查询相关信息对象的代码;以及在用户界面内再现相关信息对象的代码。在任一个或多个实施方式中,程序还可包括在用户界面内再现在信息对象和相关信息对象之间的关系的指示的代码。在任一个或多个实施方式中,程序还可包括得到信息对象的修改的代码;将修改发送到协作服务器的代码;响应于从协作服务器接收到修改是有效的第一通知而在用户界面内再现信息对象的已修改版本的代码;以及响应于从协作服务器接收到修改是无效的第二通知而在用户界面内再现错误消息的代码。在任一个或多个实施方式中,程序还可包括响应于从数据源接收到数据而产生新信息对象的代码;创建将信息对象链接到新信息对象的信息对象引用的代码;以及将信息对象、新信息和信息对象引用发送到协作服务器的代码。在任一个或多个实施方式中,数据源包括产生数据并将数据传输到计算设备的电子设备。在任一个或多个实施方式中,信息对象包括唯一标识符、属性、信息对象引用、形式数据和函数。In one embodiment, a non-transitory computer-readable medium embodying a program is provided, the program comprising: code for generating a user interface on a client computing device; code for querying a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render an information object; code for obtaining form data from the information object received from the collaboration server; and code for rendering the information object within the user interface based at least in part on the form data of the information object. In any one or more embodiments, the program may further comprise code for obtaining an identification of a related information object from the information object; code for querying the collaboration server for the related information object; and code for rendering the related information object within the user interface. In any one or more embodiments, the program may further comprise code for rendering an indication of a relationship between the information object and the related information objects within the user interface. In any one or more embodiments, the program may further comprise code for obtaining modifications to the information object; code for transmitting the modifications to the collaboration server; code for rendering the modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modifications are valid; and code for rendering an error message within the user interface in response to receiving a second notification from the collaboration server that the modifications are invalid. In any one or more embodiments, the program may further comprise code for generating a new information object in response to receiving data from a data source; code for creating an information object reference linking the information object to the new information object; and code for transmitting the information object, the new information, and the information object reference to the collaboration server. In any one or more embodiments, a data source includes an electronic device that generates data and transmits the data to a computing device. In any one or more embodiments, an information object includes a unique identifier, attributes, an information object reference, form data, and a function.
在实施方式中,提供了包括计算设备和在计算设备上可执行的应用的系统,应用包括:在客户端计算设备上产生用户界面的逻辑;响应于再现信息对象的请求代表用户向协作服务器查询待在用户界面内再现的信息对象的逻辑;从接收自协作服务器的信息对象获取形式数据的逻辑;以及至少部分地基于信息对象的形式数据在用户界面内再现信息对象的逻辑。在任一个或多个实施方式中,应用还可包括从信息对象获取相关信息对象的标识的逻辑;向协作服务器查询相关信息对象的逻辑;以及在用户界面内再现相关信息对象的逻辑。在任一个或多个实施方式中,应用还可包括在用户界面内再现在信息对象和相关信息对象之间的关系的指示的逻辑。在任一个或多个实施方式中,应用还可包括得到信息对象的修改的逻辑;将修改发送到协作服务器的逻辑;响应于从协作服务器接收到修改是有效的第一通知而在用户界面内再现信息对象的已修改版本的逻辑;以及响应于从协作服务器接收到修改是无效的第二通知而在用户界面内再现错误消息的逻辑。在任一个或多个实施方式中,应用还可包括响应于从数据源接收到数据而产生新信息对象的逻辑;创建将信息对象链接到新信息对象的信息对象引用的逻辑;以及将信息对象、新信息和信息对象引用发送到协作服务器的逻辑。在任一个或多个实施方式中,数据源包括产生数据并将数据传输到计算设备的电子设备。在任一个或多个实施方式中,信息对象包括唯一标识符、属性、信息对象引用、形式数据和函数。In one embodiment, a system is provided that includes a computing device and an application executable on the computing device, the application including: logic for generating a user interface on a client computing device; logic for querying a collaboration server for an information object to be rendered within the user interface on behalf of a user in response to a request to render an information object; logic for obtaining form data from the information object received from the collaboration server; and logic for rendering the information object within the user interface based at least in part on the form data of the information object. In any one or more embodiments, the application may also include logic for obtaining an identification of a related information object from the information object; logic for querying the collaboration server for the related information object; and logic for rendering the related information object within the user interface. In any one or more embodiments, the application may also include logic for rendering an indication of a relationship between the information object and the related information objects within the user interface. In any one or more embodiments, the application may also include logic for obtaining modifications to the information object; logic for sending the modifications to the collaboration server; logic for rendering the modified version of the information object within the user interface in response to receiving a first notification from the collaboration server that the modification is valid; and logic for rendering an error message within the user interface in response to receiving a second notification from the collaboration server that the modification is invalid. In any one or more embodiments, the application may further include logic for generating a new information object in response to receiving data from a data source; logic for creating an information object reference linking the information object to the new information object; and logic for transmitting the information object, the new information, and the information object reference to the collaboration server. In any one or more embodiments, the data source includes an electronic device that generates and transmits the data to the computing device. In any one or more embodiments, the information object includes a unique identifier, attributes, an information object reference, formal data, and a function.
在实施方式中,提供了一种方法,其包括:经由计算设备在客户端计算设备上产生用户界面;经由计算设备响应于再现信息对象的请求代表用户向协作服务器查询待在用户界面内再现的信息对象;经由计算设备从接收自协作服务器的信息对象获取形式数据;以及经由计算设备至少部分地基于信息对象的形式数据在用户界面内再现信息对象。在一个或多个实施方式中,该方法还包括:经由计算设备从信息对象获取相关信息对象的标识;经由计算设备向协作服务器查询相关信息对象;以及经由计算设备在用户界面内再现相关信息对象。在一个或多个实施方式中,该方法还包括经由计算设备在用户界面内再现在信息对象和相关信息对象之间的关系的指示。在一个或多个实施方式中,该方法还包括:经由计算设备得到信息对象的修改;经由计算设备将修改发送到协作服务器;经由计算设备响应于从协作服务器接收到修改是有效的第一通知而在用户界面内再现信息对象的已修改版本;以及经由计算设备响应于从协作服务器接收到修改是无效的第二通知而在用户界面内再现错误消息。在一个或多个实施方式中,该方法还包括:经由计算设备响应于从数据源接收到数据而产生新信息对象;经由计算设备创建将信息对象链接到新信息对象的信息对象引用;以及经由计算设备将信息对象、新信息和信息对象引用发送到协作服务器。在一个或多个实施方式中,信息对象包括唯一标识符、属性、信息对象引用、形式数据和函数。In an embodiment, a method is provided that includes: generating a user interface on a client computing device via a computing device; querying a collaborative server, via the computing device, on behalf of a user, for an information object to be rendered within the user interface in response to a request to render an information object; obtaining, via the computing device, form data from the information object received from the collaborative server; and rendering, via the computing device, the information object within the user interface based at least in part on the form data of the information object. In one or more embodiments, the method further includes: obtaining, via the computing device, an identification of a related information object from the information object; querying the collaborative server, via the computing device, for the related information object; and rendering, via the computing device, the related information object within the user interface. In one or more embodiments, the method further includes rendering, via the computing device, an indication of a relationship between the information object and the related information objects within the user interface. In one or more embodiments, the method further includes: obtaining, via the computing device, a modification to the information object; sending, via the computing device, the modification to the collaborative server; rendering, via the computing device, a modified version of the information object within the user interface in response to receiving, from the collaborative server, a first notification that the modification is valid; and rendering, via the computing device, an error message within the user interface in response to receiving, from the collaborative server, a second notification that the modification is invalid. In one or more embodiments, the method further comprises: generating, via the computing device, a new information object in response to receiving data from a data source; creating, via the computing device, an information object reference linking the information object to the new information object; and sending, via the computing device, the information object, the new information, and the information object reference to the collaboration server. In one or more embodiments, the information object comprises a unique identifier, attributes, an information object reference, form data, and a function.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
参考附图可更好地理解本公开的很多方面。在附图中的部件不一定按比例,相反强调清楚地说明本公开的原理。而且,在附图中,相似的参考数字在全部几个视图中表示相应的部件。Many aspects of the present disclosure may be better understood with reference to the accompanying drawings. The components in the accompanying drawings are not necessarily to scale, but rather are emphasized to clearly illustrate the principles of the present disclosure. Moreover, in the accompanying drawings, like reference numerals represent corresponding components throughout the several views.
图1是根据本公开的各种实施方式的联网环境的图。FIG. 1 is a diagram of a networked environment according to various embodiments of the present disclosure.
图2是根据本公开的各种实施方式的在图1的联网环境中描绘的信息对象的图。2 is a diagram of information objects depicted in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图3A-G是根据本公开的各种实施方式的由在图1的联网环境中的客户端再现的用户界面的例子的图。3A-G are diagrams of examples of user interfaces rendered by a client in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图4是根据本公开的各种实施方式的、示出被实现为在图1的联网环境中执行的客户端应用和协作服务器的部分的功能的一个例子的流程图。4 is a flow diagram illustrating one example of functionality implemented as part of a client application and a collaboration server executing in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图5是根据本公开的各种实施方式的、示出被实现为在图1的联网环境中执行的客户端应用和协作服务器的部分的功能的一个例子的流程图。5 is a flow diagram illustrating one example of functionality implemented as part of a client application and a collaboration server executing in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图6是根据本公开的各种实施方式的、示出被实现为在图1的联网环境中执行的客户端应用和协作服务器的部分的功能的一个例子的流程图。6 is a flow diagram illustrating one example of functionality implemented as part of a client application and a collaboration server executing in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图7是根据本公开的各种实施方式的、示出被实现为在图1的联网环境中执行的客户端应用和协作服务器的部分的功能的一个例子的流程图。7 is a flow diagram illustrating one example of functionality implemented as part of a client application and a collaboration server executing in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图8是根据本公开的各种实施方式的、示出被实现为在图1的联网环境中执行的客户端应用和协作服务器的部分的功能的一个例子的流程图。8 is a flow diagram illustrating one example of functionality implemented as part of a client application and a collaboration server executing in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
图9是根据本公开的各种实施方式的提供在图1的联网环境中使用的计算环境的一个示例图示的示意性方框图。9 is a schematic block diagram providing one example illustration of a computing environment for use in the networked environment of FIG. 1 , according to various embodiments of the present disclosure.
具体实施方式DETAILED DESCRIPTION
概念图和思维导图常常便于更好地检查用于更快速地识别误解或需要更深入分析的关系的现有知识结构。基于计算机的使用的概念映射工具可通过复杂概念的知识领域的结构表示的创建来增强更高质量分析。以这种方式,使用概念图和思维导图简报,内容的创建者和消费者都被预期能够更快地评估在手边的信息和分析是否具有分析完整性和价值,并因而确定分析的进一步改进是否是需要的。Concept maps and mind maps often facilitate better examination of existing knowledge structures, allowing for more rapid identification of misunderstandings or relationships requiring deeper analysis. Computer-based concept mapping tools can enhance higher-quality analysis by creating structured representations of complex conceptual domains. In this manner, using concept maps and mind map presentations, both content creators and consumers are expected to more quickly assess the analytical integrity and value of the information and analysis at hand, and thus determine whether further refinement of the analysis is necessary.
在下面的讨论中,提供了系统及其部件的一般描述,后面是其的操作的讨论。In the following discussion, a general description of the system and its components is provided, followed by a discussion of its operation.
参考图1,示出了根据各种实施方式的联网环境100。联网环境100包括经由网络109彼此进行数据通信的计算环境103和客户端计算设备106。网络109包括例如互联网、内联网、外联网、广域网(WAN)、局域网(LAN)、有线网络、无线网络或其它适当的网络等或两个或更多个这样的网络的任何组合。1 , a networked environment 100 is shown according to various embodiments. The networked environment 100 includes a computing environment 103 and a client computing device 106 in data communication with each other via a network 109. The network 109 includes, for example, the Internet, an intranet, an extranet, a wide area network (WAN), a local area network (LAN), a wired network, a wireless network, or other suitable network, or any combination of two or more such networks.
计算环境103可包括例如服务器计算机或提供计算能力的任何其它系统。可选地,计算环境103可使用可被使用的多个计算设备,其例如布置在一个或多个服务器组或计算机组或其它布置中。这样的计算设备可位于单个装置中或可分布在很多不同的地理位置当中。例如,计算环境103可包括多个计算设备,其一起可包括云计算资源、网格计算资源和/或任何其它分布式计算布置。在一些情况下,计算环境103可相应于弹性计算资源,其中处理、网络、存储或其它计算相关资源的被指派的能力可随着时间的过去而改变。The computing environment 103 may include, for example, a server computer or any other system that provides computing power. Alternatively, the computing environment 103 may utilize multiple computing devices that may be used, for example, arranged in one or more server groups or computer groups or other arrangements. Such computing devices may be located in a single device or may be distributed among many different geographical locations. For example, the computing environment 103 may include multiple computing devices that together may include cloud computing resources, grid computing resources, and/or any other distributed computing arrangement. In some cases, the computing environment 103 may correspond to an elastic computing resource, wherein the assigned capacity of processing, network, storage, or other computing-related resources may change over time.
根据各种实施方式可在计算环境103中执行各种应用和/或其它功能。此外,各种数据可存储在计算环境103可访问的数据存储库111中。数据存储库111可代表如可认识到的多个数据存储库111。存储在数据存储库111中的数据例如与下面描述的各种应用和/或功能实体的操作相关。According to various embodiments, various applications and/or other functions may be executed in the computing environment 103. In addition, various data may be stored in a data repository 111 accessible to the computing environment 103. The data repository 111 may represent a plurality of data repositories 111, as may be appreciated. The data stored in the data repository 111 may be related to the operation of the various applications and/or functional entities described below, for example.
在计算环境103上执行的部件例如包括协作服务器113和未在本文详细讨论的其它应用、服务、过程、系统、引擎或功能。协作服务器113被执行以允许一个或多个用户创建并共享一个或多个信息对象116和可能其它数据。Components executing on computing environment 103 include, for example, collaboration server 113 and other applications, services, processes, systems, engines, or functions not discussed in detail herein. Collaboration server 113 is executed to allow one or more users to create and share one or more information objects 116 and possibly other data.
存储在数据存储库111中的数据包括例如一个或多个信息对象116和可能其它数据。The data stored in the data repository 111 includes, for example, one or more information objects 116 and possibly other data.
信息对象116是被构造成基于在单独条的信息之间的关系来将数据建模的数据存储对象。因此,信息对象116可包括与其它信息对象116的一组关联以指示数据关系。例如,在两个信息对象116之间的链接可指示数据相依性、结构分级结构或由两个或更多个信息对象116建模的数据的其它关联。信息对象116也可组合和/或从其它信息对象得到以表示这些关系。因此,大部分信息对象116可从其它信息对象116的组合创建或由其它信息对象116的组合表示。Information objects 116 are data storage objects that are structured to model data based on relationships between individual pieces of information. Thus, an information object 116 may include a set of associations with other information objects 116 to indicate data relationships. For example, a link between two information objects 116 may indicate data dependencies, structural hierarchies, or other associations between the data modeled by two or more information objects 116. Information objects 116 may also be combined and/or derived from other information objects to represent these relationships. Thus, most information objects 116 may be created from or represented by a combination of other information objects 116.
然而,可为不能容易被表示为两个或更多个其它信息对象116的组合的特定类型的数据保留一些类型或类别的信息对象116。例如,重复数据块例如图像、声音、视频、压缩数据和加密数据可能需要起对基本数据的封装器的作用的信息对象116的预留或唯一实例。连续流数据例如来自传感器的数据的流也可能需要信息对象116的唯一或预留实例以表示流数据,因为流数据具有开始部分但不一定具有数据的结尾。However, some types or categories of information objects 116 may be reserved for specific types of data that cannot be easily represented as a combination of two or more other information objects 116. For example, repeating blocks of data such as images, sound, video, compressed data, and encrypted data may require reserved or unique instances of information objects 116 that act as wrappers for the underlying data. Continuous streams of data, such as a stream of data from a sensor, may also require unique or reserved instances of information objects 116 to represent the streamed data because streamed data has a beginning but not necessarily an end.
客户端计算设备106代表可耦合到网络109的多个客户端计算设备。客户端计算设备106可包括例如基于处理器的系统,例如计算机系统。这样的计算机系可体现在桌上型计算机、膝上型计算机、个人数字助理、蜂窝电话、智能电话、机顶盒、音乐播放器、web板、平板计算机系统、游戏控制台、电子书阅读器或具有相似的能力的其它设备中。客户端计算设备106可包括显示器119。显示器119可包括例如一个或多个设备,例如液晶显示器(LCD)显示器、基于气体等离子体的平板显示器、有机发光二极管(OLED)显示器、LCD投影仪或其它类型的显示设备等。Client computing device 106 represents a plurality of client computing devices that can be coupled to network 109. Client computing device 106 may comprise, for example, a processor-based system, such as a computer system. Such a computer system may be embodied in a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, a smartphone, a set-top box, a music player, a web tablet, a tablet computer system, a game console, an e-book reader, or other devices with similar capabilities. Client computing device 106 may include a display 119. Display 119 may comprise, for example, one or more devices such as a liquid crystal display (LCD) display, a gas plasma-based flat panel display, an organic light emitting diode (OLED) display, an LCD projector, or other types of display devices.
客户端计算设备106可配置成执行各种应用,例如客户端应用123和/或其它应用。可在客户端计算设备106中执行客户端应用123以例如访问由计算环境103和/或其它服务器提供的网络内容,从而在显示器119上再现用户界面300。为此目的,客户端应用123可包括例如浏览器、专用应用等,且用户界面300可包括网络页面、应用屏幕等。客户端计算设备106可配置成执行在客户端应用123之外的应用,例如电子邮件应用、社交联网应用、字处理器、电子制表软件和/或其它应用。The client computing device 106 can be configured to execute various applications, such as the client application 123 and/or other applications. The client application 123 can be executed in the client computing device 106 to, for example, access network content provided by the computing environment 103 and/or other servers, thereby rendering the user interface 300 on the display 119. To this end, the client application 123 can include, for example, a browser, a dedicated application, etc., and the user interface 300 can include a network page, an application screen, etc. The client computing device 106 can be configured to execute applications other than the client application 123, such as an email application, a social networking application, a word processor, a spreadsheet, and/or other applications.
此外,一个或多个传感器和其它数据馈源126可与协作服务器113或客户端应用123处于网络通信中。传感器和其它数据馈源可包括能够产生或记录数据并将数据传输到协作服务器113的任何电子设备。传感器和其它数据馈源126的例子包括加速计、温度传感器或自动恒温器、视频或web摄像机、麦克风、噪声传感器、压力传感器、计量器、定时器、流量计、光传感器、应用或程序的输出或结果和其它这样的设备或程序。Additionally, one or more sensors and other data feeds 126 may be in network communication with the collaboration server 113 or the client application 123. Sensors and other data feeds may include any electronic device capable of generating or recording data and transmitting the data to the collaboration server 113. Examples of sensors and other data feeds 126 include accelerometers, temperature sensors or thermostats, video or web cameras, microphones, noise sensors, pressure sensors, gauges, timers, flow meters, light sensors, outputs or results of applications or programs, and other such devices or programs.
虽然图1描绘了代表客户端-服务器模型的网络中心配置,这并不排除其它配置。例如在一些实施方式中,客户端计算设备106可以是位于计算环境103内的计算设备。在各种实施方式中,客户端应用123可连同协作服务器113一起位于计算环境103中,但客户端应用123可在客户端计算设备106的显示器119上传递或再现用户界面300。在其它实施方式中,协作服务器113、数据存储库111和客户端应用123都可位于单个计算设备例如客户端计算设备106或在计算环境103内的单个计算机内。While FIG1 depicts a network-centric configuration representing a client-server model, other configurations are not excluded. For example, in some embodiments, the client computing device 106 may be a computing device located within the computing environment 103. In various embodiments, the client application 123 may be located in the computing environment 103 along with the collaboration server 113, but the client application 123 may deliver or render the user interface 300 on the display 119 of the client computing device 106. In other embodiments, the collaboration server 113, the data repository 111, and the client application 123 may all be located on a single computing device, such as the client computing device 106, or a single computer within the computing environment 103.
接着,提供了联网环境100的各种部件的操作的一般描述。首先,客户端应用123产生对一个或多个信息对象116的请求用于在显现、报告或类似的文档中使用。Next, a general description is provided of the operation of the various components of the networked environment 100. Initially, the client application 123 generates a request for one or more information objects 116 for use in a presentation, report, or similar document.
当接收到所请求的信息对象116时,客户端应用123通过用户界面300向用户显现所请求的信息对象116。用户可随意与信息对象116交互。Upon receiving the requested information object 116, the client application 123 presents the requested information object 116 to the user through the user interface 300. The user may interact with the information object 116 as desired.
例如,用户可选择一个或多个信息对象116作为演示的基础。每个信息对象116可相应于在演示内的幻灯片图像或图表。For example, a user may select one or more information objects 116 as the basis for a presentation. Each information object 116 may correspond to a slide image or chart within the presentation.
可选地,用户可与信息对象116交互以选择子信息对象116或以其他方式“向下挖掘”以察看与信息对象116相关的基本数据。例如,用户可选择被标记为“细菌”的信息对象116。在被标记为细菌的信息对象116内,可提供细菌的列表。每个列表相应于子信息对象。如果用户选择子信息对象116,则与子信息对象116有关的信息可被呈现给用户,其中这样的信息以前对用户是不可见的。Alternatively, a user can interact with an information object 116 to select a sub-information object 116 or otherwise "drill down" to view underlying data related to the information object 116. For example, a user can select an information object 116 labeled "bacteria." Within the information object 116 labeled "bacteria," a list of bacteria can be provided. Each list corresponds to a sub-information object. If a user selects a sub-information object 116, information related to the sub-information object 116 can be presented to the user, where such information was previously not visible to the user.
在另一非限制性例子中,用户可选择创建一个或多个信息对象116以表示当前不在系统内的数据或信息。继续细菌例子,用户可选择创建与“细菌”信息对象116相关的、表示最新发现的细菌的新信息对象116。此外,在本公开的一些实施方式中,最新创建的信息对象116可被上传到协作服务器113,以便存储在数据存储库111中用于未来由该用户或其他用户使用。In another non-limiting example, a user may choose to create one or more information objects 116 to represent data or information that is not currently in the system. Continuing with the bacteria example, a user may choose to create a new information object 116 related to the "bacteria" information object 116 to represent a recently discovered bacterium. Furthermore, in some embodiments of the present disclosure, the newly created information object 116 may be uploaded to the collaboration server 113 for storage in the data repository 111 for future use by the user or other users.
接着参考图2,其显示信息对象116的数据结构的描绘。每个信息对象116具有至少一个唯一标识符203,其唯一地识别在数据存储库111(图1)内的信息对象116的特定实例。每个信息对象116还包括内容206。包括在信息对象116的内容206中的可以是一个或多个信息对象引用,例如信息对象引用209a到信息对象引用209n。信息对象116的内容206也可包括描述信息对象116的属性213。此外,信息对象116可包括形式数据216和多个函数219。2 , which shows a depiction of the data structure of an information object 116. Each information object 116 has at least one unique identifier 203 that uniquely identifies a particular instance of the information object 116 within the data repository 111 ( FIG. 1 ). Each information object 116 also includes content 206. Included within the content 206 of an information object 116 may be one or more information object references, such as information object reference 209 a through information object reference 209 n. The content 206 of an information object 116 may also include attributes 213 that describe the information object 116. Additionally, the information object 116 may include form data 216 and a plurality of functions 219.
唯一标识符203可以是唯一的字母数字号码,例如密码散列函数的结果,或可以是当信息对象116被创建时由协作服务器113(图1)产生的唯一号码。例如,协作服务器113可将密码散列函数例如安全散列算法的版本应用于信息对象116以产生唯一标识符203。在另一例子中,协作服务器113可在信息对象116被创建时使计数器递增并接着将唯一标识符203设置为等于计数器的值。在一些实施方式中,这两种方法都可组合以最小化来自密码散列函数的冲突的风险或因整数溢出错误产生的重复计数器值。例如,计数器可递增且值被加在加密散列函数的结果的开始处或附加到加密散列函数的结果结尾以创建唯一标识符203。Unique identifier 203 can be a unique alphanumeric number, such as the result of a cryptographic hash function, or can be a unique number generated by collaboration server 113 ( FIG. 1 ) when information object 116 is created. For example, collaboration server 113 can apply a cryptographic hash function, such as a version of the Secure Hash Algorithm, to information object 116 to generate unique identifier 203. In another example, collaboration server 113 can increment a counter when information object 116 is created and then set unique identifier 203 equal to the value of the counter. In some embodiments, both approaches can be combined to minimize the risk of collisions from the cryptographic hash function or duplicate counter values due to integer overflow errors. For example, a counter can be incremented and the value added to the beginning or appended to the end of the result of the cryptographic hash function to create unique identifier 203.
内容206相应于由信息对象116表示的数据,信息对象116可包括一个或多个信息对象引用209a…n和/或一个或多个属性213。每个信息对象引用209a…n指向或链接到相关信息对象223。相关信息对象223可相应于作为信息对象116的组成部分的信息或以某种方式与信息对象223有关。例如,表示国家“俄国”的信息对象116可具有将信息对象116链接到相应于城市“莫斯科”的相关信息223的信息对象引用209。表示“俄国”的信息对象116也可包括对表示国家的列表的相关信息对象223的第二信息对象引用209和对表示“共产主义”的相关信息对象223的第三信息对象引用209。The content 206 corresponds to data represented by the information object 116, which may include one or more information object references 209a...n and/or one or more attributes 213. Each information object reference 209a...n points to or links to a related information object 223. The related information object 223 may correspond to information that is part of the information object 116 or is related in some way to the information object 223. For example, the information object 116 representing the country "Russia" may have an information object reference 209 that links the information object 116 to the related information 223 corresponding to the city "Moscow." The information object 116 representing "Russia" may also include a second information object reference 209 to a related information object 223 representing a list of countries and a third information object reference 209 to a related information object 223 representing "Communism."
信息对象116的属性213表示存储在信息对象116内的数据,其可以或不直接显现给用户作为主要内容。信息对象116的属性213可包括例如最初创建信息对象116的用户的用户名、修改信息对象116的每个用户的用户名、记录信息对象116的创建和/或信息对象116的修改的时间戳、由信息对象116支持用于用在协作服务器113(图1)或客户端应用123(图1)上的界面标准的版本、语言和/或文化识别和其它这样的数据。在一些实例中,属性213本身可由其它信息对象116表示。例如,信息对象116的创建者的用户名可由表示用户账户的信息对象116表示。The attributes 213 of an information object 116 represent data stored within the information object 116, which may or may not be directly visible to a user as primary content. The attributes 213 of an information object 116 may include, for example, the username of the user who originally created the information object 116, the username of each user who modified the information object 116, a timestamp recording the creation of the information object 116 and/or the modification of the information object 116, the version of the interface standard supported by the information object 116 for use on the collaboration server 113 ( FIG. 1 ) or the client application 123 ( FIG. 1 ), a language and/or culture identification, and other such data. In some instances, the attributes 213 themselves may be represented by other information objects 116. For example, the username of the creator of an information object 116 may be represented by an information object 116 representing a user account.
形式数据216相应于在显示器119(图1)上表示或显示信息对象116所必需的数据。例如,形式数据216可以表示在显示器119上的信息对象116的尺寸、在显示器119上的信息对象116的位置、信息对象116的透明度值、是否相对于相关信息对象223中的单独相关信息对象在显示器119上覆盖在信息对象上面或置于信息对象下面以及类似的数据或值。在一些实例中,形式数据216可进一步规定在显示器119上的相关信息对象223相对于信息对象116的默认方式。The form data 216 corresponds to data necessary to represent or display the information object 116 on the display 119 ( FIG. 1 ). For example, the form data 216 may indicate the size of the information object 116 on the display 119, the position of the information object 116 on the display 119, the transparency value of the information object 116, whether individual related information objects in the related information objects 223 are overlaid on the information object or positioned below the information object on the display 119, and similar data or values. In some examples, the form data 216 may further specify a default manner in which the related information objects 223 are displayed relative to the information object 116 on the display 119.
函数219相应于程序界面、方法或类似的机制,通过其,客户端应用123(图1)或协作服务器113可与信息对象116交互或以其他方式操纵信息对象116。例如,函数219可包括用于设置在显示器119上可见或不可见的信息对象116的函数、用于编辑或以其他方式修改信息对象的函数、用于创建新信息对象引用209或以其他方式将信息对象116链接到相关信息对象223的函数。Functions 219 correspond to programmatic interfaces, methods, or similar mechanisms through which the client application 123 ( FIG. 1 ) or the collaboration server 113 can interact with or otherwise manipulate the information object 116. For example, the functions 219 may include functions for making the information object 116 visible or invisible on the display 119, functions for editing or otherwise modifying the information object, functions for creating a new information object reference 209, or functions for otherwise linking the information object 116 to a related information object 223.
信息对象116或相关信息对象223也可具有相应于由信息对象表示的用户界面元素的单独信息对象引用209,例如导航信息对象226、菜单区域信息对象229和客户端设备信息对象233。例如,导航信息对象226可描述或定义当前选择的信息对象116的结构或当前选择的信息对象116相对于其它信息对象116的关系。在一些实施方式中,菜单区域信息对象229可描述或定义可用于与信息对象116交互例如编辑、拷贝或删除信息116的各种菜单或其它用户界面300(图1)的组成部分。在一些实施方式中,菜单区域信息对象229也可提供创建新信息对象116的功能。此外,在一些实施方式中,客户端设备信息对象233可包含用户和系统级设置,例如声量、显示亮度、网络链接设置和其它设置。An information object 116 or related information object 223 may also have separate information object references 209 corresponding to the user interface elements represented by the information object, such as a navigation information object 226, a menu area information object 229, and a client device information object 233. For example, a navigation information object 226 may describe or define the structure of a currently selected information object 116 or the relationship of the currently selected information object 116 to other information objects 116. In some embodiments, a menu area information object 229 may describe or define various menus or other components of the user interface 300 ( FIG. 1 ) that can be used to interact with an information object 116, such as to edit, copy, or delete information 116. In some embodiments, a menu area information object 229 may also provide functionality for creating new information objects 116. Additionally, in some embodiments, a client device information object 233 may contain user and system-level settings, such as volume, display brightness, network connection settings, and other settings.
移动到图3A,示出了在客户端计算设备106上执行的客户端应用123(图1)的在本文被表示为300a的示例用户界面300。如所示,信息对象116a可使其它相关信息对象116b、116c和116d覆盖在信息对象116a的顶部上面,允许用户可见到在信息对象116a、116b、116c和116d之间的关系。无论哪个信息对象116当前由用户选择或以其他方式在焦点上,都可具有被显示的相应的导航信息对象226、菜单区域信息对象229和客户端计算设备信息对象233。3A , an example user interface 300, designated herein as 300a, of the client application 123 ( FIG. 1 ) executing on the client computing device 106 is shown. As shown, the information object 116a can have other related information objects 116b, 116c, and 116d overlaid on top of the information object 116a, allowing the user to see the relationships between the information objects 116a, 116b, 116c, and 116d. Whichever information object 116 is currently selected by the user or otherwise in focus can have a corresponding navigation information object 226, menu area information object 229, and client computing device information object 233 displayed.
接着参考图3B,示出了在客户端计算设备106上执行的客户端应用123(图1)的在本文被表示为300b的示例用户界面300。在右边示出包括多个信息对象116的在本文被表示为导航栏226b的导航信息对象226(图2)。在这个特定的用户界面300b中,信息对象116被选择并显示在屏幕的中间。3B , an example user interface 300, herein designated 300 b, of the client application 123 ( FIG. 1 ) executing on the client computing device 106 is shown. On the right, a navigation information object 226 ( FIG. 2 ), herein designated as a navigation bar 226 b, is shown, including a plurality of information objects 116. In this particular user interface 300 b, the information object 116 is selected and displayed in the middle of the screen.
现在转到图3C,示出了在客户端计算设备106上执行的客户端应用123(图1)的在本文被表示为300c的示例用户界面300。在右边示出包括多个信息对象116的在本文被表示为226c的导航信息对象226(图2)。在这个特定的用户界面300c中,用户选择另一信息对象116且用户界面300c相应地改变。3C , an example user interface 300, designated herein as 300 c, of the client application 123 ( FIG. 1 ) executing on the client computing device 106 is shown. On the right, a navigation information object 226 ( FIG. 2 ), designated herein as 226 c, is shown that includes a plurality of information objects 116. In this particular user interface 300 c, the user selects another information object 116 and the user interface 300 c changes accordingly.
继续移动到图3D,示出了在客户端计算设备106上执行的客户端应用123(图1)的在本文被表示为300d的示例用户界面300。这个特定的用户界面300d示出客户端应用123的用户将一个或多个信息对象116(图1)关联在一起的能力。3D , an example user interface 300, designated herein as 300d, of the client application 123 ( FIG. 1 ) executing on the client computing device 106 is shown. This particular user interface 300d illustrates the ability of a user of the client application 123 to associate one or more information objects 116 ( FIG. 1 ) together.
现在转到图3E,示出了在客户端计算设备106(图1)上执行的客户端应用123(图1)的在本文被表示为300e的示例用户界面300。用户界面300e显示多个信息对象116,其中每个信息对象116包括关于一个或多个主题的信息,每个主题由相应的信息对象116体现。此外,描绘了在信息对象116之间的关系,以便正确地传达信息的关系。3E , an example user interface 300, herein designated 300e, of a client application 123 ( FIG. 1 ) executing on a client computing device 106 ( FIG. 1 ) is shown. The user interface 300e displays a plurality of information objects 116, wherein each information object 116 includes information regarding one or more topics, each topic being embodied by a corresponding information object 116. In addition, relationships between the information objects 116 are depicted to accurately convey the relationship of the information.
现在转到图3F,示出了在客户端计算设备106(图1)上执行的客户端应用123(图1)的在本文被表示为300f的示例用户界面300。用户界面300f描绘子信息对象116的显现。在这个特定的例子中,用户选择在用户界面300e(图3E)中描绘的大肠菌信息对象,这使客户端应用123将大肠杆菌的信息对象116呈现到用户界面300f的最前部。其它信息对象116移动到背景和/或变得模糊,使任何焦点被移除或以其他方式不再加以强调以便避免使用户的焦点从呈现的信息对象116转移。Turning now to FIG3F , an example user interface 300, herein designated 300 f, of a client application 123 ( FIG1 ) executing on a client computing device 106 ( FIG1 ) is shown. The user interface 300 f depicts a presentation of child information objects 116. In this particular example, the user selects the E. coli information object depicted in user interface 300 e ( FIG3E ), which causes the client application 123 to bring the E. coli information object 116 to the forefront of the user interface 300 f. The other information objects 116 move to the background and/or become blurred, removing any focus or otherwise de-emphasizing them to avoid diverting the user's focus from the presented information objects 116.
现在转到图3G,示出了在客户端计算设备106上执行的客户端应用123(图1)的在本文被表示为300g的示例用户界面300。用户界面300g描绘用户创建一个或多个信息对象116(图1)。这样的信息对象116可被存储用于未来引用,或可用于创建演示、报告或类似文档的目的。3G , an example user interface 300, designated herein as 300g, of the client application 123 ( FIG. 1 ) executing on the client computing device 106 is shown. The user interface 300g depicts a user creating one or more information objects 116 ( FIG. 1 ). Such information objects 116 may be stored for future reference or may be used for purposes of creating presentations, reports, or similar documents.
图4示出根据各种实施方式的提供客户端应用123和协作服务器113的一部分的操作的一个例子的流程图。应理解,图4的流程图仅仅提供可用于实现如本文所述的客户端应用123和协作服务器113的部分的操作的很多不同类型的功能布置的例子。作为可选方案,图4的流程图可被视为描绘根据一个或多个实施方式的在联网环境100(图1)中实现的方法的要素的例子。FIG4 illustrates a flow chart that provides one example of the operation of a portion of the client application 123 and the collaboration server 113, according to various embodiments. It should be understood that the flow chart of FIG4 merely provides an example of many different types of functional arrangements that may be used to implement the operation of portions of the client application 123 and the collaboration server 113 as described herein. Alternatively, the flow chart of FIG4 may be viewed as an example of elements of a method implemented in the networked environment 100 ( FIG1 ), according to one or more embodiments.
以框403开始,客户端应用123通过客户端应用123的用户界面300(图1)接收指示用户希望创建新信息对象116(图2)的“创建新的”或类似选项的选择。在一些实施方式中,例如用户可做出选择以通过与菜单区域信息对象229(图2)交互来创建新信息对象116。Beginning with block 403, the client application 123 receives a selection of a "Create New" or similar option indicating that a user wishes to create a new information object 116 (FIG. 2) via the user interface 300 (FIG. 1) of the client application 123. In some implementations, for example, the user may make a selection to create a new information object 116 by interacting with the menu area information object 229 (FIG. 2).
随后在框406,客户端应用123在本地创建新信息对象116。在一些实施方式中,在最新创建的信息对象116到协作服务器113的上传期间,新信息对象116可被缓存在本地用于由客户端应用123立即使用。在一些实施方式中,客户端应用123可进一步将唯一标识符203(图2)分配给最新创建的信息对象116并使用默认值填充内容206(图2)和形式数据216(图2)。例如,属性213(图2)可以被自动填充有创建信息对象的用户的用户账户信息,且信息对象引用209(图2)可被自动创建以表示相应于父或兄弟信息对象116的相关信息对象223。Then, at block 406, the client application 123 creates a new information object 116 locally. In some embodiments, during the upload of the newly created information object 116 to the collaboration server 113, the new information object 116 can be cached locally for immediate use by the client application 123. In some embodiments, the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 116 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values. For example, attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object, and an information object reference 209 (FIG. 2) can be automatically created to represent the related information object 223 corresponding to the parent or sibling information object 116.
接着继续进行到框409,客户端应用123将最新创建的信息对象116发送到协作服务器113。在一些实施方式中,最新创建的信息对象116可被序列化,例如通过调用信息对象116的函数219(图2)以序列化它,接着将序列化的信息对象116发送到协作服务器113。在各种实施方式中,客户端应用113可替代地将唯一标识符203、内容206和形式数据216的拷贝发送到协作服务器113。Continuing then to block 409, the client application 123 sends the newly created information object 116 to the collaboration server 113. In some embodiments, the newly created information object 116 may be serialized, for example by calling function 219 ( FIG. 2 ) of the information object 116 to serialize it, and then sending the serialized information object 116 to the collaboration server 113. In various embodiments, the client application 113 may instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 113.
接着参考框413,协作服务器113确定相应于最新创建的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。作为另一例子,协作服务器113可检查以确定最新创建的信息对象116的唯一标识符203是否是已经存在于数据存储库111(图1)中的信息对象116的唯一标识符203的副本,这指示最新创建的信息对象116是重复的或在这两个信息对象116的唯一标识符203之间存在需要被解决的冲突。如果信息是无效的,则执行继续进行到框446。然而,如果信息是有效的,则执行继续进行到框416。Next, referring to block 413, the collaboration server 113 determines whether the information corresponding to the newly created information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. As another example, the collaboration server 113 may check to determine if the unique identifier 203 of the newly created information object 116 is a duplicate of the unique identifier 203 of an information object 116 that already exists in the data repository 111 ( FIG. 1 ), indicating that the newly created information object 116 is a duplicate or that there is a conflict between the unique identifiers 203 of the two information objects 116 that needs to be resolved. If the information is invalid, execution proceeds to block 446. However, if the information is valid, execution proceeds to block 416.
如果执行跳到框446,协作服务器113产生错误消息事件并将错误消息发送到客户端应用123。错误消息可包括识别错误的类型或源、错误描述和错误的原因的错误代码。在一些实施方式中,错误消息本身可以是表示错误并包括可适用的错误信息的信息对象116。在各种实施方式中,协作服务器113也可将错误和任何相关的错误信息记录到数据存储库111或日志文件用于以后分析。If execution proceeds to block 446, the collaboration server 113 generates an error message event and sends the error message to the client application 123. The error message may include an error code identifying the type or source of the error, a description of the error, and the cause of the error. In some embodiments, the error message itself may be an information object 116 representing the error and including applicable error information. In various embodiments, the collaboration server 113 may also log the error and any associated error information to a data repository 111 or log file for later analysis.
继续移动到框416,协作服务器113使用从客户端应用123接收的信息在数据存储库111中创建信息对象116。如果必要,协作服务器113也创建所需的任何父或子信息对象以及在最新创建的信息对象116和其它现有的信息对象116之间的任何引用或连接。Moving on to block 416, the collaboration server 113 creates the information object 116 in the data store 111 using the information received from the client application 123. If necessary, the collaboration server 113 also creates any required parent or child information objects and any references or connections between the newly created information object 116 and other existing information objects 116.
接着参考框419,协作服务器113将信息对象116已被创建的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113在一些实施方式中可将最新创建的信息对象116标记为当前被修改或对最新创建的信息对象116的修改在进行中。这可在信息对象116正在被修改的同时锁定信息对象116或以其他方式防止信息对象116被其他用户、应用或过程修改。Next, referring to block 419, the collaboration server 113 sends a notification to the client application 123 that the information object 116 has been created. This notification may be in the form of a message, an event notification, or other data format. Furthermore, in some embodiments, the collaboration server 113 may mark the newly created information object 116 as currently being modified or as having modification in progress for the newly created information object 116. This may lock the information object 116 while it is being modified or otherwise prevent the information object 116 from being modified by other users, applications, or processes.
继续进行到框423,客户端应用123从协作服务器113接收信息对象116已被创建的通知。在一些实施方式中,通知也可包括最新创建的信息对象116被针对编辑或修改而标记的指示。如果最新创建的信息对象被标记供编辑,客户端应用123可实现将对信息对象116的客户端或本地拷贝进行的修改。例如,客户端应用123可将最新创建的信息对象116的字段标记为可编辑的,实现信息对象116的各种菜单功能,或采取类似的行动。Continuing to block 423, the client application 123 receives notification from the collaboration server 113 that an information object 116 has been created. In some embodiments, the notification may also include an indication that the newly created information object 116 is marked for editing or modification. If the newly created information object is marked for editing, the client application 123 may implement modifications to the client or local copy of the information object 116. For example, the client application 123 may mark fields of the newly created information object 116 as editable, implement various menu functions for the information object 116, or take similar actions.
继续移动到框426,客户端应用123得到对最新创建的信息对象116的一个或多个用户修改。在一些实施方式中,客户端应用123可自动保存用户修改。例如,客户端应用123可将每个变化自动发送到协作服务器113,或客户端应用123可在周期性基础上例如每几分钟、每小时或某个其它时间周期成批地将变化发送到协作服务器113。客户端应用123也可在本地在客户端计算设备106(图1)上保存对最新创建的信息对象116的改变或修改。当用户完成修改最新创建的信息对象116时,最后这组变化被发送到协作服务器113。在一些实施方式中,被发送的变化能够以记录在存储在数据存储库111中的信息对象116的拷贝和存储在客户端计算设备106上的信息对象116的拷贝之间的变化的文件格式被发送。在各种实施方式中,变化可替代地作为在本地存储在客户端计算设备106上的信息对象116的拷贝被发送以用于代替存储在数据存储库111中的相应信息对象116的拷贝。在这样的实施方式中,信息对象116的拷贝可被序列化并传输到协作服务器113。Moving on to block 426, the client application 123 obtains one or more user modifications to the newly created information object 116. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 113, or the client application 123 can send the changes in batches to the collaboration server 113 on a periodic basis, such as every few minutes, every hour, or some other time period. The client application 123 can also save the changes or modifications to the newly created information object 116 locally on the client computing device 106 ( FIG. 1 ). When the user finishes modifying the newly created information object 116, the final set of changes is sent to the collaboration server 113. In some embodiments, the changes sent can be sent in a file format that records the changes between the copy of the information object 116 stored in the data repository 111 and the copy of the information object 116 stored on the client computing device 106. In various embodiments, the changes may instead be sent as a copy of the information object 116 stored locally on the client computing device 106 to replace the copy of the corresponding information object 116 stored in the data repository 111. In such embodiments, the copy of the information object 116 may be serialized and transmitted to the collaboration server 113.
接着参考框429,协作服务器113确定相应于修改的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。如果信息是无效的,则执行继续进行到前面描述的框446。然而如果信息是有效的,则执行继续进行到框433。Next, referring to block 429, the collaboration server 113 determines whether the information corresponding to the modified information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. If the information is invalid, execution proceeds to block 446, described above. However, if the information is valid, execution proceeds to block 433.
接着继续进行到框433,协作服务器113将对信息对象116的修改存储在数据存储库111中。在一些实施方式中,这可通过改写或代替存储在数据存储库111中的信息对象116的以前拷贝来实现。在其它实施方式中,信息对象116的内容可被编辑或更新,而不是用新拷贝或版本改写信息对象116。Continuing then to block 433, the collaboration server 113 stores the modifications to the information object 116 in the data repository 111. In some embodiments, this may be accomplished by overwriting or replacing a previous copy of the information object 116 stored in the data repository 111. In other embodiments, the content of the information object 116 may be edited or updated rather than overwriting the information object 116 with a new copy or version.
继续移动到框436,协作服务器113将对信息对象116的更新完成的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113可将最新创建的信息对象116标记为可编辑的,使得等待对信息对象116进行修改的其他用户或过程可以这么做。Moving on to block 436, the collaboration server 113 sends a notification to the client application 123 that the update of the information object 116 is complete. The notification may be in the form of a message, an event notification, or other data format. In addition, the collaboration server 113 may mark the newly created information object 116 as editable so that other users or processes waiting to modify the information object 116 can do so.
接着参考框439,客户端应用123接收对最新创建的信息对象116的更新或改变完成的通知。在一些实施方式中,客户端应用123可锁定或以其他方式防止用户在接收到该通知时修改最新创建的信息对象116。执行然后继续进行到框443,其中客户端应用123再现最新创建的信息对象116。Continuing with reference to block 439, the client application 123 receives notification that the update or change to the newly created information object 116 is complete. In some implementations, the client application 123 may lock or otherwise prevent the user from modifying the newly created information object 116 upon receiving the notification. Execution then proceeds to block 443, where the client application 123 renders the newly created information object 116.
图5示出根据各种实施方式的提供客户端应用123和协作服务器113的一部分的操作的一个例子的流程图。应理解,图5的流程图仅仅提供可用于实现如本文所述的客户端应用123和协作服务器113的部分的操作的很多不同类型的功能布置的例子。作为可选方案,图5的流程图可被视为描绘根据一个或多个实施方式的在联网环境100(图1)中实现的方法的要素的例子。FIG5 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 113 according to various embodiments. It should be understood that the flowchart of FIG5 merely provides an example of many different types of functional arrangements that can be used to implement the operation of portions of the client application 123 and the collaboration server 113 as described herein. Alternatively, the flowchart of FIG5 can be viewed as an example of elements of a method implemented in the networked environment 100 ( FIG1 ) according to one or more embodiments.
以框503开始,客户端应用123将信息对象116标记为可编辑的。例如,信息对象116(图1)可由另一过程或用户锁定用于由协作服务器113编辑。相应地,直到协作服务器113将信息对象116解锁并向客户端应用123传递信息对象116可自由编辑为止,信息对象116不能够可被客户端应用123的用户编辑。Beginning with block 503, the client application 123 marks the information object 116 as editable. For example, the information object 116 ( FIG. 1 ) may have been locked for editing by the collaboration server 113 by another process or user. Accordingly, the information object 116 cannot be edited by the user of the client application 123 until the collaboration server 113 unlocks the information object 116 and communicates to the client application 123 that the information object 116 is freely editable.
在将信息对象116标记为可编辑的之后,在客户端应用上的执行移动到框506,其中客户端应用123得到用户对信息对象116的选择以用于编辑。用户可例如使用鼠标点击、触摸手势或其它交互作用来向客户端应用123指示信息对象116将被编辑。After marking the information object 116 as editable, execution on the client application moves to block 506, where the client application 123 obtains the user's selection of the information object 116 for editing. The user may indicate to the client application 123 that the information object 116 is to be edited, for example, using a mouse click, a touch gesture, or other interaction.
继续进行到框509,客户端应用123获取信息对象116的唯一标识符203(图2)。当获取到时,客户端应用123将唯一标识符203发送到协作服务器113。Continuing to block 509 , the client application 123 obtains the unique identifier 203 ( FIG. 2 ) of the information object 116 . Upon obtaining, the client application 123 sends the unique identifier 203 to the collaboration server 113 .
接着参考框513,协作服务器113确定唯一标识符203(图2)是否是有效的。例如,协作服务器113可确定在数据存储库111(图1)中是否存在具有唯一标识符203的信息对象116。如果否,则协作服务器113可产生错误。作为另一例子,协作服务器113可进一步确定在数据存储库111中的信息对象116是否是可编辑的信息对象116。如果否,则协作服务器113可产生错误。如果协作服务器113确定唯一标识符203是无效的,则执行继续进行到框543。然而如果信息是有效的,则执行继续进行到框516。Referring next to block 513, the collaboration server 113 determines whether the unique identifier 203 ( FIG. 2 ) is valid. For example, the collaboration server 113 may determine whether an information object 116 with the unique identifier 203 exists in the data repository 111 ( FIG. 1 ). If not, the collaboration server 113 may generate an error. As another example, the collaboration server 113 may further determine whether the information object 116 in the data repository 111 is an editable information object 116. If not, the collaboration server 113 may generate an error. If the collaboration server 113 determines that the unique identifier 203 is invalid, execution proceeds to block 543. However, if the information is valid, execution proceeds to block 516.
如果执行跳到框543,协作服务器113产生错误消息事件并将错误消息发送到客户端应用123。错误消息可包括识别错误的类型或源、错误描述和错误的原因的错误代码。在一些实施方式中,错误消息本身可以是表示错误并包括可适用的错误信息的信息对象116。在各种实施方式中,协作服务器113也可以将错误和任何相关的错误信息记录到数据存储库111或日志文件用于以后分析。If execution proceeds to block 543, the collaboration server 113 generates an error message event and sends the error message to the client application 123. The error message may include an error code identifying the type or source of the error, a description of the error, and the cause of the error. In some embodiments, the error message itself may be an information object 116 representing the error and including applicable error information. In various embodiments, the collaboration server 113 may also log the error and any associated error information to a data repository 111 or log file for later analysis.
继续移动到框516,协作服务器113可将选定信息对象116标记为当前被修改或对选定信息对象116的修改在进行中。这可在信息对象116被修改的同时锁定信息对象116或以其他方式防止信息对象116被其他用户、应用或过程修改。在锁定信息对象116之后,协作服务器113然后将信息对象116可被编辑的消息发送到客户端应用123。Moving on to block 516, the collaboration server 113 may mark the selected information object 116 as currently being modified or that modification of the selected information object 116 is in progress. This may lock the information object 116 while it is being modified or otherwise prevent the information object 116 from being modified by other users, applications, or processes. After locking the information object 116, the collaboration server 113 then sends a message to the client application 123 that the information object 116 may be edited.
接着参考框519,客户端应用123可响应于从协作服务器113接收到消息而使对信息对象116的客户端或本地拷贝的修改能够被做出。例如,客户端应用123可将选定信息对象116的字段标记为可编辑的,实现信息对象116的各种菜单功能或采取类似的行动。Referring next to block 519, the client application 123 may enable modifications to be made to the client or local copy of the information object 116 in response to receiving the message from the collaboration server 113. For example, the client application 123 may mark fields of the selected information object 116 as editable, enable various menu functions for the information object 116, or take similar actions.
继续进行到框523,客户端应用123得到对选定信息对象116的一个或多个用户修改。在一些实施方式中,客户端应用123可自动保存用户修改。例如,客户端应用123可将每个变化自动发送到协作服务器113,或客户端应用123可在周期性基础上例如每几分钟、每小时或某个其它时间周期成批地将变化发送到协作服务器113。客户端应用123也可在本地在客户端计算设备106(图1)上保存对选定信息对象116的改变或修改。当用户完成修改选定信息对象116时,最后这组变化被发送到协作服务器113。在一些实施方式中,被发送的变化能够以记录在存储在数据存储库111中的信息对象116的拷贝和存储在客户端计算设备106上的信息对象116的拷贝之间的变化的文件格式被发送。在各种实施方式中,变化可替代地作为在本地存储在客户端计算设备106上的信息对象116的拷贝被发送以用于代替存储在数据存储库111中的相应信息对象116的拷贝。在这样的实施方式中,信息对象116的拷贝可被序列化并传输到协作服务器113。Continuing to block 523, the client application 123 obtains one or more user modifications to the selected information object 116. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 113, or the client application 123 can send the changes in batches to the collaboration server 113 on a periodic basis, such as every few minutes, every hour, or some other time period. The client application 123 can also save the changes or modifications to the selected information object 116 locally on the client computing device 106 ( FIG. 1 ). When the user finishes modifying the selected information object 116, the final set of changes is sent to the collaboration server 113. In some embodiments, the changes sent can be sent in a file format that records the changes between the copy of the information object 116 stored in the data repository 111 and the copy of the information object 116 stored on the client computing device 106. In various embodiments, the changes can alternatively be sent as a copy of the information object 116 stored locally on the client computing device 106 to replace the copy of the corresponding information object 116 stored in the data repository 111. In such an embodiment, a copy of the information object 116 may be serialized and transmitted to the collaboration server 113 .
接着参考框526,协作服务器113确定相应于修改的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。如果信息是无效的,则执行继续进行到前面描述的框543。然而如果信息是有效的,则执行继续进行到框529。Next, referring to block 526, the collaboration server 113 determines whether the information corresponding to the modified information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. If the information is invalid, execution proceeds to block 543, described above. However, if the information is valid, execution proceeds to block 529.
继续移动到框529,协作服务器113将对信息对象116的修改存储在数据存储库111中。在一些实施方式中,这可通过改写或代替存储在数据存储库111中的信息对象116的以前拷贝来实现。在其它实施方式中,信息对象116的内容可被编辑或更新,而不是用新拷贝或版本改写信息对象116。Moving on to block 529, the collaboration server 113 stores the modifications to the information object 116 in the data repository 111. In some embodiments, this may be accomplished by overwriting or replacing a previous copy of the information object 116 stored in the data repository 111. In other embodiments, the content of the information object 116 may be edited or updated rather than overwriting the information object 116 with a new copy or version.
接着参考框533,协作服务器113将对信息对象116的更新完成的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113可将选定信息对象116标记为可编辑的,使得等待对信息对象116进行修改的其他用户或过程可以这么做。Next, with reference to block 533, the collaboration server 113 sends a notification to the client application 123 that the update to the information object 116 is complete. The notification may be in the form of a message, an event notification, or other data format. In addition, the collaboration server 113 may mark the selected information object 116 as editable so that other users or processes waiting to modify the information object 116 can do so.
继续移动到框536,客户端应用123接收对选定信息对象116的更新或改变完成的通知。在一些实施方式中,客户端应用123可锁定或以其他方式防止用户在接收到该通知时修改选定信息对象116。执行然后继续进行到框539,其中客户端应用123再现修改的信息对象116。Moving on to block 536, the client application 123 receives notification that the update or change to the selected information object 116 is complete. In some implementations, the client application 123 may lock or otherwise prevent the user from modifying the selected information object 116 upon receiving the notification. Execution then continues to block 539, where the client application 123 renders the modified information object 116.
图6示出根据各种实施方式的提供客户端应用123和协作服务器113的一部分的操作的一个例子的流程图。应理解,图6的流程图仅仅提供可用于实现如本文所述的客户端应用123和协作服务器113的部分的操作的很多不同类型的功能布置的例子。作为可选方案,图6的流程图可被视为描绘根据一个或多个实施方式的在联网环境100(图1)中实现的方法的要素的例子。FIG6 shows a flow chart that provides one example of the operation of a portion of the client application 123 and the collaboration server 113 according to various embodiments. It should be understood that the flow chart of FIG6 merely provides an example of many different types of functional arrangements that can be used to implement the operation of portions of the client application 123 and the collaboration server 113 as described herein. Alternatively, the flow chart of FIG6 can be viewed as an example of elements of a method implemented in the networked environment 100 ( FIG1 ) according to one or more embodiments.
以框603开始,客户端应用123接收将被导入到系统中的信息或数据。例如,客户端应用123可接收视频文件、图像文件、便携式文档格式(PDF)文档、文本文档、音频文件或某个其它类型的文件。Beginning with block 603, the client application 123 receives information or data to be imported into the system. For example, the client application 123 may receive a video file, an image file, a portable document format (PDF) document, a text document, an audio file, or some other type of file.
随后在框606,客户端应用123分析文件并基于文件在本地创建信息对象116。在一些实施方式中,在最新创建的信息对象116到协作服务器113的上传期间,新信息对象116可以被缓存在本地用于由客户端应用123立即使用。在一些实施方式中,客户端应用123可进一步将唯一标识符203(图2)分配给最新创建的信息对象116并用默认值填充内容206(图2)和形式数据216(图2)。例如,属性213(图2)可以被自动填充有创建信息对象的用户的用户账户信息,且信息对象引用209(图2)可被自动创建以表示相应于父或兄弟信息对象116的相关信息对象223。此外,在一些实施方式中,客户端应用123可基于文件来设置某些属性209的值并可以用至少部分地基于所导入的文件的值填充内容206和形式数据216。Then, at block 606, the client application 123 analyzes the file and locally creates an information object 116 based on the file. In some embodiments, during the upload of the newly created information object 116 to the collaboration server 113, the new information object 116 can be cached locally for immediate use by the client application 123. In some embodiments, the client application 123 can further assign a unique identifier 203 (FIG. 2) to the newly created information object 116 and populate the content 206 (FIG. 2) and form data 216 (FIG. 2) with default values. For example, attributes 213 (FIG. 2) can be automatically populated with the user account information of the user who created the information object, and information object references 209 (FIG. 2) can be automatically created to represent related information objects 223 corresponding to the parent or sibling information object 116. Furthermore, in some embodiments, the client application 123 can set the values of certain attributes 209 based on the file and can populate the content 206 and form data 216 with values based at least in part on the imported file.
接着继续进行到框609,客户端应用123将最新创建的信息对象116发送到协作服务器113。在一些实施方式中,可例如通过调用信息对象116的函数219(图2)以序列化它并接着将序列化的信息对象116发送到协作服务器113来序列化最新创建的信息对象116。在各种实施方式中,客户端应用113可替代地将唯一标识符203、内容206和形式数据216的拷贝发送到协作服务器113。Continuing then to block 609, the client application 123 sends the newly created information object 116 to the collaboration server 113. In some implementations, the newly created information object 116 may be serialized, for example, by calling function 219 ( FIG. 2 ) of the information object 116 to serialize it and then sending the serialized information object 116 to the collaboration server 113. In various implementations, the client application 113 may instead send a copy of the unique identifier 203, the content 206, and the form data 216 to the collaboration server 113.
接着参考框613,协作服务器113确定相应于最新创建的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。作为另一例子,协作服务器113可检查以确定最新创建的信息对象116的唯一标识符203是否是已经存在于数据存储库111(图1)中的信息对象116的唯一标识符203的副本,这指示最新创建的信息对象116是重复的或在这两个信息对象116的唯一标识符203之间存在需要被解决的冲突。如果信息是无效的,则执行继续进行到框646。然而,如果信息是有效的,则执行继续进行到框616。Next, referring to block 613, the collaboration server 113 determines whether the information corresponding to the newly created information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. As another example, the collaboration server 113 may check to determine if the unique identifier 203 of the newly created information object 116 is a duplicate of the unique identifier 203 of an information object 116 that already exists in the data repository 111 ( FIG. 1 ), indicating that the newly created information object 116 is a duplicate or that there is a conflict between the unique identifiers 203 of the two information objects 116 that needs to be resolved. If the information is invalid, execution proceeds to block 646. However, if the information is valid, execution proceeds to block 616.
如果执行跳到框646,协作服务器113产生错误消息事件并将错误消息发送到客户端应用123。错误消息可包括识别错误的类型或源、错误描述和错误的原因的错误代码。在一些实施方式,错误消息本身可以是表示错误并包括可适用的错误信息的信息对象116。在各种实施方式中,协作服务器113也可将错误和任何相关的错误信息记录到数据存储库111或日志文件用于以后分析。If execution proceeds to block 646, the collaboration server 113 generates an error message event and sends the error message to the client application 123. The error message may include an error code identifying the type or source of the error, a description of the error, and the cause of the error. In some embodiments, the error message itself may be an information object 116 representing the error and including applicable error information. In various embodiments, the collaboration server 113 may also log the error and any associated error information to a data repository 111 or log file for later analysis.
继续移动到框616,协作服务器113使用从客户端应用123接收的信息在数据存储库111中创建信息对象116。如果必要,协作服务器113也创建所需的任何父或子信息对象以及在最新创建的信息对象116和其它现有的信息对象116之间的任何引用或连接。Moving on to block 616, the collaboration server 113 creates the information object 116 in the data repository 111 using the information received from the client application 123. If necessary, the collaboration server 113 also creates any required parent or child information objects and any references or connections between the newly created information object 116 and other existing information objects 116.
接着参考框619,协作服务器113将信息对象116已被创建的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113在一些实施方式中可将最新创建的信息对象116标记为当前被修改或对最新创建的信息对象116的修改在进行中。这可在信息对象116被修改的同时锁定信息对象116或以其他方式防止信息对象116被其他用户、应用或过程修改。Next, referring to block 619, the collaboration server 113 sends a notification to the client application 123 that the information object 116 has been created. This notification may be in the form of a message, event notification, or other data format. Furthermore, in some embodiments, the collaboration server 113 may mark the newly created information object 116 as currently being modified or as having modification in progress. This may lock the information object 116 while it is being modified or otherwise prevent the information object 116 from being modified by other users, applications, or processes.
继续进行到框623,客户端应用123从协作服务器113接收信息对象116已被创建的通知。在一些实施方式中,通知也可包括最新创建的信息对象116被标记供编辑或修改的指示。如果最新创建的信息对象被标记供编辑,客户端应用123可使对信息对象116的客户端或本地拷贝的修改能够被做出。例如,客户端应用123可将最新创建的信息对象116的字段标记为可编辑的,实现信息对象116的各种菜单功能,或采取类似的行动。Continuing to block 623, the client application 123 receives notification from the collaboration server 113 that an information object 116 has been created. In some embodiments, the notification may also include an indication that the newly created information object 116 is marked for editing or modification. If the newly created information object is marked for editing, the client application 123 may enable modifications to the client or local copy of the information object 116. For example, the client application 123 may mark fields of the newly created information object 116 as editable, enable various menu functions for the information object 116, or take similar actions.
继续移动到框626,客户端应用123得到对最新创建的信息对象116的一个或多个用户修改。在一些实施方式中,客户端应用123可自动保存用户修改。例如,客户端应用123可将每个变化自动发送到协作服务器113,或客户端应用123可在周期性基础上例如每几分钟、每小时或某个其它时间周期成批地将变化发送到协作服务器113。客户端应用123也可在本地在客户端计算设备106(图1)上保存对最新创建的信息对象116的改变或修改。当用户完成修改最新创建的信息对象116时,最后这组变化被发送到协作服务器113。在一些实施方式中,被发送的变化能够以记录在存储在数据存储库111中的信息对象116的拷贝和存储在客户端计算设备106上的信息对象116的拷贝之间的变化的文件格式被发送。在各种实施方式中,变化可替代地作为在本地存储在客户端计算设备106上的信息对象116的拷贝被发送以用于代替存储在数据存储库111中的相应信息对象116的拷贝。在这样的实施方式中,信息对象116的拷贝可被序列化并传输到协作服务器113。Moving on to block 626, the client application 123 obtains one or more user modifications to the newly created information object 116. In some embodiments, the client application 123 can automatically save the user modifications. For example, the client application 123 can automatically send each change to the collaboration server 113, or the client application 123 can send the changes in batches to the collaboration server 113 on a periodic basis, such as every few minutes, every hour, or some other time period. The client application 123 can also save the changes or modifications to the newly created information object 116 locally on the client computing device 106 ( FIG. 1 ). When the user finishes modifying the newly created information object 116, the final set of changes is sent to the collaboration server 113. In some embodiments, the sent changes can be sent in a file format that records the changes between the copy of the information object 116 stored in the data repository 111 and the copy of the information object 116 stored on the client computing device 106. In various embodiments, the changes may instead be sent as a copy of the information object 116 stored locally on the client computing device 106 to replace the copy of the corresponding information object 116 stored in the data repository 111. In such embodiments, the copy of the information object 116 may be serialized and transmitted to the collaboration server 113.
接着参考框629,协作服务器113确定相应于修改的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。如果信息是无效的,则执行继续进行到前面描述的框646。然而如果信息是有效的,则执行继续进行到框633。Next, referring to block 629, the collaboration server 113 determines whether the information corresponding to the modified information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. If the information is invalid, execution proceeds to block 646, described above. However, if the information is valid, execution proceeds to block 633.
接着继续进行到框633,协作服务器113将对信息对象116的修改存储在数据存储库111中。在一些实施方式中,这可通过改写或代替存储在数据存储库111中的信息对象116的以前拷贝来实现。在其它实施方式中,信息对象116的内容可被编辑或更新,而不是用新拷贝或版本改写信息对象116。Continuing then to block 633, the collaboration server 113 stores the modifications to the information object 116 in the data repository 111. In some embodiments, this may be accomplished by overwriting or replacing a previous copy of the information object 116 stored in the data repository 111. In other embodiments, the content of the information object 116 may be edited or updated rather than overwriting the information object 116 with a new copy or version.
继续移动到框636,协作服务器113将对信息对象116的更新完成的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113可将最新创建的信息对象116标记为可编辑的,使得等待对信息对象116进行修改的其他用户或过程可以这么做。Moving on to block 636, the collaboration server 113 sends a notification to the client application 123 that the update of the information object 116 is complete. The notification may be in the form of a message, an event notification, or other data format. In addition, the collaboration server 113 may mark the newly created information object 116 as editable so that other users or processes waiting to modify the information object 116 can do so.
接着参考框639,客户端应用123接收对最新创建的信息对象116的更新或改变完成的通知。在一些实施方式中,客户端应用123可锁定或以其他方式防止用户在接收到该通知时修改最新创建的信息对象116。执行然后继续进行到框643,其中客户端应用123再现最新创建的信息对象116。Continuing with reference to block 639, the client application 123 receives notification that the update or change to the newly created information object 116 is complete. In some implementations, the client application 123 may lock or otherwise prevent the user from modifying the newly created information object 116 upon receiving the notification. Execution then proceeds to block 643, where the client application 123 renders the newly created information object 116.
图7示出根据各种实施方式的提供客户端应用123和协作服务器113的一部分的操作的一个例子的流程图。应理解,图7的流程图仅仅提供可用于实现如本文所述的客户端应用123和协作服务器113的部分的操作的很多不同类型的功能布置的例子。作为可选方案,图7的流程图可被视为描绘根据一个或多个实施方式的在联网环境100(图1)中实现的方法的要素的例子。FIG7 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 113 according to various embodiments. It should be understood that the flowchart of FIG7 merely provides an example of many different types of functional arrangements that can be used to implement the operation of portions of the client application 123 and the collaboration server 113 as described herein. Alternatively, the flowchart of FIG7 can be viewed as an example of elements of a method implemented in the networked environment 100 ( FIG1 ) according to one or more embodiments.
以框703开始,客户端应用123接收触发事件。触发事件包括指示与触发事件相关的信息对象116应被修改的任何事件。触发事件可包括例如由用户界面300(图1)接收的命令以根据一个或多个预定的规则自动布置或安排所显示的信息对象116的命令。用户界面可然后将触发发送到相应的信息对象116以根据一个或多个预定的规则修改它们的形式数据216。例如,触发事件可指示信息对象116可改变存储在形式数据216中的它们的位置、尺寸或形状值。Beginning with block 703, the client application 123 receives a trigger event. A trigger event includes any event that indicates that the information object 116 associated with the trigger event should be modified. The trigger event may include, for example, a command received by the user interface 300 ( FIG. 1 ) to automatically arrange or layout the displayed information objects 116 according to one or more predetermined rules. The user interface may then send a trigger to the corresponding information objects 116 to modify their form data 216 according to the one or more predetermined rules. For example, the trigger event may indicate that the information objects 116 may change their position, size, or shape values stored in the form data 216.
继续进行到框706,客户端应用123获取相应于触发事件的信息对象116的唯一标识符203(图2)。当获取到时,客户端应用123将唯一标识符203发送到协作服务器113。Continuing to block 706 , the client application 123 retrieves the unique identifier 203 ( FIG. 2 ) of the information object 116 corresponding to the triggering event.
接着参考框709,协作服务器113确定唯一标识符203(图2)是否是有效的。例如,协作服务器113可确定具有唯一标识符203的在数据存储库111(图1)中的信息对象116是否存在。如果否,则协作服务器113可产生错误。作为另一例子,协作服务器113可进一步确定在数据存储库111中的信息对象116是否是可编辑的信息对象116。如果否,则协作服务器113可产生错误。如果协作服务器113确定唯一标识符203是无效的,则执行继续进行到框739。然而如果信息是有效的,则执行继续进行到框713。Next, referring to block 709, the collaboration server 113 determines whether the unique identifier 203 ( FIG. 2 ) is valid. For example, the collaboration server 113 may determine whether an information object 116 with the unique identifier 203 exists in the data repository 111 ( FIG. 1 ). If not, the collaboration server 113 may generate an error. As another example, the collaboration server 113 may further determine whether the information object 116 in the data repository 111 is an editable information object 116. If not, the collaboration server 113 may generate an error. If the collaboration server 113 determines that the unique identifier 203 is invalid, execution proceeds to block 739. However, if the information is valid, execution proceeds to block 713.
如果执行跳到框739,协作服务器113产生错误消息事件并将错误消息发送到客户端应用123。错误消息可包括识别错误的类型或源、错误描述和错误的原因的错误代码。在一些实施方式中,错误消息本身可以是表示错误并包括可适用的错误信息的信息对象116。在各种实施方式中,协作服务器113也可以将错误和任何相关的错误信息记录到数据存储库111或日志文件用于以后分析。If execution proceeds to block 739, the collaboration server 113 generates an error message event and sends the error message to the client application 123. The error message may include an error code identifying the type or source of the error, a description of the error, and the cause of the error. In some embodiments, the error message itself may be an information object 116 representing the error and including applicable error information. In various embodiments, the collaboration server 113 may also log the error and any associated error information to a data repository 111 or log file for later analysis.
继续移动到框713,协作服务器113可将选定信息对象116标记为当前被修改或对选定信息对象116的修改在进行中。这可在信息对象116被修改的同时锁定信息对象116或以其他方式防止信息对象116被其他用户、应用或过程修改。在锁定信息对象116之后,协作服务器113然后将信息对象116可被编辑的消息发送到客户端应用123。Moving on to block 713, the collaboration server 113 may mark the selected information object 116 as currently being modified or that modification of the selected information object 116 is in progress. This may lock the information object 116 while it is being modified or otherwise prevent the information object 116 from being modified by other users, applications, or processes. After locking the information object 116, the collaboration server 113 then sends a message to the client application 123 that the information object 116 may be edited.
接着参考框719,客户端应用123响应于触发根据与触发相关的条件来修改信息对象116。在一些实施方式中,在变化被发送到协作服务器113的期间,变化可自动在本地保存在客户端计算设备106(图1)上。Referring next to block 719, the client application 123 modifies the information object 116 in response to the trigger according to conditions associated with the trigger. In some implementations, while changes are being sent to the collaboration server 113, the changes can be automatically saved locally on the client computing device 106 (FIG. 1).
接着参考框723,协作服务器113确定相应于修改的信息对象116的信息是否是有效的。例如,协作服务器113可检查错误作为反序列化过程的部分。协作服务器113可检查以查看数据是否被正确地格式化。如果信息是无效的,则执行继续进行到前面描述的框739。然而如果信息是有效的,则执行继续进行到框526。Next, referring to block 723, the collaboration server 113 determines whether the information corresponding to the modified information object 116 is valid. For example, the collaboration server 113 may check for errors as part of the deserialization process. The collaboration server 113 may check to see if the data is correctly formatted. If the information is invalid, execution proceeds to block 739, described above. However, if the information is valid, execution proceeds to block 526.
继续移动到框726,协作服务器113将对信息对象116的修改存储在数据存储库111中。在一些实施方式中,这可通过改写或代替存储在数据存储库111中的信息对象116的以前拷贝来实现。在其它实施方式中,信息对象116的内容可被编辑或更新,而不是用新拷贝或版本改写信息对象116。Moving on to block 726, the collaboration server 113 stores the modifications to the information object 116 in the data repository 111. In some embodiments, this may be accomplished by overwriting or replacing a previous copy of the information object 116 stored in the data repository 111. In other embodiments, the content of the information object 116 may be edited or updated rather than overwriting the information object 116 with a new copy or version.
接着参考框729,协作服务器113将对信息对象116的更新完成的通知发送到客户端应用123。该通知可以是以消息、事件通知或其它数据格式的形式。此外,协作服务器113可将选定信息对象116标记为可编辑的,使得等待对信息对象116进行修改的其他用户或过程可以这么做。Next, with reference to block 729, the collaboration server 113 sends a notification to the client application 123 that the update to the information object 116 is complete. The notification may be in the form of a message, an event notification, or other data format. In addition, the collaboration server 113 may mark the selected information object 116 as editable so that other users or processes waiting to modify the information object 116 can do so.
继续移动到框733,客户端应用123接收对选定信息对象116的更新或改变完成的通知。在一些实施方式中,客户端应用123可锁定或以其他方式防止用户在接收到该通知时修改选定信息对象116。执行然后继续进行到框736,其中客户端应用123再现修改的信息对象116。Moving on to block 733, the client application 123 receives notification that the update or change to the selected information object 116 is complete. In some implementations, the client application 123 may lock or otherwise prevent the user from modifying the selected information object 116 upon receiving the notification. Execution then continues to block 736, where the client application 123 renders the modified information object 116.
图8示出根据各种实施方式的提供客户端应用123和协作服务器113的一部分的操作的一个例子的流程图。应理解,图8的流程图仅仅提供可用于实现如本文所述的客户端应用123和协作服务器113的部分的操作的很多不同类型的功能布置的例子。作为可选方案,图8的流程图可被视为描绘根据一个或多个实施方式的在联网环境100(图1)中实现的方法的要素的例子。FIG8 shows a flowchart that provides one example of the operation of a portion of the client application 123 and the collaboration server 113 according to various embodiments. It should be understood that the flowchart of FIG8 merely provides an example of many different types of functional arrangements that can be used to implement the operation of portions of the client application 123 and the collaboration server 113 as described herein. Alternatively, the flowchart of FIG8 can be viewed as an example of elements of a method implemented in the networked environment 100 ( FIG1 ) according to one or more embodiments.
以框803开始,客户端应用123从数据源接收将被添加到现有的信息对象116(图1)的数据。数据源例如可包括一个或多个传感器和/或其它数据馈源126(图1)。数据可作为信息对象116或一系列信息对象116被接收。例如,温度传感器可记录一系列温度并将它们提供到客户端应用123作为一系列信息对象116或作为表示温度读数的流或系列的单个信息对象116。在一些实施方式中,传感器和/或其它数据馈源可提供数据作为还没有被处理成一个或多个信息对象116的原始数据。也注意,在一些实施方式中,传感器和/或其它数据馈源126可将信息直接提供到协作服务器113。Beginning with block 803, the client application 123 receives data from a data source to be added to an existing information object 116 ( FIG. 1 ). The data source may include, for example, one or more sensors and/or other data feeds 126 ( FIG. 1 ). The data may be received as an information object 116 or a series of information objects 116. For example, a temperature sensor may record a series of temperatures and provide them to the client application 123 as a series of information objects 116 or as a single information object 116 representing a stream or series of temperature readings. In some embodiments, the sensors and/or other data feeds may provide the data as raw data that has not yet been processed into one or more information objects 116. Note also that in some embodiments, the sensors and/or other data feeds 126 may provide information directly to the collaboration server 113.
接着参考框806,客户端应用123确认由一个或多个传感器和/或其它数据馈源126提供的信息生效。确认生效可取决于由一个或多个传感器和/或其它数据馈源126提供的信息的类型。如果数据是以信息对象116的形式接收的,则客户端应用123可确定信息对象是否有效地被格式化和构造。如果数据作为原始数据被接收,则客户端应用123可对所接收的数据执行生效检查。如果所接收的数据是无效的,则执行跳到框843。如果所接收的数据是有效的,则执行继续进行到框809。Referring next to block 806, the client application 123 verifies that the information provided by the one or more sensors and/or other data feeds 126 is valid. Verification of validity may depend on the type of information provided by the one or more sensors and/or other data feeds 126. If the data is received in the form of an information object 116, the client application 123 may determine whether the information object is formatted and constructed validly. If the data is received as raw data, the client application 123 may perform a validation check on the received data. If the received data is invalid, execution jumps to block 843. If the received data is valid, execution continues to block 809.
如果执行跳到框843,则客户端应用将指示所接收的数据或信息对象116是无效的错误消息发送到传感器和/或其它数据馈源126。在一些实施方式中,客户端应用123也可产生待在用户界面300(图1)内再现的错误消息和/或将错误或错误消息写到日志。过程然后终止。If execution jumps to block 843, the client application sends an error message to the sensor and/or other data feed 126 indicating that the received data or information object 116 is invalid. In some embodiments, the client application 123 may also generate an error message to be reproduced within the user interface 300 ( FIG. 1 ) and/or write the error or error message to a log. The process then terminates.
然而如果执行继续进行到框809,则客户端应用123调用现有的信息对象116的一个或多个函数219(图2)。作为调用过程的部分,客户端应用123可向协作服务器113查询或请求待调用的函数219的最近或最当前版本的拷贝。例如,如果由一个或多个传感器和/或其它数据馈源126提供的数据是温度数据或一系列温度读数,则客户端应用123可调用现有的信息对象116的“AddNewTemperatureReading”函数219以通过将创建在现有的信息对象116之间的关联的信息对象引用209(图2)添加到现有的信息对象116来添加接收的数据。在一些实施方式中,一般“AddNewData”函数219可被调用以在所接收的数据和现有的信息对象116之间创建信息对象引用209。If, however, execution proceeds to block 809, the client application 123 calls one or more functions 219 ( FIG. 2 ) of the existing information object 116. As part of the calling process, the client application 123 may query or request a copy of the most recent or current version of the function 219 to be called from the collaboration server 113. For example, if the data provided by one or more sensors and/or other data feeds 126 is temperature data or a series of temperature readings, the client application 123 may call an “AddNewTemperatureReading” function 219 of the existing information object 116 to add the received data by adding an information object reference 209 ( FIG. 2 ) to the existing information object 116, creating an association between the existing information object 116. In some embodiments, a general “AddNewData” function 219 may be called to create an information object reference 209 between the received data and the existing information object 116.
接着继续进行到框813,协作服务器113确定所提供的数据是否是有效的。例如,协作服务器可确定由客户端应用123关于待调用的函数219提供的变元是否是正确的。使用温度传感器的例证性例子,协作服务器可确定客户端应用123是否将温度读数传递到“AddNewTemperatureReading”函数219或客户端应用123是否试图传递与温度数据无关的变元。作为另一例子,协作服务器113可确定对函数219的最当前版本的请求是否是有效的。作为例子,所请求的函数可以不存在或可以被弃用或从系统的当前实现移除,且因此该函数可不再可用于被调用。在一些实施方式中,函数219的子集可能需要提高的或特殊的许可来执行,且因此协作服务器113必须确定客户端应用213是否有适当的许可来执行函数219。如果协作服务器113确定对函数219的最近版本的请求是无效的,则执行跳到框846。然而,如果协作服务器113确定请求是有效的,则执行继续进行到框816。Continuing to block 813, collaboration server 113 determines whether the provided data is valid. For example, collaboration server 113 may determine whether the arguments provided by client application 123 for the function 219 to be called are correct. Using the illustrative example of a temperature sensor, collaboration server 113 may determine whether client application 123 passed a temperature reading to "AddNewTemperatureReading" function 219 or whether client application 123 attempted to pass arguments unrelated to temperature data. As another example, collaboration server 113 may determine whether the request for the most current version of function 219 is valid. For example, the requested function may not exist or may be deprecated or removed from the current implementation of the system, and therefore, the function may no longer be available for invocation. In some embodiments, a subset of functions 219 may require enhanced or special permissions to execute, and collaboration server 113 must therefore determine whether client application 213 has the appropriate permissions to execute function 219. If collaboration server 113 determines that the request for the most current version of function 219 is invalid, execution proceeds to block 846. However, if the collaboration server 113 determines that the request is valid, execution continues to block 816 .
向前跳到框846,协作服务器113产生错误消息事件并将错误消息发送到客户端应用123。错误消息可包括识别错误的类型或源、错误描述和错误的原因的错误代码。在一些实施方式中,错误消息本身可以是表示错误并包括可适用的错误信息的信息对象116。在各种实施方式中,协作服务器113也可以将错误和任何相关的错误信息记录到数据存储库111(图1)或日志文件用于以后分析。Jumping forward to block 846, the collaboration server 113 generates an error message event and sends the error message to the client application 123. The error message may include an error code identifying the type or source of the error, a description of the error, and the cause of the error. In some embodiments, the error message itself may be an information object 116 representing the error and including applicable error information. In various embodiments, the collaboration server 113 may also log the error and any associated error information to a data repository 111 ( FIG. 1 ) or a log file for later analysis.
接着参考框816,协作服务器113查询数据存储库111以确定客户端应用123被请求执行的函数219的最当前版本。协作服务器113然后将函数219的最当前版本的代码或逻辑发送到客户端应用123。在一些实施方式中,函数219可作为人可读源代码被发送。在其它实施方式中,函数219可被序列化并发送到客户端应用123。Next, referring to block 816, the collaboration server 113 queries the data repository 111 to determine the most current version of the function 219 that the client application 123 is requested to execute. The collaboration server 113 then sends the code or logic for the most current version of the function 219 to the client application 123. In some embodiments, the function 219 may be sent as human-readable source code. In other embodiments, the function 219 may be serialized and sent to the client application 123.
继续移动到框819,客户端应用123从协作服务器113接收函数219的最近版本。如果函数219被提供为人可读源代码,则客户端应用123可将人可读源代码编译或解释成机器可读二进制。如果函数219以序列化形式被发送,则函数219可由客户端应用123反序列化。客户端应用123然后执行函数219。Moving on to block 819, the client application 123 receives the latest version of the function 219 from the collaboration server 113. If the function 219 is provided as human-readable source code, the client application 123 may compile or interpret the human-readable source code into a machine-readable binary. If the function 219 is sent in serialized form, the function 219 may be deserialized by the client application 123. The client application 123 then executes the function 219.
接着继续进行到框823,在框819中执行的函数219的结果被发送到协作服务器113。在一些实施方式中,结果可作为最新创建的数据对象116或信息对象116的集合被发送。Continuing then to block 823, the results of the function 219 executed in block 819 are sent to the collaboration server 113. In some implementations, the results may be sent as a collection of newly created data objects 116 or information objects 116.
接着参考框826,协作服务器113确定在框819中调用的函数的结果是否是有效的。例如,协作服务器113可确定因而产生的信息对象116是否被正确地格式化。作为另一例子,协作服务器113可确定在因而产生的一个或多个信息对象116和在数据存储库111中的任何现有的信息对象116之间是否存在冲突。如果结果是无效的,则执行跳到框846,如前所述。如果结果是有效的,则执行替代地继续进行到框829。Referring next to block 826, the collaboration server 113 determines whether the result of the function called in block 819 is valid. For example, the collaboration server 113 may determine whether the resulting information object 116 is correctly formatted. As another example, the collaboration server 113 may determine whether there is a conflict between the resulting one or more information objects 116 and any existing information objects 116 in the data repository 111. If the result is invalid, execution jumps to block 846, as previously described. If the result is valid, execution instead continues to block 829.
继续移动到框829,协作服务器113将初始信息对象116标记为被修改。这锁定或以其他方式防止初始信息对象116被其它客户端应用123或过程修改。协作服务器然后将从在框819中执行的函数219产生的数据或信息对象116保存到数据存储库111,且也保存将初始信息对象116链接到最新创建的信息对象116所必需的任何修改。Moving on to block 829, the collaboration server 113 marks the initial information object 116 as modified. This locks or otherwise prevents the initial information object 116 from being modified by other client applications 123 or processes. The collaboration server then saves the data or information object 116 resulting from the function 219 executed in block 819 to the data repository 111, and also saves any modifications necessary to link the initial information object 116 to the newly created information object 116.
接着继续进行到框833,协作服务器113将相应的信息对象116标记为已经被修改,将信息对象116解锁,使得其它客户端应用123或其它过程可读取或修改它们。协作服务器113然后将指示对相应的信息对象116的所有改变完成的消息发送到客户端应用123。接着参考框836,客户端应用123从协作服务器113接收对数据存储库111中的信息对象116的更新已完成的通知。继续移动到框839,在框809中调用并在框819中执行的函数219完成,且函数219结束。Continuing with block 833, the collaboration server 113 marks the corresponding information object 116 as modified, unlocking the information object 116 so that other client applications 123 or other processes can read or modify it. The collaboration server 113 then sends a message to the client application 123 indicating that all changes to the corresponding information object 116 are complete. Continuing with block 836, the client application 123 receives notification from the collaboration server 113 that the update of the information object 116 in the data repository 111 is complete. Continuing with block 839, the function 219 called in block 809 and executed in block 819 completes, and function 219 ends.
参考图9,示出了根据本公开的实施方式的计算环境103的示意性方框图。计算环境103包括一个或多个计算设备900。每个计算设备900包括例如具有都耦合到本地接口909的处理器903和存储器906的至少一个处理器电路。为此目的,每个计算设备900可包括例如至少一个服务器或类似设备。本地接口909可包括例如具有附随的地址/控制总线或如可被认识到的其它总线结构的数据总线。9, a schematic block diagram of a computing environment 103 according to an embodiment of the present disclosure is shown. The computing environment 103 includes one or more computing devices 900. Each computing device 900 includes, for example, at least one processor circuit having a processor 903 and a memory 906, both coupled to a local interface 909. To this end, each computing device 900 may include, for example, at least one server or similar device. The local interface 909 may include, for example, a data bus with an accompanying address/control bus or other bus structure as may be appreciated.
存储在存储器906中的是由处理器903可执行的数据和几个部件。特别是,存储在存储器906中并由处理器903可执行的是协作服务器113且可能是其它应用。此外,存储在存储器906中的可以是数据存储库111和其它数据。此外,操作系统911可存储在存储器906中并由处理器903可执行。Stored in memory 906 are data and several components executable by processor 903. In particular, stored in memory 906 and executable by processor 903 are collaboration server 113 and possibly other applications. Also stored in memory 906 may be data repository 111 and other data. Furthermore, operating system 911 may be stored in memory 906 and executable by processor 903.
应理解,可以有存储在存储器906中并由处理器903可执行的其它应用,如可认识到的。在本文讨论的任何部件可在软件的形式中实现的场合,可使用多种编程语言中的任一个,例如C、C++、C#、Objective C、Perl、PHP、VisualRuby、或其它编程语言。It should be understood that there may be other applications stored in the memory 906 and executable by the processor 903, as can be appreciated. Where any component discussed herein may be implemented in software, any of a variety of programming languages may be used, such as C, C++, C#, Objective C, Perl, PHP, Visual Ruby, or other programming languages.
多个软件部件存储在存储器906中并由处理器903可执行。在这个方面中,术语“可执行”意指以可最终由处理器903运行的形式的程序文件。可执行程序的例子可以是编译程序,其例如可被转换成以可被装入存储器906的随机存取部分中并由处理器903运行的格式的机器代码、可以用正确的格式表示的源代码例如能够被装入存储器906的随机存取部分中并由处理器903执行的对象代码或可由另一可执行程序解释以产生在被存储器906的随机存取部分中并由处理器903执行的指令的源代码等。可执行程序可存储在存储器1006的任何部分或部件中,包括例如随机存取存储器(RAM)、只读存储器(RAM)、硬盘驱动器、固态驱动器、USB闪存驱动器、存储卡、光学盘例如光盘(CD)或数字通用盘(DVD)、软盘、磁带或其它存储器部件。A plurality of software components are stored in the memory 906 and are executable by the processor 903. In this regard, the term "executable" means a program file in a form that can ultimately be run by the processor 903. Examples of executable programs may be a compiled program, for example, which can be converted into machine code in a format that can be loaded into the random access portion of the memory 906 and run by the processor 903, source code that can be represented in a proper format, such as object code that can be loaded into the random access portion of the memory 906 and executed by the processor 903, or source code that can be interpreted by another executable program to generate instructions in the random access portion of the memory 906 and executed by the processor 903, etc. The executable program may be stored in any portion or component of the memory 1006, including, for example, random access memory (RAM), read-only memory (RAM), a hard drive, a solid-state drive, a USB flash drive, a memory card, an optical disk such as a compact disk (CD) or a digital versatile disk (DVD), a floppy disk, a magnetic tape, or other memory component.
存储器906在本文被定义为包括易失性和非易失性存储器和数据存储部件。易失性部件是在失去电力时不保留数据值的那些部件。非易失性部件是在失去电力时保留数据的那些部件。因此,存储器906可包括例如随机存取存储器(RAM)、只读存储器(RAM)、硬盘驱动器、固态驱动器、USB闪存驱动器、经由存储器读卡器访问的存储卡、经由软盘驱动器访问的软盘、经由光学盘驱动器访问的光学盘、经由适当的磁带驱动器访问的磁带和/或其它存储器部件或这些存储器部件中的任意两个或更多个的组合。此外,RAM可包括例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或磁性随机存取存储器(MRAM)和其它这样的设备。ROM可包括例如可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其它类型的存储器设备。Memory 906 is defined herein as including volatile and non-volatile memory and data storage components. Volatile components are those components that do not retain data values when power is lost. Non-volatile components are those components that retain data when power is lost. Therefore, memory 906 may include, for example, random access memory (RAM), read-only memory (RAM), hard drive, solid-state drive, USB flash drive, memory card accessed via a memory card reader, floppy disk accessed via a floppy disk drive, optical disk accessed via an optical disk drive, magnetic tape accessed via an appropriate tape drive and/or other memory components or any combination of two or more of these memory components. In addition, RAM may include, for example, static random access memory (SRAM), dynamic random access memory (DRAM) or magnetic random access memory (MRAM) and other such devices. ROM may include, for example, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or other types of memory devices.
此外,处理器903可代表多个处理器903和/或多个处理器核心,且存储器906可代表分别在并联处理电路中操作的多个存储器906。在这样的情况下,本地接口909可以是便于在多个处理器903的任两个之间、在任一处理器903和任一存储器906之间或在存储器906中的任两个之间等通信的适当网络。本地接口909可包括设计成协调这个通信——包括例如执行负载平衡——的额外系统。处理器903可具有电气或某个其它可用结构。Furthermore, the processor 903 may represent a plurality of processors 903 and/or a plurality of processor cores, and the memory 906 may represent a plurality of memories 906 each operating in parallel processing circuits. In such a case, the local interface 909 may be an appropriate network that facilitates communication between any two of the plurality of processors 903, between any processor 903 and any memory 906, or between any two of the memories 906. The local interface 909 may include additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 903 may have an electrical or some other usable structure.
虽然协作服务器113和客户端应用123和本文所述的其它各种系统可体现在由如上讨论的通用硬件执行的软件或代码中,作为可选方案,它们也可体现在专用硬件或软件/通用硬件和专用硬件的组合中。如果体现在专用硬件中,则每个可被实现为使用多种技术的任一个或组合的电路或状态机。这些技术可包括但不限于具有用于在应用一个或多个数据信号时实现各种逻辑功能的逻辑门的分立逻辑电路、具有适当的逻辑门的专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它部件等。这样的技术通常是本领域中的技术人员公知的,且因此不在本文被详细描述。Although the collaboration server 113 and client application 123 and the various other systems described herein may be embodied in software or code executed by general-purpose hardware as discussed above, as an alternative, they may also be embodied in dedicated hardware or a combination of software/general-purpose hardware and dedicated hardware. If embodied in dedicated hardware, each may be implemented as a circuit or state machine using any one or a combination of a variety of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions when one or more data signals are applied, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other components having appropriate logic gates. Such technologies are generally well known to those skilled in the art and, therefore, are not described in detail herein.
在本公开中可描述协作服务器113或客户端应用123的部分的实现的功能和操作。如果体现在软件中,则所述功能可代表包括实现规定的逻辑功能的程序指令的代码的模块、段或部分。程序指令可体现在包括以编程语言编写的人可读语句的源代码或包括由在计算机系统或其它系统中的适当执行系统例如处理器903可识别的数字指令的机器代码的形式中。机器代码可从源代码等转换。如果体现在硬件中,则每个块可代表电路或多个互连的电路以实现规定的逻辑功能。The present disclosure may describe the functionality and operations of a portion of the implementation of the collaboration server 113 or client application 123. If embodied in software, the functionality may represent a module, segment, or portion of code comprising program instructions for implementing the specified logical function. The program instructions may be embodied in the form of source code comprising human-readable statements written in a programming language or machine code comprising digital instructions recognizable by an appropriate execution system in a computer system or other system, such as processor 903. Machine code may be converted from source code, etc. If embodied in hardware, each block may represent a circuit or multiple interconnected circuits to implement the specified logical function.
虽然可描述应用的特定执行顺序,应理解,执行顺序可不同于所描述的顺序。所述功能可同时或与其它所述功能并行地实现。而且,所述功能可以按与在本公开中描述或描绘的顺序不同的顺序出现。此外,在一些实施方式中,可跳过或省略本文所述的功能。此外,为了增强的实用性、记账、性能测量或提供检修等的目的,任何数量的计数器、状态变量、警告信号灯或消息可被添加到本文所述的逻辑流程。应理解,所有这样的变化都在本公开的范围内。Although a specific execution order of an application may be described, it should be understood that the execution order may differ from the order described. The functions described may be implemented simultaneously or in parallel with other functions described. Moreover, the functions may appear in an order different from the order described or depicted in this disclosure. In addition, in some embodiments, the functions described herein may be skipped or omitted. In addition, for the purpose of enhanced practicality, accounting, performance measurement, or providing troubleshooting, any number of counters, status variables, warning lights, or messages may be added to the logic flow described herein. It should be understood that all such variations are within the scope of this disclosure.
此外,包括软件或代码的本文所述的任何逻辑或应用——包括协作服务器113和客户端应用123——可体现在任何非临时计算机可读介质中用于由或结合指令执行系统例如在计算机系统或其它系统中的处理器903来使用。在这个意义上,逻辑可包括例如包括可从计算机可读介质中取出并由指令执行系统执行的指令和声明的语句。在本公开的上下文中,“计算机可读介质”可以是可包含、存储或维持本文所述的逻辑或应用用于由或结合指令系统来使用的任何介质。Furthermore, any logic or application described herein, including software or code, including the collaboration server 113 and the client application 123, may be embodied in any non-transitory computer-readable medium for use by or in conjunction with an instruction execution system, such as a processor 903 in a computer system or other system. In this sense, logic may include, for example, statements including instructions and declarations that can be retrieved from a computer-readable medium and executed by an instruction execution system. In the context of this disclosure, a "computer-readable medium" may be any medium that can contain, store, or maintain logic or an application described herein for use by or in conjunction with an instruction execution system.
计算机可读介质可包括很多物理介质中的任一个,例如磁、光或半导体介质。适当的计算机可读介质的更特定的例子将包括但不限于磁带、磁性软盘、磁硬盘驱动器、存储卡、固态驱动器、USB闪存驱动器或光盘。此外,计算机可读介质可以是随机存取存储器(RAM),包括例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或磁性随机存取存储器(MRAM)。此外,计算机可读介质可以是只读存取存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其它类型的存储器设备。Computer-readable media can include any of a variety of physical media, such as magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, magnetic tape, magnetic floppy disks, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical disks. Additionally, the computer-readable medium can be a random access memory (RAM), including, for example, a static random access memory (SRAM), a dynamic random access memory (DRAM), or a magnetic random access memory (MRAM). Additionally, the computer-readable medium can be a read-only access memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other types of memory devices.
应强调,本公开的上述实施方式仅仅是为了本公开的原理的清楚理解而产生的实现的可能的例子。可对上述实施方式做出很多变化和修改而实质上不偏离本公开的精神和原理。所有这样的修改和变化被规定为在本文中被包括在本公开的范围内并被下面的权利要求保护。It should be emphasized that the above-described embodiments of the present disclosure are merely examples of possible implementations produced for a clear understanding of the principles of the present disclosure. Many variations and modifications may be made to the above-described embodiments without substantially departing from the spirit and principles of the present disclosure. All such modifications and variations are intended to be included herein within the scope of the present disclosure and protected by the following claims.
Claims (31)
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361787688P | 2013-03-15 | 2013-03-15 | |
| US61/787,688 | 2013-03-15 | ||
| US14/208,346 | 2014-03-13 | ||
| US14/208,346 US9772984B2 (en) | 2013-03-15 | 2014-03-13 | Visualization interface for information object system |
| PCT/US2014/027197 WO2014152312A1 (en) | 2013-03-15 | 2014-03-14 | Visualization interface for information object system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1218981A1 HK1218981A1 (en) | 2017-03-17 |
| HK1218981B true HK1218981B (en) | 2019-10-11 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108292231B (en) | Method and system for generating applications from data | |
| US10223698B2 (en) | Integrating a web-based CRM system with a PIM client application | |
| WO2014028655A1 (en) | User interface control framework for stamping out controls using a declarative template | |
| US11630647B2 (en) | Method and system for configuring processes of software applications using activity fragments | |
| CN106687946A (en) | Generating mobile web browser views for applications | |
| CN105229564B (en) | The visualization interface of information object system | |
| Feldman et al. | Developing Business Intelligence Apps for SharePoint: Combine the Power of SharePoint, LightSwitch, Power View, and SQL Server 2012 | |
| Rizzo et al. | Professional SharePoint 2010 Development | |
| US11010140B2 (en) | Integration of workflow and logical data objects using visual programming | |
| US20240070379A1 (en) | Document editor and file format | |
| HK1218981B (en) | Visualization interface for information object system | |
| US20170286195A1 (en) | Information object system | |
| Bevilacqua | Redmine plugin extension and development | |
| Brandmaier et al. | Automated Reproducibility Testing in R Markdown | |
| TWI907922B (en) | Document information providing method and electronic apparatus thereof | |
| US20250390535A1 (en) | Smart graph-based document generation | |
| Thanki et al. | wigExplorer, a BioJS component to visualise wig data | |
| CN120597854A (en) | Table data processing method and related equipment | |
| Pereira | RODA-in-a generic tool for the mass creation of submission information packages | |
| CN115587074A (en) | Method, device, live broadcast system, equipment and medium for generating special effect resource files | |
| Børnich | Galaxy Portal | |
| Kappagantula | Ninja Grad | |
| Yuen | Flex-based PowerPoint | |
| HK1237558A1 (en) | Information object system |