CN101739442A - 用于显示信息的系统和方法 - Google Patents
用于显示信息的系统和方法 Download PDFInfo
- Publication number
- CN101739442A CN101739442A CN200910212030A CN200910212030A CN101739442A CN 101739442 A CN101739442 A CN 101739442A CN 200910212030 A CN200910212030 A CN 200910212030A CN 200910212030 A CN200910212030 A CN 200910212030A CN 101739442 A CN101739442 A CN 101739442A
- Authority
- CN
- China
- Prior art keywords
- fragment
- xml
- mark
- server
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
描述了一种用于显示信息的客户机/服务器系统。该服务器包括用于向一个或更多个客户机提供多个片段对象的片段服务器,每个片段对象包括标记组件和管理组件。该客户机包括:用于显示多个视图的显示器,每个视图通过片段对象的标记组件描述;以及片段控制器,该片段控制器与所述显示器相关联,用于管理所述多个片段对象,所述片段控制器从所述服务器接收片段对象且基于接收的片段的标记组件更新多个视图中的一个视图,且基于接收的片段对象的管理组件更新片段对象的一个或多个管理组件。
Description
技术领域
本发明涉及显示信息,且更具体而言涉及用于在客户机上显示信息的客户机/服务器框架。
背景技术
公司和组织经常使用门户(portal)来提供对于服务或程序集合的单点访问。门户可以构建合并不同服务或程序的视图且向用户显示这些视图。门户页面通常通过运行在终端用户计算机上的网络浏览器来访问。终端用户向网络浏览器指明门户的统一资源定位符(URL)以查看该门户提供的用户界面(UI)。
门户可以将UI构建为显示来自服务或程序的信息的超文本标记语言(HTML)文件。UI的HTML可以包括终端用户可以点击的链接,使请求被发送到门户。门户可以接收请求且将请求定向到合适的服务或程序以进行处理。请求的处理可以导致产生新信息以显示在客户机上。门户可以构建UI页面以显示该新信息且发送该页面到客户机以用于显示。
创建可以产生用于从诸如服务或程序的不同来源接收的信息的UI的门户会要求大量的编程工作。解决开发UI以在门户中显示信息的问题的一种尝试已经使用多种标准来提供框架,该框架用于请求和接收可以嵌入到门户UI中UI元素。UI元素典型地包括可以插入到HTML文档中以向终端用户的客户机提供UI的HTML代码的片段。两个标准中的第一个是远程门户网站服务(WSRP),其描述怎样以简单对象访问协议(SOAP)消息请求和发射部分HTML。第二个标准是JSR-168,它是描述portlet接口的标准。WSRP和JSR-168被整体引用包括在此作为参考。Portlet在门户框架中运行且可以提供UI元素作为HTML中可以使用WSRP发射的部分。WSRP/JSP-168的使用可用于提供包括多个porlet的门户,该多个portlet提供包括在被发送到客户机的UI中的UI元素。
尽管WSRP/JSR-168的使用有利于简化门户的UI开发,但由于WSRP的网络服务接口,它的使用可能是有困难的。而且,很多UI的处理在服务器上执行,这可能导致建立在WSRP/JSR-168技术上的解决方案的可伸缩性的问题。
发明内容
根据本发明的一个实施例,提供一种用于显示信息的客户机/服务器系统。该系统包含:服务器,具有用于执行存储在计算机可读存储器上的指令的处理器,该存储器耦合到所述处理器,得到处理器执行指令,所述处理器执行指令在所述计算机可读存储器中提供;以及客户机,具有用于执行存储在计算机可读存储器中的指令的客户机处理器,该计算机可读存储器与所述客户机处理器耦合,得到客户机处理器执行指令,所述客户机处理器执行指令在所述计算机可读存储器中提供。服务器的处理器执行指令在所述计算机可读存储器中提供片段服务器(fragment server),该片段服务器用于向一个或更多个客户机提供多个片段对象,每个片段对象包括标记组件和管理组件。客户机上的客户机处理器执行指令在客户机的所述计算机可读存储器中提供:显示器,用于显示多个视图,每个视图通过片段对象的标记组件描述;以及片段控制器,该片段控制器与所述显示器相关联,用于管理所述多个片段对象,所述片段控制器从所述服务器接收片段对象且基于接收的片段的标记组件更新多个视图中的一个视图,且基于接收的片段对象的管理组件更新片段对象的一个或多个管理组件。
根据本发明的另一实施例,提供一种串流XML文档的方法。该方法包括:创建输出流写入器,用于串流XML文档的输出;创建与该输出流写入器相关联的输出缓冲器,用于保持信息以写入到输出流写入器;创建缺省写入器,用于写入可用XML元素到输出缓冲器;判断不存在XML文档中需要的XML元素,且创建用于该XML元素的标记;当该XML元素变得可用时替换输出缓冲器中的标记;判断没有更多的XML元素要写入到输出流;以及关闭输出流写入器。
附图说明
图1a以示意性方式示意了一种可以实践此处描述的本公开的实施例的网络环境。
图1b以框图的形式示意了可用于客户机106和服务器104的硬件组件;
图2以示意性方式示意了根据本公开在客户机的浏览器上显示的示例性门户屏幕200。
图3以框图的形式示意了根据本公开的示例性客户机侧组件;
图4以框图的形式示意了根据本公开的示例性片段;
图5以框图的形式示意了根据本公开的片段控制器的示例性组件;
图6以框图的形式示意了根据本公开的门户服务器的示例性组件;
图7以框图的形式示意了根据本公开的片段服务器的示例性组件;
图8以流程图的形式示意了根据本公开的显示系统的组件的示例性交互;
图9以框图的形式示意了根据本公开从分离的XML元素形成的合并的XML文档;
图10以流程图的形式示意了根据本公开用于串流(streaming)XML文档的方法;
图11示意了根据本公开的伪代码列表、相应的输出缓冲器表示以及得到的输出XML文档。
图12以流程图的形式示意了根据本公开用于向XML流提供事务处理能力的方法;以及
图13以示图的方式示意了根据本公开的示例性使用情况和得到的串流的输出。
具体实施方式
此处使用的术语仅用于描述具体实施例的目的,且并不旨在限制本发明。当在此使用时,除非明确指明,单数形式“一”、“一个”、“该”同样也包括复数形式。还应当理解,当在本说明书中使用时,术语“包含”及其动名词形式指定陈述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元件和/或组件的存在或添加。
下面的权利要求中,所有装置或步骤加上功能元件的相应结构、材料、动作及等价旨在包括用于执行与具体权利要求的其他要求元件相组合的功能的任意结构、材料或动作。本发明的描述仅用于说明和描述目的,而并不旨在排他或限制本发明为所公开的形式。很多不偏离本发明的范围和精神的修改和变型对于本领域技术人员是显见的。选择和描述实施例的目的是为了更好地解释本发明的原理和实践应用,且使得本领域技术人员理解本发明的各个实施例以及可以预见的与特定用途相符的各种修改。
如本领域技术人员将意识到,本发明可以实施为系统、方法或计算机程序产品。因此,本发明可以具有完全硬件实施例、完全软件实施例或者组合软件和硬件方面的实施例的形式,此处所有实施例均一般地被称为“电路”、“模块”或“系统”。而且,本发明可以具有计算机程序产品的形式,该计算机程序产品嵌入在任意有形介质的表达中,该有形介质表达具有嵌入在介质中的计算机可用程序代码。
可以使用一个或多个计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质例如可以是但不限于,电、磁、光学、电磁、红外或半导体系统、设备、装置或传播介质。计算机可读介质的更具体的示例(非排他列表)将包括如下示例:具有一个或多个线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式压缩光盘只读存储器(CDROM)、光学存储装置或磁存储装置。注意计算机可用或计算机可读介质甚至可以是其上打印了程序的纸张或其他合适介质,因为程序例如可以经由纸张或其他介质的光学扫描电捕获,然后在必要时被编译、解释或以合适的方式处理,且然后存储在计算机存储器中。在本文档的背景下,计算机可用或计算机可读介质可以是包含或存储被指令执行系统、设备或装置使用或与之相关的任意介质。
用于实施本发明的操作的计算机程序代码可以以一种或多种编程语言的任意组合编写,这些编程语言包括面向对象编程语言,诸如Java、Smalltalk、C++等,以及常规过程编程语言,诸如“C”编程语言或类似编程语言。程序代码可以完全在用户计算机上执行,作为单独软件包部分在用户计算机上执行,部分在用户计算机且部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任意类型的网络连接到用户计算机,所述网络包括局域网(LAN)或广域网(WAN),或者可以对外部计算机做连接(例如,通过使用因特网服务器提供商的因特网)。下面参考本发明的实施例的方法、设备(系统)和计算机程序的流程图说明和/或框图描述本发明。应当理解,流程图说明和/或框图的每个方框以及流程图说明和/或框图的方框的组合可以通过计算机程序指令实施。这些计算机程序指令可以提供到通用目的计算机、专用目的计算机或其他可编程数据处理设备的处理器以产生机器,使得经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于执行流程图和/或框图方框中指定的功能/动作的装置。这些计算机程序指令也可以存储在计算机可读介质中,这些计算机可读介质可以引导计算机或其他可编程数据处理设备以特定方式工作,从而得到执行流程图和/或框图方框中指定的功能/动作的指令装置。
计算机程序指令还可以装载到计算机或其他可编程数据处理设备中以导致在计算机或其他可编程设备上执行的一系列操作步骤,从而产生计算机执行处理,使得在计算机或其他可编程设备上执行的指令提供用于执行流程图和/或框图方框中指定的功能/动作的处理。
附图中的流程图和框图说明了根据本发明的各个实施例的系统、方法和计算机程序产品的可能的实施的架构、功能性和操作。就这方面而言,流程图和框图中的每个方框代表一个模块、片段或代码部分,其包含用于实施指定逻辑功能的一个或多个可执行指令。还应当注意,在一些备选实施方式中,方框中指出的功能可以不以附图中指出的顺序发生。例如,依赖于涉及的功能性,连续示出的两个方框实际可以基本同步地执行,或者方框有时可以以相反的顺序执行。还应当注意,框图和/或流程说明中的每个方框以及框图和/或流程说明中的方框的组合可以通过执行专用功能和动作的基于专用硬件的系统或者专用硬件和计算机指令的组合实现。
图1a以示意性方式示意了一种可以实践此处描述的本公开的实施例的网络环境。环境100多个客户机106。客户机106通过诸如因特网的网络102与服务器104耦合。尽管该网络示为因特网,但本领域技术人员将意识到诸如企业的局域内部互联网的其他通信网络也是可行的。客户机106向终端用户(未示出)显示信息。终端用户可以与客户机交互以控制显示的信息。客户机106可以从服务器104接收待显示信息。客户机可以实现终端用户与服务器104的交互。服务器104产生由不同客户机106显示的信息。尽管图1a中示出了单个服务器,本领域技术人员将意识到服务器的功能可以遍布到多个物理计算机或服务器。
客户机106可以使用浏览器来显示服务器104的信息。服务器104可以用作门户,该门户向客户机104的浏览器提供可访问服务器104的服务和程序的单点访问。
图1b以框图的形式示意了可用于客户机106和服务器104的硬件组件。硬件110包含能够执行指令的处理器112。处理器112操作地耦合到计算机可读存储器116。该计算机可读存储器可以存储数据信息和处理器112执行的指令。处理器112和存储器116可以通过总线114操作地耦合。网络接口118也通过总线114操作地耦合到处理器。网络接口118将硬件110耦合到网络102。(I/O)接口120也操作地耦合到总线114。(I/O)接口120可以连接到诸如键盘、视频、鼠标(KVM)122之类的输入和输出装置。本领域技术人员将意识到,KVM122可能并不需要,或者可以使用用于输入和输出信息的其他装置代替。
图2以示意性方式示意了根据本公开在客户机浏览器上显示的示例性门户屏幕200。屏幕200包括3个不同的视图206a、206b、206c。每个视图显示一些信息,这些信息示为链接或内容。每个视图206a、206b、206c可以通过包括HTML和用于提供交互和控制的JavaScript代码的标记来描述,且可以根据层叠样式表(CSS)被格式化。每个视图206a、206b、206c可以插入到描述视图布局的pagelet中。
如此后进一步描述的,视图由片段对象的标记组件描述。客户机上的浏览器可以包括管理pagelet中显示的视图的片段控制器。客户端片段控制器允许各个视图被更新,而不需要更新和重载整个pagelet。除了标记组件,片段对象包括管理组件,该管理组件可由客户端片段控制器使用以用于管理与被显示的pagelet相关联的片段对象。
图3以框图的形式示意了根据本公开的示例性客户机侧组件。提供浏览器302以在客户机上显示信息。如本领域所公知,浏览器可以包括用于向显示器呈现内容的呈现组件或呈现器312。如图3所示,呈现组件或呈现器212呈现包括各个视图206a、206b、206c(统称为视图206)的pagelet 204。用于呈现pagelet的信息存储在文档对象模型(DOM)314中。DOM可以被操作以修改所呈现的pagelet。
除了呈现组件312和DOM 314,浏览器302包括被装载到存储器中的片段对象308a、308b、308c(统称为片段对象308)。片段对象308引用描述存储在DOM中的视图306的标记。浏览器302还包括用于管理pagelet 204的视图206的片段控制器310。如在此进一步描述的,片段控制器310还管理片段对象308。片段管理器310可以通过与DOM交互来管理视图以修改包括当前所显示视图的DOM节点。用于操纵浏览器的DOM的应用编程接口(API)在本领域中公知。
终端用户可以使得浏览器302定向到运行在服务器上的门户。门户向浏览器302提供pagelet 204。初始pagelet 204包括对于布局中片段对象308的引用。布局例如可以是具有<div>标签的HTML表格,其中每个<div>标签引用一个片段对象308。Pagelet还可以包括用于片段控制器310的代码。当浏览器302接收pagelet时,它装载片段控制器310。使用装载到浏览器302中的片段控制器310,从服务器检索出在pagelet 204中引用的片段对象308。片段控制器310处理接收的片段且操作浏览器的DOM 314以在pagelet 204的布局中显示视图206。备选地,作为减小片段控制器和服务器之间的呼叫数量的优化,可以通过片段服务器检索每个片段对象的初始视图。与视图和片段对象的后续交互可以通过片段控制器执行。
图4以框图的形式示意了示例性片段400。片段是代表可嵌入UI组件的可寻址XML文档。片段包含使用标记(HMTL、JavaScript和/或CSS)创建的视图。片段还包含关于片段属性和能力的元数据。当呈现页面时,片段可以直接内联(inline),或者可以延迟,直到例如通过onLoad事件激活客户机页面以确保片段要求的所有组件在客户机上存在。片段在客户机中通过片段控制器310管理。片段控制器310可以作为一组JavaScript代码被提供到使用pagelet的客户机浏览器。备选地,它可以作为浏览器的组件被包括。片段控制器310可以建立在异步JavaScript和XML(AJAX)异步HTML和HTTP(AHAH)引擎上。片段400在客户机中通过JavaScript片段对象308表示,其保存经由运行在服务器104上的片段服务器与片段产生器通信所需的所有信息。片段对象308可以揭示定制属性,该属性可以被编码到用于寻址片段产生器的基本URI中。使用称为瞬时属性的一类共享状态和事件,片段对象308可以经由片段控制器310彼此通信。
片段400是被片段控制器310使用以装载相应的片段对象308的可扩展标记语言(XML)文档。片段400对应于片段对象308。如图4所示,片段400(以及相应的片段对象308)包括标记组件402、状态组件406、定制属性组件408、瞬时属性组件410以及事件组件412。状态组件406、定制属性组件408、瞬时属性组件410以及事件组件412提供片段控制器310使用的信息以管理片段对象。并不是所有的组件(406、408、410、412)都要求在片段400中存在。组件406、408、410、412可以总称为管理组件404。管理组件404包括用于片段控制器310在管理片段对象308时使用的信息。组件402、406、408、410、412是片段根节点元素的XML子元素。
标记组件402包括描述与片段相关联的视图的标记的标签。视图的标记可以包括HTML代码和JavaScript代码。标记可以包括用于格式化HTML代码的级联样式表(CSS)信息。视图信息存储在XML元素中,例如存储在<markupstring>中。下面是片段400的标记组件的方案。
<fragment>
<meta>
<markupTypes>xsd:string</markupTypes>
<locales>xsd:string</locales>
<modes>xsd:qname</modes>
<windowStates>xsd:qname</windowStates>
</meta>
<preferredTitle>xsd:string</preferredTitle>
<newMode>xsd:string</newMode>
<newWindowState>xsd:string</newWindowState>
<delay>xsd:int</delay>
<markup id=″xsd:string″mode=″xsd:qname″
windowState=″xsd:qname″>
<useCacheMarkup>xsd:boolean</useCacheMarkup>
<mimeType>xsd:string</mimeType>
<markupString>xsd:string</markupString>
<markupXml>
<xsd:any/>
</markupXml>
<markupBinary>xsd:base64</markupBinary>
<cacheControl>
<expires>xsd:int</expires>
<validateTag>xsd:string</validateTag>
</cacheControl>
<validator>
<param name=″xsd:nmtoken″>
<validate>
<type>xsd:string</type>
<restrict>
<min>xsd:int</min>
<max>xsd:int</max>
<contains>xsd:string</contains>
<regex>xsd:string</regex>
</restrict>
</validate>
</param>
</validator>
</markup>
</fragment>片段的标记组件402的元素可以包括:
●meta元素,包括:
redirectURL元素,指示新位置或服务端重定向。
●newWindowStat元素,指示片段产生器的窗口状态变化(例如,从正常变成最大窗口状态)。
●newMode元素,指示片段产生器的模式变化(例如,从编辑到查看模式)。
●delay元素,指示片段控制器在指定秒数内刷新当前视图。
●markup元素,包括:
●makrkup/@id属性,唯一地识别标记
markup/useCacheMarkup元素,指示客户在其缓存中具有最新标记且实际上没有标记返回。
markup/markupXml元素,包含如XHMTL的实际标记。
■CacheControl/expires元素,指示标记何时过期,允许客户/控制器保持标记到该时间。
■CacheControl/validateTag元素,指示客户/控制器可以提供的控制确认标签,以使得产生器验证缓存的标记现在是否过时。
■Validator/param元素,包括:
parma/@name属性,定义对特定参数名称的验证器规则。
除了标记组件元素,片段400可以包括状态元素406,该状态元素包括关于片段的视图的当前状态的信息。状态应包括片段产生器再创建当前视图所必须的所有信息。在片段的示例性实施例中,状态信息被存储为Base 64大对象。状态元素可以以不同形式存储状态信息。
片段400还可以包括定制属性元素408。片段的定制属性可以提供片段400的定制的控制。片段400使用meta/customProperties元素宣布定制属性,这些元素包含用于列举、编辑和验证属性及其值的信息。属性的实际定制可以保存在fragment/custom元素中,该元素可以关于每个定制属性具有一个参数元素。定制属性可以通过片段引用或page/fragmentInstance被覆盖。定制属性可以编码为片段的基本URI请求中的查询值。在安全环境中,可以编码在基本URI中的定制被加密以防止篡改。下面列出的是强调片段的定制属性元素的方案。
<fragment>
<meta>
<customProperties name=″xsd:nmtoken″>
<title xml:lang=″xsd:string″
resourceID=″xsd:nmtoken″>xsd:string</title>
<hint xml:lang=″en″
resourceID=″xsd:nmtoken″>xsd:string</hint>
<default>
<value>xsd:string</value>
<enum name=″one″
resourceID=″xsd:nmtoken″>xsd:string</enum>
</default>
<validate>
<type>xsd:string</type>
<restrict>
<min>xsd:int</min>
<max>xsd:int</max>
<contains>xsd:string</contains>
<regex>xsd:string</regex>
</restrict>
</validate>
</customProperties>
</meta>
<custom>
<param name=″xsd:nmtoken″>xsd:string</param>
<param name=″xsd:nmtoken″>
<any_xml_doc>
<...>
</any_xml_doc>
</param>
</custom>
</fragment>
除了定制属性,片段400还可以包括瞬时属性组件410。瞬时属性是可以在片段对象308之间共享的一种范围共享状态形式。瞬时属性的范围可以是页面或应用。页面范围将瞬时属性更新分布为片段的同胞和后裔。因为片段可以包括其他片段作为子片段,对于同胞和后裔的更新的分布允许片段控制子片段将怎样在页面中操作。下面的列表是强调片段的瞬时属性元素的方案:
<fragment>
<meta>
<transientProperties name=″xsd:nmtoken″>
<title xml:lang=″xsd:string″
resourceID=″xsd:nmtoken″>xsd:string</title>
<hint xml:lang=″xsd:string″
resourceID=″xsd:nmtoken″>xsd:string</hint>
<scope>xsd:string</scope>
<default>
<value>xsd:string</value>
<enum name=″one″xml:lang=″xsd:string″
resourceID=″xsd:nmtoken″>xsd:string</enum>
</default>
<validate>
<type>xsd:string</type>
<restrict>
<min>xsd:int</min>
<max>xsd:int</max>
<contains>xsd:string</contains>
<regex>xsd:string</regex>
</restrict>
</validate>
</transientProperties>
</meta>
<transientUpdate
name=″xsd:nmtoken″>xsd:string</transientUpdate>
</fragment>
瞬时属性410允许片段内的协调。如果需要在片段之间交换更多的信息,则可以通过事件框架工作完成。片段400可以包括事件组件412。事件组件412可以使用片段控制器310登记片段对象的事件监听器。当出现相应的事件时,消息被传递到片段对象的登记事件监听器。除了使用片段控制器310登记事件监听器之外,事件组件412还可以描述片段(或更具体而言,片段对象)会出现的事件。当片段对象出现事件时,相关联的有效载荷被传递到其他片段对象308的适当事件监听器。本领域技术人员将意识到,消息可以以各种方式传递到合适的事件监听器,例如,如上描述,片段可以定义在出现特定事件时调用的该特定事件的事件监听器或处理器。备选地,片段控制器310可以传递所出现的事件到片段对象308,该片段对象308判断是否处理该事件。事件组件的方案在下面的列表中示出。
<fragment>
<meta>
…
<publishedEvents>event.name</publishedEvents>0..*
<handledEvents>event.name</handledEvents>0..*
<eventDescriptions name=″event.name″type=″xsd:QName″>0..*
<aliases>0..*
xsd:string
</aliases>
<description xml:lang=″″resourceName=″″>
xsd:string
</description>
<label xml:lang=″″resourceName=″″>
xsd:string
</label>
<hint xml:lang=″″resourceName=″″>
xsd:string
</hint>
<extensions>0..*
xsd:any
</extensions>
</eventDescriptions>
</meta>
…
<event name=″event.name″type=″xsd:QName″>0..*
<payload>
<params>0..*
<param name=″xsd:NMToken″>xsd:string</param>
<params>
xsd:any
</payload>
<extensions>0..*
xsd:any
</extensions>
</event>
</fragment>
图5以框图的形式示意了片段控制器310的示例性组件。片段控制器310包括管理在pagelet中显示的视图的视图管理器502。当片段对象更新时,视图管理器502操纵浏览器DOM 314以更新的视图代替相关联片段对象308的当前视图。这允许pagelet 204的各个视图被更新,而无需重载整个页面。除了视图管理器502,片段控制器310还包括管理终端用户与视图的交互的交互管理器504。终端用户例如可以通过点击链接或者激活片段对象的JavaScript功能与视图交互。JavaScript可以传递请求到片段控制器310,或更具体地到交互管理器504,该交互管理器504可以发送对更新片段的请求到服务器且进而接收更新的片段。对片段的请求包含可以产生片段的对服务的URI,称为片段产生器。片段产生器可以支持两类URI。第一类是renderURI,其基于被编码在URI中的当前状态、定制属性和瞬时属性信息刷新包括视图的片段。第二类是interactionURI,其是具有附加参数的renderURI。示例性URI语法是:
[gateway]/fragment(pathInfo)?[frag-
*]&[custom]&[transient]&[params]
其中:
●gateway是当前网关。
●/fragment调用片段调度处理器以派发片段到合适的片段产生器。
●pathInfo被片段服务器使用以引用也控制用户访问的cm对象。
●frag-*是被片段控制器用于与片段服务器或片段产生器通信的参数。
●custom参数携带该片段的定制值。
●transient参数是基于宣称的瞬时属性对片段可见的那些参数。
●params是从表格或链接发起的应用专用参数。
片段控制器310管理所有片段对象308的状态。片段对象的状态可以基于终端用户与片段对象308的视图的交互而变化。状态还可以在使用新片段或标记组件更新片段对象时变化。另外,状态可以因为瞬时属性或其他片段的事件以及终端用户与它们的交互而改变。片段控制器310包括用于管理所有片段308的状态的状态管理器504。片段控制器310还包括用于管理所有片段对象308的瞬时属性的瞬时管理器508。瞬时管理器508传递更新的瞬时属性到具有相同名称的瞬时属性的任意片段对象308。片段控制器310还包括用于管理所有片段对象308的事件的事件管理器510。片段对象308可以使用事件管理器510发起事件,该事件管理器510分布事件到合适的片段对象308。
图6以框图的形式示意了用于提供pagelet和片段到片段控制器310的门户服务器600的示例性组件。门户服务器600组件可以实施在参考图1b描述的硬件上。服务器包括用于接收请求且派发接收的请求到合适的地点的网关/调度器602。服务器还包括用于构建包括布局和片段、返回到客户机的pagelet的pagelet汇编器604。服务器还包括产生用于返回到客户机的片段400的片段服务器608。片段服务器608可以从片段产生器610接收片段文档。片段服务器608然后重写标记和片段以创建片断以被发送到片段控制器或可选地被发送到pagelet汇编器。完成片段文档的重写是为了避免变量名称或命名空间与客户机上的其他片段之间的可能的冲突。重写可以使用片段标识符证明变量或命名空间的资格。服务器还可以包括存储与服务器上可用的所有片段产生器610相关的信息的内容管理器数据库506。Pagelet汇编器604可以使用内容管理器510来判断可用的片段产生器,其可用于构建初始门户页面以提供对片段产生器610的访问。
服务器还可以包括产生片段文档的多个片段产生器610。片段产生器610可以基于从可以编码到请求URI中的片段控制器310接收的信息构建片段文档。
图7以框图的形式示意了片段服务器608的示例性组件。片段服务器608包含请求分布器702,该请求分布器702从片段控制器310接收URI且将它映射到资源,例如片段产生器610,且检索该资源,该资源一般是片段或片段文档。片段服务器还包括用于处理片段文档的片段处理器704。片段处理器704包括用于重写该片段的重写引擎706和用于处理片段或片段文档的XML的XML处理引擎708。例如,如果片段包括其他片段作为子片段,则XML处理引擎708可以按需将两个片段合并在一起。
图8以流程图的形式示意了根据本公开的显示系统的组件的示例性交互。在交互的描述中,假设服务器已经传递了包括片段的pagelet到浏览器,且浏览器具有装载的片段控制器。(1)终端用户与视图的片段标记交互且激活已被重写的链接以激活与视图相关联的JavaScript片段对象,且在交互参数中传递。(2)片段对象构建包括交互参数的交互URI且调用片段控制器310来检索对应于该URI的片段。片段控制器310从服务器请求该URI。(3)网关服务器可以验证该URI以确保该URI的参数落在合适的范围内。如上所述该范围可以在验证器元件中指定。(4)当基本URI中不包括有效产生器URI时,服务器从内容管理器检索片段对象,这可以验证终端用户的访问许可,且如果所检索的片段包含片段产生器引用,产生器URI被编码和标记且作为片段请求的基本URI被包括。(5)如果片段请求URI包含有效的产生器URI,片段产生器被调用。(6)片段产生器接收在URI中编码的查询值且返回新的片段。(7)片段服务器根据片段控制器参数重写片段,使得客户机侧片段控制器可以使用从该片段产生的片段。片段服务器然后返回该片段到片段控制器。(8)片段控制器接收该片段且更新片段对象,这可以包括瞬时属性更新或事件的再分布。(9)片段控制器然后使用来自该片段的新标记更新所显示的pagelet。
向客户机提供可嵌入的UI元素的片段的使用允许片段作为子片段被包括在片段中。片段服务器可以被要求在返回整个片段到客户机之前组合子片段到父片段中。片段服务器可以处理片段和子片段为XML文档,且合并多个XML文档为单个XML文档,该单个XML文档作为片段被返回到客户机。
片段服务器可能需要合并多个XML文档为单个文档。为了减少完成处理所必要的开销,最好使用XML流。然而,难以使用XML流以与XML元素或部分可用的顺序不同的顺序将分离的XML元素或部分一起组合到输出流中。
图9以框图的形式示意了从分离的XML元素形成的合并的XML文档。XML元素902、904、906可以是已经存在的XML文档,或它们可以代表来自产生XML元素作为输出的处理或应用的输出。在图9中,合并的输出XML文档908包含在合并的输出XML文档中找到的一些XML元素,即<combined>和</combined>标签,这些标签可以包括在合并模版文档中。合并的XML文档908还包括三个XML部分902、904、906的XML,这三个部分以它们被写入到输出流中的顺序出现在合并XML文档中。
如果所有XML部分在写入输出流时都是可用的,所有XML元素可以以合并的XML文档所需的顺序被写入到输出流。当并不是所有XML元素902、904、906在写入输出流时都可用时,使用输出写入流创建合并的XML文档更加复杂。
图10以流程图的形式示意了用于串流XML文档的方法。该方法包含:建立用于串流XML文档的输出流(1002)。建立输出流可以包括创建输出流写入器、用于缓冲XML元素到输出流写入器的相关联的输出缓冲器,以及用于写XML元素到输出缓冲器的缺省流写入器。该方法使用缺省流写入器向输出缓冲器写入可用XML元素(1004)。该方法判断需要插入到输出流中的XML元素是不可用的(1006)。代替一直阻隔到XML元素变得可用,该方法在输出缓冲器中创建新标记(1008)。创建标记可以包括在输出缓冲器中创建标记、创建与该标记相关联的标记缓冲器以用于(最终)保持不可用XML元素,以及创建标记流写入器以用于(最终)写不可用XML元素到标记缓冲器。一旦标记被创建,该方法继续写可用XML元素到输出缓冲器(1010)。应当意识到,尽管仅描述了单个标记,可以创建用于进行标记的多个标记,且当XML元素变得可用时,最终写入不同的XML元素到输出缓冲器。而且,可以在标记中包括标记。当判断出原先不可用的XML元素现在可用时,该方法继续(1012)。该方法以新可用的XML元素代替输出缓冲器中的标记(1014)。代替标记的步骤可以包括选择标记流写入器和使用标记流写入器写入新可用的XML元素到标记缓冲器。代替标记的步骤还可以包括以标记缓冲器中新写入的XML元素代替输出缓冲器中的标记。标记流写入器可以关闭且缓冲器空间被释放。该方法继续在输出缓冲器中代替标记,直到判断出所有XML元素已经被写入到输出流(1016)。该方法可以转储清除缓存(flush)并关闭输出流写入器。
图11示意了伪代码列表、相应的输出缓冲器表示以及所得的输出XML文档。如伪代码列表所示,可用的XML元素被写入到输出缓冲器。伪代码列表中示出的可用XML元素是<begin>标签。从相应缓冲器表示可以看出,<begin>标签被写入到输出缓冲器。接下来,创建标记,其创建用于写入到输出缓冲器的新标记写入器。使用当前流写入器(标记写入器),可用的附加XML元素即<more>标签被写入到缓冲器。第二标记被创建,包括创建用于写入到输出缓冲器的新的流写入器并且Marker#2被写入到输出缓冲器中。伪代码然后再次选择缺省流写入器,且写入</begin>标签。输出流写入器然后被转储清除缓存且关闭。从输出XML文档1106可以看出,一旦XML元素变得可用,输出缓冲器中的标记就被XML元素代替。而且,输出流写入器确保输出XML文档良好地形成。在图11的示例中,</more>标签通过输出流写入器被添加到输出XML中,而该元素不被明确地写入到输出流。
XML处理引擎可以结合以上方法以用于从在输出流的开始并不完全可用的不同XML元素串流良好形成的XML文档。串流器(streamer)可以包括输出最终XML文档的面向外部的XMLStreamWirter(W)对象。当新的标记被创建时,新XMLStreamWriter(Wn+1)和新的内部或标记缓冲器(Bn+1)也被创建。任意已有命名空间语境被分配给该新的写入器(Wn+1)。从一个标记到另一标记的切换选择正确的XMLStreamWriter且使得它是用于写入到与面向外部的流写入器(W)或输出流写入器相关联的输出缓冲器的有效写入器。只要需要,新标记可以在任意时间任意地点创建;然而,一旦创建了标记,不可以将XML写入到先前的缓冲器。这确保输出XML文档将被良好形成。如有需要或期望,只要知道完成了连续缓冲器,就可以开始最终的输出流。这些缓冲器然后可以被丢弃。
如上所述,当合并XML组件以形成输出XML文档时,可能要求或希望基于指示XML源是否必须包括在最终结果中的条件,从具有主XML文档的各个源合并XML。由于性能原因,不产生要从结果排除的源。用于合并源的条件可能需要对于合并的文档的当前状态进行验证。结果,该条件验证应该考虑已经合并的源。
为了提供用于产生合并的XML文档的基于简单规则的方法,可以使用XML源。XML源可以使用例如由StAX提供的XML读取器读取,从而读取XML文档。当XML读取器读取XML文档时,XML源串流XML文档。这样,可以在XML文档被读取时产生XML文档。XML源可以包括用于合并XML片的规则。下面是用于提供读取XML文档的XML读取器的样本程序的伪代码列表。
Create″merge″reader
Assign(master)document to reader
Set rule for source1(add after<a>)
Set rule for source2(add under<textl>)
Set rule for source3(add after<d>)
Set rule for source4(add under<source3>if<text3>does notexist)
Return″merge″reader
从上述伪代码列表可以看出,用于合并文档的新的XML读取器被创建。使用创建的合并读取器,XML源被合并的主文档被分配给读取器。这些源然后通过设置将添加XML文档的规则被合并到文档中。因此,如果源不满足规则,它不被包括在合并的文档中,节省了开销且增加了性能。例如,如果<text3>不存在,源4将被合并到XML文档中,在<source3>下。假设<text3>在合并文档中存在,则源4将不被添加。因为使用规则,XML处理引擎不需要读取或处理源4。
XML处理引擎可以包括如上所述用于提供基于规则的XML合并读取器的模块。XML处理引擎还可以包括提供XML元素的串流重排序的模块。基于规则的XML合并读取器可以使用串流重排序来提供合并的XML文档。
除了如上所述的合并XML文档和重排序XML元素,XML处理引擎可以提供XML文档向输出流的事务性写入。事务性处理允许部分XML文档位于输出流中,且如果必要的话之后从输出流移除(回滚(rollback))或者保留(提交(commit))。
在XML输出流的背景下,“事务”在输出流写入器定位于起始元素位置之后开始。所有后续API调用被认为是该单元的一部分。该指令单元可以被提交或回滚。还可以在现有事务单元内部开始新的事务。然而,提交的内部单元经历外部提交或回滚事务。
事务API可以被添加到StAX API中。事务性StAX API包括:
●begin()被调用,指示新的XML流写入器事务的开始;
●commit()被调用以提交当前XML事务到写入器,或者如果提交的事务是嵌套的,悬挂父事务;以及
●rollback()被调用以在当前事务期间移除被添加到流写入器的XML元素。
begin()必须在commit()和rollback()之前且当输出流中的位置位于开放起始元素之后时调用。begin()调用可以在另一启动的事务、多层嵌套事务内调用。每个begin()调用必须最终与commit()或rollback()调用平衡。可以执行任意数目的嵌套事务,然而,存储器消耗将随着嵌套事务数目的增加而增加。在commit()或rollback()调用之后,XML被认为良好形成,且只要1级事务被提交,即事务不嵌套,最终输出流可以开始。
图12以流程图的形式示意了用于向XML流提供事务性能力的方法。该方法开始于1200,执行StAX输出流API调用(1202)以设置和启动XML串流。做出begin()调用(1204)以启动串流XML事务。做出其他StAX输出流AIP调用,例如,向流写入元素(1206)。如果事务要被嵌套,该方法返回到1204,在那里,另一begin()被调用以开始嵌套的事务。一旦XML成流事务完成,commit()或rollback()被调用(1208)。如果rollback已被调用(在1208为回滚?),则在S3中串流输出(1206)的所有XML被丢弃且如果没有悬挂事务且没有其他XML需要被串流,处理进行到S5(1212)。否则在S1,该处理串流更多的XML(1202)。在S5(1212),执行StAX输出流API调用以完成串流XML。如果在S4(1208),commit()被调用(在1208为提交?),则串流输出的所有XML被维护且如果其他XML元素存在,处理返回到S1,或者如果所有XML已被处理,则处理返回到S5。
图13以示图的方式示意了示例性使用案例和得到的流输出。参考使用案例A 1302,可以看出,声明S4和S5被包含在串流XML事务中。因为事务被提交,通过S4和S5写入的元素位于输出流中。参考使用案例B 1304,相同的声明被串流,然而,在这种情况下,事务已经被滚回,且使得S4和S5的元素不在输出流中。参考使用案例C1306,示出了嵌套的事务。内部的事务已被提交;然而,因为在外部的事务被回滚,在输出中不存在外部事务中串流的元素。
Claims (5)
1.一种用于显示信息的客户机/服务器系统,该系统包含:
服务器,具有用于执行存储在计算机可读存储器上的指令的处理器,该存储器耦合到所述处理器,得到处理器执行的指令,所述处理器执行的指令在所述计算机可读存储器中提供:
片段服务器,该片段服务器用于向一个或更多个客户机提供多个片段对象,每个片段对象包括标记组件和管理组件;
客户机,具有用于执行存储在计算机可读存储器中的指令的客户机处理器,该计算机可读存储器与所述客户机处理器耦合,得到客户机处理器执行的指令,所述客户机处理器执行的指令在所述计算机可读存储器中提供:
显示器,用于显示多个视图,每个视图通过片段对象的标记组件描述;以及
片段控制器,与所述显示器相关联,用于管理所述多个片段对象,所述片段管理器从所述服务器接收片段对象且基于接收的片段的标记组件更新多个视图中的一个视图,且基于接收的片段对象的管理组件更新片段对象中的一个或更多个管理组件。
2.一种用于串流XML文档的方法,该方法包含:
创建输出流写入器,用于串流XML文档的输出;
创建与该输出流写入器相关联的输出缓冲器,用于保持信息以写入到该输出流写入器中;
创建缺省流写入器,用于写入可用XML元素到输出缓冲器;
判断不存在XML文档中需要的XML元素,且创建用于该XML元素的标记;
当该XML元素变得可用时替换输出缓冲器中的标记;
判断没有更多的XML元素要写入到输出流,以及
关闭输出流写入器。
3.根据权利要求2所述的方法,还包含使用该缺省流写入器向该输出缓冲器写入附加可用XML元素。
4.根据权利要求2所述的方法,其中创建标记包含:
向该输出缓冲器写入指示该XML文档中XML元素的所需位置的标记;
一旦该XML元素可用,创建与用于保持该XML元素的标记相关联的标记缓冲器;以及
创建与该写入缓冲器相关联的标记流写入器,以向该标记缓冲器写入该XML元素。
5.根据权利要求2所述的方法,其中代替输出缓冲器中的标记包含:
选择标记流写入器;
使用所选的标记流写入器向该标记缓冲器写入现在可用的XML元素;
使用该标记缓冲器代替该输出缓冲器中的标记;以及
关闭该标记写入器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/275,765 | 2008-11-21 | ||
US12/275,765 US20100131585A1 (en) | 2008-11-21 | 2008-11-21 | Displaying information in a client/server system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101739442A true CN101739442A (zh) | 2010-06-16 |
Family
ID=42197338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910212030A Pending CN101739442A (zh) | 2008-11-21 | 2009-11-06 | 用于显示信息的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100131585A1 (zh) |
KR (1) | KR20100057505A (zh) |
CN (1) | CN101739442A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647703A (zh) * | 2019-09-18 | 2020-01-03 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055683A1 (en) * | 2009-09-02 | 2011-03-03 | Facebook Inc. | Page caching for rendering dynamic web pages |
US8751925B1 (en) | 2010-04-05 | 2014-06-10 | Facebook, Inc. | Phased generation and delivery of structured documents |
US9003552B2 (en) | 2010-12-30 | 2015-04-07 | Ensighten, Inc. | Online privacy management |
CN103403685B (zh) * | 2010-12-30 | 2015-05-13 | 艾新顿公司 | 在线隐私管理 |
US9201495B2 (en) * | 2012-04-24 | 2015-12-01 | Mobitv, Inc. | Control of perspective in multi-dimensional media |
JP6159424B2 (ja) * | 2013-03-01 | 2017-07-05 | フェイスブック,インク. | 構造化文書のページレットのキャッシング |
US11233841B2 (en) * | 2013-03-15 | 2022-01-25 | Yottaa, Inc. | Systems and methods for configuration-based optimization by an intermediary |
US10984175B2 (en) | 2013-08-09 | 2021-04-20 | Yottaa Inc. | Systems and methods for dynamically modifying a requested web page from a server for presentation at a client |
US9870349B2 (en) * | 2013-09-20 | 2018-01-16 | Yottaa Inc. | Systems and methods for managing loading priority or sequencing of fragments of a web object |
US10104082B2 (en) | 2013-11-06 | 2018-10-16 | William P. Jones | Aggregated information access and control using a personal unifying taxonomy |
US9219787B1 (en) | 2014-11-26 | 2015-12-22 | Ensighten, Inc. | Stateless cookie operations server |
US9553918B1 (en) | 2014-11-26 | 2017-01-24 | Ensighten, Inc. | Stateful and stateless cookie operations servers |
US11683294B2 (en) * | 2019-12-30 | 2023-06-20 | Imperva, Inc. | Privacy-preserving learning of web traffic |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002017082A1 (en) * | 2000-08-22 | 2002-02-28 | Akamai Technologies, Inc. | Dynamic content assembly on edge-of-network servers in a content delivery network |
US20050050021A1 (en) * | 2003-08-25 | 2005-03-03 | Sybase, Inc. | Information Messaging and Collaboration System |
GB0513185D0 (en) * | 2005-06-30 | 2005-08-03 | Ibm | A method system and software tool for emulating a portal application |
US7680927B2 (en) * | 2005-11-17 | 2010-03-16 | Bea Systems, Inc. | System and method for providing testing for a communities framework |
US8554800B2 (en) * | 2008-07-30 | 2013-10-08 | Portool Ltd. | System, methods and applications for structured document indexing |
-
2008
- 2008-11-21 US US12/275,765 patent/US20100131585A1/en not_active Abandoned
-
2009
- 2009-11-06 CN CN200910212030A patent/CN101739442A/zh active Pending
- 2009-11-19 KR KR1020090112105A patent/KR20100057505A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647703A (zh) * | 2019-09-18 | 2020-01-03 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
WO2021051597A1 (zh) * | 2019-09-18 | 2021-03-25 | 平安科技(深圳)有限公司 | 动画播放方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20100057505A (ko) | 2010-05-31 |
US20100131585A1 (en) | 2010-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739442A (zh) | 用于显示信息的系统和方法 | |
JP6755954B2 (ja) | インターフェースデータの提示方法及び装置 | |
US7051084B1 (en) | Methods and apparatus for regenerating and transmitting a partial page | |
US8161472B2 (en) | Methods and apparatus for incorporating a partial page on a client | |
US8510371B2 (en) | Method and system for creating IT-oriented server-based web applications | |
US8504913B2 (en) | Client-side components | |
AU2009262065B2 (en) | Embedding macros in web pages with advertisements | |
US20050076294A1 (en) | Method and apparatus for supporting layout management in a web presentation architecture | |
CN101184105A (zh) | 一种用于更新数据的客户端装置和方法 | |
US20040034833A1 (en) | Dynamic interaction manager for markup language graphical user interface | |
US9646103B2 (en) | Client-side template engine and method for constructing a nested DOM module for a website | |
JP3808020B2 (ja) | Javaサーブレットの機能を有するWebサーバ、Javaプログラムの更新方法、およびコンピュータプログラム | |
CN101185303A (zh) | 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法 | |
US20140351686A1 (en) | Expert system for automation, data collection, validation and managed storage without programming and without deployment | |
CN103645908A (zh) | 网构软件全生命周期开发实现系统 | |
US20160012147A1 (en) | Asynchronous Initialization of Document Object Model (DOM) Modules | |
WO2016005884A2 (en) | Javascript-based, client-side template driver system | |
US20150067037A1 (en) | Communication apparatus and communication method | |
CN105404692A (zh) | Web页面的生成方法及生成装置 | |
CN108363760A (zh) | 基于b/s模型的ietm显示数据生成及离线控制方法 | |
US10114617B2 (en) | Rapid visualization rendering package for statistical programming language | |
US20160012023A1 (en) | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules | |
US20030135557A1 (en) | Distributed revision block service | |
CN115981650A (zh) | 一种网站搭建方法及装置、电子设备、存储介质 | |
US7225435B2 (en) | Method and system for eliminating redundant execution sequences that appear in workloads during workload simulation on an e-business application server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100616 |