与多个进程共享端口的制作方法

文档序号:6568903阅读:169来源:国知局
专利名称:与多个进程共享端口的制作方法
与多个进程共享端口些旦 冃眾背景和相关领域随着计算机化系统的日益流行,对大型和小型网络内计算机系统的文件和处 理资源分布的需要也日益增加。 一般而言,计算机系统和相关设备经由网络通信信 息是出于各种原因,例如交换个人电子消息、出售商品、提供账户信息等。然而人 们会认识到,随着计算机系统及其相关应用程序变得愈发复杂,与网络上数据和资 源共享相关联的各种挑战也增加了。在网络内分布资源的一些现有方法包括集中型计算场景,这会涉及与未本地 安装这些资源的一个或多个客户共享资源的集中型网络服务器。已用于这类功能性的这样一种协议是远程桌面协议("RDP")。使用远程桌面协议,集中型网络服 务器可以与网络上的其他客户共享感兴趣的数据和资源。在某些情况下,这些客户 随后可以象这些资源本地安装那样来与这些资源进行交互(例如,发送鼠标和键盘 事件等)。理想地,客户计算机系统和网络服务器之间的这一交互会无缝地发生, 好像该客户计算机系统已经用其自身安装的资源来处理这些数据那样。在一些方面与上述集中型共享模型类似的另一类系统是被配置为与网络上其 他客户计算机系统共享应用程序数据的服务器(或"发送")计算机系统。在此示 例中,服务器起始应用程序接口 (或者"API"),诸如"协作API",该API随 后用来与一个或多个客户(或"接收")计算机系统共享数据视图。客户计算机系 统随后能够类似于上述集中型计算场景,处理本地显示的共享数据。不幸的是,这些类型的系统存在许多潜在问题,这会使得经网络与相对较多 的客户计算机系统共享由应用程序生成的数据变得很困难。例如,当共享计算机系统启动应用程序以共享数据时,服务器应用会在该共享计算机系统处启动一端口监 听程序,随后监听通过该端口连接的受邀客户。于是,各种受邀客户就能够通过 该端口连接至这一服务器应用程序。不幸的是,不允许一个不同的服务器应用程序 在同一端口上建立不同的监听程序并接收不同的网络连接。通常每个端口只有一个应用程序监听程序的一个原因是在传输控制协议("TCP")的上下文中,在发起连接时使用唯一数据就是互联网协议("IP") 地址和计算机端口号。这些信息通常不足以让网络服务器在通过单个端口接收连接 数据时对应用程序做出区分。更具体地,即使另一客户尝试通过由另一应用程序预 定的单个端口与一应用程序的不同实例相连接,服务器也只能将该客户的连接请求数据发送给最初预定的应用程序实例。通常只有一个应用程序如上所述地预定给定端口的另一个原因是给定的应用 程序在启动端口监听程序时可以在会话级(即,计算机访问受限级)操作。会话级 执行是使应用程序对计算机系统内其他组件的暴露最小化的相当受限的操作级别。 通常较佳地在会话模式下运行应用程序,因为在系统级操作(例如,计算机范围的 访问)会对服务器产生操作负债。例如,在系统级执行一应用程序会给予该应用程 序对服务器上多个不同端口的自由访问;然而该应用程序内的风险(例如,错误) 会造成整个服务器的风险。替代方法是不同的应用程序保持会话级操作,但是简单地打开源自同一静态 端口的不同动态端口。然而,动态端口在某些网络中甚至不是可用的选择,因为动 态端口在防火墙内难以发现和管理。更有甚者,网络管理员可能不仅禁止动态端口, 还可能会由于类似原因出于安全考虑而对第一实例内的可用静态端口的数目也做 出限制。于是,如果所有的可用端口都已被预定,则将会阻止一个不同的应用程序 (甚至是同一端口预定应用程序的第二实例)哪怕是简单地打开服务器的另一个不 同的端口。因此,已提出的现有资源共享技术存在许多问题。 简述本发明的各实现使用通过同一静态端口区分不同应用程序同时仍然在会话级 执行这些应用程序的系统、方法和计算机程序产品来解决本领域内的上述一个或多 个问题。更具体地,在会话中操作的一个或多个服务器应用程序(和与其不同的实 例)能够注册有相对应的一个或多个唯一连接标识符("ID"),其中多个唯一 连接ID可以与一端口相关联。则在通过所分配的端口接收客户连接时,在系统级 操作的端口监听程序监听这些唯一连接ID。在识别了一个唯一连接ID时,该端口 监听程序就可以将用于该连接的套接字(socket)传递给相应的应用程序,该应用 程序在会话级中操作并对该唯一连接ID进行了注册。例如,就服务器或共享计算机而言, 一种通过单个端口提供到多个应用程序的网络连接的方法可以包括将第一连接标识符与第一应用程序相关联,而将第二连 接标识符与第二应用程序相关联。在这样的情况下,第一和第二应用程序可以在会 话级操作。本方法还包括接收客户连接请求,所述请求包括端口的端口号、该共享 计算系统的网络地址以及第一连接标识符。此外,本方法可以包括将该客户连接请 求发送给第一应用程序,使得第一应用程序通过该端口与客户连接。此外,本方法 可以包括通过与端口号相对应的端口将向第二应用程序提供不同的客户连接。就客户而言,根据本发明一实现的一种替换方法可以包括接收与服务器计算 机系统处的第一应用程序进行通信的第一邀请。第一邀请至少包括端口号和第一连 接标识符。本方法还可以包括接收与服务器计算机系统处的第二应用程序进行通信 的第二邀请,其中第二邀请同样至少包括端口号和第二连接标识符。该客户随后执 行通过该端口号与服务器处的第一和第二应用程序通信的步骤,更具体地,将通过 同一静态端口与多个应用程序进行通信。提供本概述以便以简化形式介绍概念的精选,这些概念将在以下的详细描述 中被进一步描述。本概述并不旨在标识要求保护的主题的关键特征或本质特征,也 不旨在用于帮助确定要求保护的主题的范围。本发明的额外特征和优点将在以下的描述中阐述,并且部分可从该描述中显 而易见,或者可以本发明的实践中习得。各个特征和优点可以通过在所附权利要求 中特别指出的手段和组合来认识并获取。本发明的这些和其它特征将从以下描述和 所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获 知。附图简述为了描述在其中能够获得本发明的前述和其他优点和特征的方式,将通过参 考在附图中示出的特定实施例来呈现以上简述的本发明的更具体描述。应该理解这 些附图仅描述了本发明的典型实施例,因此不将其考虑为对本发明的范围的限制, 通过使用附图可以用额外的特异性和细节来描述本发明,在附图中

图1A根据本发明一实现示出其中多个应用程序通过单个端口与相应的多个 客户通信的示意总览图;图1B根据本发明一实现示出其中多个应用程序依据使用同一端口监听服务 通过单个端口的通信来注册唯一连接ID的简图;图1C根据本发明一实现示出如图1B所示的简图,其中多个应用程序邀请客户通过单个端口通信,而该邀请则包括由端口监听服务提供的数据;图ID根据本发明一实现示出图1B-1C的简图,其中多个客户尝试通过单个端口与多个应用程序通信;图2根据本发明一实现,从服务器的角度示出客户通过单个端口与多个应用程序进行通信的方法的动作序列的流程图;以及图3根据本发明一实现,从客户的角度示出用于通过服务器处的单个端口与多个服务器应用程序进行通信的方法的动作序列的流程图。详细描述本发明的各实现提供一种通过同一静态端口区分不同应用程序同时仍然在会 话级执行各应用程序的系统、方法和计算机程序产品。更具体地,在一会话中操作 的一个或多个服务器应用程序(或其不同的实例)能够注册有相对应的一个或多个 唯一连接标识符("ID"),其中多个唯一连接ID可以与一端口相关联。在通 过所分配的端口接收客户连接时,在系统级操作的端口监听程序能够监听这些唯一 连接ID。在识别了一个唯一连接ID时,该端口监听程序就可以将用于该连接的套 接字传递给在该会话级操作并用对该唯一连接ID进行注册的相应应用程序。正如通过随后的描述和权利要求而更为全面理解的,这些和其他特征能提供 比其他可用方式更大的网络通信灵活性,同时还保持重要的安全措施。例如,网络 管理员可以具有通过同一静态端口通信的各种网络应用程序,而无需使用动态端口 分配也无需在系统级上运行这些网络应用程序。在一个方面,这允许网络管理员保 持端口数相当受限,而无需不恰当地考虑阻止重要的应用程序进行网络通信。此外,因为网络应用程序能够在操作的会话级内通信,所以对一个应用程序的问题会跨系 统转移的顾虑很少。图1A示出根据本发明各方面,系统如何操作的一个概略示例。更具体地,图 1A示出应用程序115和120各自通过同一静态端口 140与相应的不同客户145和 150通信。应用程序115和120各自能够至少部分地如此操作,因为每个应用程序 分别与独立的对应网络通信套接字190和195相关联。更具体地,通信套接字190和195与唯一连接标识符("ID",在此也称为 "唯一ID")相关联,这些ID注册为与同一静态端口 140—起使用。在某些情况 下,诸如其中客户可明确标识并且仅允许给定应用程序的实例运行,则该唯一 ID 可以包括客户用户名或电子邮件地址。在其它情况下,该唯一连接ID是随机生成的数字。无论如何,当端口 140从客户140收到指向应用程序115的TCP通信时, 由端口监听服务(135,图1A)在端口 140处打开的监听程序能够使用该连接ID 来标识是将该客户通信导向应用程序115还是应用程序120 (或者未示出的某个其 他应用程序)。图1B示出多个应用程序如何向服务器处的监听服务注册,同时还维持会话级 操作的更详细的总览图。作为前提,虽然以下描述和权利要求频繁引用"服务器", 但是将会认识到这只是一个示例而非限制。更具体地,服务器IOO无需是通常理解 的网络服务器,而可以只是通过经网络与另一客户计算机系统共享数据而充当共享 计算机系统的另一客户计算机系统。然而,图1B示出,服务器(或"共享计算机")IOO至少包括操作的会话级 105 (即,计算机访问受限级)和操作的系统级110 (例如,"会话O")。 一般而 言,操作的会话级是其中应用程序通常在计算机上运行的模式,并且它对存储器和 硬件的访问被限制在操作的给定"会话"的受限参数内。相反,操作的系统级是允 许代码直接访问计算机系统内所有硬件和存储器的处理模式。图1B还示出,服务器100包括在会话级105上操作的服务器应用程序115和 120(应用程序120可以是应用程序115的另一实例,或者是完全不同的应用程序)。 应用程序115和120仅仅是可以安装在服务器100上的多个服务器应用程序的示 例,并且在服务器IOO上可以存在倾向于通过单个静态端口通信的更多服务器应用 程序。应用程序115和120的示例可以包括用于从服务器100向一个或多个其他客 户广播数据视图的网络演示程序、以及常规的文字处理、电子数据表程序或数据库 程序等。图1B还示出,服务器100包括端口监听服务135。在一个实现中,服务器IOO 在启动或最初引导时初始化端口监听服务135,藉此监听服务135能够从系统注册 表中读取任何适当的配置数据(未示出)。 一般而言,监听服务135在系统级110 操作时执行这些初始化功能,以确保尽可能多地访问在系统注册表(未示出)中指 示的静态端口。更具体地,服务器IOO分配监听服务135以监听一个或多个静态端 口,诸如图1A中的端口 140。此外,服务器100能够分配监听服务135以监听多 个其他静态端口 (未示出)。例如,带有诸如为内部网络和外部网络提供服务的网 卡的多张网卡的计算机系统,可以在多个静态端口上为多张卡和多个网络开始相同 的监听服务。当启动了需要经给定端口通信的服务器应用程序时,该服务器应用程 序可将"就绪"消息(例如,123)发送给适当端口监听服务(例如,135)。就绪消息可以引起多种情况发生。例如,在一个实现中,就绪消息使监听服务调用连接ID应用程序接口 ( "API")(未示出),而该API进而又创建唯一连接ID,这 一 ID可以是任何合适的安全标识符,诸如随机生成的数字。这一连接ID被存储 在系统存储器内,并且在与该监听服务相关联的连接ID索引130中被引用。例如, 监听服务从连接ID API中检索该唯一连接ID,并在随后将该连接ID与适当连接 ID索引或表格(诸如连接ID索引130)中该应用程序的标识符相关联。更具体地,图1B示出,服务器应用程序120将就绪消息123发送给端口监听 服务135,同时在该进程中更靠前的服务器应用程序115已经发送就绪消息113。 一般而言,服务器应用程序通过套接字(例如,图IA和ID中的190和195)发 送就绪消息,而最终,该套接字将在服务器100向服务器应用程序提供套接字的控 制时由该服务器应用程序使用。当发送消息时,服务器应用程序还包括该应用程序 的标识符,该标识符可以与所创建的连接ID相关连。例如,图IA示出消息113 包括应用程序标识符"App 115",而消息123则包括应用程序标识符"App 120"。就绪消息还会引起适当监听服务建立组件对象或等效物,用以在服务器100 的系统级IIO和会话级105之间接口。在一个实现中,这是组件操作模型("COM") 对象,而在其他实现中,这一组件对象可以是称为管道的远程过程调用("RPC") 机制或任何其他中间进程通信机制。然而,图1B示出端口监听服务135主存组件 对象155,它包括对应用程序115的标识符(即,"App 115")的引用,以及对 由连接ID API创建并在索引130中找出的唯一连接ID 160的引用两者。创建的组件对象随后可以将该唯一的ID返回给服务器应用程序以供随后在客 户连接中使用。例如,图1B示出组件155发送消息117给应用程序115,其中消 息117包含唯一ID 160。在某些情况下,消息117还可以包括将用来与其他客户 相连接的网络地址和端口号(即,端口 140)。然而最为普遍的情况是,预连接数 据至少可以包括唯一连接ID 160和关联于端口 140的端口号(未示出)。如前所 述,服务器应用程序最终将预连接数据发送给客户。例如,图1C示出,应用程序115向客户145发送邀请消息163,其中邀请消 息163包括预连接数据170。然而,应用程序115没有必要预先执行发送这一预连 接数据170的特定步骤。更具体地,在某些实现中,客户145已经知晓在预连接数 据170中找出的标识符,而无需服务器实际将其发送给该客户。例如,该标识符可 以通过建立公知的规则而实现,诸如让该标识符以客户计算机名(为应用程序115 所知)或以在客户145处登录的用户的用户名为基础。该服务器随后会获知某些预先建立的协议,从而将用户名与适当的应用程序相关联,诸如正通过端口监听服务135接受连接的应用程序115。无论如何,图1C还示出,应用程序120向客户150发送邀请消息167,其中 邀请消息167包括预连接数据175。 一般而言,消息163和167可以包括任何类型 的数据通信,诸如电子邮件、即时消息、或者某些其他的网络通信形式。在至少一 个实现中,消息163和167包括向安装在相应客户145和150处的协作API (未示 出)流送的可扩展标示语言("XML")文档。在一个实现中,预连接数据,特 别是唯一连接ID 160、 165还呈现为base64 (64基)文本。一般而言,给定的客户应用程序除了或许要为与服务器100的通信标识返回 网络地址和端口号之外,无需读取、解析、处理或以其他方式解释它所接收的给定 预连接数据。某些情况下,客户可以简单地使用预连接数据来通过公用静态端口连 接到特定的应用程序。例如,单个给定的客户可以从同一服务器的不同服务器应用 程序接收多个不同的邀请消息。如果由客户恰当使用,则每个不同的预连接数据组 会允许客户通过同一服务器的同一静态端口具有多个相应的不同服务器应用程序 连接。例如,图1D示出,客户145通过经网络103发送连接请求180来请求与服务 器100的连接,其中连接请求180包括预连接数据170。如前所述,这一预连接数 据包括服务器100的网络地址、端口 140的端口号、以及由应用程序115先前发送 的唯一连接ID 160。这些数据片的每一个都可用于将连接请求直接导向端口后的 适当应用程序。例如,网络地址为消息180提供到达服务器100的路由信息,端口 号标识进入服务器100的特定入口点,而唯一ID 160则提供用于处理该连接的应 用程序的标识。于是,例如图1D进一步示出, 一旦收到,端口 140处的监听服务135 (例如, 由监听程序(未示出),由监听服务135分配)就向应用程序115传递套接字190, 其中套接字190与连接请求180内提供的连接ID 160相对应。在一个实现中,这 一传送可以涉及将套接字190的句柄传递给应用程序115。于是,应用程序115现 在具有对套接字190的控制,并能通过端口 140与客户145 (或者在连接请求中提 交唯一ID 160的任何其他客户)自由通信。这一通信可以使用任何适当的通信协 议在应用程序和远程客户之间发生,虽然在此情况下某些通用的协议可以包括远程 桌面协议("RDP")以及远程过程调用("RPC")。如本文所述,多个应用程序可以通过端口 140与这一客户或任何其他客户进行通信。然而,为了进行通信,每个这种连接都需要包括其自身的唯一连接ID, 从而能够对不同的应用程序、甚至同一应用程序的不同实例加以区别。例如,图1D还示出,客户150经网络103将连接请求183发送给服务器100。在此情况下, 连接请求183不包含任何预连接数据,于是就很可能仅含有普通TCP通信所要求 的网络地址和端口 140的端口号。但因为连接请求183不包含任何预连接数据,所 以监听服务135就无法向应用程序提供套接字。相反,图1D示出,监听服务135 将用于客户150的套接字传递到"未决连接"185存储中。更具体地,监听服务135允许在监听服务135和客户150之间通过端口 140 发生临时网络连接,但是不允许与任何具体应用程序进行通信直到客户150提供该 数据。在某些情况下,监听服务135甚至会断掉该连接,或者简单地等待定量时间 直到收到预连接数据。 一旦客户150提供了该预连接数据(例如,数据175),监 听服务135就能判定唯一ID是否正确,如果正确,就把用于该唯一ID的套接字 传递给适当的应用程序,诸如应用程序120。因此,图1A至图1D示出可以用来让在会话级中操作的多个应用程序能够通 过同一静态端口进行通信的多种不同的组件和图示。如上所标识的,这些组件和图 示能够实现这一功能至少部分是因为使用了可用于将连接与特定应用程序相关联 的附加预连接数据。人们将会认识到,除了能够让多个服务器应用程序使用同一端 口之外,这一功能还可用于防止某些类型的拒绝服务("DOS")攻击。更具体地,某些类型的DOS攻击会在外部动作者用网络连接请求使计算机系 统超载时发生,这最终会使得计算机系统关闭,并在某些情况下允许该动作者危及 计算机上系统级信息的安全。上述组件有助于防止这类攻击,因为连接请求若不包 含预连接数据就不会让监听服务135向服务器应用程序提供对该连接的套接字的 控制。相反,如果未在连接请求的第一分组中找到预连接数据,则每个连接或是被 明确拒绝,或是会在未决连接存储185中驻留某一预定时间之后被丢弃。因此,本 发明的实现能够提供多种有用的安全特征。除了前述之外,本发明的各实现还可以通过用以执行一特定方法的一个或多 个功能步骤和相应的非功能动作来描述。更具体地,图2和图3分别从服务器(例 如,服务器100)和客户(例如,客户145、 150)的角度示出包括用与通过服务器 处的单个静态端口与多个服务器应用程序通信的一系列动作和/或步骤的方法。图2 和图3以及以下的讨论将包括对术语"第一"和/或"第二"的引用。应该认识到, 这些标号主要是为了说明各术语间的区别,而非特定顺序。例如,"第一应用程序"可以是也可以不是在一序列中使用或以其他方式发挥功能的第一个应用程序,但至 少是与"第二应用程序"不同的应用程序。类似地,"第二应用程序"只需要不同于"第一应用程序",因此它没有必要是在"第一应用程序"之后或之前使用或以 其他方式访问的应用程序。无论如何,图2在服务器(或共享计算机系统)示出一种提供可对单个端口 的通信访问的多个应用程序的方法,本方法包括将第一连接标识符与第一应用程序相关联的动作200。动作200包括将第一连接标识符和第一应用程序相关联并将第 二连接标识符和第二应用程序相关联,其中所述第一和第二应用程序可以在会话级 操作。例如,正在服务器100的系统级110上操作的端口监听服务135从正在服务 器100的会话级105上运行的应用程序(例如,115、 120)实例接收就绪消息113 和123。服务135随后主存由这些应用程序创建的相应组件对象(例如,155、 157), 并将消息113和123内的应用程序标识符(例如,"AppID115"、 "AppID120") 与相应的唯一连接ID 160、 165相关联。此外,图2示出,该方法包括接收具有连接标识符的客户连接请求的动作210。 动作210包括接收客户连接请求,该客户连接请求包括端口号、共享计算机的网络 地址、以及第一连接标识符。例如,应用程序115经XML数据流通过消息167将 预连接数据170发送给客户145。客户145又进而将连接请求180发送给服务器100, 其中请求180包括在消息167中接收到的预连接数据170。图2还示出,该方法包括将客户连接请求转发给第一应用程序以使得该第一 应用程序通过该端口与客户相连接的动作220。例如, 一旦标识了在消息180的预 连接数据170中找到的唯一连接ID 160,监听服务135就将与唯一的连接ID 160 相关联的套接字190的控制转发给服务器应用程序115。此外,图2示出,本方法 还包括通过同一端口提供不同的客户连接的动作230。动作230包括通过与端口号 相对应的端口将不同的客户连接提供给第二应用程序。例如,如图1D所示,客户150发送连接请求183,该请求不包含该客户先前 在消息163中接收到的任何预连接数据175。 一收到消息183,监听服务135就允 许客户150和服务器IOO之间的连接,但是不允许客户150与任何应用程序连接, 这至少部分是因为无法立即从请求180中标识应用程序。因此,监听服务135将该 连接请求与对应于该客户150和唯一连接ID 165的套接字195相关联,并将套接 字195存储在未决连接存储185中。监听服务135随后保持这一连接直到它接收到 预连接数据175,或者在某一预定时间后简单地断掉这一连接。图3根据本发明一实现,从客户的角度示出通过共享计算机系统的单个端口 与多个应用程序进行通信的一种可选方法。更具体地,图3示出,本方法可以包括接收与第一应用程序进行通信的邀请的动作300。动作300包括接收与服务器计算 机系统处的第一应用程序进行通信的第一邀请,该第一邀请至少包括端口号和第一 连接标识符。例如,客户145接收消息167,该消息167包括与服务器IOO处的应 用程序115相连接的邀请。消息167还包括预连接数据,该数据至少包括与应用程 序115相关联的唯一连接ID 160、以及服务器100的网络地址和与端口 140相关 联的端口号。此外,图3示出,本方法包括接收与第二应用程序进行通信的邀请的动作310。 动作310包括接收与服务器计算机系统处的第二应用程序进行通信的第二邀请,该 第二邀请至少包括端口号和第二连接标识符。例如,虽然没有明确示出,但是客户 145还可以接收邀请163,该邀请163包括与应用程序120相关联的不同的唯一 ID 165。如同消息167 —样,消息163也包括服务器100的网络地址以及端口 140的 端口号。因此在这种情况下,消息163和167至少在它们的相应唯一连接ID (即, 160相比于165)上有所不同。此外,图3示出,本方法包括通过服务器处的同一端口与第一和第二应用程 序通信的步骤340。步骤340包括通过端口号与服务器处的第一和第二应用程序通 信,使得该客户通过服务器的同一静态端口经网络与多个应用程序通信。例如,客 户145如果对邀请163和167做出反应,则能够通过端口 140与服务器应用程序 115和120通信。虽然步骤340能够包括任何数量或次序的相应动作来完成该步骤,但是图3 示出,步骤340包括发送带有第一连接标识符的第一连接请求的动作320。动作320 包括将第一连接请求发送给服务器,该第一连接请求包括第一连接标识符。例如, 客户145可以经由端口 140将消息180发送给服务器100,其中消息180包括预连 接数据170,而预连接数据170又包括唯一连接ID 160。图3还示出,步骤340包括发送带有第二连接标识符的第二连接请求的动作 330。动作330包括将第二连接请求发送给服务器,该第二连接请求包括第二连接 标识符。例如,客户145将另一类似的连接请求消息(未示出)发送给服务器100, 其中该类似的连接请求至少由于包括预连接数据175而有所不同,该预连接数据 175则包括唯一连接ID 165。在收到来自客户145的第一和第二连接请求,并且标识出与每一请求相关联的唯一连接ID时,监听服务135就将用于每一连接的不同通信套接字的控制分配 给每个不同的应用程序实例(例如,115、 120)。这样,应用程序115和120通过 同一静态端口或例如端口 140而具有与该客户的单独连接。因此,在图2和图3中描述的方法提供了客户和服务器能够通过同一服务器 端口有效地连接到多个应用程序的多种方法。如前所述,这为现有系统提供了诸多 优点,特别是在静态端口数量有限而产生顾虑的情况下,诸如在实现防火墙的网络 系统中。本发明的实施例可以包括含有各种本发明计算机硬件的专用或通用计算机, 这将在以下做出进一步讨论。更具体地,本发明的范围内的实施例还包括用于携带 或在其上储存计算机可执行指令或数据结构的计算机可读介质。这类计算机可读介 质可以是可由通用或专用计算机系统访问的任一可用介质。作为示例而非限制,这 类计算机可读介质可包括RAM、 ROM、 EEPROM、 CD-ROM或其它光盘存储、 磁盘存储或其它磁存储设备等物理存储介质、或其它可用来以计算机可执行指令或 数据结构的形式携带或储存所期望的程序代码装置并可由通用或专用计算机访问 的任何其他介质。当通过网络或另一通信连接(或者硬连线、无线、或硬连线和无线的组合) 向计算机传输或提供信息时,计算机将该连接适当地视为计算机可读介质。由此, 任一这类连接适当地称为计算机可读介质。上述的组合也应当包括在计算机可读介 质的范围内。计算机可执行指令例如包括促使通用计算机、专用计算机或专用处理设备执 行一个或一组特定功能的指令和数据。虽然已经用具体到结构特征和/或方法动作 的语言对主题进行了描述,但是应该理解在所附权利要求中定义的该主题不必限于 上述具体的特征或动作。相反,上述具体特征和动作作为实现权利要求的示例形式 而公开。本发明可以用其它具体形式来实施,而不脱离其精神或本质特征。所描述的 实施例被认为在所有方面都仅是说明性而非限制性的。因此,本发明的范围由所附 权利要求书而非以上描述来指示。该权利要求书的等效技术方案的含义和范围以内 的所有更改将被包含在其范围内。
权利要求
1.在被配置成经网络在会话级操作的多个应用程序与一个或多个客户计算机系统之间提供通信的共享计算机系统处,一种通过单个端口提供到所述共享计算机系统处多个应用程序的网络连接的方法,包括以下动作将第一连接标识符和第一应用程序相关联,并将第二连接标识符和第二应用程序相关联,其中所述第一和第二应用程序在会话级操作;接收客户连接请求,所述客户连接请求包括与一端口相关联的端口号、所述共享计算机系统的网络地址、以及所述第一连接标识符;将所述客户连接请求转发给所述第一应用程序,使得所述第一应用程序通过所述端口与所述客户相连接;以及通过与所述端口号相对应的端口将不同的客户连接提供给所述第二应用程序。
2. 如权利要求l所述的方法,其特征在于,还包括在提供所述不同的客户连 接之前接收对所述不同客户连接的不同客户连接请求的动作,所述不同客户连接请 求包括所述端口号,但是未能包括第一或第二连接标识符中的任一个。
3. 如权利要求2所述的方法,其特征在于,还包括将所述不同客户连接作为 未决连接进行存储的动作。
4. 如权利要求3所述的方法,其特征在于,还包括接收用于所述不同客户连 接的第二连接标识符的动作。
5. 如权利要求4所述的方法,其特征在于,还包括将与所述第二连接标识符 相关联的连接套接字转发给所述第二应用程序的动作。
6. 如权利要求1所述的方法,其特征在于,还包括将所述第一连接标识符和 所述第二连接标识符作为XML文档发送给一个或多个客户的动作。
7. 如权利要求l所述的方法,其特征在于,还包括将连接套接字与所述第一 连接标识符相关联的动作。
8. 如权利要求7所述的方法,其特征在于,向所述第一应用程序转发所述连 接包括向所述第一应用程序提供对所述连接套接字的控制的动作。
9. 如权利要求l所述的方法,其特征在于,与所述端口号相关联的端口是静 态端口。
10. 如权利要求1所述的方法,其特征在于,接收客户连接请求并将所述客 户请求转发给所述第一应用程序的动作由在系统级操作的监听服务来执行。
11. 如权利要求1所述的方法,其特征在于,所述主存第一和第二应用程序 的共享计算机系统是客户计算机系统。
12. 如权利要求l所述的方法,其特征在于,还包括以下动作 在所述端口处接收下一个客户连接请求,所述下一个客户连接请求未能在最初一组分组中提供与所述端口相关联的任何连接标识符;以及在标识出在所述最初一组分组中没有找到预连接数据时,拒绝所述客户连接请求。
13. 如权利要求1所述的方法,其特征在于,还包括将多个唯一连接标识符分配给与所述端口号相关联的端口的动作,所述多个唯一连接标识符至少包括所述 第一和第二连接标识符。
14. 如权利要求13所述的方法,其特征在于,所述第一连接标识符包括来自 发送所述客户连接请求的客户的用户名或电子邮件地址中的任一个。
15. 如权利要求13所述的方法,其特征在于,还包括至少从所述第一应用程 序接收所述第一应用程序准备好与一个或多个客户通信的指示的动作。
16. 如权利要求15所述的方法,其特征在于,还包括以下动作 向所述第一应用程序分配所述第一连接标识符;以及将预连接数据发送给所述第一应用程序,所述预连接数据至少包括所述第一 连接标识符以及与所述端口号相关联的端口 。
17. 如权利要求16所述的方法,其特征在于,还包括以下动作 将所述第一连接标识符以及所述第一应用程序的标识符与由所述第一应用程序创建的组件对象相关联;其中所述组件对象被配置成在所述会话级操作的所述第一应用程序和在所述 系统级操作的监听服务之间提供通信。
18. 在被配置成与共享计算机系统处在会话级操作的多个应用程序进行通信 的计算机系统处, 一种通过所述共享计算机系统处的单个端口与所述多个应用程序 通信的方法,包括接收与服务器计算机系统处的第一应用程序进行通信的第一邀请的动作,所 述第一邀请至少包括端口号和第一连接标识符;接收与所述服务器计算机系统处的第二应用程序进行通信的第二邀请的动作,所述第二邀请至少包括端口号和第二连接标识符;以及通过所述端口号与所述服务器处的所述第一和第二应用程序通信,使得所述 客户经网络通过所述服务器的同一静态端口与多个应用程序进行通信的步骤。
19. 如权利要求18所述的方法,其特征在于,所述通过端口号与所述第一和 第二应用程序通信的步骤还包括将第一连接请求发送给所述服务器的动作,所述第一连接请求包括所述第一 连接标识符;以及将第二连接请求发送给所述服务器的动作,所述第二连接请求包括所述第二 连接标识符。
20. 在被配置成经网络在会话级操作的多个应用程序和一个或多个客户计算 机系统之间提供通信的计算机系统处,一种具有存储其上的计算机可执行指令的计 算机程序产品,所述指令在被执行时,使共享计算机系统处的一个或多个处理器执 行通过单个静态端口对所述多个应用程序提供连接的方法,包括将第一连接标识符和第一应用程序相关联,并将第二连接标识符和第二应用 程序相关联,其中所述第一和第二应用程序在会话级操作;接收客户连接请求,所述客户连接请求包括与一端口相关联的端口号、所述共享计算机的网络地址、以及所述第一连接标识符;将所述客户连接请求转发给所述第一应用程序,使得所述第一应用程序通过所述端口与所述客户相连接;以及通过与所述端口号相对应的端口将不同的客户连接提供给所述第二应用程序。
全文摘要
分配在系统级操作的一端口监听服务来监听一静态端口。该静态端口能够索引与在会话级操作的多个应用程序相关联的多个唯一ID。服务器应用程序随后能够向客户提供这唯一连接ID、服务器的IP地址、以及用于连接的静态端口号。如果该客户通过引用唯一连接ID而进行连接,则端口监听服务可以将用于该连接的相应套接字转发给适当的应用程序实例,使得该应用程序仍然在会话级操作。由此,端口监听服务可以将单个静态端口的连接服务分派给在会话级运行的多个不同应用程序实例。
文档编号G06F15/16GK101263483SQ200680033353
公开日2008年9月10日 申请日期2006年9月8日 优先权日2005年9月12日
发明者J·奇克, R·W·舒米德尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1