一种生成用户图形界面的方法和系统的制作方法

文档序号:6576233阅读:173来源:国知局
专利名称:一种生成用户图形界面的方法和系统的制作方法
技术领域
本发明涉及计算机通信领域,尤其是一种生成用户图形界面的方法和系统。
背景技术
随着面向服务架构(SOA,Service-Oriented Architecture)的迅速发展,面向 服务的编程模式的使用越来越广泛。Web Service技术是SOA的一种实现,通过WSDL(Web Service Description Language)来描述服务信息,其中包括服务的 API (Application Programming Interface)信息。Web服务是在Internet上进行分布式计算的基本功能模 块,实现应用程序之间的互操作性。Web服务通过发布API来提供给业务请求者调用,用户 请求者可以通过简单对象访问协议(S0AP,Simple Object Access Protocol)调用远程主 机的服务。Web服务是可重用的,使得面向服务的编程模式得以成功应用。目前,BPEL (Business Process Execution Language)作为一种面向 Web 月艮务的 编程语言,使用得越来越广泛。它实现将一组现有的Web服务组合起来,用BPEL脚本来描 述业务的逻辑,并以Web服务的方式提供给业务请求者。Web服务通过S0AP消息传递数据, 数据通过XML格式的数据以及XML schema来展现给用户,但当用户不是专业人员时就很难 理解数据的含义,此时就需要通过用户界面的形式来提供信息给用户。因而,当业务开发者 发布该组合业务时,还需要另外开发业务界面给用户访问。图形用户界面(⑶I,Graphical User Interface)为最终用户提供了一种交流信息的方式。在Internet环境下,图形用户 界面的最常见技术就是网页。它允许用户通过浏览器直接浏览,使得网页作为图形用户界 面快速发展。当然图形用户界面也可以通过客户端程序来展示,但对最终用户的终端就有 一定的要求。由于BPEL的简洁以及有工具来加速业务逻辑的开发,导致BPEL业务界面的开发 时间远远大于业务逻辑的开发时间,使得组合业务的用户界面开发成为瓶颈。当组合业务 进行修改后,用户界面也需要进行相应的修改、测试、部署,无法同时根据业务的改变而同 时发布更新的界面。

发明内容
本发明提供了一种图形界面的生成方法和相应的装置及系统,简化图形界面的生 成过程。最后根据权利要求确定发明内容。该系统能根据业务逻辑脚本及对应的业务描述脚本自动生成图形用户界面,节省 了组合业务开发资源浪费,缩短组合业务的开发时间。


图1为一种生成图形用户界面的系统实施例的结构示意图;图2为另一种生成图形用户界面的系统实施例的结构示意图3为图2所示的系统中的一种客户端实施例的结构示意图;图4为另一种生成图形用户界面的系统实施例的结构示意图;图5为另一种生成图形用户界面的系统的具体例子的结构示意图;图6为一种生成图形用户界面的方法实施例的流程示意图;图7为另一个生成图形用户界面的方法实施例的流程示意图;图8为另一个生成图形用户界面的方法实施例的流程示意图;图9为另一个生成图形用户界面的方法实施例的流程示意图。
具体实施例方式参考图1,本发明具体实施方式
提供了一种生成图形用户界面的系统。该系统包括 界面元素提供装置01和界面元素调度装置02,该界面元素提供装置01用于根据业务逻辑 脚本、业务描述脚本以及输入输出映射关系生成界面元素,并存储到界面元素信息库;该界 面元素调度装置02,用于在执行组合业务时,根据界面元素对应的活动的状态发生改变的 通知,选择界面元素,生成界面元素调度指令并并发送给客户端,该界面元素调度指令包括 该选择的界面元素。该系统能根据业务逻辑脚本及对应的业务描述脚本自动生成图形用户 界面,节省了组合业务开发资源浪费,缩短组合业务的开发时间。具体的界面元素提供装置01和界面元素调度装置02可以全部或者部分为软件, 存储在计算机可读的存储介质上,在与计算机的其它硬件结合使用过程中完成上述处理。 具体的实施过程中,业务逻辑脚本例如BPEL脚本,业务描述脚本例如WSDL脚本。上述实施例能根据组合业务相关信息生成的界面元素,动态进行界面元素调度, 可以避免开发者根据组合业务逻辑开发用户图形界面。另一具体实施方式
中,提供了一种生成图形用户界面的系统。参考图2,为该生成 图形用户界面的系统的结构示意图。该系统中除了包括图1该的界面元素提供装置01和 界面元素调度装置02以外,还包括组合引擎03和客户端04。组合引擎03用于在执行组合业务时,组合引擎根据活动状态的改变发送状态通 知。例如,在具体应用场景中,当组合业务需要用户进行输入操作时,即此时输入操作对应 的活动的状态变成激活状态,该组合引擎将对应活动的状态通知给界面元素调度装置02, 如果receiv^onMessage或onEvent活动正在执行,组合引擎向界面元素调度装置02中的 调度处理模块发送界面增加状态通知;或,如果r印ly活动正在执行,则向界面元素调度装 置02中的消息处理模块回复响应消息,其中响应消息包括对应的活动的输出消息标识符; 或,如果receive、onMessage或onEvent活动变为不能执行时,则向界面元素调度装置02 中的调度处理模块发送界面删除状态通知。客户端04用于接收该界面元素调度装置发送的界面元素调度指令,该界面元素 调度指令包括输入界面元素或者输出界面元素;根据所述界面元素调度指令对发送给该客 户端的输入界面元素进行添加、删除或者更新,或者对发送给该客户端的输出界面元素进 行显示。使得客户端能够根据组合业务的执行状态改变而动态地改变用户界面。可选的,该客户端04可以向界面元素调度装置02 (例如图4中的消息处理模块 0202)发送请求消息。该请求消息是创建业务实例的消息,或者是访问业务实例的消息。相 应的,另一个实施方式中,提供了一种可以实现图形用户界面的客户端。参考图3,为该客户端的结构示意图。在具体应用场景中,该客户端04可以为手机、PDM等移动终端、或者个人 计算机等固定终端。该客户端04包括接收模块0401和处理模块0402,该接收模块0401用于接收该界 面元素调度装置02发送的界面元素调度指令,该界面元素调度指令包括输入界面元素或 者输出界面元素;该处理模块0402用于对发送给该客户端的输入界面元素进行添加、删除 或者更新,对发送给该客户端的输出界面元素进行显示。可选的,该客户端04包括发送模块,用于向界面元素调度装置02中的消息处理模 块发送请求消息。该请求消息是创建业务实例的消息,或者是访问业务实例的消息。另一个本发明具体实施方式
中,提供了一个更为具体的生成图形用户界面的系 统。参考图4,该系统包括前述客户端04和组合引擎03 (其结构不再赘述),以及,界面元 素提供装置01和界面元素调度装置02。具体的,该界面元素提供装置01包括业务逻辑脚本解析模块0101、业务描述脚本 解析模块0102、输入输出映射模块0103、界面元素生成模块0104、界面元素信息库0105。其中,业务逻辑脚本解析模块0101通过解析业务逻辑脚本获得对应的输入、输出 消息相应的活动,并发送该活动信息给该界面元素生成模块0104。其中,活动信息包括输入 消息标识符或者输出消息标识符、消息类型(即输入或者输出消息)、业务、端口类型、操作 等{曰息。该业务描述脚本解析模块0102通过解析业务描述脚本获得操作对应的消息格 式,并发送给该界面元素生成模块0104。该输入输出映射模块0103用于存储该组合业务的输入输出映射关系,该输入输 出映射关系包括输入消息标识符、输出消息标识符,以及,输入输出映射关系;并发送给界 面元素生成模块0104。该界面元素生成模块0104用于根据所述消息格式生成界面元素;根据该活动对 应的输入消息标识符、输入界面元素、输出消息标识符、输入输出映射关系生成界面元素记 录,或者,根据该活动对应的输出消息标识符、输出界面元素生成界面元素记录。该界面元素信息库0105用于存储前述界面元素记录。即,存储该输入消息标识 符、输入界面元素、实例标识符和、状态标识符、输出消息标识符和输入输出映射关系;或者 存储输出消息标识符和输出界面元素,其中,输入消息标识符和输入界面元素一一对应,输 出消息标识符和输出界面元素一一对应。需要说明的是,前述输入输出映射关系中,该输入界面元素用于接受期待用户输 入的内容;输出界面元素用于展示给用户的信息。输入消息标识符可以对应多个输出消息 标识符,一个输入、输出消息标识符对可以有多个输入输出映射关系。即一个输入消息(或 称接收消息活动)可对应多条输出消息(或称回复消息活动),换句话讲,允许有多个输出 消息会影响后续的输入消息的输入。例如表1。表1 以BPEL协议为例,其中输入消息、输出消息可由活动元素对应的xpath来标识, 每个标识在其所在BPEL脚本中是唯一的。输入消息与输出消息的输入输出映射关系可 用xpath来描述具体字段的对应关系,其中包括两部分,一部分是输入指定字段,与输入消 息相关;一部分是输出指定字段,与输出消息相关。实际应用中,将输出消息中输出指定 字段的值赋值给输入消息中输入字段指定的值。输入消息对应的活动类型可为receive、 onMessage 或者 onEvent。另外,前述界面元素信息库可以包括输入消息标识符、输入界面元素、实例标识 符、状态标识符、输出消息标识符、输入输出映射关系等信息。其中实例标识符用于标识该 界面元素是否能够为组合业务创建一个实例。例如,用Y表示能,用N表示不能。状态标识 符用于标识该输入界面元素是否已经显示在页面。例如,用ON表示已显示在页面上。另外, 输入消息标识符与输入界面元素、与实例标识符、与状态标识符是一一对应关系,与输出消 息标识符有一对多关系,输入、输出消息标识符对与输入输出映射关系有一对多关系。例如 表 2. 10表2. 1 前述界面元素信息库可以存储有输出界面元素相关的信息,包括输出消息标识 符、输出界面元素,其中输出消息标识符和输出界面元素是一一对应关系。例如表2. 2。表2. 2 前述界面元素调度装置02可以包括调度处理模块0201和消息处理模块0202。 其中,该调度处理模块0201用于接收该组合引擎03发送的界面增加状态通知或者界面删 除状态通知,以及接收消息处理模块0203发送的创建实例界面状态通知、界面更新状态通知或者界面增加状态通知,根据前述通知查询界面元素信息库获得对应的记录中的界面元 素,生成界面元素调度指令,将该界面元素调度指令发送给客户端04。该消息处理模块0202用于接收该组合引擎03发送的响应消息,根据所述响应消 息的标识符查询获得界面元素信息库中对应的输出界面元素;将所述响应消息的值赋值给 输出界面元素的对应字段,并向调度处理模块发送界面增加状态通知;以及,分析是否存在 输入界面元素依赖于该响应消息,若有则发送给界面元素生成模块0104更新输入界面元 素,若该界面元素已经显示在客户端04则同时向该调度处理模块0201发送界面更新状态 通知;接收来自客户端04的请求消息,如果所述客户端的请求消息是创建业务实例的消 息,则发送创建实例界面状态通知给调度处理模块;如果所述客户端的请求消息是访问业 务实例的消息,则根据组合业务描述信息生成业务请求发送给组合引擎,将所述请求消息 对应的界面元素的状态标识符设为未显示在页面。以上所描述的装置实施例仅仅是示意性的,其中该作为分离部件说明的单元可以 是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中 的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的 劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该 计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分该的方法。参考图5,为一个生成图形用户界面的系统的具体例子。该例子中,该组合业务用 WSDL描述业务描述脚本、用BPEL描述业务逻辑脚本;生成的图形用户界面为web应用程 序。该web应用程序可为网页形式,可以直接通过浏览器来访问。参考图5,在Web应用程序的设计阶段,该方案以组合业务的BPEL脚本、WSDL脚本 和输入输出映射关系为输入,其输出是可以直接部署在Web服务器上的web应用程序。在 自动生成web应用程序后,可以直接部署到Web服务器上,例如tomcat等。在组合业务运 行阶段,该web应用程序为用户连接浏览器和组合引擎的桥梁。具体的,该web应用程序向 用户呈现输出消息或者显示等待用户输入的页面,在用户输入之后,该web应用程序将用 户的输入转换成SOAP消息递交给组合引擎,同时提取组合引擎返回的SOAP消息显示给用 户。除SOAP消息外,此处也可以为组合引擎支持的其他协议的消息。使得业务开发者不需 要另外开发用户图形界面,同时在业务逻辑脚本发生变化时,同时更新用户图形界面,避免 额外开发负担。上述实施例能根据组合业务的BPEL脚本以及对应WSDL自动生成⑶I,提高用户使 用组合业务时的体验。使用者可以不必知道开放接口的调用次序,上述实施例可以对组合 业务开放接口的调用次序进行封装,使得用户能简单方便的使用该组合业务。在更具体的 例子中,使用者可以免去重复输入的累赘,对输入消息依赖于前面输出消息的情况进行自 动分析,使得该输入消息的依赖部分自动生成。使用者可以不需要理解XML消息以及XMLSchema,通过普通图形界面展现给用户。相应的,本发明的具体实施方式
还提供了前述图1-5任一所示的系统或者装置在 应用时执行的方法。参考图6,为一种生成图形用户界面的方法的流程示意图。该方法包 括601、根据业务逻辑脚本、业务描述脚本以及输入输出映射关系生成界面元素,并 存储在界面元素信息库中。602、以便于在执行业务时,根据界面元素对应的活动的状态发生改变的通知,选 择界面元素,生成界面元素调度指令并发送给客户端,该界面元素调度指令包括该选择的 界面元素。具体的,上述方法可以由图1该的系统执行,具体的,界面元素提供装置01执行步 骤601,界面元素调度装置执行步骤602。参考图7,另一个本发明具体实施方式
中,提供了上述步骤601的一个具体流程。 该流程包括701、接收组合业务的业务逻辑脚本,通过解析获得该业务逻辑脚本中输入消息或 者输出消息相应的活动的信息。该活动的信息包括消息标识符、消息类型、业务、端口类型、 操作等信息,其中消息类型可分为输入消息、输出消息。702、接收组合业务的业务描述脚本,通过解析该业务描述脚本获得该活动对应的 消息格式,根据该活动的消息格式信息生成界面元素。若消息类型为输入消息则生成输入 界面元素,若消息类型为输出消息则生成输出界面元素。703、根据该活动的输入消息标识符、输入界面元素、输入输出映射关系生成界面 元素信息记录,或者根据该活动的输出消息标识符、输出界面元素生成界面元素信息记 录;704、存储界面元素信息记录。也就是说,存储该输入消息标识符、输入界面元素、 输出消息标识符、输入输出映射关系,或存储该输出消息标识符、输出界面元素,其中输入 消息标识符和输入界面元素一一对应,输出标识符和输出界面元素一一对应,上述信息作 为界面元素信息库中的一项记录。上述701-704步骤在具体的BPEL应用环境下,可以为 701具体为根据组合业务的业务逻辑脚本中的活动获得partnerLink和 operation 信息,该活动是 receive, onEvent, onMessage 禾口 reply 中的一禾中。具体的,还包括获得该活动的消息类型,若是receive、onEvent、onMessage则 是输入消息类型,若是reply则是输出消息类型。还获得活动所对应的消息标识符。根据 partnerLink 信息获得对应 role 禾口 partnerLinkType 信息。*艮据 role 禾口 partnerLinkType 信息获得portType信息。根据portType信息可以获得service信息。即,获得了消息标 识符、service、porttype、operation 禾口消息类型信息。702具体为根据获得的service、porttype、operation信息查询业务描述脚本, 获得service、portType和operation对应的input或者output的消息格式。具体的,若 消息类型为输入消息,则获得input的消息格式;若消息类型为输出消息,则获得output的 消息格式,可以用schema信息描述,并根据消息格式生成界面元素,即输入界面元素活着 输出界面元素。
10
703具体为根据该活动的输入消息标识符、输入界面元素、输入输出映射关系生 成界面元素信息记录,或者,根据该活动的输出消息标识符、输出界面元素生成界面元素信 息记录 704具体为存储对应界面元素信息记录。即,存储该输入消息标识符、输入界面 元素、输出消息标识符、输入输出映射关系,或者,存储该输出消息标识符、输出界面元素。参考图8,为另一个生成图形用户界面的方法实施例的流程示意图。该具体实施方 式中,相对于图6所示的生成图形用户界面的方法,除包括与步骤601和602相同的步骤之 外,还包括在执行业务之前,业务部署时的流程,以及,生成界面元素对应的活动的状态发 生改变的通知的流程;包括步骤801、与步骤601类似,根据业务逻辑脚本、业务描述脚本以及输入输出映射 关系生成界面元素,并存储为界面元素信息。可以如前步骤601,包括前述701-704。步骤802、提取能够创建实例的活动对应的输入消息标识符;在界面元素信息库 将该输入消息标识符对应的实例标识符信息中记录能够创建实例。具体的,可以由组合引 擎03执行前述提取能够创建实例的输入消息的标识符的步骤,之后发送给图1所示的界面 元素提供装置01。步骤803、组合引擎根据具体情况生成界面元素对应的活动的状态发生改变的通 知。步骤804、与前述步骤602类似,在执行业务时,根据界面元素对应的活动的状态 发生改变的通知,选择界面元素,生成界面元素调度指令并发送给客户端,该界面元素调度 指令包括该选择的界面元素。如前述,不再赘述。具体的,可以由调度处理模块0201,消息 处理模块0202执行前述步骤。在前述BPEL应用环境下,可以包括8041-8043,其中8041、消息处理模块根据组合引擎发送的响应消息的输出消息标识符查询获得界 面元素信息库中对应的输出界面元素;将该输出消息的值赋值给输出界面元素的对应字 段,即,更新输出界面元素;通知调度处理模块生成包含该输出界面元素的界面元素调度指 令。8042、消息处理模块根据响应消息的标识符查询获得界面元素信息库中对应的输 入输出映射关系;根据输入输出映射关系,获得该输入输出映射关系中的输出指定字段, 将该响应消息中的该输出指定字段的值赋值给该输入输出映射关系中对应的输入界面的 输入指定字段,即,更新输入界面元素;若该输入界面对应的状态标识符为已经显示(例如 ON),则通知调度处理模块生成界面元素调度指令。8043、调度处理模块根据前述不同的通知生成相应的界面元素调度指令,发送给
客户端。步骤805、客户端接收到调度指令后,执行增加、删除、更新输入界面元素或者增加 输出界面元素指令。具体的,其中增加过程中若有共同父节点Pick时将他们放在一组,且 该组内的界面元素只能选择一个来处理。参考图9,为另一个生成图形用户界面的方法实施例的流程示意图。该实施例提供 了在BPEL应用环境下前述步骤602或者步骤804中执行业务的详细流程说明。该流程可 以由前述图3所示、相应实施例记载的系统完成。该执行业务的过程包括901、客户端发送请求消息。更进一步的,将客户端显示的与该请求对应的界面元素设为禁止接收消息,例如可将该界面元素从页面移除,也可将其设为不可写等。902、消息处理模块接收到该客户端发送的请求消息后,判断该请求消息是否是创 建实例界面请求。若该请求消息中不包含具体内容,则该请求消息是创建业务实例请求,则 发送创建业务实例状态通知给调度处理模块;转至步骤909,。若该请求消息中包含具体内 容,该请求消息是具体业务调用请求,转至步骤903。例如,如果是HTTP GET i青求(http://<host>:<port>/<path> ? <searchpart 且HTTP头中含searchpart部分,则是具体业务调用请求;如果是POST请求,且HTTP消息 体中还有内容则是具体业务调用请求。903、消息处理模块处理该请求消息,根据组合业务描述信息生成业务请求发送给 组合引擎(例如,封装成SOAP消息或其他协议消息发送给组合弓I擎),并将该界面元素对应 的状态标识符设为未显示在页面。具体的,包括9031、根据业务描述信息里面的service和binding信息,选取 portType 对应的一个 binding,石角定 address 元素中的 location 值、binding 中的 stytle、 transport, use、namespace等,配置业务调用信息。9032、在业务调用信息的配合下,将来 自界面元素中的值生成对应的S0AP消息。例如,当stytle是“rpc”时,soapbody中的第 一个子元素的localname是操作名;当stytle是“doc”时,soapbody中的第一个子元素的 localname 是该 operation 对应的 message 的 part 兀素的 localname。904 905、所述组合引擎根据接收到的所述业务请求执行业务逻辑,根据该业务 逻辑生成并发送所述界面元素对应的活动的状态发生改变的通知。具体包括下述步骤之如果组合引擎执行receive、onMessage或onEvent活动,组合引擎向消息处理模 块发送界面增加状态通知;如果组合引擎执行r印ly活动,则向消息处理模块回复响应消 息,其中响应消息包括对应的活动标识符;如果组合引擎执行所述receive、onMessage或 onEvent活动变为不能接收消息的情况时,则向消息处理模块发送界面删除状态通知。具体的,前述步骤可以包括9041、组合引擎执行到receive、onEvent或者onMessage活动时,该活动已处于激 活状态,等待输入消息,则向调度处理模块发送界面增加状态通知,即请求增加界面元素, 该界面增加状态通知中包括活动对应的输入消息标识符。转至步骤909。9042、当组合引擎由于一些情况(该活动接收到消息除外)导致一些正处于等待 输入消息的活动不需要再输入消息时,向调度处理模块发送界面删除状态通知,即请求删 除输入界面元素。转至步骤909。主要包括以下情况若组合引擎执行了 switch的其中一个分支,则将其它分支中的输入消息活动通 知给调度处理模块;若组合引擎执行了 pick的任意一个分支,包括onAlarm或者onMessage,则将其它 分支中的onMessage通知给调度处理模块;若执行到一个scope中(包括process)的错误处理时,将该scope中其它处于激 活状态的输入消息活动通知给调度处理模块;当执行完一个 scope (包括 process),将该 scope 中 eventHandler 中的 onEvent 通知给调度处理模块。
12
9043、当组合引擎执行到r印ly活动时,则回复响应消息给消息处理模块,其中该 响应消息包括对应的活动的输出消息标识符。转至步骤906。906、消息处理模块接收到输 出消息。后续流程907、908可并行执行。907、消息处理模块根据输出消息标识符查询界面 元素信息库获得消息对应的输出界面元素,将输出消息的值赋值给输出界面元素的对应字 段,以便于更新输出界面元素,消息处理模块向调度处理模块发送界面增加状态通知,转至 909。908、消息处理模块判断输入界面是否与该响应消息有依赖关系。如果输入界面与 该响应消息有依赖关系,则根据所述响应消息的标识符查询获得界面元素信息库中对应的 输入输出映射关系。根据输入输出映射关系,获得该输入输出映射关系中的输出指定字段,将该响应 消息中的该输出指定字段的值赋值给该输入输出映射关系中对应的输入界面的输入指定 字段。或者说,用该输入输出映射关系中的输出指定字段截取该响应消息的指定字段值,将 值赋值给对应输入界面的输入指定字段。即,更新输入界面元素。若该输入界面对应的状 态标识符为已经显示在页面(例如ON),则向调度处理模块发送界面更新状态通知(即请求 调度处理模块进行界面更新调度);转至步骤909。如果没有依赖关系,则不进行输入界面 元素的更新处理,结束该分支流程。通过前述908可以对输入消息依赖于前面输出消息的情况进行自动分析,使得该 输入消息的依赖部分自动生成,免去重复输入引起的通信资源浪费并减少开发时间。909、调度处理模块根据接收到的界面元素对应的活动发生改变的通知(例如,来 自消息处理模块或组合引擎的各种状态通知),生成界面元素调度指令。具体的,可以包括 如下具体的情况909a、调度处理模块接收到(组合引擎发送的)创建实例界面状态通知时,查询界 面元素信息库获得实例标识符为能创建实例的记录,对每个记录中的界面元素,调度处理 模块向客户端发送增加界面元素指令,该增加界面元素指令中包括输入界面元素,并将该 记录中的状态标识符改为已经显示;或者,909b、调度处理模块接收到界面更新状态通知时,根据请求的界面元素标识符查 询界面元素信息库获得对应的记录,调度处理模块向客户端发送更新界面元素指令,包括 对应的输入界面元素;或者,909c、调度处理模块接收到界面增加状态通知时,根据请求的界面元素标识符查 询界面元素信息库获得对应记录,调度处理模块向客户端发送增加界面元素指令。具体的, 若是增加输入界面元素指令,则该增加界面元素指令中包括对应的输入界面元素,并将对 应的状态标识符改为已显示在页面;若是增加输出界面元素指令,则该增加界面元素指令 中包括对应的输出界面元素;或者,909d、调度处理模块接收到界面删除状态通知时,根据请求的界面元素标识符查 询界面元素信息库获得对应的记录;调度处理模块向客户端发送删除界面元素指令,包括 对应的输入消息标识符或者输出消息标识符,并将对应的状态标识符改为未显示在页面。910、客户端接收界面元素调度指令后进行相应的处理。具体的,可以包括9101、客户端在接收到增加输出界面元素指令后,在客户端响应面板显示输出界 面元素。具体的,对于原来就有输出界面的可以先将原界面删除再以新的界面元素显示;也可以保留原来的界面,在其它地方显示新的界面元素。 9102、客户端在接收到增加输入界面元素指令后,判断是否存在与该输入界面元 素共存的其他已显示的输入界面元素,若存在则他们放在同一组,且只能选择同组中的一 个输入界面元素进行输入。例如在BPEL协议下,根据输入界面元素的信息(例如输入界面 元素标识符)判断需要新增的界面元素是否与已显示的界面元素有共同父节点pick,若有 则将具有共同父节点pick的界面元素放在同一组,且用户在使用时只能选择同组的-输入界面元素进行输入;如果没有共同父节点则在客户端独立显示该界面元素。
9103、客户端在接收到删除界面元素指令后,在客户端删除该界面元素。
9104、客户端在接收到更新界面元素指令后,在客户端替换该界面元素。 下面以一个具体的应用场景为例,介绍生成图形用户界面的方法。
假如一个具体的组合业务,其WSDL描述的消息部分(即业务逻辑脚本)摘要如 下〈wsdl message name 二” LoginSoapIn" >
〈wsdl:part name =〃 loginReq" type =〃 pro:LoginReqType“ /> 〈/wsdl: message)〈wsdl: message name〈wsdl:part name =〈wsdl:part name =
=〃 LoginSoapOut〃 > “loginAck" type = 〃 tns: LoginAckType/> ” sessionld" type =〃 s: string" />〈/wsdl: message)〈wsdl:message name =〃 LogoutSoapIn" >
<wsdl :part name 二” sessionld" type 二” s: string" />〈/wsdl: message)〈wsdl: message name =" LogoutSoapOut" >〈wsdl: part name =" logoutAck" type =" s: string" />〈/wsdl: message)该组合业务的BPEL脚本(业务描述脚本)摘要如下<bpws process〉<bpws partnerLinks>〈bpws partnerLink myRole = ‘ =〃 eTourPL〃 partnerLinkType = 〃 nsl:eTourPLT“ />〈/bpws: partnerLinks>〈bpws: sequence〉
eTourService
name
=“RCV-Login “ nsl:eTourPT"
<bpws:receive createlnstance = operation = 〃 Login 〃 partnerLink = 〃 variable 二” loginIn/r />
yes name eTourPL 〃 portType〈bpws:reply name = “ RPL-Login/r operation = “ Login" partnerLink
二” eTourPL/r portType 二” nsl: eTourPT'7 variable 二” loginOut/r />
<bpws:pick>
〈bpws:onMessage operation =
Book
partnerLink=〃 eTourPL/r portType =〃 nsl: eTourPT'7 variable =〃 bookIn〃 ></bpws: onMessage><bpws:reply name = “ RPL-Book/r operation = “ Book〃 partnerLink =〃 eTourPL,r portType = 〃 nsl: eTourPT'7 variable =〃 book0ut〃 /><bpws:onMessage operation = “ Logout “ partnerLink =〃 eTourPL/r portType =〃 nsl: eTourPT'7 variable =〃 logout In/r ></bpws: onMessage)<bpws: rep 1 y name = “ RPL-Logout “ operation =〃 Logout 〃 partnerLink = 〃 eTourPL 〃 portType = 〃 nsl:eTourPT 〃 variable ="logoutOut" /><bpws:onAlarm for “ PT1800S' “ /></bpws:pick></bpws: sequence〉</bpws: process〉<plnk:partnerLinkType name =〃 eTourPLT“ >〈pink:role name =〃 eTourService〃 >〈pink:portType name =” tns:eTourPT" /></plnk:role>〈/pink: partnerLinkType)该组合业务的输入输出映射关系,输入输出映射关系中等号“=”前表示输入指定 字段,等号“=,,后表示输出指定字段,如表3。表3: 生成Process/sequence/receive的活动对应的输入界面元素的流程如下。1001.查询 BPEL 脚本获得活动 Process/sequence/receive 的 partner link 为 eTourPL> operation % Login,胃巾夕舌云力)(寸IS 白勺 ft 入 ;|、t示 iR# 力 Process/sequence/ receive,对应消息类型为输入消息类型;<bpws:receive createlnstance = “ yes “ name = “ RCV-Login" operation ="Login " partnerLink = " eTourPL " portType = " nsl:eTourPT " variable =〃 loginln" />1002.根据 partner link 值查询 partnerLinks 获得 eTourPL 的 myRole 为 eTourService、partnerLinkType 为 nsl:eTourPLT ;
<bpws partnerLink myRo 1 e = " eTourService " name ="eTourPL" partnerLinkType = " nsl:eTourPLT" />根据 nsl:eTourPLT 可获得 partnerLinkType 为 eTourPLT 的元素,并根据 role 值 为eTourService查询其子元素获得role元素;<plnk:partnerLinkType name = “ eTourPLT“ ><pink:role name = " eTourService“ ><plnk:portType name = " tns:eTourPT〃 /></plnk:role></plnk:partnerLinkType)从role元素中提取portType的信息为tns:eTourPT。根据portType信息获得对应service信息。1003.根据service信息、portType信息、operation、消息类型信息,获得对应输 入的格式描述。(此处省略了对应的具体type或element的schema描述)<wsdlmessage name = “ LoginSoapIn" ><wsdl :part name = " loginReq" type = " pro: LoginReqType" /></wsdl:message>1004.根据获得的消息格式生成图形界面元素,该界面元素中包括对应的输入消 息的信息。其输入界面元素的展现可类似为 1005.当输入输出映射关系表中无Process/sequence/receive的记录,则把生成 的界面元素添加到界面元素信息库。此处&表示对应的界面元素,参考表4。表4: 继续执行上述流程,直到所有接收消息的活动都生成界面元素信息,界面元素信 息库如下,参考表5。表5: 同理,直到所有能够回复消息的活动都生成输出界面元素信息,界面元素信息库 如下 业务部署时,处理流程如下1101.在业务进行部署时,组合引擎提取能创建实例的活动对应的输入消息标识 符“Process/sequence/receive”,传递给调度处理模块。1102.调度处理模块根据“Process/sequence/receive”查询界面元素信息库中 的输入消息标识符的对应记录;1103.将对应的实例标识符标记为Y,表示该消息能够创建实例。参考表6。表6: 在业务访问时创建实例的流程如下1201.客户端发送请求消息。例如,在浏览器中输入http://ip:p0rt/path.其中 发出的HTTP消息中不带有消息体。1202.消息处理模块接收到请求后发现其不含具体内容,则判断是创建实例界面 请求;并请求调度处理模块创建实例界面调度。1203.调度处理模块接收到请求后查询界面元素信息库活动实例标识符为Y的记 录,其输入消息标识符为Process/sequence/receive。1204.调度处理模块向客户端发送增加界面元素命令,其中消息中包括Process/ sequence/receive对应的输入界面元素,同时将其状态标识符改为0N,表示已经显示在页 面。此时界面元素信息库参考表7。表7: 1205.客户端在接收到增加输入界面元素命令后,由于目前无其它输入界面元素, 则独立显示该界面元素。业务请求时流程如下1301.客户端在用户输入信息后,发送请求消息,其消息可为http://ip:p0rt/ path/a ? loginReq = string, path也可以由多部分组成,其可定位到对应的组合业务,其 中a可为输入界面元素对应的操作名,其中string为用户输入的信息。1302.消息处理模块接收到请求消息后判断其含有具体内容,是具体业务调用请 求。1303.消息处理模块将接收到消息的具体内容和组合业务描述中的binding、 service信息生成SOAP消息以及对应的HTTP头,并发送给对应组合引擎。同时将该界面元 素对应的状态标识符ON删除。此时界面元素信息库参考表8。表8: 1304.组合引擎接收到消息后继续执行,此时执行到r印ly (其对应的输出消息标 识符为Process/sequence/r印ly),向消息处理模块反馈响应消息。其中响应消息中包括对 应的活动的输出消息标识符。1305.消息处理模块根据输出消息标识符查询界面元素信息库获得对应的输出界 面元素。同时将响应消息的值赋值给界面元素对应的字段,更新输出界面元素。消息处理模 块请求调度处理模块进行增加标识符为Process/sequence/r印ly输出界面元素的调度。1306.界面调度模块根据标识符查询信息库获得对应的输出界面元素,向客户端 发送增加输出界面元素命令。1307.客户端在接收到增加输出界面元素命令后,在客户端响应面板展现输出界 面元素。在执行前述步骤1305、1306、1307的同时,还可以执行1305’ .消息处理模块根据输出消息标识符Process/sequence/r印ly查询界 面元素信息库获得对应记录,获得其对应的输入消息标识符为Process/sequence/pick/ onMessage。根据接收到的信息,由等号后面的语句“LoginSoapOut/sessionld”获得收到 消息中的对应字段,将其赋值给等号前面语句指定的字段,更新输入界面元素。由于其输入 界面对应的状态标识符不为0N,则表示不需要对客户端进行界面的更新。组合弓丨擎执行到 Process/sequence/pick/onMessage 的流程1401.由于执行到receive、onMessage或者onEvent活动时需要进行界面调度, 所以执行Process/sequence/pick/onMessage时请求进行增加输入界面元素调度,请求调 度信息中包括对应的活动的输入消息标识符Process/sequence/pick/onMessage。1402.调度处理模块接收到界面增加调度请求根据输入消息标识符Process/ sequence/pick/onMessage查询界面元素信息库获得对应输入界面元素。1403.调度处理模块向客户端发送增加输入界面元素命令,并将对应的状态标识 符设为已显示在页面。此时界面元素数据库参考表9。表 9 1405.客户端收到增加输入界面元素命令后,根据界面元素标识符获得其父节点 为pick。客户端查询客户端已显示的界面元素,没发现其它界面元素对应获得的父节点是 pick,则在客户端显示该输入界面元素。执行到Process/sequence/pick/onMessage2 的流程,前 3 步与前述步骤 1401-1403 一致,第4步有差异。1404’.客户端收到增加输入界面元素命令后,根据界面元素的输入消息标识符获 得其父节点为pick类型,其标识符为Process/sequence/pick。客户端查询客户端已显示 的界面元素,发现Process/sequence/pick/onMessage父节点也是pick类型,其标识符也 是Process/sequence/pick。将新收至丨J的输入界面元素禾口已有的Process/sequence/pick/ onMessage输入界面元素放在同一组,使得这两个元素只能选择其中一个。当执行 Process/sequence/pick/onMessage, Process/sequence/pick/ onMessage2,Process/sequence/pick/onAlarm中的其中一个时,需要其它两个夕舌云力设为 不能执行。假如执行Process/sequence/pick/onAlarm后,流程如下1501.执行onAlarm后,依次将onMessage、onMessage2设为不能再执行;通知调 度处理模块删除对应输入界面元素。假设是删除onMessage,则包含其标识符Process/ sequence/pick/onMessage01502.调度处理模块接收到界面删除调度请求后,根据输入标识符获得对应记录。1503.调度处理模块向客户端发送删除界面元素,消息中包括界面元素对应的输 入消息标识符。且将对应的状态标识符设为未显示在页面。1504.客户端在接收到删除界面元素命令后,在客户端删除该界面元素。上述实施例能根据组合业务的BPEL脚本以及对应WSDL自动生成⑶I,提高用户 使用组合业务时的体验。使用者可以不知道开放接口的调用次序,上述实施例可以对组合业务开放接口的调用次序进行封装,使得用户能简单方便的使用该组合业务。在更具体的 例子中,使用者可以免去重复输入的累赘,对输入消息依赖于前面输出消息的情况进行自 动分析,使得该输入消息的依赖部分自动生成。使用者可以不需要理解XML消息以及XML Schema,通过普通图形界面展现给用户。本领域普通技术人员可以理解上述装置的实施例中的部分或者全部模块或者单 元的划分仅仅是举例,可以进行不同的组合或者更细的划分。其中的部分或者全部模块或 者单元可以为硬件、软件,或者为软件和硬件的结合。由软件完成的部分可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,该的 存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体 (Random Access Memory, RAM)等。以上该的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方 式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围 之内。
2权利要求
一种生成图形界面的方法,其特征在于,包括根据组合业务的业务逻辑脚本、业务描述脚本以及输入输出映射关系生成界面元素,并将所述界面元素存储到界面元素信息库;根据包含活动状态改变信息的通知,选择活动对应的界面元素,生成界面元素调度指令并发送给客户端,所述界面元素调度指令包括所述选择的界面元素。
2.根据权利要求1的方法,其特征在于,所述根据业务逻辑脚本、业务描述脚本以及输入输出映射关系生成界面元素包括通过解析所述组合业务的业务逻辑脚本获得所述业务逻辑脚本中的活动;通过解析所 述组合业务的业务描述脚本获得所述活动对应的消息格式;根据所述消息格式生成界面元素。
3.根据权利要求1的方法,其特征在于,所述将所述界面元素存储到界面元素信息库具体包括根据该活动对应的输入消息标识符、输入界面元素、输出消息标识符和输入输出映射 关系生成界面元素记录,或者,根据该活动对应的输出消息标识符和输出界面元素生成界 面元素记录;存储所述界面元素记录到所述界面元素信息库。
4.根据权利要求1的方法,其特征在于,该方法进一步包括在执行业务之前,业务部署 时的流程,所述业务部署时的流程具体包括提取能够创建业务实例的活动对应的输入消息标识符;根据所述输入消息标识符查询 所述界面元素信息库,在所述输入消息标识符对应的所述界面元素信息库的实例标识符项 中记录能够创建业务实例。
5.根据权利要求1所述的方法,其特征在于,所述生成界面元素调度指令并发送给客 户端的流程之前包括接收客户端发送的请求消息;如果所述客户端的请求消息是创建业务实例的消息,则触发创建实例状态的通知;如果所述客户端的请求消息是访问业务实例的消息,根据组合业务描述信息生成业务 请求发送给组合引擎,将所述请求消息相应输入消息标识符对应的界面元素的状态标识符 设为未显示在页面。
6.根据权利要求1或5所述,其特征在于,该方法进一步包括所述组合引擎根据活动 状态的改变发送状态通知,具体包括下述步骤之一如果receive、onMessage或onEvent活动正在执行,则触发界面增加状态的通知;或,如果reply活动正在执行,则回复包括对应的活动的输出消息标识符的响应消息;或,如果receive、onMessage或onEvent活动变为不能执行时,则触发发送界面删除状态 的通知。
7.根据权利要求6所述,其特征在于,接收到所述组合引擎发送的响应消息后,进一步 包括根据所述响应消息的输出消息标识符查询获得界面元素信息库中对应的输出界面元 素;将所述响应消息的值赋值给输出界面元素的对应字段,并触发发送界面增加状态的通 知。
8.根据权利要求6所述,其特征在于,所述接收到组合引擎发送的响应消息后,进一步包括根据所述响应消息的输出消息标识符查询获得界面元素信息库中对应的输入输出映 射关系,获得所述输入输出映射关系中的输出指定字段,将所述响应消息中的所述输出指 定字段的值赋值给所述输入输出映射关系中对应的输入界面的输入指定字段;若该输入界 面对应的状态标识符为已经显示,则触发发送界面更新状态通知。
9.根据权利要求5 7任一所述的方法,其特征在于,根据所述根据活动状态改变的通 知,选择活动对应的界面元素,生成界面元素调度指令并发送给客户端的流程包括接收到创建实例界面状态通知时,查询界面元素信息库获得实例标识符为能创建实例 的记录,对每个记录中的界面元素,向客户端发送增加界面元素指令,所述增加界面元素指 令中包括输入界面元素,并将所述记录中的状态标识符改为已显示;或者,接收到界面更新状态通知时,根据输入消息标识符查询界面元素信息库获得对应的记 录,向客户端发送更新界面元素指令,所述更新界面元素指令中包括对应的输入界面元素; 或者,接收到界面增加状态通知时,根据输入消息标识符或输出消息标识符查询界面元素信 息库获得对应的记录,向客户端发送增加界面元素指令,所述增加界面元素指令中包括对 应的输入界面元素或者输出界面元素,并将对应的状态标识符改为已显示;或者,接收到界面删除状态通知时,向客户端发送删除界面元素指令,所述删除界面元素指 令中包括对应的输入消息标识符,并将对应的状态标识符改为未显示。
10.根据权利要求1所述的方法,其特征在于,该方法进一步包括,客户端接收到所述界面元素调度指令后,根据所述界面元素指令对发送给所述客户端 的输入界面元素进行添加、删除或者更新,对发送给所述客户端的输出界面元素进行显示。
11.一种生成图形业务界面的系统,其特征在于,所述系统包括界面元素提供装置和界面元素调度装置,所述界面元素提供装置用于根据组合业务的业务逻辑脚本、业务描述脚本,以及输入 输出映射关系生成界面元素,并存储到界面元素信息库;所述界面元素调度装置,用于根据包含活动状态改变信息的通知,选择活动对应的界 面元素,生成界面元素调度指令并发送给客户端,所述界面元素调度指令包括所述选择的 界面元素。
12.根据权利要求11所述的系统,其特征在于,该系统进一步包括组合引擎,所述组合引擎用于在执行组合业务时,向所述界面元素调度装置发送包含 活动状态改变信息的通知。
13.根据权利要求11所述的系统,其特征在于,该系统进一步包括客户端,用于接收所述界面元素调度装置发送的界面元素调度指令,根据所述界面元 素调度指令对发送给所述客户端的输入界面元素进行添加、删除或者更新,对发送给所述 客户端的输出界面元素进行显示。
14.根据权利要求11的系统,其特征在于,该界面元素提供装置包括业务描述脚本 解析模块、业务逻辑脚本解析模块、输入输出映射模块、界面元素生成模块、界面元素信息 库;其中,业务描述脚本解析模块用于通过解析获得所述业务逻辑脚本中的活动,并发送给所述界面元素生成模块;所述业务描述脚本解析模块用于通过解析所述业务描述脚本获得所述活动对应的消 息格式,并发送给所述界面元素生成模块;所述输入输出映射模块用于存储所述组合业务的输入输出映射关系数据表,该输入输 出映射关系数据表包括输入消息标识符、输出消息标识符,以及,输入输出映射关系;并将 所述输入输出映射关系发送给界面元素生成模块和界面元素信息库;所述界面元素生成模块用于根据所述消息格式生成输入界面元素或者输出界面元素; 根据该活动对应的输入消息标识符、输入界面元素、输出消息标识符、输入输出映射关系生 成界面元素记录,或者,根据该活动对应的输出消息标识符、输出界面元素生成界面元素记 录;所述界面元素信息库用于存储所述界面元素记录。
15.根据权利要求11所述的系统,其特征在于,该所述组合引擎装置用于。 界面元素调度装置包括调度处理模块,消息处理模块,其中,所述调度处理模块用于接收该组合引擎发送的创建实例界面状态通知、界面增加状态 通知或者界面删除状态通知,以及接收消息处理模块发送的界面更新状态通知或者界面增 加状态通知,根据前述通知查询界面元素信息库获得对应的界面元素,生成界面元素调度 指令,将该界面元素调度指令发送给客户端;所述消息处理模块用于接收所述组合引擎发送的响应消息,根据所述响应消息的标识 符查询获得界面元素信息库中对应的输出界面元素;将所述响应消息的值赋值给输出界面 元素的对应字段,并向调度处理模块发送界面增加状态通知;以及,分析是否存在输入界面 元素依赖于该响应消息,若有则更新界面元素信息库上的界面元素,若该界面元素已经显 示在客户端则同时向所述调度处理模块发送界面元素更新消息;接收来自客户端的请求信 息,根据组合业务的业务描述信息生成业务请求并发送给所述组合引擎。
16.一种客户端,其特征在于,该客户端包括接收模块和处理模块,所述接收模块用于接收所述界面元素调度装置发 送的界面元素调度指令,所述界面元素调度指令包括输入界面元素或者输出界面元素;所述处理模块用于根据所述界面元素调度指令对发送给所述客户端的输入界面元素 进行添加、删除或者更新,或者对发送给所述客户端的输出界面元素进行显示。
全文摘要
一种生成图形界面的方法,包括根据组合业务的业务逻辑脚本、业务描述脚本以及输入输出映射关系生成界面元素,并将所述界面元素存储到界面元素信息库;根据包含活动状态改变信息的通知,选择活动对应的界面元素,生成界面元素调度指令并发送给客户端,所述界面元素调度指令包括所述选择的界面元素。该方法简化了业务界面的生成过程。
文档编号G06F9/44GK101853152SQ20091010642
公开日2010年10月6日 申请日期2009年3月31日 优先权日2009年3月31日
发明者徐文华, 瑞地 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1