具体实施方式
一个系统及其相关协议启用了互联网兼容的应用,它包括被集成到能够支持浏览器的一个工作流中的任何软件编组。使用于此文件中的工作流是指一个任务序列,它通常涉及经由一个显示的用户接口发生在用户登录和用户注销命令之间的互联网兼容应用的开始、中间级命令操作、以及终止。该系统包括一个集中化的会话管理器和用于在应用和其它功能之间传送URL数据的协议。这些包括提供服务来协调用户不活动超时并提供公共的基本会话属性,用于促进并行应用操作,用于对综合性(医学的和其它的)信息源及其相关服务的一个阵列提供访问。采用这个系统的互联网兼容应用可以被动态地改组来执行涉及不同操作限制和局限的不同工作流或任务序列。该系统有利地促进了基于web的应用在多个不同序列和并行操作配置中的重复使用以及互操作性。
该系统解决了在支持用于访问医学和其它目的的多个信息源及其相关服务的互联网兼容应用的并行操作中涉及的各种问题。同样,该系统处理在维持各个应用在提供公共Web浏览器类似用户接口的框架中的并行操作时所涉及的问题。具体地说,该系统处理在管理不同不活动超时期间中以及在促进多个互联网应用的用户开始(例如登录)、操作和终止(例如注销)中、以及在各个应用之间安全地传送URL、患者(和用户)标识以及其它信息中所涉及的问题。一个管理应用被使用来协调用户操作会话。具体地说,管理应用协调不活动超时操作,并且保持和传送并行应用之间的属性以便创建一个平滑用户操作会话。为此目的,管理应用还协调对多个并行应用来说共同的单个登录屏幕的使用。
本发明的原理可以被应用到涉及不同软件应用的并行操作的任何系统。另外,所公开的系统虽然在传送和处理网页数据以及相关URL(通用资源定位器)的环境中被描述,但是这只是示范。该系统可以处理可以通过网络包括经由互联网协议(IP)或超级文本传输协议(HTTP)从互联网源中传送的任何形式的数据,并且包括任意形式的分组类型数据,例如包括流视频或音频数据、电话消息、计算机程序、电子邮件或其它通信。
图1示出了一个Web浏览器合成窗口10,它提供包括经由标识信息和/或命令的用户入口对多个医学相关应用的多个链接的一个用户接口显示。Web浏览器还提供用户标识信息给一个应用,用于验证。Web浏览器提供典型的命令工具栏43和44以及一个应用开始栏(项12-23)。Web浏览器接口允许用户开始多个并行应用,例如包括:提供住院患者统计窗口(例如患者25和27)的一个应用和提供包括显示项29、31和33的结果通知窗口的实验室试验结果应用。其它并行应用允许诸如经由参考链接37和新闻项目链接34之类访问健康看护信息和资源。
图2是一个示出系统协议操作的系统命令流程图,其涉及一个管理应用250(例如,全球会话管理器(GSM))、两个应用200(APP1)和230(APP2)以及一个Web浏览器10(例如,如结合图1所述)。由管理器250使用的系统协议支持多个应用(例如应用200和230)在执行一个任务序列或工作流时的相干协调的且并行的操作。管理器250有利地被应用200和230使用来参考对工作流来说重要的全局数据。
这样的全局数据例如包括:用户标识信息、用于URL数据加密的共享密钥和被用于处理注销和登录功能的公共URL。系统协议涉及应用200和230,向管理器250间歇地通知动作,以便当用户活动在另一并行应用中的同时防止一个不活动超时。
管理器250使用一个系统协议用于经由URL查询或形式数据传送会话环境信息给应用200和230。会话环境信息包括一个会话标识符、一个散列值和应用特定的数据。会话标识符被应用200和230使用来识别在与管理器250通信时用户开始的会话。散列值被应用200和230使用来确认一个接收到的URL没有被故意或其它方式的恶化。会话环境信息的应用数据部分可以加密或者不加密,这由传送该URL的应用所确定。应用特定的数据被定制以符合目标应用的预期功能。管理器250使用的协议支持那些使用所生成的会话环境信息并不更改它的应用。在替换实施例中,应用200和230可以使用那些利用其它协议的内部管理器作为管理器250的备选或者作为除管理器250之外的另一个管理器来支持一个整体环境概念。如此的其它协议例如包括HL7(健康层七)协议或者CCOW(医疗环境目标工作组,例如,2000年5月批准的V1.2)协议。除了仅仅会话环境信息之外,所述系统支持可选协议的使用以及应用之间的通信。
管理器250通过在防止对管理器应用本身的未授权访问的一个安全环境下进行操作来保持安全性。也通过确保应用200和230(其与管理器250通信)也操作在安全环境下来提供安全性。管理器250还通过检测并忽略已被故意或另外恶化的已接收URL以及通过阻止已接收URL的重放和显示,来维护安全性。
图3根据本发明优选实施例示出了在并行操作应用200和230、一个Web浏览器235、一个CCOW接口管理器236之间的命令相互作用,并且管理器250使用一个系统互操作性协议。如图3所示的CCOW接口管理器236在这里也被称为一个CCOW环境管理器,如图5所示。
在一个示例性用户操作会话中,源应用200开始一个会话并把动作通知管理器250(1)。随后,源应用200参考一个子应用230(2)。一个子应用通常提供网页给其它应用。具体地说,子应用230把动作通知管理器250(3)并返回一张网页235给源应用200(4)。最后,源应用200经由一个命令终止对管理器250的会话(5)。如果子应用230是一个CCOW兼容应用,则管理器250把转换的命令数据转发给CCOW接口管理器236(7),并返回响应给子应用230(6)。可替代地,一个CCOW兼容子应用230可以直接发送命令给CCOW接口管理器236。与管理器250建立会话的那个应用被定义为源应用。参与该会话的另外的应用被称为子应用。源应用和子应用的集合在一起被定义为参与者。管理器250提供集中化的服务来协调源应用和子应用。在用户被验证之后并在子应用被参考之前,源应用创建一个会话。源应用可以延迟建立一个会话直到一个具体的事件为止,例如直到源应用下载(到浏览器)包含对该子应用的链接的一张网页为止。通常,当用户签退时或者当用户由于不活动而超时时,会话结束。
图4是一个表示被应用200和230(如图2所示)使用来与浏览器10和管理器250通信的通信协议层的分层组织的系统协议图。应用200和230和浏览器10以及管理器250一起提供对系统中的医学信息及其相关服务的访问,所述系统包括一个支持互联网操作和本地内联网操作的通信平台。系统还可能涉及包括局域网(LAN)、广域网(WAN)以及其它专用医院网或其它医学(或其它)系统和通信网在内的其它网络。
位于web应用层984中的一个应用(例如,应用200和230)使用一个包括存在于表1-17中的命令数据结构的用户接口互操作性协议(UIIP)数据格式975来与管理器250通信。UIIP命令和响应数据975涉及TCP/IP(传输控制协议/互联网协议)层971。在如图2所示的命令222、224、226、233、237、247和255中,应用200和230在与管理器250的通信时使用UIIP 975和TCP/IP 971层。正如在图2的命令257中举例说明的,管理器250还使用HTTP 973和TCP/IP 971协议与应用200和230通信。浏览器10以及应用200和230使用TCP/IP 971和HTTP 973格式传送按照先前图2上解释和表示的UIIP 975所处理的URL数据字串。
图5根据本发明的一个优选实施例,说明了一个示出系统协议操作的系统命令流程图,其涉及Web浏览器、一个子应用、一个源应用、一个管理应用(例如,GSM)和一个CCOW环境管理器。在该优选实施例中,一组GSM应用程序接口(API)支持一个HL7 CCOW(健康层7医疗内容对象工作组)顺从的公共环境。另外的抽象层将GSM会话属性和方法与用于实现优选的公共环境的附加环境属性和方法合并。所述合并允许应用基于GSM方法和属性的选择使用或不使用所述公共环境来运行。应用与GSM API相互作用,并且GSM 250考虑集成会话和公共环境。优选地,GSM 250包括一个HL7 CCOW标准兼容环境管理器组件236。那些应用使用公共的环境属性和方法用于与第三方产品的互操作性。那些应用进行互相操作而不必倚靠所述公共环境。
支持公共环境的应用完成附加处理来在操作于CCOW环境中时注意环境。应用互操作性支持传统的源-子风格,而不管是否运行在CCOW环境中。
为支持CCOW的应用创建第二GSM API组。第二GSM API组由有一些扩展(例如,附加的属性和状态)的现有方法以及支持所述公共环境的一些附加方法组成。
优选地,该系统以软件的形式被实现,但是还可以以硬件的形式或者作为硬件和软件的组合被实现。硬件和/或软件的各种组合以及硬件和/或软件的各种位置可以被使用来实现本发明。例如,当以硬件格式实现该系统时或者当被视为概念上的元件集合时,该系统包括:一个数据处理器(也称为通信处理器或转换处理器)、第一接口处理器和第二接口处理器。数据处理器把来自第一应用接收到的环境数据格式化为与第二应用的接口数据格式兼容。数据处理器响应于一个指示符的检验,把接收到的环境数据格式化为与第三应用的接口数据格式兼容,指示符优选地被表示为一个公共的环境标识(ID),它识别对第三应用的一个网络连接。第一接口处理器把已格式化并兼容的环境数据传送给第二应用。第二接口处理器把已格式化并兼容的环境数据传送给第三应用。优选地,第一、第二和第三应用分别对应于源应用200、GSM应用250和子应用230。
从一个方法的观点看,该系统使用对应多个不同操作接口来支持多个网络兼容应用的并行操作。该系统接收来自第一应用中的环境数据。系统把接收到的环境数据格式化成为第一格式用于对第一环境管理器(例如,GSM 250)的通信。系统把接收到的环境数据格式化成为第二格式用于对第二环境管理器(例如,CCOW环境管理器236)的通信。系统接收已格式化的环境数据用于使用第一命令格式接口类型(例如,与GSM 250兼容)来管理环境数据对应用的通信。系统接收已格式化的环境数据用于使用第二命令格式接口类型(例如,与CCOW接口管理器236兼容)来管理环境数据对应用的通信。
优选地,环境数据包括:用户标识信息,加密密钥,用于识别应用环境的单个情况的环境标识符,和/或识别用户开始的会话并被多个并行操作应用使用来唯一地识别用户开始的会话的一个会话标识符。优选地,第二应用是一种管理应用,例如GSM,支持多个网络兼容应用的并行操作。优选地,第三应用是一个医疗环境目标工作组(CCOW)兼容应用并且数据处理器把接收到的环境数据格式化来与一个CCOW接口数据格式兼容。
GSM方法——总的描述
一组方法专门对于公共环境工作(这些方法在这里用“CC”进行前缀)。这些附加方法的大部分被源应用使用以便当一个会话不存在时建立和保持参与在公共环境中。会话分别随着用户登录和用户注销而创建和终结。被子应用使用的公共环境特定的方法是那些用于对公共环境设置以从公共环境获取数据的方法。任意地,子应用可以使用那些用于中止并恢复公共环境中的会话参与的方法。
GSM属性——总的描述
这里有本发明的GSM方法的属性。该方法可以返回应用所需要的附加信息以便支持CCOW标准。最显著的是:被应用使用作为对通知小应用程序/代理的输入的通知字串,以及指示当前环境的修订号的环境附单。无论什么时候该方法调用导致公共环境的一个改变时,这两个要素都被返回。这里也同样有其它属性:即,在GSM方法部分下进一步定义的。
附加GSM事件/通知-总的描述
GSM回叫还包括由CCOW公共环境生成的事件,它们在GSM事件部分中被描述。
实现需求和约束
UIIP/GSM与退出UIIP应用反向兼容。使用现有GSM API的应用以及使用新GSM API的应用能够在单个会话内同时存在而不要求任何应用变化。
一个应用使用两个API组中的一个。使用CCOW启用的API组的应用运行于一个非CCOW配置中以及一个CCOW配置中。一个应用确定它是否正操作在一个CCOW环境中并相应地操作。
如果源应用是CCOW启用的,则应用可以作为CCOW启用的应用运行。
七个基本功能-总的描述
1.用户参考源应用200URL。
2.源应用200调用一个GSM::CCCreateParticipantInterface(GSM::CC创建参与者接口)方法来使GSM 250创建一个唯一环境参与者接口。源应用200然后在浏览器10中使用一个小应用程序从台式机中获取CCOW环境句柄。环境句柄经由一个GSM::CCJoinCommonContext(GSM::CC加入公共环境)方法被传送给GSM 250。GSM 250加入该公共环境。源应用200然后在一个尝试中使用一个GSM::CCGetCommonContext(GSM::CC获得公共环境)方法来获悉可以在公共环境中建立的用户身份。
3.如果在公共环境中建立用户ID,则源应用200通过调用一个GSM::StartSession(GSM::开始会话)方法来开始一次新会话。如果在公共环境中未建立用户ID,那么源应用200受到让用户登录的处理。一旦用户被验证,则源应用调用GSM::StartSession方法。可替代地,听众小应用程序可向源应用200产生一个请求,在此情况中,源应用200将设法受到从公共环境中获取用户ID然后开始会话的处理。
4.此时,会话被创建并且到了向子应用230重新定向的时间。如果GSM::StartSession方法实际上引起CCOW环境中的一个变化,那么它将已经返回由包括在重新定向中的通知小应用程序使用的通知字串。
5.为了公共环境管理,子应用230与GSM 250交互作用。
6.用户选择注销功能。源应用200调用GSM::EndSession(GSM::结束会话)。GSM 250进行检查,以便查看CCOW环境变化(例如,使用户主题无效)是否引起来自其他应用中的任何消息。如果引起消息,则GSM250把那些消息返回给调用GSM::StartSession的应用。该应用接着给用户取消或委托注销的能力。如果没有消息出现或者如果该应用用“忽略”设置(即,用户的一个结果指示他希望继续并委托结束会话)调用GSM::EndSession,那么GSM 250结束会话并使CCOW用户主题无效。
7.如果GSM实际上改变了CCOW环境,那么将从EndSession方法中返回通知字串,并且子应用的重定向将需要包括通知小应用程序。此时,再一次参考源应用200 URL(例如,经由重定向)。可是,源应用200早已参加公共环境,因此可以跳过参与者接口的创建以及CCOW环境句柄的获取。
GSM方法—详细描述
CCCreateParticipantInterface方法
下面的表1示出了被描述为CCCreateParticipantInterface的命令数据,根据本发明的优选实施例,其从源应用200被传送到管理应用250。CCCreateParticipantInterface被调用来建立代表会话的一个公共环境参与者接口(被GSM使用并被包含在GSM内部)。输出ParticipantInterface被使用作为台式机上公共环境位置方法的输入。优选地,ParticipantInterface表示一个指示符,用于识别第一应用(例如,源应用)的通信接口格式类型。输出ContextID(环境ID)唯一地识别一个环境。它被使用作为与公共环境相关的方法的一个密钥。它还被使用于StartSession方法中来把会话与已经建立的公共环境相关。输出SMResult提供请求结果:成功(例如,1)或者失败(例如,0)。
表1
名称 | 内/外 | 类型 | 描述 |
ParticipantInterface | 外 | 字串 | 被GSM使用的公共环境参与者接口。 |
ContextID | 外 | 字串 | 环境标识符。这实际上是对所创建的环境接口情况的一个索引。 |
SMResult | 外 | 整数 | 请求结果· 成功· 失败 |
CCDestroyParticipantInterface(CC毁掉参与者接口)方法
下面的表2示出了描述根据本发明的优选实施例,为在源应用200和GSM 250之间通信的CCDestroyParticipantInterface的双向命令和响应数据。CCDestroyParticipantInterface被调用来毁掉公共环境参与者接口。在应用终止之前,在其它GSM方法已经被调用之后此方法被调用。输入Context ID唯一地识别一个环境。输出SMResult(SM结果)提供请求结果:成功(例如,1),失败(例如,0),或者未找到(例如,-1)。
表2
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。 |
SMResult | 外 | 整数 | 请求结果· 成功· 失败· 未找到 |
CCJoinCommonContext方法
下面的表3示出了描述为CCJoinCommonContext的双向命令和响应数据,根据本发明的优选实施例,在GSM 250和CCOW环境管理器236之间传送。CCJoinCommonContext被调用来使GSM建立参与在ContextID表示的公共环境中。
表3
名称 | 内/外 | 类型 | 描述 |
Context | 内 | 字串 | 环境句柄被GSM使用,用于参考一个环境管理器。当一个公共环境要被支持时这个参数是必须遵循的。 |
ContextID | 内 | 字串 | 环境标识符。 |
ApplicationName | 内 | 字串 | 表示要被分配给整个会话用于在公共环境中使用的一个名称。 |
ContextKey | 内 | 字串或布尔值 | 被使用作为GSM和其它公共环境组件之间共享的密钥。(这是被用于在CCOW组件之间分发公用密钥的共享秘密密钥。)它可以是一个布尔表达式,表示应用需要安全的绑定(例如,一个CCOW安全应用),或者在另一个实施例中,可以是密钥本身。专用密钥(例如,用于实际的PKI)可以是另一项,或者GSM可以使用一个密钥用于那些应用。这取决于对于CCOW环境管理器如何划分应用、环境以及顾客实体。 |
Suffix | 内 | 字串 | 表示在公共环境内被使用的后缀。这个参数是任选的。 |
ContextUserMappings | 内 | 布尔值 | 指示通过公共环境管理器提供的用户映射是否要被用来设置GSM用户映射。 |
ContextLogoff | 内 | 布尔值 | 指示一个注销是否将强迫注销公共环境中的应用。[注意,只要用户有另一机件来控制这个,则CCOW就不需要之。这个参数的一个示例可以是在注销之前的一个环境中止。] |
ShowLinkIcon | 内 | 布尔值 | 指示应用是否将显示链接图标。 |
ContextSuspend | 内 | 整数 | 指示应用是否将允许用户中止来自公共环境的会话。所述值列举如下:1.显示链接图标--允许中止。2.显示链接图标--禁止中止。3.不显示链接图标--禁止中止。 |
ParticipantCoupon | 外 | 字串 | 表示由公共环境管理器分配的并且由整个会话使用的参与者附单。 |
ContextCoupon | 外 | 整数 | 指示公共环境的当前修订版。 |
RegisterListenerInterface | 外 | 字串 | 对RegisterListener方法的接口。这被听众小应用程序使用。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·公共环境失败·未找到 |
CCGetCommomContext方法
下面的表4示出了描述为GetCommonContext的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。GetCommonContext被调用来获悉公共环境的当前状态。
表4
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。 |
ContextCoupon | 外 | 整数 | 指示公共环境的当前修订版。 |
ContextParticipationSuspended | 外 | 布尔值 | 指示来自公共环境中的会话是否当前被中止。 |
ContextSubjectPrivileges | 外 | 字串 | 指示分配给每个公共环境主题的应用的特权级别。 |
UserID | 外 | 字串 | 在公共环境用户主题中找到的用户标识。 |
SMResult | 外 | 整数 | 请求结果。·成功·失败·未找到 |
CCLeaveCommonContext(CC离开公共环境)方法
下面的表5示出了描述为CCLeaveCommonContext的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。CCLeaveCommonContext被调用来结束在公共环境中的参与。
表5
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到 |
CCSuspendParticipation(CC中止参与)方法
下面的表6示出了描述为CCSuspendCommonContext的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。CCSuspendCommonContext中止与公共环境管理器的相互作用。在中止的同时,GSM会话应用将不接收任何公共环境相关的事件,也将不实现对公共环境管理器的任何参考。CCSsuspended事件被发送给应用。
表6
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到 |
CCResumeParticipation(CC恢复参与)方法
下面的表7示出了描述为CCResumeCommonContext(CC恢复公共环境)的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。
CCResumeCommonContext恢复与公共环境管理器的相互作用。CCResume事件被发送给应用。
表7
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到 |
StartSession(开始会话)
下面的表8示出了描述为StartSession的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。StartSession被调用来建立一个新的会话。优选地,StartSession在生成对另一应用的链接之前被调用。这种方法的呼叫者负责给所说明的会话属性赋值。注意:这些属性如何被赋值(即使有的话)将影响使用它们的那些应用的特性。这些属性当中谁都不是必须遵循的。
当支持使用一个公共环境时,相对于适当映射的公共环境用户主题来检查规定的userID(用户ID)以确保它们匹配。如果不匹配,那么用户不匹配差错状态被返回并且会话不被创建。如果公共环境用户主题未被设置,则这种方法将设置它。
在表8中以及在表12中,优选地,一个会话密钥被用来加密和/或解密URL数据。优选地,会话密钥在URL数据中被传送。优选地,对管理应用的一个会话开始请求开始生成对第一应用(例如,源应用200)使用的所述用户开始的会话来说特定的加密和/或解密密钥。优选地,加密和/或解密密钥在加密与个人记录相关的数据时被多个并行操作应用公共使用。优选地,一个加密密钥生成器,响应于这个对话开始请求,用于任意生成对这个用户开始的会话来说特定的一个加密密钥。
在表8以及表9、10、11、12、13、14、15、16和17中,GSM 250优选地分配一个唯一会话标识符(会话ID)。
表8
名称 | 内/外 | 类型 | 描述 |
ContextID | 内 | 字串 | 环境标识符。规定这个字段指示会话正在参与一个公共环境。 |
ContextCoupon | 内 | 整数 | 指示该应用考虑的环境附单是当前的。如果这与实际的当前环境不相同,则返回一个差错。 |
AuthServer | 内 | 字串 | 验证服务名。这识别用于验证用户的验证系统(数据库)。它和UserID一起可以被使用作为进入用户映射工具的一个密钥,用于通过多机系统映射userID(对于一个给定用户)。参见附录B,描述了如何构成这个字段。 |
Language | 内 | 字串 | 语言和国家标识。优选地,互联网RFC 1766(即,语言码的标准)被使用。 |
LogoffURL | 内 | 字串 | 当已检测到一个会话超时时,用于把用户重定向到一个登录屏幕去的URL。该URL完全合格(即,无相对编址)。 |
LogoffURLTarget | 内 | 字串 | 当浏览器被重定向到LogoffURL时要被对准的帧的名称。 |
Timeout | 内 | 整数 | 在几秒内会话超时。如果被省略,则超时默认为10分钟。 |
UserID | 内 | 字串 | 用户标识。此ID(以及AuthServer属性)被用来帮助识别用户。此ID应该是用于验证用户的UserID。(参见AuthServer)。 |
SessID | 外 | 字串 | GSM分配的唯一会话标识符。 |
SessionKey | 外 | 字串 | 被用来加密和解密URL数据的密钥。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·用户失配·无效环境附单·不继续·无公共环境·NoPrivilege |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChange-Coupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
EndSession方法
下面的表9示出了描述为EndSession的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。当一个会话要被结束时EndSession被调用。调用这个方法使会话在逻辑上被删除并且主要常常在用户签退时被使用。因为各种原因也许会返回一个“失败”结果,但是当终止一次会话时“失败”结果可以被安全地忽略。一个“未找到”结果指示规定的会话不存在。此差错也可以被安全地忽略,但是可能指示一个对于该应用逻辑的问题。
如果会话没有从公共环境中中止,那么GSM将设置公共环境用户主题为零。(注意:作为注销的一部分,并且在调用这种方法之前如果属性CCLogoff(CC注销)被设置为错误,应用将需要从COW环境中中止会话。)
如果有来自其它公共环境应用中的任何有条件的响应,则在消息属性中返回它们。
表9
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
Override | 内 | 布尔值 | 表示会话要被结束而不必查询应用。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·不继续 |
Messages | 外 | 字串阵列 | 描述用户为什么不可能想改变环境的消息阵列。 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
| | | |
RegisterUserMapping(登记用户映射)方法
下面的表10示出了描述为RegisterUserMapping的双向命令和响应数据,根据本发明的优选实施例,在源应用200和GSM 250之间传送。RegisterUserMapping被调用来把一个用户映射加到会话环境。映射由一个映射名称和它的相关用户标识符组成。此方法提供的用户映射被参与者应用使用来确定用户标识。通过GetUserMapping(获取用户映射)方法来重现它。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且用户将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。应用将把浏览器重定向到在与从GetSession方法中在LogoffURLTarget(注销URL目标)属性中找到的帧对准的LogoffURL(注销URL)属性中找到的URL。
表10
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
AuthServer | 内 | 字串 | 用于识别UserID与之相关的用户数据库的字串。 |
UserID | 内 | 字串 | 用户标识符。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
GetUserMapping方法
下面的表11示出了描述为GetUserMapping的双向命令和响应数据,根据本发明的优选实施例,在子应用230和GSM 250之间传送。GetUserMapping被调用来为一个给定验证服务或者用户数据库而重现用户标识符。AuthServer(验证服务器)作为输入被传送来指示哪一用户标识符要被重现。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且他/她将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。应用将把浏览器重定向到在与从GetSession方法中在LogoffURLTarget属性中找到的帧对准的LogoffURL属性中找到的URL。
表11
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
AuthServer | 内 | 字串 | 用于识别UserID与之相关的用户数据库的字串。 |
UserID | 外 | 字串 | 用户标识符。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
GetSession方法
下面的表12示出了描述为GetSession的双向命令和响应数据,根据本发明的优选实施例,在子应用230和GSM 250之间传送。GetSession被调用来重现GSM 250保持的会话环境。优选地,响应于接收来自第一应用(例如源应用200)的一个会话开始请求,GSM 250生成对一个用户开始的会话来说特定的一个会话标识符,并且用于以响应于检查到识别第一应用(例如源应用)的指示符(例如,来自表1的ParticipantInterface)而确定的一种通信格式来把会话标识符传送给第一应用(例如,源应用)。
对GetSession方法的一个成功调用更新会话动作时间戳。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且他/她将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。在这种情况下,属性LogoffURL和LogoffURLTarget或者通知以及ContextChangeCoupon仍然被返回给调用的应用。其它属性不被赋值。应用将把浏览器重定向到在与在LogoffURLTarget属性中找到的帧对准的LogoffURL属性中找到的URL。
表12
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
AuthServer | 外 | 字串 | 这识别用于验证用户的验证系统(数据库)。(细节参见附录B。) |
Language | 外 | 字串 | 语言和国家标识。互联网RFC 1766(语言码的标准)被使用。 |
LogoffURL | 外 | 字串 | 当已检测到一个会话超时时,用于把用户重定向到一个登录屏幕去的URL。该URL完全合格(无相对编址)。如果空白,则应用将返回一个空白页给浏览器。 |
LogoffURLTarget | 外 | 字串 | 当浏览器被重定向到LogoffURL时要被对准的帧的名称。如果空白,则将规定无目标帧。 |
Timeout | 外 | 整数 | 在几秒内会话超时。 |
UserID | 外 | 字串 | 用于验证用户的用户标识。 |
SessionKey | 外 | 字串 | 被用来加密和解密URL数据的密钥。 |
CommonContext-Support | 外 | 布尔值 | 指示会话是否正在支持一个公共环境。 |
ContextID | 内 | 字串 | 环境标识符。 |
RegisterListener-Interface | 外 | 字串 | 对RegisterListener方法的接口。这被听众小应用程序使用。 |
ParricipantCoupon | 外 | 字串 | 表示由公共环境管理器分配的并且由整个会话使用的参与者附单。 |
ContextCoupon | 外 | 整数 | 指示公共环境的当前修订版。 |
ContextLogoff | 外 | 布尔值 | 指示一个注销是否将强迫注销公共环境应用。 |
ContextSuspend | 外 | 整数 | 指示应用是否将允许用户中止来自公共环境的会话。所述值列举如下:1.显示链接图标--允许中止。2.显示链接图标--禁止中止。3.不显示链接图标--禁止中止。 |
ContextSubject-Privileges | 外 | 字串 | 指示分配给每个公共环境主题的应用的特权级别。 |
ContextParticipationSuspended | 外 | 布尔值 | 指示来自公共环境中的会话是否当前被中止。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChange-Coupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
RegisterCallback(登记回放)方法
下面的表13示出了描述为RegisterCallback的双向命令和响应数据,根据本发明的优选实施例,在源应用200或子应用230以及GSM250之间传送。当一个应用想要向GSM登记一个当结束会话事件发生时要被调用的URL时,RegisterCallback被调用。对RegisterCallback的调用更新会话活动时间戳。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且他/她将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。应用将把浏览器重定向到在与在LogoffURLTarget属性中找到的帧对准的LogoffURL属性中找到的URL。
表13
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符 |
CallbackURL | 内 | 字串 | 当一个规定的会话事件发生时,URL要被接触。这可以是用路径信息和查询数据的任何有效的URL完成。URL完全地象它被输入此属性中时那样被参考。优选地,在这里规定的URL在调用回叫的GSM操作的网络段中有效(即,网络地址转换(NAT)将被考虑)。 |
CallbackType | 内 | 整数 | 将触发此回叫的事件类型。可能的值有:·结束会话事件·环境改变调查·环境改变事件·环境中止·环境恢复 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
NotifySession(通知会话)方法
下面的表14示出了描述为NotifySession的双向命令和响应数据,根据本发明的优选实施例,在于应用230或源应用200以及GSM 250之间传送。每当一个应用要更新它的活动状态时就调用NotifySession。每当与用户的一个交换发生时,源应用和子应用都将调用它。GSM记录通知它的时间。对GetSession和RegisterCallback的调用也更新会话活动时间戳。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且他/她将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。应用将把浏览器重定向到在与在LogoffURLTarget属性中找到的帧对准的LogoffURL属性中找到的URL。
表14
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
GetSessionState(获取会话状态)方法
下面的表15示出了描述为GetSessionState的双向命令和响应数据,根据本发明的优选实施例,在子应用230或源应用200以及GSM250之间传送。GetSessionState被调用来获悉会话的当前状态而不改变该状态。它返回自从上一次活动被记录以来的秒数以及超时阈值。优选地,对GetSessionState的呼叫不更新会话活动时间戳。一个“失败”结果指示服务不可用。这个可能是由于一个暂时的情况(例如网络问题)或者由于一个永久的情况(例如一个结构差错)。一个“未找到”差错指示GSM没有被请求会话ID的记录。调用的应用将显示一则消息,指示这次会话不再活动并且他/她将导向到登录屏幕以便重启。一个“超时”差错指示会话已经超时。应用将把浏览器重定向到在与在LogoffURLTarget属性中找到的帧对准的LogoffURL属性中找到的URL。
表15
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符 |
ActivityInterval | 外 | 整数 | 自从上次活动以来的秒数。 |
Timeout | 外 | 整数 | 在几秒内会话超时。 |
ContextCoupon | 外 | 整数 | 指示公共环境的当前修订版。 |
ContextParticipationSuspended | 外 | 布尔值 | 指示来自公共环境中的会话是否当前被中止。 |
ContextSubject-Privileges | 外 | 字串 | 指示分配给每个公共环境主题的应用的特权级别。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChangeCoupon | 外 | 整数 | 指出环境的最新修订版,环境每变化一次该值增1。 |
CCSetCommonContextItems方法
下面的表16示出了描述为SetCommonContextItems的双向命令和响应数据,根据本发明的优选实施例,在子应用230或源应用200以及GSM 250之间传送。SetCommonContextItems被调用来把数据设置到公共环境中并且删除公共环境项。数据名称符合HL7 CCOW数据命名规则。
表16
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
DeleteLtems | 内 | 字串 | 指示要被删除的数据项的名称的字串。 |
SetItems | 内 | 字串 | 指示和它们的数值一起要被设置的数据项的名称的字串。 |
Override | 内 | 布尔值 | 表示数据要被设置而不必查询应用。 |
ContextCoupon | 内 | 整数 | 指示该应用考虑的环境附单是当前的。如果这与实际的当前环境不相同,则返回一个差错。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时·无效环境附单·不继续·无公共环境·参与中止 |
Messages | 外 | 字串阵列 | 描述用户为什么不可能想改变环境的消息阵列。 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChange-Coupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
CCGetCommonContextItems方法
下面的表17示出了描述为GetCommonContextItems的双向命令和响应数据,根据本发明的优选实施例,在子应用230或源应用200以及GSM 250之间传送。GetCommonContextItems被调用来从公共环境中获得数据单元名称和数值的一个列表。数据名称符合HL7 CCOW数据命名规则。项目的子集可以被请求。
表17
名称 | 内/外 | 类型 | 描述 |
SessID | 内 | 字串 | 会话标识符。 |
ItemsFilter | 内 | 字串 | 指示要被取得的数据项值的名称的字串。 |
Items | 内 | 字串 | 请求的数据项目名/值对的字串。 |
SMResult | 外 | 整数 | 请求结果·成功·失败·未找到·超时·无公共环境·参与中止 |
Messages | 外 | 字串阵列 | 描述用户为什么不可能想改变环境的消息阵列。 |
Notification | 外 | 字串 | 作为对UI通知代理的输入被提供的白底字串。 |
ContextChange-Coupon | 外 | 整数 | 如果方法引起对公共环境的一个改变,则这个值被设置。在这种情况下,它指示公共环境的新修订版。 |
GSM事件
本节描述了对于与GSM相关的或者从GSM中发出的各种事件,应用和GSM的相互作用。假设一个公共环境存在。
超时事件
当一个应用参考已经超时的一次会话时,一个超时事件发生。注意:它不是一个实际的异步事件,而是由参考该GSM的一个应用所触发。在超时事件中,GSM尝试把CCOW环境用户主题设置为零。如果有任何有条件的响应或忙碌的应用,则CCOW环境改变事件被取消并且会话不活动定时器被复位。调用的应用不接收一个超时状态。实际上,来自其它CCOW应用的响应取消该会话超时。
如果没有来自CCOW应用的有条件的调查响应,那么CCOW环境用户主题被设置为零,则CCOW环境改变事务被委托,并且GSM继续它的超时处理。即,GSM会话结束,“结束会话”事件通知被递送,并且“超时”状态(用通知字串)被返回给呼叫者。
EndSession事件
当GSM结束一个GSM会话时,登记了一个EndSession回叫的应用将接收EndSession事件当一个GSM应用调用EndSession方法时、当一个应用参考一个超时会话时、或者当CCOW用户主题被设置为零时,GSM将结束一个会话。
CCContextChangedSurvey(CC环境改变的紧急情况)事件
每次一个应用试图在公共环境中进行一个改变时,一个环境改变的调查事件就出现。登记来被调查的任何应用接收此事件。应用以向最终用户显示一个OK状态或者一个正文串来进行响应,来提供为什么用户不可能想要改变环境的原因。
在此事件中传递的参数是:
·被改变的公共环境主题名称的列表
CCContextChanged(CC环境改变)事件
每次公共环境被改变时,一个环境改变的事件出现。用于该事件登记的任何应用接收通知。在此事件中传递的参数是:
·改变的公共环境主题名称的列表
·指示环境新的修订版本号的环境附单。
CCSuspendParticipation(CC中止参与)事件
每当一个UIIP应用调用CCSuspendParticipation方法时,一个中止事件发生。
CCResumeParticipation(CC恢复参与)事件
每当一个UIIP应用调用CCResumeParticipation方法时,一个CCResume(CC恢复)事件发生。
在此事件中传递的参数是:
·指示环境新的修订版本号的环境附单。
CCOW事件
本节描述了CCOW生成的事件的GSM处理。CCOW生成的事件不直接被应用处理。
ContextChangesPending(内容改变悬而未决)事件
进行检查以便确定与CCOW环境相关的GSM会话是否具有为一个环境改变调查而登记的回叫。如果是这样的话,则适当的回叫被调用并且专属的调查状态和文本信息被返回到CCOW环境管理器。
ContextChangesAccepted(内容改变接受)事件
如果CCOW用户主题已经改变,那么GSM会话结束并且“结束会话”通知消息被发送给适当的会话应用。如果其它的数据项改变,则GSM“环境已改变”通知事件被发送给适当的应用。
ContextChangesCanceled(内容改变取消)事件
环境取消不影响GSM或会话应用。
CommonContextTerminated(公共内容终止)事件
此事件作为一个无法恢复的错误来对待。GSM结束GSM会话,删除对CCOW环境的参考,并且发送“结束会话”通知消息给适当的应用。
Ping事件
如果用于规定的环境存在一个公共环境接口,则GSM应答该ping。
本发明的优选实施例总起来说,支持使用不同应用互操作性方法的一个自适应系统和支持不同网络(包括互联网)兼容应用的并行使用的操作接口。
存在于图2、3、4和5中的体系结构和处理不是排他的并且表1-17的数据格式可适应于容纳不同元件和属性。根据本发明的原理还可以导出其它体系结构和处理来实现相同的目的。另外,图2和5的通信过程和步骤以及表1-17的数据格式可以为了不同功能而在不同平台上实现并且可以被应用在诸如个人计算机(PC)或其它处理装置或系统之类的一个处理设备内部的应用中。图2和5的通信过程以及表1-17的数据格式也可以被应用于基于互联网或内联网(或任何其它类型的网络)的工作流或任务实施。本发明原理可以使用在涉及不同应用并行操作的任何系统中。
因此,虽然参考本发明的各个说明性实施例已经描述了本发明,但是本发明不意指本发明被限制为这些特定的实施例。本领域技术人员应该承认:不偏离所附的权利要求中阐明的本发明的精神和范围,能够进行所公开题材的变化、修改和组合。