具体实施方式
现在参见附图,尤其参见图1,图1描述了其中可实现本发明的方法,系统和程序的计算机系统的一个实施例.本发明可在各种系统中执行,包括在许多不同操作系统控制下的各种计算系统和电子设备。一般来说,在执行计算任务,例如处理计算机系统可访问的存储器中的数据的计算机系统中执行本发明.另外,计算机系统包括至少一个输出装置和至少一个输入装置.
计算机系统10包括在计算机系统10内传送信息的总线22或其它通信装置,和与总线22耦接,处理信息的至少一个处理装置,例如处理器12。总线22最好包括由桥接器和适配器连接,在计算机系统10内由多个总线控制器控制的低时延和高时延通路。当被实现成服务器计算机时,计算机系统10通常包括用于改进网络服务能力的多个处理器。
处理器12可以是在正常操作中,在可从诸如随机存取存储器(RAM)14之类动态存储装置和诸如只读存储器(ROM)16之类静态存储装置访问的操作系统和应用软件的控制下,处理数据的通用处理器,例如IBM的PowerPCTM。操作系统最好向用户提供图形用户界面(GUI)。在优选实施例中,应用软件包括当在处理器12上执行时,完成在图7、8、9和10的流程图中说明的操作,以及这里描述的其它操作的机器可执行指令。另一方面,本发明的步骤可由包含用于执行所述步骤的硬连线逻辑部分的特定硬件组件,或者由编程计算机组件和定制硬件组件的任意组合执行。
可按照包括在机器可读媒体上的计算机程序产品的形式形成本发明,所述机器可读媒体上面保存有机器可执行指令,所述机器可执行指令用于对计算机系统10编程,以便执行根据本发明的进程。这里使用的术语“机器可读媒体”包括参与向处理器12或者计算机系统10的其它组件提供指令,以便执行的任意媒体。这种媒体可采取任意形式,包括(但不限于)非易失性媒体,易失性媒体,和传输媒体。非易失性媒体的常见形式包括软盘,软磁盘,硬盘,磁带或者任意其它磁性媒体,光盘ROM(CD-ROM)或者任意其它光学媒体,穿孔卡或者具有小孔图案的任意其它物理媒体,可编程ROM(PROM),可擦除PROM(EPROM),电可擦PROM(EEPROM),快速存储器,任意其它存储芯片或盒式存储器,或者计算机系统10可读取,并且适合于保存指令的任意其它媒体。本实施例中,非易失性媒体的一个例子是大容量存储装置18,大容量存储装置18被描述成计算机系统10的一个内部组件,不过显然也可由外部装置提供。易失性媒体包括诸如RAM14之类的动态存储器。传输媒体包括同轴电缆,铜导线或光纤,包括构成总线22的导线。传输媒体还可采取声波或光波的形式,例如在射频或红外数据通信中产生的那些声波或光波。
此外,本发明可被下载为计算机程序产品,其中经由与总线22耦接的通信接口32的网络链路34(例如调制解调器或网络连接),通过嵌入载波或其它传播媒体中的数据信号,程序指令可从诸如服务器40之类的远程计算机被传送给请求计算机系统10。通信接口32提供到网络链路34的双向数据通信耦接,网络链路34可与局域网(LAN),广域网(WAN)连接,或者如同这里所述,直接与因特网服务提供者(ISP)37连接。特别地,网络链路34可提供对一个或多个网络的有线和/或无线网络通信。
ISP 37再通过网络102提供数据通信服务。网络102可以指的是使用特定协议,例如传输控制协议(TCP)和因特网协议(IP),相互通信的网络和网关的全球集合。ISP 37和网络102都使用传送数字数据流的电,电磁或光信号。通过各种网络的信号,和网络链路34上的,并通过通信接口32的信号是传送信息的载波的例证形式,所述信号把数字数据传送给计算机系统10,并从计算机系统10运送走数字数据。
当被实现成服务器系统时,计算机系统10通常包括经过与输入/输出控制器连接的多个外设部件互连(PCI)总线桥接器可访问的多个通信接口。按照这种方式,计算机系统10允许与多个网络计算机连接。
此外,多个外设部件可被加入计算机系统10中,与和总线22的多级之一耦接的多个控制器,适配器和扩展插槽连接.例如,在总线22上连接地启用音频输入/输出28,以便控制通过麦克风或其它声音或嘴唇动作捕捉装置的音频输入,或者控制通过扬声器或其它音频输出装置的音频输出.在总线22上还连接地启用显示器24,以便提供视觉,触觉或其它图形表现格式。在总线22上连接地启用键盘26和光标控制装置30,例如鼠标,跟踪球或者光标方向键,作为计算机系统10的用户输入接口。在本发明的备选实施例中,可增加额外的输入和输出外设部件。
本领域的普通技术人员会认识到图1中描述的硬件可变化。此外,本领域的普通技术人员会认识到描述的例子并不意味着对本发明的结构限制。
现在参见图2,图2是描述简化通信和对镜像站点的访问的分布式网络系统的方框图。分布式数据处理系统100是其中可实现本发明的计算机的网络.分布式数据处理系统100包含网络102,网络102是用于提供在分布式数据处理系统100内,连接在一起的各种设备和计算机之间的通信链路的媒体.网络102可包括诸如线缆或光缆之类永久连接,通过电话连接和无线传输连接产生的临时连接。
在描述的例子中,服务器104和105与网络102连接。另外,客户机108和110与网络102连接,并通过输入/输出(I/O)装置109和111提供用户接口。客户机108和110可以是,例如个人计算机或网络计算机。对本申请来说,网络计算机是与网络耦接的任意计算机,它从与网络耦接的另一计算机接收程序或其它应用程序。
分布式数据处理系统100的客户机/服务器环境在许多网络体系结构中实现.例如,万维网(Web)的体系结构遵循传统的客户机/服务器模型环境。术语“客户机”(client)和“服务器”指的是计算机作为数据的请求者(客户机)或数据的提供者(服务器)的一般角色。在Web环境中,诸如Netscape NavigatorTM之类web浏览器通常驻留在客户机系统108和110上,并呈递web服务器,例如服务器104和105供给的Web文档(网页)。另外,每个客户机系统108及110和服务器104及105都可用作“客户机”和“服务器”,并且可利用诸如图1的计算机系统10之类的计算机系统来实现。此外,虽然着重于能够实现下载或通信的服务器104和105,说明本发明,不过本发明也可由通过网络102参与对等网络通信和下载的客户机系统108和110实现。
Web可以指的是存在于全世界的服务器上的互连超文本文档的总和。诸如因特网之类的网络102提供在客户机系统108及110和服务器104及105之间传送这些超文本文档的基础结构。Web上的文档(网页)可用多种语言,例如超文本置标语言(HTML)或可扩展置标语言(XML)编写,由指定服务器中的特定web页服务器(例如服务器104)和能够访问该文件的路径名的统一资源定位符(URL)识别,随后利用诸如超文本传送协议(HTTP)或文件传送协议(FTP)之类协议,从特定web页服务器被传送给最终用户。Web页还可包括文本,图形图像,电影文件和声音,以及Java小程序和当用户通过点击链接而激活它们时执行的其它小的嵌入软件程序。特别地,多个web页可被链接在一起,形成网站。一般通过提供搜索与网站连接的其余web页的目录的组织机构首页,访问该网站。虽然参考因特网说明网络102,不过网络102也可在企业内部网或其它可用网络内工作。
单个服务器,例如服务器104可用作一个或多个镜像站点的主机,所述一个或多个镜像站点分别由特定的站点地址(下面称为镜像站点地址)识别。另一方面,多个服务器,例如服务器104和服务器105可用作多个镜像站点的主机。
另外,服务器104和105可用作在客户机108和110之间传送通信的通信主机。例如,服务器104和105可用作客户机108和110之间的电子邮件通信的通信主机。为了便于说明,利用电子邮件通信实现下面的例子,但是,其它类型的通信也可用于实现本发明,包括(但不限于)即时消息接发,文本消息接发,聊天,视频会议和可以通过网络102实现的任意其它形式的通信。
现在参见图3,图3是描述其中根据本发明的方法,系统和程序,按照接收者显示可访问的镜像站点的连网环境的例子。如图所示,发送者客户机320与包括因特网302和企业内部网304的多个网络通信连接。
诸如电子邮件之类通信的发送者从发送客户机320启动所述通信。驻留在发送客户机320上的电子邮件客户程序326管理发送者的电子邮件通信。电子邮件客户程序326处理并保存发送者产生和接收的消息。电子邮件客户程序326还包括提供用于显示电子邮件通信的GUI的邮件阅读器。可利用当前可用的邮件系统,例如LotusTM Notes(可从Lotus Development Corporation获得),实现电子邮件客户程序326。本领域的技术人员会认识到对于其它类型的通信,例如即时消息接发或视频消息接发,在发送客户机320内可以实现其它类型的通信控制器。
发送客户机320内的浏览器324建立与因特网302和企业内部网304的连接,并通过GUI向发送者呈现信息。浏览器324可支持HTTP提供的功能.此外,浏览器324最好支持其它远程网络服务,例如FTP服务,FTP服务简化跨越网络,例如因特网的文件的传送和分享。此外,浏览器324可以纳入电子邮件客户程序326并支持其他协议。
通过因特网302的电子邮件通信通常由电子邮件服务器,例如电子邮件服务器330管理。电子邮件服务器330包括邮件管理服务334,邮件管理服务334包括邮件守护程序和存储媒体。在一个实施例中,电子邮件服务器330接收发送客户机320发送的电子邮件,并保存该电子邮件,直到接收客户机310请求该电子邮件为止。接收客户机310包括向电子邮件服务器330请求电子邮件,并管理在接收客户机310接收的电子邮件的显示和存储的电子邮件客户程序316。
在一个例子中,发送者创作包括通过因特网302可访问的镜像站点的URL,例如网络服务器340服务的位置的电子邮件。另外,电子邮件包括通过企业内部网304可访问的镜像站点的站点地址,例如网络服务器350服务的位置。此外,在该例子中,发送者把电子邮件送给接收客户机310和接收客户机350。接收客户机350具有对企业内部网304和因特网302的网络接入。接收客户机310具有对因特网的网络接入,但是不具有对企业内部网304的网络接入。
最好,当电子邮件客户程序,例如电子邮件客户程序316和356收到包含镜像站点地址的电子邮件时,电子邮件客户程序可以有选择地只显示该电子邮件内,接收者可以访问的那些镜像站点地址。通过向每个站点地址发送因特网信息包搜寻协议(PING),或者利用测试在接收客户机310和托管这些站点地址的服务器之间,是否能够建立网络连接的另一方法,电子邮件客户程序316可以确定接收者能够访问哪些站点地址。从而,在该例子中,电子邮件客户程序316能够在接收客户机310实现可通过因特网302访问的站点地址的显示,电子邮件客户程序356能够在接收客户机350实现可通过因特网302和企业内部网304访问的站点地址的显示。另外,电子邮件客户程序最好以特定的属性,例如可与正常的站点地址区分开的特殊颜色,显示电子邮件内的镜像站点地址。特别地,可用另一特定属性显示不可访问的镜像站点地址,到不可访问的镜像站点地址的链接可以被停用。
另一方面,电子邮件客户程序可把所有镜像站点地址显示成电子邮件内的可选链接或对象,允许接收者选择镜像站点地址之一。响应这种选择,诸如浏览器314和352之类浏览器检测电子邮件主体内的镜像URL,或者通过关于提供相同或相似文件的站点搜索网络,收集镜像站点地址。浏览器随后确定用户能够访问哪些镜像站点。浏览器可返回镜像站点的可选列表,或者自动开始与第一个可访问的镜像站点的通信。
除了只显示接收者可以访问的那些镜像站点之外,还可关于其它特征,过滤镜像站点地址。例如,镜像站点地址可被过滤,从而如果接收者拥有访问镜像站点的口令,那么接收者会只查看受到口令保护的镜像站点的站点地址。在另一例子中,镜像站点地址可被过滤,以致接收者会只查看具有与在接收者客户机运行的操作系统兼容的可下载数据的那些镜像站点的站点地址。
网络服务器340和350包括镜像文件342和352。通过从与网络服务器240和350相关的站点地址访问web页,更可取的是使用户能够选择下载文件342和352。网络服务器240和350显然可包括多种资源,包括文件,应用程序,web页,处理服务,以及某一服务器通过网络提供的,可在另一位置镜像的任意其它功能。此外,镜像资源显然不必是完全相同的资源,而可以是具有类似特性的资源。
现在参见图4A和4B,图4A和4B是根据本发明的方法,系统和程序,说明发送者写的,具有嵌入式镜像站点地址的电子邮件的例证例子。本例中,发送者“Tom Jones”写出给称为“开发者”的电子邮件组和给John Anderson的发送者电子邮件400,如附图标记406所示。发送者电子邮件400的主题是“下载新版本5.4x”,如附图标记408所示。消息通知接收者,他们可在主站点地址“w3.ibm.com/newversion54x/os2”下载软件的新版本,如附图标记404所示,该目标站点地址位于如图3中所示的企业内部网304内。
在附图标记404图解说明的目标站点地址提供也可在镜像站点获得的可下载软件。根据一个实施例,发送者最好可输入与在附图标记404图解说明的目标站点地址相关联的镜像站点的站点地址。为了实现这种功能,本例中,当发送者把光标402移动到目标站点地址上,并点击右键时,发送者可选择输入镜像站点的站点地址。另一方面,发送者的其它输入可启动镜像站点的站点地址的输入。
本例中,在图4B的附图标记414图解说明的站点地址是用户输入的,与在附图标记404图解说明的目标站点地址相关联的镜像站点的站点地址。对于本例来说,“w3.ibm.com/newversion54x/linux”是可通过企业内部网304访问的,为不同的操作系统提供下载的另一站点地址。相比较,“w3.ibm.com/newversion54x”可通过因特网302访问。
在附图标记414图解说明的镜像站点的站点地址最好与目标站点地址相关联地嵌入电子邮件文本中。可设置特殊的标志或者使用标记来识别嵌入的镜像站点地址。当发送者电子邮件410被显示时,镜像站点的站点地址可被隐藏或者显现为可选择的链接。
现在参见图5A和5B,图5A和5B是根据本发明的方法,系统和程序,描述了发送者写的,具有由web浏览器启动的嵌入镜像站点地址的电子邮件的例证例子。图5A和5B中描述的例子的内容与图4A和4B中图解说明的例子的内容相同,但是这两组图之间,嵌入镜像站点地址的方法是不同的.
本例中,发送者正在查看显示可在如附图标记504所示的站点地址“w3.ibm.com/newversion54x/os2”访问的web站点的浏览器窗口500.在该web站点,通过选择可选择的文本506,用户可启动下载。例如,通过把光标502置于该文本之上并点击,用户可以选择可选择文本506.本领城的技术人员明白也可采用启动从web页的下载的其它方法。此外,在镜像站点显然可获得除软件下载之外的资源。
在查看web站点的时候,发送者可选择把电子邮件或者包括web页的站点地址的其它通信发送给其它用户。通过把光标502置于可选择的发送链接508上并点击,发送者可启动该通信。本领域的技术人员会明白调用某一功能,例如发送通信的其它方法也是可行的。
通过选择发送链接508,电子邮件或其它通信窗口被打开,例如图5B中图解说明发送者电子邮件510的窗口。在该例子中,同一个发送者,Tom Jones正在向开发者组和John Anderson发送电子邮件。浏览器最好发现可在当前站点获得的资源也可在镜像站点获得。特别地,浏览器可根据在该web站点的编码内标记的镜像站点地址,发现可在当前站点获得的资源也可在镜像站点获得。浏览器随后把镜像站点地址嵌入发送者电子邮件510内,如附图标记512所示。
现在参见图6A和6B,图6A和6B是根据本发明的方法,系统和程序,说明了接收的包括嵌入镜像站点地址的电子邮件的例证例子。在该例子中,图6A中图解说明的接收者电子邮件600被JohnAnderson接收。根据本发明的一个实施例,电子邮件客户程序检测接收者可以访问哪些镜像站点地址,并且只显示可访问站点的站点地址。电子邮件客户程序可向每个站点地址传送PING,以确定接收者是否可以访问该站点。本例中,在电子邮件客户程序确定可访问的站点之后,只有在附图标记602图解说明的站点地址才是可用的。相比较,图6B中的接收者电子邮件604被开发者1接收,开发者1能够访问位于如附图标记606所示的全部三个站点地址的镜像站点。虽然未示出,最好对在附图标记602和606描述的站点地址应用特定的文本属性,以指示这些站点地址是镜像站点。
在一个备选实施例中,电子邮件客户程序在不过滤的情况下,显示具有目标站点地址的所有嵌入镜像站点地址。接收者选择站点地址之一,所述站点地址之一调用浏览器窗口。浏览器随后检测电子邮件内的镜像站点地址,并确定对于电子邮件的接收者来说,哪些镜像站点地址是可访问的(如果有的话)。浏览器随后开始与全部可访问站点或者与第一个可访问站点的通信。此外,在接收者可访问多个镜像站点的情况下,通过找出访问速度最快的下载站点,浏览器可尝试使访问最优化。
现在参见图7,图7描述用户输入嵌入式镜像站点地址的进程和程序的高级逻辑流程图。如图所示,进程开始于方框700,之后进入方框702。方框702确定是否做出镜像站点输入选择。可如前面的例子中图解说明的那样做出所述选择,在前面的例子中,用户在目标站点地址上点击右键,从而选择增加镜像站点地址。如果未收到所述选择,那么进程在方框702循环。如果收到所述选择,那么进程进入方框704。方框704打开用于输入镜像站点地址的窗口。另一方面,用户可突出显示某一站点地址,随后在突出显示的站点地址上点击右键,从而把该站点地址指定为镜像站点地址。随后,方框706确定用户是否已完成镜像站点的输入。如果用户还没有完成所述输入,那么进程在方框706循环。如果用户已完成所述输入,那么进程进入方框708。方框708把镜像站点地址嵌入电子邮件,随后进程结束。在一个备选实施例中,镜像站点地址可被嵌入备选类型的通信中,例如即时消息中。
现在参见图8,图8描述从浏览器启动的通信发送镜像站点地址的进程和程序的高级逻辑流程图.如图所示,进程开始于方框800,之后进入方框802.方框802确定是否收到发送链接的请求.如果未收到发送链接的请求,那么进程在方框802循环。如果收到发送链接的请求,那么进程进入方框804。方框804打开通信窗口,例如电子邮件客户程序窗口。随后,方框806确定任意镜像站点是否被嵌入可依据当前站点地址访问的web站点的编码中。另一方面,浏览器可启动关于其它镜像站点的搜索。如果不存在其它镜像站点,那么进程进入方框808。方框808把当前站点地址作为可选择的链接写入通信窗口中,或者把当前web页复制到通信窗口中,随后进程结束。如果存在其它镜像站点,那么进程进入方框810,方框810嵌入与当前站点地址相关联的镜像站点地址,方框812把当前URL作为可选择的链接写入通信窗口中。随后,进程结束。在发送通信之前,用户指定接收者和通信内的其它数据。
现在参见图9,图9描述电子邮件客户程序执行的,根据接收者的网络接入,过滤接收通信中的镜像站点地址的进程和程序的高级逻辑流程图。如图所示,进程开始于方框900,之后进入方框902。方框902确定是否收到具有镜像站点地址的新通信。如果未收到具有镜像站点地址的新通信,那么进程在方框902重复。如果收到具有镜像站点地址的新通信,那么进程进入方框904。方框904检测哪些镜像站点是接收者可以访问的。通过ping所述站点地址,或者利用检测是否能够访问的另一方法,电子邮件客户程序可检测哪些镜像站点是接收者可以访问的。随后,方框906只把接收者可访问的web站点的那些站点地址显示成可选择的键接,所述可选择的链接具有与镜像站点相关的字体属性,随后进程结束。
现在参见图10,图10描述浏览器执行的,根据接收者的网络接入,过滤接收通信中的镜像站点地址的进程和程序的高级逻辑流程图.如图所示,进程开始于方框1000,之后进入方框1002。方框1002确定是否从具有嵌入镜像站点地址的通信选择某一站点地址。如果没有收到选择,那么进程在方框1002重复。一旦收到选择,那么进程进入方框1004。方框1004检测哪些站点地址是接收者可以访问的。浏览器从所述通信读取镜像站点地址,并借助PING或其它方法,检测哪些站点地址是接收者可以访问的.随后,方框1006启动对第一个可访问镜像站点地址的访问。另一方面,如果接收者可访问接收者选择的站点地址,那么可首先启动对选择的站点地址的访问。之后,方框1008显示可选择的可访问镜像站点地址。例如,可打开一个新的窗口,所述窗口列出可选择的可访问镜像站点地址,或者站点地址可被加入已显示的可选择站点地址的列表中。随后,方框1010图解说明一旦选择某一资源,那么利用其它可访问镜像位置优化资源访问。例如,浏览器可检测哪些镜像位置提供最佳的下载速度,并在站点之间转换,以便优化下载时间。随后,进程结束。
重要的是注意虽然在全功能数据处理系统的语境下描述了本发明,不过本领域的普通技术人员会认识到能够以指令的计算机可读媒体的形式,以及各种各样形式分发本发明的进程,并且本发明同样适用,与实际用于进行所述分发的信号承载媒体的特定类型无关。计算机可读媒体的例子包括可记录型媒体,例如软盘,硬盘驱动器,RAM,CD-ROM,DVD-ROM,和传输型媒体,例如数字和模拟通信链路,利用诸如射频和光波传输之类传输形式的有线或无线通信链路。计算机可读媒体可采取编码格式的形式,所述编码格式被解码,以便在特定的数据处理系统中实际应用。
虽然参考优选实施例具体表示和说明了本发明,不过本领域的技术人员明白在不脱离本发明的精神和范围的情况下,可在形式和细节方面做出各种改变。