用于涉及承载无关协议的套接字管理的方法
【专利摘要】本申请解决了无需使服务器和客户端上的套接字之间的传输信道保持打开的问题。为了解决该问题,描述了一种涉及承载无关协议网关(120)的方法。在一个方面中,在设备(100)中提供承载无关协议网关,所述承载无关协议网关包括业务分析器,所述业务分析器被配置为:检测具有请求和相应响应的形式的HTTP事务何时完成,并且只要所述事务一完成,就切换到下一套接字,而无需等待TCP套接字被关闭。例如,当网关(120)检测到响应完成时,它可以将当前套接字推送回套接字队列中,并开始服务下一套接字。
【专利说明】用于涉及承载无关协议的套接字管理的方法
【技术领域】
[0001] 概括地说,本申请涉及通信设备,且更具体地说,涉及用于承载无关协议网关性能 优化的系统、方法和设备。
【背景技术】
[0002] 已经开发了允许从智能卡提供数据和服务的承载无关协议(BIP)。智能卡通常可 以指包括数据存储的介质,所述智能卡可以与通信设备相耦合。智能卡的例子包括用户识 别模块(SIM)卡、全球用户识别模块(USIM)卡、通用集成电路(UICC)卡、可移动用户识别 模块(R_UIM)、CDMA用户识别模块(CSIM)等等。
[0003] 可以提供数据和服务的一种方式是通过使用智能卡网络(web)服务器。智能卡 可以包括使得与该智能卡相耦合的设备的处理器对网络服务器进行实例化和配置的数 据。智能卡网络服务器可以被配置为使用承载无关协议来向使用该设备的网络浏览器以 及标准网络技术(如显示接口)的终端用户提供可以拥有该智能卡的运营商所定义的内 容。例如,智能卡可以包括电子钱包应用,其可以经由在该设备(例如,智能电话、功能电话 (featur印hone))上执行的网络浏览器来访问。这个网络服务器可以提供基于分组的接口 (例如,TCP/IP上的HTTP),以便通过承载无关协议来访问智能卡上的数据和服务。
[0004] 为了桥接这两种协议,可以包括承载无关协议网关。承载无关协议网关可以被配 置为:向客户端发送基于分组的信号和从客户端接收基于分组的信号,以及向智能卡发送 承载无关协议信号和从智能卡接收承载无关协议信号。
[0005] 可以提供有限数量的信道来与智能卡进行通信。例如,可以向智能卡打开的并发 BIP信道的数量是有限的(例如,3、8或5)。访问数据的客户端(例如,网络浏览器)可以 被配置为:打开若干套接字连接来获得信息。这样,来自客户端的套接字的数量可以超过 可用的BIP信道的数量。如何对智能卡和客户端之间的通信进行管理,可能会影响服务的 性能和发送数据的速度。因此,用于承载无关协议网关性能优化的系统、方法和设备是期望 的。
【发明内容】
[0006] 本发明的系统、方法和设备均具有若干方面,其中,没有一个方面仅对其期望的属 性负责。在不限制如以下权利要求所表达的本发明的范围的情况下,现在将对一些特征进 行简要讨论。在对本讨论进行思考之后,特别是在阅读完名称为"【具体实施方式】"的章节 之后,技术人员将理解本发明的特征如何提供包括提高承载无关协议信道的使用效率的优 点。
[0007] 在一个创新方面中,提供了一种套接字管理方法。所述方法包括从应用接收数据, 所述数据是通过基于分组的协议从至少两个套接字传送的。所述方法还包括经由承载无关 协议信道,发送来自至少两个套接字中的一个套接字的数据。所述方法还包括至少部分地 基于所发送的数据来接收数据响应。所述方法包括至少部分地基于所接收的数据响应来确 定数据通信是否完成。如果所述确定指示数据通信已完成,则经由承载无关协议信道,通过 至少两个套接字中的另一套接字来发送数据。如果所述确定指示数据通信未完成,则继续 通过至少两个套接字中的这一个套接字来发送数据。
[0008] 在另一创新方面中,提供了一种用于管理套接字连接的装置。所述装置包括客户 端电路,其被配置为从应用接收数据,所述数据是通过基于分组的协议从至少两个套接字 传送的。所述装置包括卡电路。卡电路被配置为经由承载无关协议信道,从至少两个套接 字中的一个套接字向智能卡传送数据。所述卡电路还被配置为至少部分地基于所发送的数 据来接收数据响应。所述装置还包括业务分析器,其被配置为:至少部分地基于所接收的数 据响应来确定数据通信是否完成。客户端电路还被配置为:如果所述确定指示数据通信已 完成,则经由承载无关协议信道,通过至少两个套接字中的另一套接字来发送数据。客户端 电路还被配置为:如果所述确定指示数据通信未完成,则继续通过至少两个套接字中的这 一个套接字来发送数据。
[0009] 在又一创新方面中,提供了用于管理套接字连接的另一种装置。所述装置包括用 于客户端应用通信的单元,其被配置为:从应用接收数据,所述数据用于基于分组的协议从 至少两个套接字进行的通信。所述装置包括用于数据通信的单元。所述用于数据通信的单 元可以被配置为:经由承载无关协议信道,发送来自至少两个套接字中的一个套接字的数 据。用于数据通信的单元还可以被配置为:至少部分地基于所发送的数据来接收数据响应。 所述装置还包括用于分析业务的单元,其被配置为:至少部分地基于所接收的数据响应来 确定数据通信是否完成;所述用于客户端应用通信的单元还可以被配置为:如果所述确定 指示数据通信已完成,则经由承载无关协议信道,通过至少两个套接字中的另一套接字来 发送数据。所述用于客户端应用通信的单元还可以被配置为:如果所述确定指示数据通信 未完成,则继续通过至少两个套接字中的这一个套接字来发送数据。
[0010] 在另一个创新方面中,提供了一种包括可由装置的处理器执行的指令的计算机可 读存储介质。所述指令使得装置从应用接收数据,所述数据用于通过基于分组的协议从至 少两个套接字进行的通信。所述指令使得装置经由承载无关协议信道,发送来自至少两个 套接字中的一个套接字的数据。所述指令使得装置至少部分地基于所发送的数据来接收数 据响应。所述指令使得装置至少部分地基于所接收的数据响应来确定数据通信是否完成。 如果所述确定指示数据通信已完成,则指令使得装置经由承载无关协议信道,通过至少两 个套接字中的另一套接字来发送数据。如果所述确定指示数据通信未完成,则指令使得装 置继续通过至少两个套接字中的这一个套接字来发送数据。
【专利附图】
【附图说明】
[0011] 图1示出了通信设备的例子的功能框图。
[0012] 图2描绘了去往智能卡的示例性通信路径的功能框图。
[0013] 图3描绘了包括业务分析器的通信设备的例子的功能框图。
[0014] 图4描绘了从客户端到智能卡的示例性请求的过程流程图。
[0015] 图5描绘了业务分析的例子的过程流程图。
[0016] 图6描绘了切换的套接字通信会话的例子的呼叫流程图。
[0017] 图7示出了套接字管理方法的过程流程图。
[0018] 图8描绘了用于承载无关协议套接字管理的示例性装置的功能框图。
【具体实施方式】
[0019] 智能卡网络服务器通常指在与设备相耦合的智能卡上运行的网络服务器。可以使 用智能卡网络服务器来向使用该设备的网络浏览器以及标准网络技术(如接口)的终端用 户提供可以拥有该智能卡的网络运营商所定义的内容。智能卡网络服务器可以被配置为使 用诸如ETSI102223中描述的协议之类的BIP(承载无关协议)协议,而浏览器可以使用诸 如TCP/IP栈之类的基于分组的协议栈。可以提供可以被称为BIP网关的模块来将BIP协 议转换成TCP/IP(反之亦然),从而允许智能卡和客户端之间的数据通信。
[0020] 智能卡上的资源可能是稀缺的。一些卡可以被配置为打开单个BIP信道。另一方 面,TCP套接字通常是可用的,并且商业浏览器在同一时间打开很多套接字来并行地下载资 源(例如,网页、图像、级联样式表、java描述语言(javascript)等等)以提高性能。BIP 网关可以被配置为:使来自浏览器的请求串行化,并通过单个BIP信道,将它们顺序地发送 给智能卡网络服务器。很多商业HTTP协议栈可以在完成所请求的内容的下载之后,使TCP/ IP连接保持打开若干秒钟。可以包括这种配置以便于在相同的服务器需要新内容的情况 下,重新利用相同的套接字。这种重新利用可以节省用于新的TCP握手的时间和网络资源。
[0021] 然而,这种机制可能造成在数据通信完成之后,该BIP信道仍然保持繁忙一段时 间,从而延迟后续的传输。这种延迟可能造成性能问题(例如,每个内容传输之间间隔若干 秒钟)。
[0022] 在一些实现方式中,当TCP套接字是连接的时(例如,状态从监听(LISTEN)到已 建立(ESTABLISHED)),BIP网关可以使用BIP信道,直到该套接字被服务器或客户端显式地 关闭为止。在该时刻,BIP网关可以释放该BIP信道(例如,状态从已建立到监听),并针对 队列中的下一套接字立即使用相同的BIP信道来开始(例如,状态从监听到已建立)。如上 所述,在接收该关闭信号时,可能存在延迟。
[0023] 因此,在设备中提供包括业务分析器的BIP网关,其中该业务分析器被配置为:检 测诸如HTTP事务(请求和相应的响应)之类的数据通信何时完成;以及数据通信一旦完 成,就切换到下一套接字,而无需等待该TCP套接字关闭。例如,当BIP网关检测到该响应 完成时,它可以将当前套接字推送回套接字队列中,并开始服务下一套接字。这种实现方式 减少了由TCP套接字打开但未被使用而造成的延迟。
[0024] 检测已完成的数据通信的方法可以包括分析HTTP报头信息(例如,内容长度以及 发送的字节的数量)。当发送的字节的数量等于预期的内容长度时,BIP网关可以被配置为 在该时间点切换到下一套接字,而不是等待该套接字关闭。
[0025] 下文参照附图更全面地描述新颖的系统、装置和方法的各个方面。然而,本教导的 公开内容可以用多种不同的形式来具体实现,并且其不应被解释为受限于贯穿本发明给出 的任何特定结构或功能。相反地,提供这些方面使得本发明将变得透彻和完整,并将向本领 域技术人员完整地传达本公开内容的范围。基于本文的教导,本领域技术人员应当意识到, 本公开内容的范围旨在覆盖本文所公开的新颖的系统、装置和方法的任何方面,无论其是 独立实现的还是结合本发明的任何其它方面实现的。例如,使用本文阐述的任意数量的方 面可以实现装置或可以实践方法。另外,本发明的范围旨在覆盖这样的装置或方法,其使用 其它结构、功能、或者除本文阐述的本发明的各个方面之外的结构和功能或不同于本文阐 述的本发明的各个方面的结构和功能来实践。应当理解的是,本文所公开的任何方面可以 通过权利要求的一个或多个元素来具体实现。
[0026] 虽然本文描述了具体的方面,但是这些方面的多种变型和排列也落入本公开内容 的范围之内。虽然提及了优选的方面的一些益处和优点,但是本公开内容的范围并不受到 具体益处、用途或对象的限制。相反地,本公开内容的方面旨在广泛地适用于不同的无线技 术、系统配置、网络和传输协议,其中的一些通过举例的方式在附图和优选方面的以下描述 中进行了说明。详细描述和附图仅仅是对本公开内容的说明而不是限制,本公开内容的范 围由所附权利要求及其等同物来定义。
[0027] 在一些实现方式中,接入终端可以包括蜂窝电话、无绳电话、会话发起协议 ("SIP")电话、无线本地环路("WLL")站、个人数字助理("PDA")、具有或者不具有无线 连接能力的手持设备、或者连接到调制解调器的一些其它适当处理设备。因此,本文所教导 的一个或多个方面可以并入到电话(例如,蜂窝电话或智能电话)、计算机(例如,膝上型计 算机)、便携式通信设备、头戴装置、便携式计算设备(例如,个人数据助理)、娱乐设备(例 如,音乐或视频设备、或者卫星无线装置)、游戏设备或系统、全球定位系统设备、或者被配 置为通过承载无关协议与智能卡进行通信的任何其它适当的设备。
[0028] 可以包括所述特征的这样的设备可以用于智能抄表或者在智能电网网络中使用。 这样的设备可以提供传感器应用,或者在家庭自动化中使用。这些设备可以替代地或附加 地在医疗环境中使用,例如用于个人医疗保健。这些设备还可以用于监控,以便实现扩展范 围的互联网连接(例如,结合热点使用),或者实现机器对机器通信。
[0029] 图1示出了通信设备的例子的功能框图。通信设备100可以被实现为上面所讨论 的设备中的一个或多个设备。通信设备1〇〇包括智能卡110。可以经由端口(未示出)来 提供智能卡110。智能卡110可以包括可以用于配置通信设备1〇〇中所包括的处理器的信 息。更具体而言,智能卡110可以包括用于承载无关协议通信的配置信息。例如,智能卡110 可以包括用于对智能卡网络服务器进行实例化的指令。这样,智能卡110可以经由承载无 关协议信道115进行通信。承载无关协议信道115可以向承载无关协议网关120提供通信 路径。承载无关协议网关120可以被配置为经由承载无关协议信道115向智能卡一 110发 送承载无关协议通信以及从智能卡一 110接收承载无关协议通信。承载无关协议网关120 可以被配置为管理多个承载无关协议信道。然而,在一些实现方式中,可以限制承载无关协 议信道的数量。例如,承载无关协议网关120可以被配置为保持与智能卡110的三个信道。
[0030] 承载无关协议网关120可以被配置为经由分组接口 125向分组协议栈130发送信 息。如图1所示,分组接口 125可以是基于TCP/IP分组的接口。因此,如图所示,分组协议 栈130是TCP/IP协议栈。
[0031] 分组协议栈130可以被配置为向智能卡110提供基于分组的通信路径。例如,可 以建立基于分组的通信路径135a以允许远程客户端140a与智能卡110进行通信。远程客 户端140a可以位于网络之上,并被通信设备100访问。例如,远程客户端140a可以是在网 络运营商所拥有的设备(例如,服务器)上执行的应用。远程客户端140a可以被配置为: 向通信设备1〇〇中包括的智能卡110发送数据,或者从通信设备1〇〇中包括的智能卡110 接收数据。
[0032] 可以提供基于分组的第二通信路径135以允许本地应用140b与智能卡110进行 通信。本地应用140b可以在通信设备100中包括的处理器上执行。本地应用140b的例子 包括网络浏览器、电子钱包应用、日历应用等等。
[0033] 远程客户端140a和本地应用140b可以被统称为客户端。在一些实现方式中,智 能卡110可以提供可以由客户端访问的服务。例如,智能卡110可以提供支付服务。当智 能卡110与通信设备110相耦合时,客户端可以发送和/或接收在智能卡110上存储的信 息。远程客户端140a可以依靠来自智能卡110的请求来提供当前的平衡信息。本地应用 140b可以显示包括该平衡信息的界面。
[0034] 图2描绘了去往智能卡的示例性通信路径的功能框图。如图2所示,智能卡110 可以与承载无关协议网关120相耦合。承载无关协议网关120和智能卡110之间的耦合可 以被称为信道。可以将这个信道配置为根据承载无关协议来发送数据。承载无关协议网关 120可以被配置为发送和/或接收来自多个客户端套接字的信息。在基于分组的通信系统 中,套接字通常指两个实体之间(例如,客户端和承载无关协议网关120之间)的连接点。 如图2所示,第一客户端套接字202、第二客户端套接字204和第三客户端套接字206与承 载无关协议网关120相耦合。还可以包括另外的客户端套接字208。
[0035] 每个客户端套接字都可以用于请求数据。例如,如果该客户端正在加载和HTML 页面,则该HTML页面可以包括诸如文本、图像、视频、音频和其它类型的数据之类的各种元 素。该客户端可以针对该HTML页面的每个元素打开套接字。每个客户端套接字可以与不 同的客户端应用相关联。在一些实现方式中,一个或多个套接字可以与相同的客户端应用 相关联。
[0036] 如上所述,承载无关协议网关120可以具有有限的信道来与智能卡110进行通信。 这样,可能无法并行地处理套接字。相反地,通信设备1〇〇可以被配置为处理第一客户端套 接字202请求,并在完成时,开始服务第二客户端套接字204请求。
[0037] 承载无关协议网关120可以被配置为确定客户端套接字请求何时完成。在一些实 现方式中,客户端(例如,140a或140b)可以发送显式的信号,该信号指示通过客户端套接 字的会话的完成。在一些实现方式中,在所请求的数据已经在期望通过套接字进行的可能 的未来通信的客户端处被接收之后,该客户端可以保持客户端套接字打开。在这样的实现 方式中,承载无关协议网关120可能等待可能永远都不会到来的未来通信。因此,错误无关 协议网关120可以延迟来自其它客户端套接字的处理请求。
[0038] 图3描绘了包括业务分析器的通信设备的例子的功能框图。如图3所示,客户端 是网络浏览器302。网络浏览器302可以向BIP网关120打开一个或多个客户端套接字。 如图所示,已经打开了三个客户端套接字304a、304b和304c。网络浏览器302可以通过诸 如TCP/IP之类的基于分组的协议,通过客户端套接字304进行通信。
[0039] 承载无关协议网关120可以包括业务分析器306。业务分析器306可以被配置为: 接收向承载无关协议网关120发送和/或从承载无关协议网关120发送的分组通信。业务 分析器306可以被配置为识别数据的一个或多个特性,以及管理客户端套接字304之间的 切换。下面将进一步详细地描述业务分析器306。
[0040] 业务分析器306可以与承载无关协议/分组转换器308相耦合。如图3所示,分 组协议是TCP/IP。承载无关协议/分组转换器308可以被配置为对从客户端接收的分组数 据进行解析,以及生成用于向智能卡312传输的一个或多个承载无关协议信号。承载无关 协议/分组转换器308可以被配置为对从智能卡312接收的承载无关协议信号进行解析, 以及生成用于向客户端(例如,网络浏览器302)传输的一个或多个基于分组的信号。
[0041] 承载无关协议/分组转换器308可以与承载无关协议信道310相耦合。承载无关 协议信道310可以被配置为向智能卡312提供信息和/或从智能卡312接收信息。
[0042] 虽然在图3中描绘了多个分离的组件,但本领域技术人员应当认识到,这些组件 中的一个或多个组件可以被组合或者被共同实现。例如,使用承载无关协议/分组转换器 308不仅可以实现上面关于承载无关协议/分组转换器308所描述的功能,而且还可以实现 上面关于业务分析器306所描述的功能。此外,图3中所描绘的每一个组件都可以使用多 个分离的元素来实现。
[0043] 图4描绘了从客户端到智能卡的示例性请求的过程流程图。在方框405处,连接 客户端套接字。在方框410处,通信设备准备接收数据。在方框415处,通过该套接字,从 客户端接收数据。在方框420处,确定是否还有数据要接收。方框420处的确定可以基于 所接收的分组数据中包括的报头信息。如果有另外的数据要接收,则流程继续进行至如上 所述的方框415处。如果预期没有更多的数据,则流程继续进行至方框425处。
[0044] 在方框425处,响应于该请求而要发送的数据被准备好。例如,如果所接收的数据 请求图像文件,则在方框425处,可以确定图像文件的位置。在方框430处,从智能卡发送 该数据。如上所述,可以将该数据从承载无关协议转换成基于分组的协议。在方框435处, 可以对业务进行分析。下面将参照图5来进一步详细讨论对业务的分析。
[0045] 如果该分析确定还有数据将被发送,则该流程返回到方框430。如果该分析确定数 据通信已完成,则过程可以继续进行至对连接的套接字进行切换的方框440。对连接的套接 字进行切换可以包括:识别客户端已经打开、但还没有通过其向智能卡发送信息的一个套 接字。切换可以基于:对这些套接字进行排队的顺序、通过该套接字未决的请求、打开该套 接字的客户端、或者与要传送的数据相关联的其它因素(例如,类型、数量、与先前发送的 数据的关联性)、与该通信相关联的客户端、或者打开该套接字的顺序。在切换时,流程继续 进行至如上所述的方框405处。
[0046] 如果该分析确定与预期的相比有更多的数据已发送,则业务分析器不能够准确地 确定通过客户端套接字的数据通信何时已经完成。这样,可以禁用业务分析器,从而避免针 对该套接字的切换,直到该客户端套接字被(例如,客户端)显式地关闭为止。在方框450 处,例如通过超时或者来自客户端的信令,来断开该套接字。在关闭时,流程继续进行至如 上所述的方框405处。
[0047] 如可以在图4的过程流中观察到的,基于该业务分析,可以在显式的套接字断开 之前,发生套接字切换。在客户端接收到数据传输之后,仍然保留套接字的实现方式中,网 关可以基于该业务分析,来切换和开始处理另一客户端套接字。
[0048] 图5描绘了业务分析的例子的过程流程图。可以在如上所述的业务分析器306中 实现图5中示出的业务分析过程。在方框435处,可以对业务进行分析。业务分析器可以 被配置为:对来自客户端的分组数据或者来自智能卡的经转换的分组数据进行分析。在决 定框505处,确定是否还有数据被接收。在业务分析器对响应于来自客户端的请求所发送 的数据进行分析的实现方式中,如果通过该套接字从客户端接收到另外的信息,则该过程 可以禁用分析器,并从而禁用基于业务的切换。如果从客户端没有接收到另外的数据,则流 程继续进行至方框510处。
[0049]在方框510处,识别要执行的分析。这些分析可以存储在与通信设备相关联的存 储器中。可以基于客户端、智能卡、接收的数据、发送的数据等等来识别这些分析。这些分 析可以包括用于解析来自数据的值以执行该分析的信息。例如,该信息可以标识报头字段 名称或位置(例如,字符位置),其中解析器可以使用其来识别感兴趣的值。
[0050] 在方框515处,可以应用解析信息以识别用于分析的值。例如,解析器可以识别 HTTP和/或TCP/IP分析标准。如图5所示,在方框520a处,可以对分组报头进行分析,而 在520b处,对分组内容进行分析。可以被解析和分析的示例性报头字段是内容长度。一些 基于分组的协议(例如,HTTP)中的内容长度报头字段可以指示要发送的数据的数量。例 如,如果发送的数据是图像文件,则报头可以包括该图像文件以字节为单位的大小。
[0051] 在方框525处,确定是否预期有更多的数据传输。在基于内容长度进行分析的例 子中,可以保持所发送的字节的数量的计数器。该确定可以包括:将所发送的字节的数量与 从内容长度报头字段中提取的值进行比较。如果所发送的量小于内容长度报头字段中所指 定的值,则可以预期更多的数据。在这样的实现方式中,流程可以继续进行至方框430以继 续进行数据传输。
[0052] 如果预期不再有数据,则流程继续进行至方框530,其中在方框530处,确定该传 输是否超过预期的数据传输。例如,如果所发送的字节数量大于内容长度报头字段中所指 定的值,则业务分析器可能无法准确地确定数据通信何时完成。这样,流程可以继续进行至 方框445,其中在方框445处,如上所述,禁用业务分析器。
[0053] 如果预期不再有数据,并且数据传输没有超过预期的数据传输,则业务分析器可 能已经成功地识别该数据通信已完成的情形。在这种情况下,流程继续进行至方框440,其 中在方框440处,如上所述,可以切换连接的套接字。
[0054] 虽然图5中示出的流程是基于内容长度报头字段的,但也可以使用其它报头字段 或内容特性来进行业务分析。例如,如果内容报头类型被识别为图像数据,但内容被识别为 文本,则可以禁用分析器。在这样的实现方式中,一些基于分组的协议可以允许自定义报头 字段,该自定义报头字段可以被识别为用于分析的基础。例如,自定义字段可以包括终止序 列。该终止序列可以标识传输的结束。业务分析器可以被配置为:识别终止序列的存在以 确定传输的完成。
[0055] 图6描绘了切换的套接字通信会话的例子的呼叫流程图。图6中示出的呼叫流程 图描绘了可以在上面所描述的系统中包括的实体中的一些实体。图6中示出的实体包括智 能卡602、承载无关协议网关604、第一客户端套接字606和第二客户端套接字608。
[0056] 智能卡602可以发送信号605以打开承载无关协议信道。信号605可以被发送到 承载无关协议网关604。可以在来自客户端的任何通信之前打开该信道。第一客户端套接 字606可以向承载无关协议网关604发送连接信号652。承载无关协议网关604可以通过 信号654来建立该信道。一旦建立,第一客户端套接字606就可以向该承载无关协议网关 发送一发送信号(sendsignal)656。发送信号656可以是针对来自智能卡602的数据的 请求。承载无关协议网关604可以将这个请求656转换成承载无关协议,并发送数据可用 信号658。作为响应,智能卡602可以发送接收的数据信号660,其后是终端响应信号662。 终端响应信号662可以包括请求的数据的全部或者一部分。在一些实现方式中,终端响应 信号662可以包括所请求的数据是可用的确认。可以执行附加的信令664以便经由承载无 关协议网关604来交换客户端套接字606和智能卡602之间的数据。由于执行该信令,承 载无关协议网关604可以如同上面所描述地对业务进行分析。
[0057] 第二客户端套接字608可以发送信号666以连接到承载无关协议网关604。如图 6所示,当第二客户端套接字608发送信号666时,第一客户端套接字606仍然可以交换数 据。承载无关协议网关604可以被配置为成功地建立该连接并对数据进行高速缓存,就好 像去往智能卡602的信道是可用的似的。一旦连接,第二客户端套接字608就可以向承载 无关协议网关604发送数据(例如,请求)。
[0058] 信号670可以包括响应于第一客户端套接字606所发送的请求656的另外数据。 如上所述,承载无关协议网关604可以对发送的数据进行分析。例如,承载无关协议网关 604可以窥视该数据传输,以检测与第一客户端套接字606的HTTP事务的结束。可以通过 信号672向第一客户端套接字发送该数据。
[0059] 如图6所示,通过信号670和672发送的数据可以是与第一客户端套接字606的 HTTP事务的结束。通过信号674和676,承载无关协议网关604可以模拟第一套接字的关 闭和新的套接字的打开。应当注意,没有从第一客户端套接字接收到用于关闭该路径的显 式请求。信号678、680和682可以包括由第二客户端套接字608在信号668处发送,并由 承载无关协议网关604进行高速缓存的请求。信号678、680和682与上面所描述的信号 (即,信号658、660和662)相类似。
[0060] 因此,在已经切换到服务第二客户端套接字608后,可以通过信令684在第二客户 端套接字608和智能卡602之间交换附加数据。这样,在从第一客户端套接字608向承载 无关协议网关604发送显式的关闭信号686之前,第二客户端套接字608能够与智能卡604 交换数据。
[0061] 图7示出了套接字管理方法的过程流程图。图7中示出的过程可以用上面所描述 的设备(例如,图3中的设备)中的一个或多个设备或者下面图8中的设备来实现。在方 框702处,从应用接收数据。所述数据是通过基于分组的协议从至少两个套接字传送的。例 如,在一些实现方式中,通信可以是通过HTTP从至少两个套接字到智能卡的。所接收的数 据可以包括针对信息的请求,例如针对图像或其它文件资源的请求。所接收的数据可以包 括针对提交的信息,例如用于更新电子钱包的事务信息。在一些实现方式中,所接收的数据 可以不需要响应。在一些实现方式中,响应可以包括含有确认值的信号。
[0062] 在方框704处,经由承载无关协议信道,发送来自至少两个套接字中的一个套接 字的数据。在方框706处,接收数据响应。所接收的数据可以至少部分地基于所发送的数 据。例如,所接收的数据可以是响应于针对图像的请求而发送的图像文件。作为另一例子, 在通信与文件资源没有关联的实现方式中,该响应可以包括确认值。
[0063] 在方框708处,确定数据通信是否完成。该确定可以至少部分地基于所接收的数 据响应。在方框710处,如果该确定指示数据通信已完成,则经由承载无关协议信道,从至 少两个套接字中的另一套接字发送数据。在方框712处,如果该确定指示数据通信未完成, 则继续从至少两个套接字中的该一个套接字发送数据传输。
[0064] 图8描绘了用于承载无关协议套接字管理的示例性装置的功能框图。本领域技术 人员应当意识到,与图8中示出的简化装置800相比,套接字管理装置可以具有更多的组 件。示出的装置800只包括对于描述位于权利要求的范围之内的实现方式的一些显著特征 有用的那些组件。装置800包括数据输入输出电路802、客户端输入输出电路804和分析电 路 806。
[0065] 数据输入输出电路802可以被配置为经由承载无关协议信道来接收和发送数据。 数据输入输出电路802可以包括比较器、过滤器、处理器、信号发生器和收发机中的一个或 多个。在一些实现方式中,用于数据通信的单元可以包括数据输入输出电路802。
[0066] 客户端输入输出电路804可以被配置为通过基于分组的协议,从应用接收数据并 向应用发送数据。客户端输入输出电路804可以包括处理器、信号发生器、收发机和解码器 中的一个或多个。在一些实现方式中,用于客户端应用通信的单元可以包括客户端输入输 出电路804。
[0067] 分析电路806可以被配置为:确定数据输入输出电路802和客户端输入输出电路 804之间的数据通信是否完成。分析电路806可以被配置为发送信号,该信号促使由客户端 输入输出电路804管理的套接字的切换。分析电路806可以包括存储器、处理器、比较器、 算术单元和信号发生器中的一个或多个。在一些实现方式中,用于分析业务的单元可以包 括分析电路806。
[0068] 如本文所使用的,术语"确定"涵盖多种多样的动作。例如,"确定"可以包括计算、 运算、处理、推导、调查、查询(例如,查询表、数据库或另一数据结构)、探知等等。另外,"确 定"还可以包括接收(例如,接收信息)、存取(例如,存取存储器中的数据)等等。另外, "确定"还可以包括解析、选择、挑选、建立等等。
[0069] 如本文所使用的,提及项目列表中的"至少一个"的短语是指那些项目的任意组 合,其包括单个成员。举例而言,"a、b或c中的至少一个"旨在覆盖:a、b、c、a-b、a-c、b_c 和a_b_c〇
[0070] 上文所述方法的各种操作可以由能够执行这些操作的任何适当的单元(例如,各 种硬件和/或软件组件、电路和/或模块)来执行。通常,附图中示出的任何操作可以由能 够执行这些操作的相应功能单元来执行。
[0071] 利用被设计用于执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集 成电路(ASIC)、现场可编程门阵列信号(FPGA)或其它可编程逻辑器件(PLD)、分立门或者 晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行结合本公开内容描述的 各种说明性逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器可以是任何 商业可用的处理器、控制器、微控制器或者状态机。处理器还可以被实现为计算设备的组 合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合, 或者任何其它此种结构。
[0072] 在一个或多个方面,所述功能可以用硬件、软件、固件或者其任意组合来实现。如 果用软件实现,则可以将这些功能作为一个或多个指令或代码存储在计算机可读介质上或 者在计算机可读介质上进行传输。计算机可读介质包括计算机存储介质和通信介质二者, 其中通信介质包括便于从一个地方向另一个地方传输计算机程序的任何介质。存储介质可 以是计算机能够存取的任何可用介质。通过举例而非限制性的方式,这样的计算机可读介 质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者 能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的 任何其它介质。另外,可以将任何连接适当地称作计算机可读介质。例如,如果软件是使用 同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无 线技术,从网站、服务器或其它远程源传输的,则同轴电缆、光纤电缆、双绞线、DSL或者诸如 红外线、无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的,磁盘和光盘 包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通 常磁性地复制数据,而光盘则用激光来光学地复制数据。因此,在一些方面,计算机可读介 质可以包括非暂时性计算机可读介质(例如,有形介质)。此外,在一些方面中,计算机可读 介质可以包括暂时性计算机可读介质(例如,信号)。上述的组合也应当包括在计算机可读 介质的范围之内。
[0073] 本文所公开的方法包括用于实现所描述方法的一个或多个步骤或动作。在不脱离 权利要求的范围的情况下,这些方法步骤和/或动作可以相互交换。换言之,除非指定步骤 或动作的特定顺序,否则在不脱离权利要求的范围的情况下,可以修改特定步骤和/或动 作的顺序和/或使用。
[0074] 所述功能可以用硬件、软件、固件或其任意组合来实现。当使用软件实现时,可以 将这些功能作为一个或多个指令存储在计算机可读介质上。存储介质可以是计算机能够 存取的任何可用介质。通过举例而非限制性的方式,这样的计算机可读介质可以包括RAM、 ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者能够用于携带或存 储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。 如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、 软盘和蓝光?光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
[0075] 因此,某些方面可以包括用于执行本文给出的操作的计算机程序产品。例如,这样 的计算机程序产品可以包括其上具有存储的(和/或编码的)指令的计算机可读介质,可 以由一个或多个处理器执行这些指令以实现本文所述的这些操作。对于某些方面而言,计 算机程序产品可以包括封装材料。
[0076] 软件或指令还可以通过传输介质进行传输。例如,如果软件是使用同轴电缆、光纤 光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、 服务器或其它远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线 电和微波之类的无线技术包括在传输介质的定义中。
[0077] 此外,应当意识到,用于执行本文所述方法和技术的模块和/或其它适当单元可 以由设备和/或智能卡(如适用)下载和/或获得。例如,这样的设备可以耦合至服务器, 以促成用于执行本文所描述的方法的单元的发送。或者,本文所述的各种方法可以通过存 储单元(例如,RAM、ROM、诸如压缩(CD)或软盘之类的物理存储介质等等)来提供,从而设 备或者与其相耦合的智能卡可以在将存储单元耦合至或提供给该设备时获得各种方法。此 夕卜,还可以使用用于向设备提供本文所述方法和技术的任何其它适当的技术。
[0078] 应当理解的是,权利要求并不受限于上文示出的精确配置和组件。在不脱离权利 要求的范围情况下,可以对上文所述方法和装置的排列、操作和细节做出各种修改、改变和 变化。
[0079] 虽然上述内容针对本公开内容的一些方面,但在不脱离本公开内容的基本范围的 情况下,可以设计出本公开内容的其它和进一步的方面,并且其范围由所附的权利要求来 确定。
【权利要求】
1. 一种套接字管理方法,包括: 从应用接收数据,所述数据是通过基于分组的协议从至少两个套接字传送的; 经由承载无关协议信道,发送来自所述至少两个套接字中的一个套接字的数据; 至少部分地基于所发送的数据来接收数据响应; 至少部分地基于所接收的数据响应来确定数据通信是否完成; 如果所述确定指示数据通信已完成,则经由所述承载无关协议信道,通过所述至少两 个套接字中的另一套接字来发送数据;以及 如果所述确定指示数据通信未完成,则继续通过所述至少两个套接字中的所述一个套 接字来发送数据。
2. 根据权利要求1所述的方法,其中,所述数据通信在所述应用和以下各项中的一项 或多项之间:用户识别模块卡、全球用户识别模块卡、通用集成电路卡、可移动用户识别模 块、CDMA用户识别模块卡。
3. 根据权利要求1所述的方法,其中,所述基于分组的协议是HTTP。
4. 根据权利要求3所述的方法,其中,从所述应用所接收的所述数据包括HTTP请求。
5. 根据权利要求1所述的方法,其中,所述至少两个套接字包括TCP/IP套接字。
6. 根据权利要求1所述的方法,还包括:基于所接收的数据响应来生成用于基于分组 的传输的信号。
7. 根据权利要求1所述的方法,其中,确定数据通信是否完成包括: 从所接收的数据响应中提取值;以及 将所提取的值与关联于所述至少两个套接字中的所述一个套接字的值进行比较。
8. 根据权利要求7所述的方法,其中,提取所述值包括:提取所接收的数据响应的报头 字段中包括的值。
9. 根据权利要求7所述的方法,其中,提取所述值包括:提取所接收的数据响应的主体 中包括的值。
10. 根据权利要求1所述的方法,其中,确定数据通信是否完成包括:在确定数据通信 完成之前,如果通过所述至少两个套接字中的所述一个套接字接收到额外的数据,则基于 从所述应用接收的信号来确定数据通信是否完成。
11. 一种用于管理套接字连接的装置,所述装置包括: 客户端电路,其被配置为从应用接收数据,所述数据是通过基于分组的协议从至少两 个套接字传送的; 卡电路,其被配置为: 经由承载无关协议信道,发送来自所述至少两个套接字中的一个套接字的数据; 至少部分地基于所发送的数据来接收数据响应;以及 业务分析器,其被配置为:至少部分地基于所接收的数据响应来确定数据通信是否完 成; 所述客户端电路被配置为:如果所述确定指示数据通信已完成,则经由所述承载无关 协议信道,通过所述至少两个套接字中的另一套接字来发送数据;并且 所述客户端电路被配置为:如果所述确定指示数据通信未完成,则继续通过所述至少 两个套接字中的所述一个套接字来发送数据。
12. 根据权利要求11所述的装置,其中,所述数据通信在所述应用和以下各项中的一 项或多项之间:用户识别模块卡、全球用户识别模块卡、通用集成电路卡、可移动用户识别 模块、CDMA用户识别模块卡。
13. 根据权利要求11所述的装置,其中,所述基于分组的协议是HTTP。
14. 根据权利要求13所述的装置,其中,从所述应用所接收的所述数据包括HTTP请求。
15. 根据权利要求11所述的装置,其中,所述至少两个套接字包括TCP/IP套接字。
16. 根据权利要求11所述的装置,其中,所述卡电路还被配置为:基于所接收的数据, 生成用于基于分组的传输的信号。
17. 根据权利要求11所述的装置,其中,确定数据通信是否完成包括: 从所接收的数据响应中提取值;以及 将所提取的值与关联于所述至少两个套接字中的所述一个套接字的值进行比较。
18. 根据权利要求17所述的装置,其中,提取所述值包括:提取所接收的数据响应的报 头字段中包括的值。
19. 根据权利要求17所述的装置,其中,提取所述值包括:提取所接收的数据响应的主 体中包括的值。
20. 根据权利要求11所述的装置,其中,确定数据通信是否完成包括:在确定事务完成 之前,如果通过所述至少两个套接字中的所述一个套接字接收到额外的数据,则基于从所 述应用接收的信号来确定所述事务是否完成。
21. -种用于管理套接字连接的装置,所述装置包括: 用于客户端应用通信的单元,其被配置为从应用接收数据,所述数据用于通过基于分 组的协议从至少两个套接字进行的通信; 用于数据通信的单元,其被配置为: 经由承载无关协议信道,发送来自所述至少两个套接字中的一个套接字的数据; 至少部分地基于所发送的数据来接收数据响应;以及 用于分析业务的单元,其被配置为:至少部分地基于所接收的数据响应来确定数据通 f目是否完成; 所述用于客户端应用通信的单元被配置为:如果所述确定指示数据通信已完成,则经 由所述承载无关协议信道,通过所述至少两个套接字中的另一套接字来发送数据;并且 所述用于客户端应用通信的单元被配置为:如果所述确定指示数据通信未完成,则继 续通过所述至少两个套接字中的所述一个套接字来发送数据。
22. -种计算机可读存储介质,其包括可由装置的处理器执行的指令,所述指令使得所 述装置执行以下操作: 从应用接收数据,所述数据用于基于分组的协议从至少两个套接字进行的通信; 经由承载无关协议信道,发送来自所述至少两个套接字中的一个套接字的数据; 至少部分地基于所发送的数据来接收数据响应; 至少部分地基于所接收的数据响应来确定数据通信是否完成; 如果所述确定指示数据通信已完成,则经由所述承载无关协议信道,通过所述至少两 个套接字中的另一套接字来发送数据; 如果所述确定指示数据通信未完成,则继续通过所述至少两个套接字中的所述一个套 接字来发送数据。
【文档编号】H04L29/08GK104412565SQ201380033922
【公开日】2015年3月11日 申请日期:2013年6月26日 优先权日:2012年6月27日
【发明者】M·贝里翁内, R·K·维贾雅库马尔, A·K·塔莱帕迪, D·迪德胡斯托, X·朱, J·A·鲁瓦尔卡巴 申请人:高通股份有限公司