CN1835507A - 用于用户与web浏览器交互的服务器端处理的方法与系统 - Google Patents

用于用户与web浏览器交互的服务器端处理的方法与系统 Download PDF

Info

Publication number
CN1835507A
CN1835507A CNA2006100042743A CN200610004274A CN1835507A CN 1835507 A CN1835507 A CN 1835507A CN A2006100042743 A CNA2006100042743 A CN A2006100042743A CN 200610004274 A CN200610004274 A CN 200610004274A CN 1835507 A CN1835507 A CN 1835507A
Authority
CN
China
Prior art keywords
server
client
weblication
user
framework
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
Application number
CNA2006100042743A
Other languages
English (en)
Inventor
扬尼克·赛勒特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1835507A publication Critical patent/CN1835507A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web

Abstract

本发明涉及在基于web的客户-服务器环境中用于客户端与服务器端web应用程序交互的方法和系统,其中客户端web浏览器用作用于在浏览器应用程序框架中显示由web应用程序发送的web页面并用于将由所述应用程序框架中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序的请求的用户界面,其中例如JavaScript的可执行程序对象在客户端用作客户端web应用程序用户界面的一部分。为了改善用户界面,建议在浏览器中使用与服务器通信并且当服务器发送其响应时防止所显示文档被重新加载的附加框架。相反,只有增量信息(50)显示在该框架中。

Description

用于用户与web浏览器交互的 服务器端处理的方法与系统
技术领域
本发明涉及计算机应用程序,尤其涉及在基于web的客户-服务器环境中用于客户端与服务器端web应用程序交互及反过来的方法与相应系统,其中客户端web浏览器用作应用程序用户界面。
背景技术
在这种环境中,传统上web浏览器用于在浏览器应用程序框架中显示由web应用程序发送的web页面及用于将由所述应用程序框架中一个或多个用户动作触发的事件转换成指向所述服务器端web应用程序的请求。由于与独立应用程序相比浏览器的功能很小,因此与由不具有互连web连接的独立应用程序运行的用户界面相比,这种web用户界面可以看作是“轻”版本。
参考图1,涉及具有低级功能用户界面的作为“轻”客户端的web浏览器12和存放应用程序的应用程序服务器14的现有技术web应用程序要忍受与用户交互的缺乏,还要忍受不同的编程模型。一般来说,现有技术web应用程序如下工作:根据用户动作1,例如点击链接、按下按钮、按下某个键或激活页面上的任何交互性组件,通过发送-见标号2-指向URL的HTTP请求,web浏览器12向服务器发出请求。
很可能一组要由服务器14解释的参数可以与该HTTP请求一起传递。这些参数可以包含关于用户在页面上所进行交互的信息,而且可以作为HTTP GET请求中URL编码参数或作为HTTP POST请求体中的数据传递到服务器。
这种请求由生成HTML文档并将其发送回web浏览器的服务小程序(servlet)16或JSP处理-见标号3。
服务小程序16生成的HTML文档一般包含链接到其它URL的链接或交互式性公式化元素,或者是链接到不同的服务小程序/JSP,或者是链接到具有不同参数的相同服务小程序16。
当用户点击这些交互性元素中的一个时,浏览器就重定向到新的URL。
新HTTP请求发送到服务器,该服务器生成完整的新HTML文档并将其发送回浏览器。新文档代替旧文档,由循环1、2、3,通过这种处理用户输入来运行应用程序工作流。
但是,对于这种通用的现有技术方法有一些缺点:
首先,由于每次用户交互都重新加载整个文档,因此在用户交互与来自应用程序的可视响应之间有长的时间延迟:整个文档必须通过网络发送,它必须由浏览器再次显示。因此,不可能建立有大量用户事件(例如,鼠标事件)由服务器14处理的高度交互性用户界面。
其次,实现这种应用程序的编程模型是复杂的。由于每次用户交互都导致新文档对当前文档的替换,因此web应用程序的逻辑变得复杂,因为为了在新文档中使用,关于当前会话的当前状态信息必须传递到服务器。
第三,web应用程序的编程模型完全不同于独立应用程序的编程模型:
在独立的离线应用程序中,通过侦听来自面板元素的事件并利用相同面板其它元素中的属性改变来响应(例如:当按钮A被点击时,文本B的颜色改变),用户界面逻辑可以在单个面板中实现。
在web应用程序中,每个用户触发的事件都与新文档的生成关联。
这使得没有用户界面的完全重新构造,独立应用程序就不可能移植到web应用程序。
发现这种缺点的原因是客户端的技术限制:
web浏览器最初设计成显示静态内容(文本和图像)。因此,它们提供非常有限的编程能力。尽管已经开发出了许多插件来增强web浏览器的能力,但浏览器基本上还是只能向web服务器发送请求并显示返回文档的简单客户端软件。
为了弥补web浏览器这种能力的缺乏,到目前为止,业界已经开发出了几种特定的现有技术解决方案,包括可执行程序对象,例如作为客户端web应用程序用户界面一部分用在客户端的Java Script。这种可执行代码的例子是:
首先要提到的是JavaScript(或ECMAScript)和动态HTML(DHTML):利用这种现有技术,脚本语言可以用于修改所显示文档的内容。脚本必须在由web浏览器加载的文档中定义。脚本的执行是由浏览器本身进行的。因此,服务器准备脚本,发送到浏览器,但只要文档一显示在浏览器上,服务器就不再对其有任何影响。
其次,Java应用小程序:利用这种特定的现有技术,完整的Java程序被下载到客户端并在浏览器中执行。
但是,这些方法有显著的缺点:
JavaScript允许修改所显示文档的“不工作”元素,而不需要重新加载整个文档,但实现这种用户界面行为的脚本必须在从服务器下载的原始文档中完全定义。一旦文档被加载,服务器就不再与用户界面交互,逻辑也不能被修改,直到加载新的文档。
后面的Java应用小程序是非常灵活的,可以打开与服务器另外的通信通道,但不利的是所要执行的应用程序的全部代码都必须下载到客户端并由浏览器执行。这还涉一有些显著的问题,例如由于所需的代码下载时间、危险的安全问题,还有由于与浏览器所使用的Java虚拟机的兼容性。
再次参考图1,如果用户交互1可以本地处理-如果对这种交互的反应已经在与HTML文档一起发送的JavaScript中定义-,则静态嵌入在页面中的脚本可以处理它,而且处理就在这里停止。但由于上述原因,这不是一种令人满意的解决方案。
由于这些缺点,web应用程序仍旧限定到具有低交互性的组件,即,它们通常在它们的用户界面中包括文本域、按钮、链接。例如,利用如元素拖放的复杂鼠标交互的应用程序就很难实现。
发明内容
因此,本发明的一个目的是减轻现有技术的缺点。
本发明的这个目的是通过所包含独立权利要求中所述的特征实现的。本发明的更多有利布置和实施方式在相应的子权利要求中阐述。现在参考所附权利要求。
本发明的基本思想包括利用浏览器中与服务器通信并且当服务器发送响应时防止所显示文档被重新加载的附加框架的方法。
根据这种基本方法,公开了在基于web的客户-服务器环境中用于客户端与服务器端web应用程序交互的方法与相应系统,其中客户端web浏览器用作用于在浏览器应用程序框架中显示由web应用程序发送的web页面并用于将由所述应用程序框架中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序的请求的用户界面,其中客户-服务器请求-响应通信对话是利用对所述用户输入动作作出响应的所述服务器端web应用程序(16)逐步执行的,该方法特征在于:
在客户端与服务器之间的单个对话步骤中执行步骤:
a)连同由服务器生成的响应参数,在对用户隐藏的框架-下文中称为“仲裁框架”-中接收可执行显示编程工具,
b)从对用户隐藏的框架中执行所述显示编程工具,其中所述执行在所述应用程序框架预定位置仅部分显示用于更新它的所述响应参数。
如下面所提到的,用于显示目的的“第二可执行编程工具28”或用于输入感测目的的“第一可执行编程工具26”的可执行程序对象可以是例如Java Script或Java应用小程序,或VB-Script(由MS-InternetExplorer支持的Visual Basic脚本),或者任何其它合适的程序对象。
有利地,客户端“对用户隐藏的”仲裁框架是具有以下属性的框架:
它对用户完全不可视或至少看到的非常小,使其不会吸引用户的注意力。
它不对用户显示任何可视信息;它应当优选地是完全隐藏的。
代替现有技术中通常的应用程序框架本身,它向服务器发送由应用程序框架准备的HTTP请求并接收服务器对这种请求的回答。
它执行服务器的结果并只修改应用程序框架的内容,而不改变其余的框架图像。
在这里这种框架称为仲裁框架,因为它实现了应用程序框架与服务器之间的通信。它将应用程序框架的请求发送到服务器,接收并解释服务器的回答:因此,它在应用程序框架与服务器之间的所有通信中充当仲裁者。
仲裁框架应当有利地是对用户隐藏的,以便将该发明性方法无缝集成到通常使用的用户界面中。
本发明公开了允许捕捉web浏览器上的用户事件,即按键和鼠标事件、将这些事件发送到服务器、使服务器解释这些事件并估计发送回浏览器的响应的方法与相应系统。响应可以修改显示在浏览器上的一部分文档,而不需要整个文档的重新加载。
这种方法的优点是:
它允许从服务器对UI事件细粒度的响应,而不需要在每个事件之间重新加载文档。由于只有对文档所进行的修改而不是整个文档发送到客户端,因此客户端与服务器之间的数据交换是紧凑的,这导致更好的性能并允许更多的客户/服务器交互。这就是根据这里的措词“内容集中”通信所指的。
由此,web应用程序的逻辑留在服务器,这节省了网络流量并提高了客户端应用程序的安全性。只有可视信息发送到浏览器。而且这还是防止盗版的一步。
web应用程序运行在服务器上。浏览器只用于显示用户界面。因此,服务器的资源可以有效运行。
该发明性方法可以与通常的浏览器一起使用,而不需要安装特定的插件。由于它是利用Java应用小程序和不同的Java版本给出的,因此没有不兼容的问题。
附图说明
本发明是作为例子说明的,而且不受图中图形的形状限制,其中:
图1是显示其基本结构和功能元素的示意性现有技术系统图,
图2是显示根据其优选实施方式基本结构和功能元素的示意性发明性系统图,
图3是说明根据本发明优选实施方式应用程序框架(上)、仲裁框架(中)和服务器逻辑(下)基本逻辑元素及相应界面的示意图,
图4是说明在本发明优选实施方式中运行的发明性方法的示意性控制流程图,
图5是说明服务器与客户端之间内容集中通信的示例示意性应用程序框架表示。
具体实施方式
现在总体上参考附图并特定参考图2,有两种不同的框架用在浏览器:
首先,应用程序框架22用于显示web应用程序并与用户交互。显示在这种框架中的文档应当是允许捕捉用户交互并能利用JavaScript动态修改的文档,优选地或一般地,将使用实现文档对象模型级别2(DOM2)规范的文档。例如DHTML文档或可伸缩矢量图形-SVG或XUL(用户界面语言,用在Mozilla浏览器中),或任何基于XML的文档都可以可选地使用。
应当注意,选择DOM2是因为它代表由W3C联盟推荐的平台和语言不确定的界面,它使得程序和脚本能够动态访问并更新文档的内容和结构。
其次,根据这种优选实施方式,仲裁框架24用于与应用服务器14的服务小程序16通信。仲裁框架24应当保持隐藏,例如通过设置其宽/高为零。根据本发明,为了保持用户界面简单,有利地假设用户不会与它交互,甚至不会注意到它存在。用户只与应用程序框架交互。因此,与所述仲裁框架相反,在该发明性环境下,由于在这种框架22中任何内容都显示给用户,因此应用程序框架22还可以看作是“显示”框架。
显示在应用程序框架22中的文档使用最小化JavaScript 26(“第一可执行输入感测编程工具”),JavaScript 26检测并感测用户交互,见箭头2,将它们编码到指向控制该应用程序的服务小程序的URL中并调用(再次见箭头2)仲裁框架24发送-箭头3-带该URL的请求。仲裁框架从服务器得到包括可执行程序方法的回答,例如由JSCRIPT-MF(用于仲裁框架的JavaScript)表示的Java Script 28-见箭头4-并执行它。通过这种执行,在服务器上估计出的新内容显示在应用程序框架,见箭头5。因此,应用程序的工作流不需要加载新HTML文档就可以进行。只有用户要看的真正的相关新信息才在应用程序框架22中更新。
应当指出,调用仲裁框架24发送带以上URL的请求的上述步骤的可选方案是应用程序框架将该请求发送到服务器,而且该请求指示回答应当发送到仲裁框架。特别地,如果所选实现使用HTTP-POST与服务器通信,情况更是这样:
利用HTTP-GET请求(数据限制到4Kb),流程将是如下:
首先,将参数编码到URL中,然后“请求”仲裁框架加载作为这个URL的文档。
其次,利用HTTP-POST请求(没有大小限制),应用程序框架一般将准备带隐藏公式的请求并通过指示响应应当转到仲裁框架来自己发送该请求。
在两种情况下,因为逻辑在每次交互时都要重新加载,所以仲裁框架应当包含尽可能少的逻辑,因此请求都是由应用程序框架自己准备的。两种方法的唯一区别是请求如何发送到服务器。
图3描述了应用程序框架22和仲裁框架24的结构细节。仲裁框架的主要任务是向服务器发送请求并避免用户在其上工作的文档被替换或重新加载。应用程序框架提供准备文档的逻辑。与本发明相关的两种框架的逻辑块如下协作:
应用程序框架22包括感测并收集任何事件的感测块32,即由用户通过按键或鼠标输入使用框架控制完成的事件。事件特征包括事件类型、鼠标坐标、按钮按下等。还提供了将所述事件特征变换成基于文本的按键值对的变换逻辑34,该按键值对可以存储在HTTP请求中,如:
事件类型=鼠标按下,屏幕X=100,屏幕Y=150,鼠标按钮=1
根据本发明的优选特征,由于它不像现有技术那样工作,因此这种变换独立于页面内容,如下面接着示意性示出的:
现有技术web应用程序逻辑-典型的:
“如果点击按钮1,则转到URL XY”
发明性web应用程序逻辑-典型的:
“如果点击任何按钮,则将按键对值“事件类型=按钮点击,事件目标=%ID_of_the_button,_where_the_event_occurred”作为参数放到要发送的请求中。这可以独立地从当前被点击的按钮应用。
因此,一个文本参数列表从应用程序框架22传递到仲裁框架24,该列表精确地反映用户输入事件。
框架24生成包括这些文本参数的HTTP请求,并通过HTTP将其发送到其中的URL。
应当指出,检测事件并利用事件参数编码URL所需的任何逻辑的实现不是在仲裁框架24而是在应用程序框架22中实现的。以这种方式,进行这种检测和编码的脚本不需要每次有事件发生时就重新加载,因为仲裁框架中的内容和脚本在每个HTTP请求之后都会被完全替换。
在图中,这表示为块32和34示为在应用程序框架22中,而38、33、35位于仲裁框架24中。
在web应用服务器14(图3的底部),请求在块40接收,服务器端参数评价逻辑在解析块42解析并提取参数值,并在应用程序逻辑块44从中得出用户输入。然后,服务器应用程序逻辑44处理这个用户输入并估计其响应。
提供脚本生成块46。它生成包含可执行代码的脚本,当在块35中执行时,该脚本在框架22中实现web应用程序响应,而不需要从web服务器14再次加载整个框架。框架22新显示的部分充当更新后的框架,以便由用户注意,用户现在可以进行更多输入,该输入再次由感测逻辑32感测。因此,循环可以重新进入,而图3中所述的所有逻辑块可以再次以类似的方式使用。
另外参考图2、4和5,如下描述发明性方法中的控制流:
步骤1:用户通过产生鼠标或按键事件与应用程序框架交互。
参考图5的顶部,假设web应用程序将一系列处理及其相应状态(启动、停止)显示在表中,并允许用户通过在表中选择它并按下表下边的两个按钮启动和停止中的一个来启动或停止处理。假设用户选择了表中的处理“处理_1”并点击按钮“停止”。
步骤2:一般JavaScript 26(图2),即前面提到的由图3中逻辑块32和34表示的“第一可执行输入感测编程工具26”,嵌入到应用程序框架22中,收集上表中的鼠标交互并在最终停止按钮被鼠标左键点击后注册它。这种用户动作的整体理解为事件。应用程序框架22的所述JavaScript 26检测这种事件、提取其特征(即,类型、目标、按键按下等...)、将这些特征作为事件特定的按键值对编码到指向服务小程序的预定URL中,并命令仲裁框架24加载对应于这个URL的文档。
除了上面提到的可选方案,对于这一步,还增加以下可选方案:
代替命令仲裁框架24将请求发送到服务器,应用程序框架22可以自己发送这种请求,但要带有响应必须显示在仲裁框架24中的附加信息。这可以例如通过使用应用程序框架中将HTTP POST请求发送到服务器的隐藏公式来实现。HTML/JavaScript语言使得有可能指定由服务器返回的文档必须显示在不同的框架中。
这里的关键点是响应不预定替换发生交互的文档,但总应当显示在隐藏的仲裁框架中。
步骤3:仲裁框架24将HTTP请求发送到服务小程序16,其中这种请求包含关于在应用程序框架上检测到的用户交互的信息。即,存储为按键值对(事件类型是“按钮点击”,事件目标是按钮“停止”,表选择是“处理_1”)的特征作为参数在这种请求中传输。这意味着应当理解为是内容集中的,因为请求基本上只包含以上内容。
步骤4:在所述web应用服务器上的服务小程序16读出在指定URL上进入的信息、解码这种信息并根据期望的web应用程序逻辑估计要返回的响应。在这种情况下,应用程序处理可以假设为包括企业数据库访问,及为了对这种用户请求生成一些响应数据,还包括一些数据处理。而且,这也可以不同地实现,例如如果相应企业工作流合适,则通过预存大量JavaScript和相应工作流响应数据。
可选地和依赖于程序,响应数据可以在运行时估计。服务器响应同样是内容集中的,因为服务器响应中传输的参数基本上包含非GUI图形的内容,在这里所估计出的响应将是在表中对应于“处理_1”的状态文本从“启动”变成“停止”。这可以是包含当文档被浏览器加载时要由浏览器执行的JavaScript 28的HTML文档。脚本包含内容。由于它可以被技术人员理解,因此这种内容只是用于更新应用程序框架22的增量信息,而不需要从服务器完全加载它。
步骤5:一旦响应文档被仲裁框架24接收,就执行其中嵌入了JavaScript-MF 28的JavaScript,即前面提到的“第一可执行显示编程工具28”。通过增加新元素、除去现有元素或修改现有元素的属性,这种脚本修改应用程序框架中的文档。应用程序框架22中所显示文档的其余部分不需要重新加载。
本发明可以在硬件、软件或硬件与软件的组合中实现。根据本发明的web应用程序可以在一个计算机系统中以集中方式实现,或以不同元素散布在几个互连计算机系统上的分布方式实现。任何类型适于执行在此所述方法的计算机系统或其它装置都适合。硬件与软件的一般组合可以是具有计算机程序的通用计算机系统,当加载并执行时,该计算机程序控制计算机系统使其执行在此所述的方法。
本发明还可以嵌入在计算机程序产品中,该产品包括使得能够实现在此所述方法的所有特征,而且当加载到计算机系统中时,该产品能够执行这些方法。
本环境中的计算机程序方法或计算机程序意味着一组指令的任何语言、代码或符号的任何表达,该指令要使具有信息处理能力的系统直接或在以下一个或两个之后执行特定功能:
a)转换成其它语言、代码或符号;
b)在不同的材料形式中再现。

Claims (10)

1、一种在基于web的客户(12)-服务器(14)环境中用于客户端与服务器端web应用程序(16)交互的方法,其中客户端web浏览器用作用于在浏览器应用程序框架(22)中显示由web应用程序发送的web页面并用于将由所述应用程序框架(22)中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序(16)的请求的用户界面,其中客户-服务器请求-响应通信对话(2、3、4)是利用对所述用户输入动作作出响应的所述服务器端web应用程序(16)执行的,其特征在于:
在客户(12)与服务器(14)之间的单个对话步骤中执行步骤:
a)连同由服务器(14)生成的响应参数(50),在对用户隐藏的框架(24)中接收可执行显示编程工具(28),
b)从对用户隐藏的框架(24)中执行所述编程工具(28),其中所述执行在所述应用程序框架(22)预定位置仅部分显示所述响应参数(50)以便对其更新。
2、如权利要求1所述的方法,其中用户动作的集合包括利用输入感测可执行程序工具(26)进行以下的步骤:
a)监视所述客户端web应用程序用户界面中所述用户输入动作以便检测用户事件,
b)将所述事件的控制特征编码(2)到寻址到控制所述web应用程序的服务器端应用程序(16)的相应预定URL的扩展中,
c)指示(2)客户端仲裁框架(24)从服务器加载所述编码的URL,
其中所述通信(2、3、4)包括步骤:
d)向所述服务小程序(16)发送(3)包括所述事件控制特征的请求,
e)接收(4)对所述请求的包括预定服务器响应的回答,该预定服务器响应又包括对应于所述用户触发事件的所述响应参数(50)和所述第二可执行程序对象(28),及
其中所述显示步骤通过以下执行:
f)调用(5)所述第二可执行显示程序对象(28),该对象根据web应用程序的程序逻辑修改所述应用程序框架(22)。
3、如权利要求2所述的方法,其中所述仲裁框架(24)向服务器(14)发送(3)所述请求。
4、如权利要求2所述的方法,其中连同表示期望的服务器响应必须显示在仲裁框架(24)中的附加信息,所述应用程序框架(22)向服务器(14)发送(3)所述请求。
5、一种在基于web的客户(12)-服务器(14)环境中用于服务器端与客户端web浏览器交互以便执行web应用程序(16)的方法,其中客户端web浏览器用作用于在浏览器应用程序框架(22)中显示由web应用程序发送的web页面并用于将由所述应用程序框架(22)中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序(16)的请求的用户界面,其中客户-服务器请求-响应通信对话(2、3、4)是利用对所述用户输入动作作出响应的所述服务器端web应用程序(16)执行的,
其特征在于步骤:
在客户(12)与服务器(14)之间的单个对话步骤中执行步骤:
a)连同由服务器(14)生成的响应参数(50),发送特定的可执行显示编程工具(28)。
6、如前面任何一项权利要求所述的方法,其中通信包括步骤:
a)从所述客户(12)浏览器的仲裁框架(24)接收(3)包括URL和附加URL扩展的请求,
b)解码(32)所述扩展,以便得出所述用户动作的事件控制特征,
c)处理(34)对应于所述得出的事件控制特征并基于服务器端web应用程序逻辑的事件,
d)生成(36)web应用程序响应文档,该文档包括:
由服务器(14)生成并代表web应用程序逻辑对所述用户事件的响应的响应参数(50),及
专用于web浏览器中的执行的可执行显示程序工具(28),
e)将所述响应文档发送(4)回所述辅助编程工具(24)。
7、如权利要求1或权利要求3所述的方法,其中所述可执行程序工具(26、28)每个都是JavaScript。
8、一种web服务器计算机系统,具有在基于web的客户(12)-服务器(14)环境中用于执行服务器端与客户端web浏览器的交互以便执行web应用程序(16)的工具,其中客户端web浏览器用作用于在浏览器应用程序框架(22)中显示由web应用程序发送的web页面并用于将由所述应用程序框架(22)中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序(16)的请求的用户界面,其中客户-服务器请求-响应通信对话(2、3、4)是利用对所述用户输入动作作出响应的所述服务器端web应用程序(16)执行的,
其特征在于事件处理功能组件(16),该组件编程用于:
a)为了提供服务器应用程序响应数据,评价由客户请求发送的请求参数,及
b)选择特定的可执行显示编程工具,及
c)向客户(12)发送回(4)包括所述应用程序响应数据和所述可执行显示编程工具(28)的服务器响应。
9、一种在数据处理系统中执行的计算机程序,用于在基于web的客户(12)-服务器(14)环境中执行服务器端与客户端web浏览器交互,以便执行web应用程序(16),其中客户端web浏览器用作用于在浏览器应用程序框架(22)中显示由web应用程序发送的web页面并用于将由所述应用程序框架(22)中一个或多个用户输入动作触发的事件转换成指向所述服务器端web应用程序(16)的请求的用户界面,其中客户-服务器请求-响应通信对话(2、3、4)是利用对所述用户输入动作作出响应的所述服务器端web应用程序(16)执行的,
其特征在于用于在客户(12)与服务器(14)之间的单个对话步骤中执行以下步骤的功能组件:
a)连同由服务器(14)生成的响应参数(50),发送特定的可执行显示编程工具(28)。
10、一种存储在计算机可用介质上的计算机程序产品,有形地体现了如权利要求9所述的计算机程序。
CNA2006100042743A 2005-03-17 2006-02-13 用于用户与web浏览器交互的服务器端处理的方法与系统 Pending CN1835507A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05102110.3 2005-03-17
EP05102110 2005-03-17

Publications (1)

Publication Number Publication Date
CN1835507A true CN1835507A (zh) 2006-09-20

Family

ID=37003108

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100042743A Pending CN1835507A (zh) 2005-03-17 2006-02-13 用于用户与web浏览器交互的服务器端处理的方法与系统

Country Status (3)

Country Link
US (2) US8112473B2 (zh)
CN (1) CN1835507A (zh)
TW (1) TW200703029A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437483C (zh) * 2007-01-16 2008-11-26 华为技术有限公司 基于Web页面的事件分发方法与装置
WO2010000137A1 (en) * 2008-07-03 2010-01-07 Pang Xin Mobile device application framework
CN101221572B (zh) * 2008-01-25 2010-06-02 吴坤达 一种网页数据处理系统
CN101877700A (zh) * 2009-04-28 2010-11-03 惠普开发有限公司 在应用与数据库之间传递机密信息
CN102073686A (zh) * 2010-12-24 2011-05-25 汉柏科技有限公司 一种页面文件的垂直动态加载方法及装置
CN102087577A (zh) * 2009-12-07 2011-06-08 Sap股份公司 与位置无关地执行用户接口操作
CN102099828A (zh) * 2008-07-28 2011-06-15 索尼公司 用于访问联网服务的客户端设备和相关联方法
CN102334099A (zh) * 2011-08-09 2012-01-25 华为技术有限公司 在bs架构下的参数配置的方法和装置
CN102981915A (zh) * 2012-12-17 2013-03-20 北京奇虎科技有限公司 一种应用程序间通信方法及装置
CN104410645A (zh) * 2014-12-15 2015-03-11 北京国双科技有限公司 数据交互方法、装置及系统
CN105683912A (zh) * 2013-07-09 2016-06-15 马克西密瑟有限公司 对于应用程序的优化的方法
CN106339154A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 一种列表页面更新方法和装置
WO2017012120A1 (en) * 2015-07-23 2017-01-26 Nokia Technologies Oy Networked communication
CN110023902A (zh) * 2016-09-30 2019-07-16 横河电机株式会社 应用开发环境提供系统及方法、终端装置、应用显示方法、及非易失性的存储介质
CN110096656A (zh) * 2013-01-25 2019-08-06 电子湾有限公司 用于映射页面状态的系统和方法
CN110188536A (zh) * 2019-05-22 2019-08-30 北京邮电大学 应用程序检测方法及装置
CN110286919A (zh) * 2014-09-18 2019-09-27 三星电子株式会社 用于经由应用提供服务的系统和方法
CN110753890A (zh) * 2017-06-07 2020-02-04 霍尼韦尔有限公司 用于监测制造或控制过程的数据源不可知的基于浏览器的监测显示器
CN110874913A (zh) * 2018-09-03 2020-03-10 爱斯佩克株式会社 信息管理系统以及方法、终端装置、服务器以及记录介质
CN110892385A (zh) * 2018-05-07 2020-03-17 谷歌有限责任公司 用于基于数字助理的应用的沉浸式基于web的模拟器
CN111356986A (zh) * 2017-11-16 2020-06-30 西门子股份公司 用于相互地集成应用程序特别是Web应用程序的方法
CN111917833A (zh) * 2020-07-10 2020-11-10 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统
CN112148254A (zh) * 2019-06-27 2020-12-29 Sap欧洲公司 用于实现微服务之间的接口设计一致性的应用评估系统
CN113689537A (zh) * 2015-03-12 2021-11-23 快乐L-领主有限公司 用于基于体素的三维建模的系统、方法和设备

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1835507A (zh) 2005-03-17 2006-09-20 国际商业机器公司 用于用户与web浏览器交互的服务器端处理的方法与系统
US20080244514A1 (en) * 2007-03-29 2008-10-02 Microsoft Corporation Scriptable object model for network based services
WO2009073007A1 (en) * 2007-12-06 2009-06-11 Zcubes, Inc. Netvariables in a recursive browser system
US20090237560A1 (en) * 2008-03-18 2009-09-24 Cisco Technology, Inc. Networked ip video wall
US8291475B2 (en) * 2008-04-30 2012-10-16 Microsoft Corporation Secure cross-domain communication for web mashups
US8156244B2 (en) * 2008-05-22 2012-04-10 Cisco Technology, Inc. Software client control of digital picture frames
JP2009289103A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd 情報処理システム、情報処理装置、及びコンピュータプログラム
US8516037B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Methods for dynamic partitioning of applications in client-server environments
EP2521976B1 (en) * 2010-01-08 2018-04-18 Sauce Labs, Inc. Real time verification of web applications
US8250478B2 (en) * 2010-01-28 2012-08-21 Microsoft Corporation State persistence and background initialization for post-back web applications
US20120117456A1 (en) * 2010-11-05 2012-05-10 Nokia Corporation Method and apparatus for automated interfaces
CN102487403B (zh) * 2010-12-03 2014-06-11 腾讯科技(深圳)有限公司 由服务器端执行js的方法和装置
US9699168B2 (en) 2010-12-13 2017-07-04 International Business Machines Corporation Method and system for authenticating a rich client to a web or cloud application
US20120159341A1 (en) 2010-12-21 2012-06-21 Microsoft Corporation Interactions with contextual and task-based computing environments
US20120166522A1 (en) * 2010-12-27 2012-06-28 Microsoft Corporation Supporting intelligent user interface interactions
GB2488790A (en) * 2011-03-07 2012-09-12 Celebrus Technologies Ltd A method of controlling web page behaviour on a web enabled device
KR101978180B1 (ko) * 2011-06-09 2019-05-14 삼성전자주식회사 클라이언트 장치에서 어플리케이션의 사용자 경험을 제어하는 방법 및 시스템
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US8972477B1 (en) * 2011-12-01 2015-03-03 Amazon Technologies, Inc. Offline browsing session management
US9892202B2 (en) 2012-01-25 2018-02-13 Microsoft Technology Licensing, Llc Web page load time reduction by optimized authentication
US9032303B2 (en) * 2012-02-28 2015-05-12 Microsoft Technology Licensing, Llc Web-based interaction with a local system
WO2013165744A1 (en) * 2012-04-30 2013-11-07 Webtrends Inc. Method and system that streams real-time, processed data from remote processor-controlled appliances
US9197513B2 (en) 2012-05-03 2015-11-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for representing a portion of a user interface as a network address
CN103678341A (zh) * 2012-09-07 2014-03-26 鸿富锦精密工业(深圳)有限公司 数据库交互系统及方法
US8949995B2 (en) 2012-09-18 2015-02-03 International Business Machines Corporation Certifying server side web applications against security vulnerabilities
GB2508598A (en) 2012-12-04 2014-06-11 Ibm Splitting the processing logic of a distributed application page between client and server
US10291615B2 (en) 2013-05-13 2019-05-14 Ivanti Us Llc Web event framework
US9912720B2 (en) 2013-05-13 2018-03-06 Appsense Us Llc Context aware browser policy
US9900367B2 (en) * 2013-05-13 2018-02-20 Appsense Us Llc Context transfer from web page to application
US20150154617A1 (en) * 2013-12-04 2015-06-04 SaleMove, Inc. Determining leads based on web site interactions and browser sessions
US9626157B2 (en) 2014-07-03 2017-04-18 Able World International Limited Method of projecting a workspace and system using the same
CN106663007B (zh) * 2014-07-03 2020-07-03 阿贝尔环球国际有限公司 使工具运作于作业环境的方法以及应用该方法的机器
DE102014017141A1 (de) 2014-11-20 2016-05-25 Audi Ag Steuern eines Online-Dienstes mittels einer Kraftfahrzeug-Bedieneinrichtung
CN107181779B (zh) * 2016-03-10 2021-09-10 阿里巴巴集团控股有限公司 访问请求的处理方法、装置和系统
US10592388B1 (en) * 2018-09-26 2020-03-17 Jpmorgan Chase Bank, N.A. Methods for facilitating more efficient network message exchange and analysis and devices thereof
US11226727B2 (en) * 2018-11-12 2022-01-18 Citrix Systems, Inc. Systems and methods for live tiles for SaaS
SE2050465A1 (en) * 2020-04-23 2021-10-24 Checkin Com Group Ab Method and system for generating a data collection process in a user device
CN115665120B (zh) * 2022-12-28 2023-03-21 浙江华东工程数字技术有限公司 一种云端cad处理方法、系统、计算机设备和存储介质
US11907646B1 (en) * 2023-02-07 2024-02-20 Adobe Inc. HTML element based rendering supporting interactive objects

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5894554A (en) * 1996-04-23 1999-04-13 Infospinner, Inc. System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
US6052730A (en) * 1997-01-10 2000-04-18 The Board Of Trustees Of The Leland Stanford Junior University Method for monitoring and/or modifying web browsing sessions
US6266684B1 (en) * 1997-08-06 2001-07-24 Adobe Systems Incorporated Creating and saving multi-frame web pages
US6239797B1 (en) * 1998-04-02 2001-05-29 Partnerware Technologies Method and apparatus for remote database record scroll/update without refresh
US7216300B2 (en) * 1998-12-30 2007-05-08 Ncr Corp. Method and apparatus for an applet to display multiple windows
US6774917B1 (en) * 1999-03-11 2004-08-10 Fuji Xerox Co., Ltd. Methods and apparatuses for interactive similarity searching, retrieval, and browsing of video
US6701368B1 (en) * 1999-04-26 2004-03-02 Cisco Technology, Inc. Providing a stream of data to a browser to update properties on a page
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6785891B1 (en) * 1999-10-12 2004-08-31 International Business Machines Corporation Data sharing between application environments
US6594691B1 (en) * 1999-10-28 2003-07-15 Surfnet Media Group, Inc. Method and system for adding function to a web page
AU1488101A (en) 1999-11-19 2001-05-30 Science Management Corporation Forms creation method and e-commerce method
US6760750B1 (en) * 2000-03-01 2004-07-06 Polycom Israel, Ltd. System and method of monitoring video and/or audio conferencing through a rapid-update web site
US7509397B1 (en) * 2000-04-06 2009-03-24 Yahoo! Inc. Web portholes: using web proxies to capture and enhance display real estate
US7464381B1 (en) * 2000-05-12 2008-12-09 Oracle International Corporation Content update proxy method
US7475404B2 (en) * 2000-05-18 2009-01-06 Maquis Techtrix Llc System and method for implementing click-through for browser executed software including ad proxy and proxy cookie caching
US20030164859A1 (en) * 2001-02-02 2003-09-04 Evans Clark Cameron Hybrid widget/layout user interface for structured information
AU2002254476A1 (en) * 2001-03-30 2002-10-15 Fpba Group, Llc Network banner advertisement system and method
US6983421B1 (en) * 2001-06-22 2006-01-03 I2 Technologies Us, Inc. Using connectors to automatically update graphical user interface elements at a client system according to an updated state of a configuration
US7287227B2 (en) * 2001-06-29 2007-10-23 Ve Enterprises Llc System and method for editing web pages in a client/server architecture
US6990534B2 (en) * 2001-07-20 2006-01-24 Flowfinity Wireless, Inc. Method for a proactive browser system for implementing background frame maintenance and asynchronous frame submissions
US7246324B2 (en) * 2002-05-23 2007-07-17 Jpmorgan Chase Bank Method and system for data capture with hidden applets
US7299409B2 (en) * 2003-03-07 2007-11-20 International Business Machines Corporation Dynamically updating rendered content
US20050050052A1 (en) 2003-08-20 2005-03-03 3M Innovative Properties Company Centralized management of packaging data with artwork importation module
US7523401B1 (en) * 2003-09-03 2009-04-21 Theoris Software, Llc System and method for providing a browser-based user interface
US20050097557A1 (en) * 2003-10-31 2005-05-05 International Business Machines Corporation Methods and apparatus for making web browser act like stand-alone application
US7302370B2 (en) * 2003-11-17 2007-11-27 Oracle International Corporation System and method for managing browser sessions in single and multi-server workflow environments
US7733962B2 (en) * 2003-12-08 2010-06-08 Microsoft Corporation Reconstructed frame caching
US7480698B2 (en) * 2003-12-18 2009-01-20 International Business Machines Corporation Updating event data on a page using code understood natively by a browser
US7293034B2 (en) * 2004-02-23 2007-11-06 Microsoft Coporation Dynamically customizing a user interface for the aggregation of content
US7533144B2 (en) * 2004-05-14 2009-05-12 Hisham Kassab Method of providing a web page with additional content inserted in an intermediate network entity (INE) platform
US7979807B2 (en) * 2004-09-07 2011-07-12 Routeone Llc Method and system for communicating and exchanging data between browser frames
US8627344B2 (en) * 2004-12-15 2014-01-07 Siebel Systems, Inc. Methods and apparatuses for user interface management
US7571219B2 (en) * 2004-12-16 2009-08-04 Sap Ag Preserving and accessing active components in web pages
CN1835507A (zh) 2005-03-17 2006-09-20 国际商业机器公司 用于用户与web浏览器交互的服务器端处理的方法与系统

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437483C (zh) * 2007-01-16 2008-11-26 华为技术有限公司 基于Web页面的事件分发方法与装置
CN101221572B (zh) * 2008-01-25 2010-06-02 吴坤达 一种网页数据处理系统
CN102057654B (zh) * 2008-07-03 2014-09-24 空中(中国)有限公司 移动装置的应用程序框架
WO2010000137A1 (en) * 2008-07-03 2010-01-07 Pang Xin Mobile device application framework
CN102057654A (zh) * 2008-07-03 2011-05-11 庞鑫 移动装置的应用程序框架
CN102099828A (zh) * 2008-07-28 2011-06-15 索尼公司 用于访问联网服务的客户端设备和相关联方法
CN102099828B (zh) * 2008-07-28 2014-05-07 索尼公司 用于访问联网服务的客户端设备和相关联方法
US9674269B2 (en) 2008-07-28 2017-06-06 Sony Corporation Client device and associated methodology of accessing networked services
US8352545B2 (en) 2008-07-28 2013-01-08 Sony Corporation Client device and associated methodology of accessing networked services
US8533264B2 (en) 2008-07-28 2013-09-10 Sony Corporation Client device and associated methodology of accessing networked services
CN101877700A (zh) * 2009-04-28 2010-11-03 惠普开发有限公司 在应用与数据库之间传递机密信息
US8924707B2 (en) 2009-04-28 2014-12-30 Hewlett-Packard Development Company, L.P. Communicating confidential information between an application and a database
CN101877700B (zh) * 2009-04-28 2014-12-10 惠普开发有限公司 在应用与数据库之间传递机密信息
CN102087577B (zh) * 2009-12-07 2015-05-20 Sap欧洲公司 与位置无关地执行用户接口操作
CN102087577A (zh) * 2009-12-07 2011-06-08 Sap股份公司 与位置无关地执行用户接口操作
CN102073686A (zh) * 2010-12-24 2011-05-25 汉柏科技有限公司 一种页面文件的垂直动态加载方法及装置
CN102334099A (zh) * 2011-08-09 2012-01-25 华为技术有限公司 在bs架构下的参数配置的方法和装置
CN102334099B (zh) * 2011-08-09 2013-08-28 华为技术有限公司 在bs架构下的参数配置的方法和装置
CN102981915B (zh) * 2012-12-17 2016-08-24 北京奇虎科技有限公司 一种应用程序间通信方法及装置
CN102981915A (zh) * 2012-12-17 2013-03-20 北京奇虎科技有限公司 一种应用程序间通信方法及装置
CN110096656A (zh) * 2013-01-25 2019-08-06 电子湾有限公司 用于映射页面状态的系统和方法
CN105683912A (zh) * 2013-07-09 2016-06-15 马克西密瑟有限公司 对于应用程序的优化的方法
CN105683912B (zh) * 2013-07-09 2019-08-27 马克西密瑟有限公司 对于应用程序的优化的方法
CN110286919A (zh) * 2014-09-18 2019-09-27 三星电子株式会社 用于经由应用提供服务的系统和方法
CN110286919B (zh) * 2014-09-18 2023-08-29 三星电子株式会社 用于经由应用提供服务的系统和方法
CN104410645B (zh) * 2014-12-15 2017-10-27 北京国双科技有限公司 数据交互方法、装置及系统
CN104410645A (zh) * 2014-12-15 2015-03-11 北京国双科技有限公司 数据交互方法、装置及系统
CN113689537A (zh) * 2015-03-12 2021-11-23 快乐L-领主有限公司 用于基于体素的三维建模的系统、方法和设备
CN106339154A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 一种列表页面更新方法和装置
CN106339154B (zh) * 2015-07-08 2019-09-17 阿里巴巴集团控股有限公司 一种列表页面更新方法和装置
WO2017012120A1 (en) * 2015-07-23 2017-01-26 Nokia Technologies Oy Networked communication
CN110023902B (zh) * 2016-09-30 2022-08-26 横河电机株式会社 应用开发环境提供系统、方法、终端装置、应用显示方法
CN110023902A (zh) * 2016-09-30 2019-07-16 横河电机株式会社 应用开发环境提供系统及方法、终端装置、应用显示方法、及非易失性的存储介质
CN110753890B (zh) * 2017-06-07 2023-05-23 霍尼韦尔有限公司 用于监测制造或控制过程的数据源不可知的基于浏览器的监测显示器
CN110753890A (zh) * 2017-06-07 2020-02-04 霍尼韦尔有限公司 用于监测制造或控制过程的数据源不可知的基于浏览器的监测显示器
CN111356986B (zh) * 2017-11-16 2023-12-05 西门子股份公司 用于相互地集成应用程序特别是Web应用程序的方法
US11755353B2 (en) 2017-11-16 2023-09-12 Siemens Aktiengesellschaft Method for reciprocally integrating applications, in particular web applications
CN111356986A (zh) * 2017-11-16 2020-06-30 西门子股份公司 用于相互地集成应用程序特别是Web应用程序的方法
CN110892385B (zh) * 2018-05-07 2023-03-31 谷歌有限责任公司 用于基于数字助理的应用的沉浸式基于web的模拟器
CN110892385A (zh) * 2018-05-07 2020-03-17 谷歌有限责任公司 用于基于数字助理的应用的沉浸式基于web的模拟器
CN110874913B (zh) * 2018-09-03 2023-11-07 爱斯佩克株式会社 信息管理系统以及方法、终端装置以及记录介质
CN110874913A (zh) * 2018-09-03 2020-03-10 爱斯佩克株式会社 信息管理系统以及方法、终端装置、服务器以及记录介质
CN110188536A (zh) * 2019-05-22 2019-08-30 北京邮电大学 应用程序检测方法及装置
CN112148254A (zh) * 2019-06-27 2020-12-29 Sap欧洲公司 用于实现微服务之间的接口设计一致性的应用评估系统
CN112148254B (zh) * 2019-06-27 2024-04-19 Sap欧洲公司 用于实现微服务之间的接口设计一致性的应用评估系统
CN111917833B (zh) * 2020-07-10 2023-06-02 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统
CN111917833A (zh) * 2020-07-10 2020-11-10 沈阳先进医疗设备技术孵化中心有限公司 客户端程序在云环境中的应用方法、装置及系统

Also Published As

Publication number Publication date
US20120089672A1 (en) 2012-04-12
US8606852B2 (en) 2013-12-10
TW200703029A (en) 2007-01-16
US8112473B2 (en) 2012-02-07
US20060212514A1 (en) 2006-09-21

Similar Documents

Publication Publication Date Title
CN1835507A (zh) 用于用户与web浏览器交互的服务器端处理的方法与系统
US8510371B2 (en) Method and system for creating IT-oriented server-based web applications
US20060224690A1 (en) Strategies for transforming markup content to code-bearing content for consumption by a receiving device
US20070288644A1 (en) Systems and methods for developing and running applications in a web-based computing environment
CN107688529B (zh) 组件调试方法和装置
CN104866327A (zh) 一种php开发方法及框架
US20070156878A1 (en) System and method for managing workflow execution in a distributed system
CN1599901A (zh) 在客户端-服务器网络中用文件类型关联执行分布式程序的方法
CN105808701B (zh) 实现表单自动化验证及多系统间通讯的方法及系统
JP2011118879A (ja) ユーザインタフェース操作の位置独立な実行
CA2540361A1 (en) System and method for extending capabilities and execution efficiency of script based applications
CN1728700A (zh) 基于struts框架的web电信网管系统及其方法
WO2009104829A1 (en) Web browsing environment provider system for multiple users and control method thereof
CN1312505A (zh) 协作软件应用结构
CN101051325A (zh) 一种Web页面动作收藏方法和装置
KR101907660B1 (ko) 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
WO2016005886A2 (en) Self-referencing of running script elements in asychronously loaded dom modules
CN101059804A (zh) 提供网页的系统、方法及电脑可读取的媒体
KR101316677B1 (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
Villanueva et al. Proxywork: Distributing User Interface Components of Web Applications.
Le et al. Implementation of react-redux in web application
CN100524214C (zh) Mis系统的功能调用方法及调用装置
Villanueva et al. Distributing web components in a display ecosystem using Proxywork
Watson et al. A model-based framework for the integration of parallel tools
CN101945136A (zh) 基于网页应用的数据传输方法和系统

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