CN100543724C - 提供和处理可执行网页内容的系统和方法 - Google Patents

提供和处理可执行网页内容的系统和方法 Download PDF

Info

Publication number
CN100543724C
CN100543724C CNB2006800022288A CN200680002228A CN100543724C CN 100543724 C CN100543724 C CN 100543724C CN B2006800022288 A CNB2006800022288 A CN B2006800022288A CN 200680002228 A CN200680002228 A CN 200680002228A CN 100543724 C CN100543724 C CN 100543724C
Authority
CN
China
Prior art keywords
file
web page
gateway
terminal
page contents
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006800022288A
Other languages
English (en)
Other versions
CN101103352A (zh
Inventor
全允豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
WIDERTHAN Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WIDERTHAN Co Ltd filed Critical WIDERTHAN Co Ltd
Publication of CN101103352A publication Critical patent/CN101103352A/zh
Application granted granted Critical
Publication of CN100543724C publication Critical patent/CN100543724C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • CCHEMISTRY; METALLURGY
    • C02TREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02FTREATMENT OF WATER, WASTE WATER, SEWAGE, OR SLUDGE
    • C02F3/00Biological treatment of water, waste water, or sewage
    • C02F3/02Aerobic processes
    • C02F3/12Activated sludge processes
    • C02F3/20Activated sludge processes using diffusers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01FMIXING, e.g. DISSOLVING, EMULSIFYING OR DISPERSING
    • B01F23/00Mixing according to the phases to be mixed, e.g. dispersing or emulsifying
    • B01F23/20Mixing gases with liquids
    • B01F23/23Mixing gases with liquids by introducing gases into liquid media, e.g. for producing aerated liquids
    • B01F23/231Mixing gases with liquids by introducing gases into liquid media, e.g. for producing aerated liquids by bubbling
    • B01F23/23105Arrangement or manipulation of the gas bubbling devices
    • B01F23/2312Diffusers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01FMIXING, e.g. DISSOLVING, EMULSIFYING OR DISPERSING
    • B01F2101/00Mixing characterised by the nature of the mixed materials or by the application field
    • B01F2101/305Treatment of water, waste water or sewage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Microbiology (AREA)
  • Hydrology & Water Resources (AREA)
  • Environmental & Geological Engineering (AREA)
  • Water Supply & Treatment (AREA)
  • Organic Chemistry (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种为终端提供可运行的网页内容的系统。本发明提供的系统包括服务器和网关,所述服务器用于提供包括由声明性语言编写的声明性语言部分和非声明性语言部分的可执行的网页内容;所述网关从服务器接收可执行的网页内容,将其转换成终端的网页浏览器可以执行的格式,并将转换后的内容传送给终端。

Description

提供和处理可执行网页内容的系统和方法
技术领域
本发明涉及一种通过网络连接用于数据交换的便携式终端,如手机,来提供各种内容和服务的方法和系统。更具体的说,本发明涉及一种具有提供下载到终端的网页服务和应用之技术特征和优点的无线因特网平台。
背景技术
目前,便携式终端访问因特网时使用的是以无线应用协议(WirelessApplication Protocol,简称WAP)浏览器为代表的专用于无线因特网的浏览器。在WAP浏览器的数个版本中,1.x版和2.x版的工作方式大相径庭。WAP1.x版采用无线标记语言(Wireless Markup Language,简称WML)和WMLScript作为具体的内容格式。也就是说,它使用WML和WMLScript在终端上执行简单的代码,在这里,WML相应于超文本标记语言(HyperTextMarkup Language,简称HTML),即有线因特网的标记语言;WMLScript相应于有线因特网中的JavaScript。具有这种格式的内容首先通过有线网络传送到WAP网关,并在网关处被转换成紧凑而高效的二进制格式(被称作“WBXML”),然后再通过无线网络传输。
然而,WAP 2.x版使用了更接近有线因特网中HTML标准的可扩展超文本标记语言(XHTML)移动框架(XHTMLMP),并且,一种类似于JavaScript的ECMAScript有望被引入到WAP 2.x版中。
无论是有线还是无线,浏览器都使用具有有限词汇和声明性语法的标记语言作为内容格式。因此,很难就表现形式制作出具有高自由度的内容。为了克服上述限制,下面例举的技术已经或即将被采用:
脚本(Script):JavaScript是最有代表性的一个。加载在网页服务器上的文本格式的程序代码(脚本)以其本身的文本格式被传送给浏览器,或者在WAP的情况下,先在网关处被转换成字节代码,然后再被传送给浏览器。同标记语言相比,脚本是一种具有相对更强大功能的编程语言。它被用来在终端上实现用HTML、WML等具有声明性语法格式的语言无法实现的功能。
小应用程序(applet):由太阳微系统公司(Sun Microsystems,Inc.)开发的Java小应用程序(Java applet)是用Java语言编写的小程序。一个小应用程序要预先进行编译并加载在网页服务器上,被浏览器下载后,通过浏览器中的Java虚拟机来运行,并将运行结果同其他内容一起显示在屏幕上。
插件:以微软视窗操作系统的ActiveX插件为例,它含有针对特定终端平台的本机代码,并主要是以动态加载库(Dynamic Load Library,简称DLL)的形式存在,经过浏览器下载后,它就被动态的加载和执行。它可以使用终端平台所提供的每一个应用编程接口(API),所以能够提供各种各样的、强大的功能。然而,因为插件允许指针操作,并且难以预先测试程序的功能,所以其缺点在于很难阻止病毒和恶意软件在客户机上的运行。
HTML这种类型的标记语言最初是为了显示简单的文本而设计的,因此存在基本原理上的限制。为了克服标记语言的这种限制,在主要使用HTML和WML的内容中,人们采用前面描述的各种技术作为一种补充。因为前述每种技术有其各自的优缺点,所以最近的个人电脑(PC)浏览器支持前述所有技术。因而导致浏览器的结构变得复杂,体积变大。并且,使用这些技术可能会出现安全问题和使浏览器变得不稳定。以便携式终端如手机为例,同个人电脑相比,它具有较小的计算能力和匮乏的资源,例如内存。随着对于浏览器各种功能的需求不断增加,相应的,类似个人电脑浏览器的各种功能正在逐渐被采用。然而,同个人电脑相比,这给手机上的浏览器在尺寸、复杂度和不稳定性方面造成了更多的问题。
在个人电脑情况下,有人提出过完全不同于传统HTML的技术来克服上面提到的浏览器和标记语言的各种限制和缺陷。在以“长角”(现在被称为Vista)为代号的操作系统中,将会包括一种浏览器,该浏览器支持一种叫做“可扩展应用标记语言”(Extensible Application Markup Language,简称XAML)的新的标记格式。“XAML”可能会包含一部分使用“C#”编程语言编写的代码。它在被转换为可以运行于微软.net框架(Microsoft.NETframework)下通用语言运行时(Common Language Runtime,简称CLR)的中间语言(Intermediate Language,简称IL)字节代码之后才被执行。这种转换可以提前离线进行,然后将字节代码直接从服务器传送给浏览器。也可以将内容以文本格式传送给浏览器,然后在浏览器中进行字节代码的转换和执行。任何一种情况下,使用编程语言(例如C#)和声明性标记语言(XAML)编写的内容最终都会被转换成可直接执行的中间语言(IL)的字节代码,然后再被浏览器动态的加载和运行。通过使用这种技术,既保留了标记语言其格式可以用方便、紧凑的方式表达和与传统网页开发方法相兼容的优点,又满足了利用通用编程语言优点(例如,各种用户界面和功能)的需要。因此,同目前使用HTML和附加代码(Script、插件Plug-in等)的网站相比,有望提供更加强大和易用的用户接口。然而,像XAML这类技术是为具有强劲CPU和大内存的个人电脑而开发的,在具有低运算能力和小内存的便携式终端如手机上是不方便实现的。
同时,在有线因特网的情况下,为了防止受到病毒感染或泄露个人信息,必须对用户下载的内容或程序采取安全机制,因此,导致这种机制被广泛的应用。对于无线通信来说,通信成本要比有线网络高,用户通常根据产生的流量来付费。因此,如果在用户不知道的情况下,用户下载的内容执行了一些操作,就可能产生意外的通信费用。也就是说,用户会直接受到经济损失,以及遭遇有线网络的常见问题如病毒传播和个人信息的泄露。
下面将对安全功能的必要性和常见的处理方式进行详细的描述。当直接从网络下载的代码,如Java小应用程序、ActiveX等,被运行时,因为浏览器很难知道该代码将要执行哪些操作,所以在终端设备上需要采用安全功能。如果一个普通的二进制代码被下载和运行,对本机代码(CPU可以直接运行的代码)如ActiveX来说,终端不能提前检查该代码会执行哪些操作,也不能在运行时执行特殊的安全策略。因此,当这种代码被下载时,需要进行一个验证过程来防止病毒或恶意软件在终端的运行。
同时,对于Java的一个具有代表性的版本“Java2标准版”(J2SE)来说,其规范建立在如下假定之上:代码最开始都是通过网络下载得到的。因此,J2SE提供了比ActiveX更加复杂详尽的安全功能。这一功能主要基于代码是从哪个服务器上下载的,在代码运行时采用限制可允许功能的形式。
在Java2移动版(J2ME)的配置中,为了减少内存的占用和提高处理速度,有限连接设备配置(Connected Limited Device Configuration,简称CLDC)的虚拟机(VM)和运行库的安全功能比上述J2SE更简单,这里的CLDC是指为有限内存和处理能力的设备,如手机,进行的配置。在移动信息设备规范(Mobile Information Device Profile,简称MIDP)1.x版中,只进行简单的辨别是可能的,其根据应用程序是否经过验证来允许或阻止其访问敏感功能。在最近制定的MIDP2.0版的规范中,可以为每个功能的访问制定策略。
通常情况下,所有移动设备上的Java安全机制都假定应用程序是从一个服务器下载的,安全策略根据该服务器的地址而进行选择和应用。因此,这样做的限制就在于当应用程序和虚拟机停止之前,其策略是无法改变的。这样,如果构成网页内容应用程序的代码可以从几个服务器下载,在上述常规Java安全机制下,适当的安全功能就无法被正确的应用。更进一步地,它不能提供根据环境以及其他方面广泛和充分应用的复杂详尽的安全功能。
发明内容
技术问题
本发明的一个目的是提供一种用于提供可执行的网页内容的新网页平台,更具体的说,是提供一种能通过无线网络提供具有各种功能和格式的内容的方法和系统,在便携式终端上运行该内容可以克服便携式终端运行速度慢、内存小的限制。
本发明的另一目的是提供一种用于补充和制定更复杂详尽的通过无线网络传输的无线内容的安全功能的方法和系统,以及运行所述无线内容的终端。
本发明的又一目的是提供一种提高通过无线网络传输网页内容的效率的方法和系统。
本发明的又一目的是提供一种在缓存无线网页内容时实现缓存一致性的方法和系统。
技术方案
为了达到前述目的,根据本发明的一个实施例,本发明提供了一种用于提供可执行的网页内容的系统,其中,该系统包括服务器和网关,所述服务器用于提供包括由声明性语言编写的声明性语言部分和非声明性语言部分的可执行的网页内容;所述网关从服务器接收可执行的网页内容,将其转换成终端的网页浏览器可以执行的格式,并将转换后的内容传送给终端。
上述系统中,所述终端为无线通信终端,所述网页内容为无线网页内容。
所述网页服务器和所述网关通过有线网络相连接,并且网关通过无线网络连接至终端。
所述终端包括无线网页浏览器,所述网关通过无线网络接收到来自无线网页浏览器的获取网页内容的请求,然后通过有线网络就该网页内容向服务器提出请求,所述网页内容包括一个或多个文件,发送给服务器的获取网页内容的请求包括对一个或多个文件的请求,最后网关接收到服务器响应对服务器的请求而发送来的网页内容,并将该包含有一个或多个文件的网页内容在一个事务中传输给终端。
所述网页内容中包含的一个或多个文件可以包括一个网页内容文件和至少一个资源文件,对该网页内容的请求包括对网页内容文件的请求和对至少一个资源文件的请求。
所述网页内容包括静态文件、动态生成的文件、程序代码(proceduralcode)的源代码、可执行二进制文件和多媒体文件中的至少一种。
所述非声明性部分可以包括程序代码,所述网关包括将声明性语言部分转换成程序代码的装置和将所述程序代码编译并转换成可执行文件的装置。
所述非声明性部分可以包括程序代码,所述网关可以包括用于编译所述声明性语言部分的装置,用于编译程序代码的装置,以及用于将所述声明性语言部分的编译结果和所述程序代码的编译结果合并并且由此产生一个可执行文件的模块。
所述网关包括用于检测已经被转换成可以在终端网页浏览器运行的格式的网页内容中,是否包括有违反安全策略的功能。
如果网页内容中的文件包含有违反安全策略的功能,所述网关包括用于阻止所述文件被传送到终端的装置。
如果网页内容中的文件包含有违反安全策略的功能,所述网关包括用于在所述文件被传送到终端前获取终端用户许可的装置。
如果网页内容中的文件包含有违反安全策略的功能,所述网关包括用于将代码插入所述文件的装置,其中,所述代码导致运行时执行预定义的操作,所述预定义的操作由预定义的系统安全策略来决定。
根据本发明的其他方面,一种用于为终端提供可执行网页内容的系统,其中,所述系统包括:服务器和网关,所述服务器用于提供所述可执行网页内容,所述网关接收来自服务器的可执行网页内容,将其转换成终端网页浏览器可执行的格式,并将转换后的内容传送给终端,其中,所述网页内容包括静态文件、动态生成的文件、程序代码的源代码、可执行二进制文件和多媒体文件中的至少一种,并且所述网关能编译声明性语言和程序代码。
所述程序代码的源代码包括Java代码,并且所述可执行二进制文件包括jar文件。
根据本发明的其他方面,提供一种用于从服务器接收可执行网页内容并将其转换为终端网页浏览器可以执行的格式的网关,其中所述网页内容包括静态文件、动态生成的文件、程序代码的源代码、可执行二进制文件和多媒体文件中的至少一种,并且所述网关包括编译器,所述编译器用于编译所述声明性语言和程序代码,并将其转换成可执行文件。
所述网关通过有线网络与所述网页服务器通讯,并且所述网关通过无线网络同终端通讯。
所述终端包括无线网页浏览器,所述网关通过无线网络接收来自无线网页浏览器的获取网页内容的请求,然后通过有线网络就该网页内容向服务器提出请求,所述网页内容包括一个或多个文件,所述发送给服务器的获取网页内容的请求包括对一个或多个文件的至少一部分的请求,所述网关在一个事务中将包括在网页内容中的所述一个或多个文件传送给终端。
包括在所述网页内容中的一个或多个文件包括一个网页内容文件和资源文件,所述获取网页内容的请求包括对网页内容文件的请求和对资源文件的请求。
所述程序代码的源代码可以包括Java代码,所述可执行二进制文件可以包括jar文件。
所述网关包括用于将声明性语言部分转换成程序代码的转换器;用于编译所述程序代码的编译器;用于分析来自网页服务器的可执行二进制文件的处理器,并且如果引用一个外部文件的话,该处理器获取该外部文件;和用于确定来自网页服务器的网页内容是否含有导致安全问题的功能的安全管理器。
进一步地,所述网关包括用于检测网页内容中是否包括违反安全策略的功能的装置,所述网页内容已经被转换成可在终端网页浏览器中执行的格式。
如果网页内容中的文件包含有违反安全策略的功能,网关就不将所述文件传送给终端。
如果网页内容中的文件包含有违反安全策略的功能,网关在将所述文件传送给终端之前要得到终端用户的许可。
如果网页内容中的文件包含有违反安全策略的功能,网关就将代码插入所述文件中,其中,所述代码在运行时引起某种操作的执行,所述操作是由预定的系统安全策略确定的。
所述终端可以包括无线网页浏览器,网页内容含有至少一个文件,所述网关通过无线网络接收到无线网页浏览器获取网页内容的请求,所述获取网页内容的请求包括已经在浏览器内缓存的所述文件的名称和最后修改时间,所述网关通过有线网络向服务器发出获取所述网页内容的请求,所述向服务器发出的获取网页内容的请求包括对至少一个文件的请求,所述网关接收服务器响应请求而发出的包含在所述网页内容中的至少一个文件,将之同缓存的文件的名称和最后修改时间进行比较,并且只将同缓存文件相比已经修改过或新增加的文件传送给终端。
根据本发明的另一方面,提供了一种用于存储能浏览可执行网页内容的网页浏览器的计算机存贮介质,其中,所述网页浏览器接收和执行二进制可执行代码格式的网页内容。
根据本发明的另一方面,提供了一种包含有用于浏览可执行网页内容的网页浏览器的终端,其中,所述网页浏览器接收和执行二进制可执行代码格式的网页内容。
所述网页内容包括至少一个文件,并且所述至少一个文件包含有网页内容所引用的共享资源文件,所述终端包括一缓存,并且
当所述共享资源文件在缓存中被缓存时,一个表示有多少文件引用所述共享资源文件的引用计数与之存储在一起。
如果终端接收到的网页内容中包含的文件版本比缓存的共享资源文件版本新,就将新版本的共享资源文件保存在缓存中,并将已有所缓存的共享资源文件的引用计数减1。
如果引用计数减小至0,就删除已有所缓存的共享资源文件。
附图说明
图1是本发明的一种用于提供可执行网页内容(XC)的网络系统的示意图;
图2是图1的详细方框图;
图3是本发明的用于提供可执行网页内容(XC)的网络系统的又一个示意图,该示意图对本发明中的安全功能进行示意;
图4显示了Java类文件结构的一个实例;
图5和图6是本发明的一个实施例中对用于减少事务数量的基本方法进行说明的网络系统的示意图;
图7是根据本发明的一个实施例对采用缓存防止非必要传输的浏览器的算法的示意图;
图8是根据本发明的一个实施例对采用缓存防止非必要传输的网关所执行的算法的示意图;
图9是现有浏览器中所采用的管理共享资源的方法的示意图;
图10是根据本发明的一个实施例所采用的管理共享资源的方法的示意图。
具体实施方式
本发明提出了一种被称为可执行内容标记语言(eXecutable ContentMarkup Language,XCML)的新型标记语言,并提出了一种提供网页内容的方法和系统,该网页内容采用XCML进行描述。XHTML或WML是一种常规无线因特网内容的标准格式,与它们相类似,本发明所提供的XCML是一种基于XML的标记语言。也就是说,与HTML或WML一样,XCML是一种主要由声明性语言(declarative language)部分(下文中简称为“标签部分”,意味着它用标签表示)组成的标记语言格式。然而,正如包含在HTML中的JavaScript一样,XCML允许将无法用声明性文法表示的内容(非声明部分)采用诸如JavaScript的程序代码表示,并将该内容以文本格式包含在网页内容文件中(Java代码部分),或者允许在网页内容文件中引用一个外部Java文件。
如图1所示,根据本发明的一种用于提供XCML格式的内容和其他网页内容的网络系统被设计为在网关200中将其内容转换为诸如Java的可执行代码(在Java中一般被称为“Java字节代码”),并将可执行代码通过无线网络传输到终端300并执行。所述网关200通过有线网络与网页服务器100相连。因此,尽管常规的网络系统由网页服务器(在服务器端)和浏览器(在客户端)组成,本发明的网络系统由网页服务器、网关和浏览器(客户端)组成。图1是这种配置的网络系统的方框图,图2是对图1中示出的各个单元的方框图,在图2中,对网页服务器100,网关200和终端300分别进行了详细示意。在下文中,将描述图1和图2中的每个单元。虽然这里假定将Java用作编程语言,并将Java字节代码作为执行代码使用,但本发明并不局限于上述假设,其他具有类似特征的语言也可用于本发明。
在图1和图2中,网页服务器100可以是利用HTTP协议提供WAP内容或普通网页内容的普通网页服务器。由网页服务器所提供的内容可以是静态文本,图片文件,或由通用网关接口(CGI)生成的动态文件,Servlet等。这个文件可以包含根据本发明的XCML(可执行内容标记语言)格式的文本文件(如图2中的文件120和130),Java源代码文件140,jar文件150(一种将至少一个Java类文件和其他资源文件压缩在一个文件中的文件),或图像、音乐或电影文件等。由于由网页服务器100所提供的XCML文件可以自由地包含各种可执行部件,因此与常规的无线因特网内容相比,有可能提供可以实现更强大的功能的内容。此处所提到的文件不仅仅指常规计算机文件系统中使用的文件,还指作为一个单位通过网络传输的数据集合(如程序代码,二进制文件等)。根据本发明,利用无线终端平台(操作系统)本身所提供的各种功能以开发和提供该内容已成为可能,而无线终端平台所提供的功能并不局限于终端浏览器所提供的功能。例如,有可能提供利用存储在终端中的电话号码信息执行某一特定操作的内容,而上述功能在常规的浏览器中是不可能提供的。
本发明的网关可以与网页服务器之间进行协商,以确定是否有必要以大量的事务更新存储在终端的缓存中的内容,该事务的数量多于在终端和网关间(无线部分)的无线事务的数量。这样做的目的是为了减少无线部分中的单位通信(事务)的数量,因为无线部分有很长的往返行程时间,所以当信息被分割并被多次传送时,它所造成的时延会变得相当大。与之相比,在有线部分中的大量交互并不需要消费许多时间。根据本发明的方案,减少终端与网关间(即无线部分)的业务量以提高效率,同时充分利用了终端的缓存功能。利用缓存以提高通信效率的改进将会参考图5-8进行详细说明。
如图2所示,下面对XC网关200中各个方框的功能进行详细说明。XCML Java转换器210执行一个功能,该功能是通过一种事先确定的方法将根据本功能的XCML格式的文本文件转换成Java代码。此处生成的Java代码既可以是文本格式的Java源代码,也可以是包含有源代码片断的某一种表达格式表示的代码。如上所述,XCML的一部分包含有特定于XCML的标签(前述的“标签部分”),一部分为用文本格式表示的Java代码。由XCML标签组成的声明部分在网关200中被转换为Java代码,并在服务器100与最初用Java编写的部分(Java代码部分)进行合并,然后编译生成Java类。合并标签部分和Java代码部分,并将合并后的代码编译成Java类的方法可以有多种。其中一种可能的方法是将标签部分转换成Java源语言文本,并与现有的Java代码部分进行合并,形成一个完整的Java源程序,然后进行编译。在此类方法中,XCML Java转换器210用于将XCML文本文件中的标签部分转换为以文本格式表示的Java源代码,然后与现有的Java代码部分进行合并,并将合并结果传输到Java编译器220中。Java编译器220用于编译Java源代码以生成Java类文件。
在本发明的另一个实施例中,标签部分被直接转换为Java字节代码而不是Java源代码格式,最初用Java代码编写的Java代码部分被单独编译后,与标签部分的字节代码进行合并,从而生成一个Java类。在此情况下,XCML Java转换器210将XCML文件中的标签部分转换为字节代码,而Java编译器220编译Java代码部分并与标签部分的字节代码进行合并,从而生成一个Java类文件。
如果一个XCML文件引用Java代码140(参见图2),网关向网页服务器请求所引用的Java代码140并接收它。在此情况下,将在XCML Java转换器210中生成的Java代码与从网页服务器上获得的Java代码进行合并,生成一个可执行文件。在此情况下,Java编译器220不仅编译在XCMLJava转换器210中生成的Java代码,同时也编译从网页服务器上获得的Java代码,然后将两者合并起来。
除Java代码140外(参见图2),jar文件150可以直接被XCML文件引用。在此情况下,网关解释该XCML文件,向网页服务器请求必需的jar文件并接收它。同样的,浏览器通过网关向网页服务器请求的新的网页内容可能不含有XCML文件而是包含了最初用Java语言撰写并被独立编译的jar文件。如果从网页服务器100所下载的文件是不需要编译的jar文件,jar文件处理器230取代Java编译器220对所下载的文件进行处理。如果jar文件引用外部文件,jar文件处理器230解析该列表并从网页服务器100上获取相应文件。
同样的,如果在网页服务器100中有被XCML文件中所引用的单独文件,则可从网页服务器100获得此类资源。一个独立的资源获取器(并未在图上示出)用于获取在网页内容文件中所引用的外部资源文件,资源获取器可在XC网关200上实现。
缓存260是一个用于存储例如从网页服务器100上获取的文件或编译得到的二进制文件的空间。本领域的普通技术人员都知道,缓存可以被设计成用来实现不同的功能,因此,它的详细功能以及各个部件之间的关系未在此处示出。在缓存的有效性由HTTP协议标准检查方面,缓存260与常规的网页缓存类似,但是缓存260还具有存储编译后的结果以及从网页服务器上所接收的文件的其他功能。
安全管理器240在字节代码被传输到客户端(如终端300)之前,检查字节代码中是否存在会引起安全问题的代码。如果所要传输的字节代码中包含有会引起安全问题的代码,则下载该代码的操作可能会被拒绝,或者它可以在终端用户许可的情况下被下载。详尽的安全管理方法将会在下文中详细讨论。
协议栈250是用于执行每一层通信协议的程序部件集。考虑到用于连接到终端的无线因特网所具有的特征,协议栈250采用修改过的HTTP协议以最小化通信中的往返过程。根据本发明的此类协议的进一步细节会在下文中详细讨论。
现在对终端300中的各个部件进行详细讨论。终端300可以是可实现对无线因特网内容进行下载,执行和显示的各种设备,例如,移动电话,个人数字助理(PDA)等。
在图1和图2中的可执行内容浏览器(XCB)310是一个客户端应用,它与XC网关200相连,并下载、执行主要由字节代码组成的内容。可执行内容浏览器310在终端300上运行。
用户接口320是指在浏览器310本身的用户接口,例如,通用菜单。也就是说,它是指无论浏览器所浏览的内容是什么基本上都应具有的通用用户接口部件。例如,它包括回到前一页,刷新,打开一个URL,书签,历史,选项等。
在图2中,诸如页1、页2之类的方框用于描述一个从服务器上下载并被执行的内容单元。每一页通过统一资源定位指示符(URL)明确定义,并可包含一个或多个Java类以及资源文件。
用户接口部件360是一种为用户接口(UI)部件,例如,标签(一行文本框),按钮等。这些部件能够在XCML或Java程序中被使用或继承。特别的,根据本发明的一个实施例,在XCML中,每个UI部件能够用一个与部件对应的标签表示。例如,为了生成一个其上带有“帮助”字样的按钮,可以采用如下描述:
<button text=”Help”/>
这一标签被转换为用于生成某一特定类实例的代码,例如,类“widerthan.xcb.Xbutton”就是这样的一种用户接口部件。根据本发明,在内容中扩展或修改系统(XCB)所提供的基本用户接口部件360的观感(thelook&fell)或功能成为可能。也就是说,为了扩展或修改基本用户接口部件,一个新类可以继承对应于用户接口部件的Java类,并补充一些函数或进行修改。例如,一个是继承类widerthan.xcb.Xbutton的名称为MyButton的类在XCML内容的“头”(header)部分被定义,为了使用这一类,在XCML内容的主体(body)部分对标签做如下定义:
<button text=”Help”class=”MyButton”/>
布局管理器350(通常被称为布局引擎)用于根据内容中的定义在显示屏上安排用户接口部件360。例如,如果在网页服务器的内容定义将一个具有预定形状的按钮部件安排在屏幕的左边,则当在网关200由该内容转换后的字节代码在XC浏览器310中执行时,布局管理器350用于安排部件的位置以使得它与最初内容相符合。
缓存270用于缓存Java字节代码和从服务器上下载得到的其他资源文件。正如在下文中将要详细描述的,在网关200与终端300间的无线部分的通信业务量可通过适当的缓存操作而减少。
浏览器310的协议栈与XC网关200中的协议栈相对应。
如上所述,与HTML或WML相类似,XCML主要包括由声明性语言格式组成的部分,以及与包含在HTML中的JavaScript相类似,无法用声明性语法表示的内容可以通过Java代码表示并被包含在一个网页内容文件中,或者在网页内容文件(XCML文件)中引用一个外部Java文件。
常规的网络系统包括一个网页服务器和一个终端,一个包含有声明性标记语言和JavaScript部分的网页内容文件可通过以下例示步骤显示在终端的屏幕上:
(1)终端浏览器通过一个指定的URL向网页服务器请求网页内容文件;
(2)网页服务器生成网页内容文件或阅读通过URL所指定的网页内容文件,并通过网络传输任一这些文件;
(3)终端浏览器下载并语法分析所述文件;
(4)分析器根据一个预先定义的方法生成用户接口部件,并用文件中指定的格式初始化这些用户接口部件;
(5)JavaScript部分被转换成可执行的内部表达格式并保存下来;
(6)当每一个用户接口部件被初始化后,用户的输入可按照设计的特性进行处理。在所执行的功能不是用户接口部件的基本功能的情况下,可通过对与用户接口部件相链接的JavaScript的调用来实现对用户输入的处理。例如,在以一个例如按钮输入的用户输入使得在多个用户接口中聚焦一个用户接口部件时,初始化要改变的该特定用户接口部件的颜色可通过以下代码实现:
<a href=”http://www.foo.com”
Onfocus=”JavaScript:this.style.backgroundcolor=’yellow’”>
Link
</a>
根据上述的初始化配置过程,移动焦点到特定部件的用户输入被指定动作“改变颜色”。
与上述说明相比,为了根据本发明在终端下载和执行XCML文件,例如执行以下操作:
(1)浏览器(终端)与预定的XC网关200相连,并传输对XCML文件的请求,所述XCML文件通过某一URL指定。
(2)网关向服务器100请求从终端300请求的XCML文件。
(3)在服务器100上生成XCML文件或检索由URL所指定的文件,并传输到网络。
(4)网关200下载并语法分析XCML文件,得到Java可执行代码。此处所得到的代码可执行与前述常规浏览器相同的操作(包括生成用户接口部件并初始化它)。
(5)网关编译包含在下载的XCML文件中的java代码,或将由XCML所引用的外部java代码编译进Java可执行代码,并将编译结果传送到终端300的XC浏览器中。
(6)XC浏览器310下载Java字节代码,根据Java字节代码动态加载类,并执行该代码。也就是说,XC浏览器310从网络上下载Java字节代码,并加载到正在被执行的Java虚拟机中,从而使得应用程序的字节代码所定义的类可以被使用,然后执行这些代码。在执行代码的过程中,生成并初始化用户接口部件。
(7)通过上述步骤(6)所生成的用户接口部件或由单独包括的Java代码对用户输入进行处理。
采用常规的网页服务器和终端浏览器进行浏览的方法与本发明的方法具有以下主要不同点:
(i)尽管常规浏览器在浏览器中包括分析网页内容文件、生成并初始化用户接口部件360的功能,而根据本发明由网关200完成上述功能。换句话说,网关形成Java代码并下载到终端中,客户端很少执行所下载的代码。
(ii)在常规的浏览器中,程序部件用JavaScript形式表达,采用JavaScript表示的部分可以通过使用JavaScript编译器和字节代码解释器来执行,后者把用JavaScript表示的部分转换为可执行格式(一般来说,惟一的字节代码)。另一方面,根据本发明,用Java表示的程序代码与声明性语言部分一起编译以转换成Java字节代码,然后,在终端的Java虚拟机(JVM)中执行。
本发明具有以下优点:
因为通过(声明性语言部分的)声明语法形成的代码和(非声明部分的)程序代码采用相同的应用程序接口(API),因此两者在共同工作时更直接、更有效。
所有的应用程序接口,以及Java虚拟机(JVM)和终端库(terminallibrary)所具有的功能都能不受终端浏览器限制而使用。终端可在不语法分析网页内容文件的前提下立即执行代码。
即使有新的语法被添加到用来表示内容的标记语言中,也不需要在终端的浏览器上进行诸如添加相应功能的修改。
安全功能
参考图3,对根据本发明的安全功能进行说明。
图3是本发明中用于提供可执行网页内容(XC)的网络系统的示意图。参考图3,对本发明中的安全功能进行举例说明。如图3所示,为了在终端上执行内容提供商(CP)服务器B上的页P,如果页P引用了存在于同一个通信公司(carrier)的服务器A上的库L,XC网关200将组合了P和L的Java应用程序下载到客户端(XC浏览器310)。此时,不同程度的安全策略可以被应用在通信公司的库和内容提供者的程序中。换句话说,一个安全策略可以允许由通信公司管理的L使用终端的所有功能,并阻止P获得诸如拨号、电话目录等某些特定功能。
根据本发明,提供了一种新的安全机制,通过该机制可以在一个内容(P+L)中使用不同的安全策略。在本发明中,与现有方法不同的是,网关可以对从每个服务器上下载的Java代码做静态检查,一旦发现所得到的代码违反为每个服务器所指定的安全策略,对上述代码的下载就会被禁止或只有在用户允许的情况才能下载。
在下文中将会对本发明中所涉及的安全策略进行详细说明。在网页用标记语言而非Java代码编写的情况下,则网关200在语法分析文件并生成Java代码时所执行的安全策略的特定方法是已知的。因此,省略对这一情况的进一步解释说明。在下面对Java类文件的结构以及相应的安全机制进行说明。
在网关200从服务器100上下载Java源代码或二进制文件(类文件或包含有类文件的jar文件)后,网关为了执行安全功能应当可以决定并控制终端上的哪个功能可被该代码访问。为了实现上述操作,网关需要对Java类文件进行分析。图4显示了Java类文件结构的一个实例。其中,在被实际执行的字节代码被包含在方法区。尽管本机代码(例如汇编代码)可以访问任何存储器,通过Java解释器或JIT(Just-In-Time)编译器执行的Java字节代码只能访问类和通过类文件中的常数池所分配的函数。
当网关200发现某一代码要访问在安全策略下被禁止访问的类或函数(例如,阅读电话目录)时,就必须采取适当的措施,如禁止使用该代码或只有在终端用户许可的情况下才允许使用该代码。要执行上述措施可以有几种方法。下面是这些方法的一些例子。在这些方法中,所使用的某一具体方法可由通信公司的策略决定,或由为各个不同安全域中所分配的安全策略决定。
(a)禁止下载的方法:如果构成用户(也就是客户端)所要下载的页的类文件中包含有违背安全策略的代码,则从网关上下载这些文件到终端的过程会被终止,并通知用户和管理者。在图1和图2所显示的实施例中,上述功能通过安全管理器240执行。
(b)下载时需要用户确认的方法:用户被通知(用户所请求的)该页访问该功能,并在用户同意后,浏览器移到该页。例如,一个由用户向网关请求的页调用拨号功能,网关向用户通告该情况(例如,网关向终端发送消息“当前程序包括拨号功能,你是否想继续?”),网关都将被通知用户是否同意。如果用户同意,该页被下载到终端上。
(c)在运行时接收用户批准的方法:上述两种方法具有在某些代码真正违反安全策略前完全禁止下载的特点。尽管如此,也有一些情况下最好在执行这些违背安全策略的代码时禁止或要求用户许可。换句话说,与其完全阻止其某项功能的代码,不如在执行时根据代码实际执行的功能应用不同的安全策略。例如,允许访问某些服务器,而不是阻止对所有服务器的访问。同样的,允许代码对终端中某些文件(在某些目录中的文件)的访问,而不是完全阻止代码访问终端中的文件。在运行时根据不同的情况选择应用安全策略不能在网关中实现,而是应当在运行时在终端中实现。因此,在运行时执行某些操作的代码可以在网关中被插入到一个程序中以执行所需要的功能。在下文中对程序运行时的阻止(checking)方法的具体实施例进行解释说明。第一种方法是替换所引用的类:当某一无线网页P的代码要访问类C中的函数F,而这一访问由于安全策略是被禁止,则一个继承类C并覆盖(override)函数F的新类C1可以预先在终端中准备或作为P的一部分下载。在终端中,类C1的函数F只有在用户同意的情况下才调用类C的函数F。为实现这种安全功能,网关将在(包括在P中的)该类的常数池引用C的入口(entry),修改为引用C1的另一个入口,并将修改后的版本下载到客户端。因为C1继承C,对于C中除了函数F外的所有函数仍可按以前一样被调用,而原始页P中除了函数F外的函数都被执行。上述方法有一个缺点,那就是如果不可能覆盖就不能应用,在例如类C或函数F是不可改变的(final)的情况,就是这样。
所提供的第二种方法被用于克服上述缺陷:生成一个新的类D,代替继承类C的类C1,当D中的F经用户同意后,C中的F被调用。因为D并不是一个继承C的类,而仅是调用F的函数,如果对常数池中C的引用按照上述描述被替换成D,它就无法调用除F以外的函数。因此,在常数池中生成一个对D的新入口,并对方法部分中的字节代码进行扫描,以确定将调用类C的有问题的F的代码转换为调用类D的F的代码,同时,在调用C的F之前要求收到用户同意的代码被插入到D的F中。
根据上述方法,不同的安全策略可在部分代码上建立并执行。也就是说,如当一页是从不同的服务器上下载的,则对这些代码可建立并执行不同的安全策略。
除了上述说明,根据运行时的条件也可有其他方式应用不同的安全策略。
对通信效率的改进
与有线因特网相比,现有方法(WAP,特别是网页)的浏览器在应用于无线因特网时响应速度通常很低,这是因为无线因特网的低传输速度,特别是比传输速度更慢的往返行程时间(RTT)。在传统的浏览器中,页中所需要的其他文件,例如图像文件,JavaScript文件,串接样式表(CascadingStyle Sheet-CSS)文件之类,可在用HTML或WML写成的文本从服务器上下载和对之语法分析之后再向服务器请求。因此,为了显示一页,需要花费几倍的事务时间(请求和响应)。在有线(PC)浏览器中,采用了利用HTTP1.1中的管道协议的方法或与服务器打开两个或两个以上TCP连接的方法,使得在下载多个文件时可缩短时间。在无线因特网中所采用的WAP浏览器中,HTTP1.1中的管道或多个TCP连接由于实现上的问题基本不使用。此外,即使实现是可能的,打开多个TCP连接会带来每一连接初始化所必需的延迟的问题,以及由于TCP协议中缓慢的初始速度所带来的开销(这是TCP的特点),在无线因特网中这样的延迟与开销尤其关键,因此,这种方法在无线因特网中是没有效率的。此外,虽然HTTP1.1中的管道具有缩短全页加载时间的效果,但在网页引用外部文件的情况下,所需要的总时间至少需要包括两个事务(即,一个事务用于接收页文本,一个事务用于在文本被语法分析后请求所确定的剩余资源/文件)以及语法分析所接收到的文件的时间。
根据本发明的一个实施例中所采用的改进后的协议,可使事务的数量最少,同时防止了传输量的增加,从而减少网页加载的时间。
图5和图6是根据本发明的一个实施例对减少事务数量的方法进行说明的示意图。图5显示了在常规的无线因特网服务器和浏览器中下载一个包含有多个文件的网页到浏览器的过程。图6显示了根据本发明的一个实施例下载一个包含多个文件的网页到浏览器的过程。在图5中,一个箭头表示一个事务,一个小矩形表示一个文件。根据图5所示的方法,浏览器首先得到文本文件,然后对它进行语法分析,浏览器随后获取页中所引用的文件。因此,每个文件伴随一个事务,所有的事务都通过无线因特网进行。即使整个系统在服务器和浏览器之间包括一个网关(在图5中系统中的网关用虚线表示),这一传统网关也如以前那样仅仅传递请求和响应,由浏览器完全决定从服务器上传输哪些文件。因此,在现有系统中的网关并不影响无线事务的数量。
与此同时,根据图6中所显示的本发明的一个实施例,如果浏览器310向网关200请求某一网页,网关200能够从服务器取得该网页所要求的其它文件,而不需要浏览器的介入,并将所有的文件一起发送到浏览器中。为了完成这一操作,网关200应当能够决定某一具体网页所需要的文件。也就意味着当浏览器通过指定用于表示一个网页的URL(描述性URL)请求该网页时,网关找到该网页所需要的其它文件。根据本发明,XC网关200根据浏览器310所传送的描述性(representative)URL从服务器上获取XCML文件,然后语法分析所得到的文件,从而知道在XCML文件中静态引用的外部文件。从而向网页浏览器100请求这些文件,无需从浏览器上进行请求,然后利用一个网页文本文件收集所请求的文件,并将它们一起下载到终端的浏览器310上。通过上述操作,网关可因此将在有线部分中通过多次交互而从服务器上所收集的数据通过无线部分中的一个事务就传送到终端。在图5和图6所示的实例中,假设在一个网页中包含三个文件。对事务次数进行比较,在图5(不包含网关)所示的情况中有3次无线事务,而在图6中有1次无线事务和3次有线事务。因为RTT在有线网络中的间隔一般远远小于无线RTT的,在有线事务中的几次有线事务对总的响应时间的影响很小。因此,图6中无线事务次数更少的方法与图5中的方法相比具有更高的通信效率。
此外,根据本发明的另一个实施例,为了使得通信方法效率更高,如果一个要被浏览的网页的新版本被缓存在终端的缓存中,该网页将不会被再次下载以减少在通信上所耗费的时间。
在无线因特网情况下,在很多情况下,用户按照通信总量对每一信息包付费,所以,不必要的下载会导致费用总量的增加和响应时间的延长。因此,如果某一文件已经被缓存在浏览器中则最好不要再次下载。根据本发明,图7和图8示意了采用缓存以防止不必要传输的算法,并对浏览器端和网关端所执行的算法各自做了说明。在下文中,在参考图7和图8对所述的浏览器和网关的操作进行说明前,首先对本发明中的缓存所采用的算法进行解释说明。
1、当浏览器100通过使用一个代表网页的URL向网关200请求一个网页时,如果该网页被缓存在终端中,向网关通报所缓存的网页内容文件最后一次修改的时间以及“所缓存的网页文件清单”,“所缓存的网页文件清单”包含有网页所引用文件中保存在缓存中的每一个文件的名称和最后一次修改时间。为了实现这一目的,浏览器将每一网页的所关联文件(主网页与所引用的文件)和所缓存的网页文件清单一起保存在缓存中。根据本发明的一个实施例,保存在缓存中的文件在网页单元到期,并且从缓存中删除,因此在大多数情况下,在主网页中所引用的文件与主网页一起被保存在缓存中。一旦主网页更新后指向新的文件,则缓存中所保存的文件与实际所引用的文件会变得不同。
网关根据浏览器所要求的描述性URL请求网页内容文件。
2a、在网关从服务器上获得XCML类型的主网页的情况下:XCML被语法分析。作为语法分析的结果,得到网页文件清单,所述的网页文件清单是网页中所引用文件的清单。如前所述,网页文件清单包含有某网页所要求文件的名称以及这些文件的最后修改时间。清单中所包含文件的新版本从服务器上获取并被保存在网关的缓存中。然后,如果保存在网关缓存中的内容是新的,则根据HTTP If-Modified-Since协议,无需对实际内容进行下载。与此同时,最后一次修改时间的数据信息被添加到网页文件清单中。网关将缓存在浏览器中并由浏览器在步骤1所传送的网页文件清单与在网关中作为语法分析结果得到的网页文件清单进行比较。作为比较结果,网关将改变后的文件或新近添加的所缓存的文件与在网关中得到的网页文件清单一起发送到终端上的浏览器。网关同时指示浏览器删除服务器端不存在的文件。如果缓存在浏览器中的文件的文件名和最后一次修改时间与服务器端的文件相一致,那么这些文件无需改变也就不必下载。
2b、如果从服务器所接收到的网页内容文件是一个二进制文件:所述的二进制文件包括有Java类文件以及相应网页的元数据。例如,如果是一个通常用于Java程序的封装和传输过程的jar文件,则该文件在一个称为META-INF的内部目录中包含有一个名称为MANIFEST.MF的文本文件,该文件包含有诸如版本、程序名称、开始类之类的信息。根据本发明的一个实施例,MANIFEST.MF文件除了包含有在MANIFEST.MF文件中通常所包含的信息外,还包括有在相应文件中所引用的其他文件的清单。在这种情况下,网关语法分析该元数据文件(MANIFEST.MF)并得到网页文件清单,该网页文件清单中包含有主网页所需要的所引用的文件的名称以及所引用文件的最后一次修改时间。然后,那些需要新下载的文件(即不同于缓存于浏览器中的文件)通过浏览器以与上文中所解释的XCML类型的主网页相同的过程实现下载。
一旦浏览器只传送了描述性网页URL而没有传送如步骤1中所述的网页文件清单,换句话说,假如浏览器没有缓存相应页,则网关首先将网页文件清单发送到浏览器而不在步骤2a和步骤2b中传送实际文件。这样做的目的是为了在部分文件被其它网页引用并且已经存在于缓存的情况下,即使浏览器没有缓存所要求的网页本身,可避免不必要的下载。
3、通过上述过程,浏览器接收网关所发送的文件以及网页文件清单(S60)。如果包含在网页文件清单中的文件没有被接收到,而且没有被保存在缓存中或保存在缓存中的最后一次修改时间早于清单上显示的最后一次修改时间,则向网关请求该文件。
4、浏览器在缓存中保存先前不存在于缓存的文件,并在接收到更新后的文件的情况下更新缓存。包含有网页中所引用文件的网页文件清单等同样根据所接收到的信息进行更新(S100)。
5、当下载并保存文件的操作完成后,与网页相应的Java类被加载并执行。(S110)
根据上述方法,所有必需的文件在下载时,只要在浏览器与网关间通过多达两个事务即可实现,而无需不必要的事务。
在下文中,参考图7对为了完成上述方法而在终端中所实现的步骤进行解释说明。
在步骤S10中,如果用户请求一个新的网页,例如,通过点击以前所见到网页中的任意链接或从书签中选择一个网页,则将在步骤S20中确定所选择网页的内容是否被缓存在终端中。如果所选择网页没有被缓存,则在步骤S50中向网关请求该网页。如果所选择的网页已被缓存,则浏览器从缓存中检索所缓存的网页文件清单(S30)。当向网关请求该网页时,它向网关传送所缓存的网页文件清单(S40)。浏览器在步骤S60中接收主网页文件(或网页内容文件),所引用的文件,以及在浏览器的请求下从网关所传送的网页文件清单。在步骤S70中,浏览器检查是否有文件包括在从网关所接收到的清单中却没有被缓存。如果存在没有被缓存的文件,另外向网关请求缺失的文件(S80)并接收(S90),当完成接收并再也没有文件要接收时,将所接收到的文件存储在缓存中(S100),然后执行主网页文件(或网页内容文件)(S110)。
下面将根据本发明的一个实施例,参考图8,对为了完成上述方法而在网关中所实现的步骤进行解释说明。
在步骤S210中,网关等待终端连接和启动通讯。当终端连接到网关时,基于一个预先确定的建立过程在网关与终端间建立通讯,然后转到步骤S220。在步骤S220中,等待,直到终端发出请求,然后接收该请求。在步骤S230中,确定所接收的请求是否是连接终止请求,如果是连接终止请求,则终止与相应终端的连接有关的操作。如果不是连接终止请求,则确定该请求是否是描述性URL请求(S240)。描述性URL的请求指的是当用户通过输入URL或点击一个链接从而新请求某一网页时,对相应URL的数据的请求。对描述性URL的请求是一个与在浏览器中在接收到所要网页的部分文件后对缺失文件的请求不同的概念。也就是说,如前所述,当执行一个网页内容文件所需要的文件被传输到浏览器后,该浏览器确定要完成网页所需要的文件是否都已被接收,如果还有文件未收到则请求这些丢失的文件。浏览器向网关所发送的请求不仅仅包括诸如连接请求、连接终止请求之类的基本请求,还包括对描述性URL的请求,对单独文件的请求(当一些用于完成网页的文件缺失时所用)以及其它类型的请求。在对描述性URL请求的情况下,网关从浏览器接收一个已缓存的网页文件清单,该清单中包括相应网页所需且已存储在缓存中的文件的文件名以及最后修改时间。
如果从浏览器所得到的请求是对描述性URL的请求,网关根据URL向网页服务器请求主网页中的内容(S250)。网关在接收到主网页文件后检查所接收网页的类型(S260),如果所接收到的网页内容文件是XCML类型,语法分析该文件,从而得到网页文件清单(S270)。如果所接收到的文件是诸如jar文件的二进制文件,则语法分析MANIFEST文件并得到文件网页清单(S280)。在得到网页文件清单后,将该网页文件清单与从浏览器收到的缓存的网页文件清单进行比较,并得到需要向浏览器新下载的文件的清单(S290)。在所要下载的文件被确定后,从服务器或网关的缓存检索所述文件(S300),并随同文件清单传送到浏览器(S310)。
在步骤S240中,如果来自浏览器的请求不是对描述性URL的请求,也就意味着浏览器请求缺失文件。在这种情况下,从服务器或缓存检索相应文件(S300),然后将相应文件送到浏览器(S310)。
除了上述描述的方法外,还存在其它特定的方法,这些方法将终端中所缓存的文件预先通知网关,从而有效利用终端中的缓存,并使得网关只需传送必要的文件。
共享的资源管理功能
在常规的与网页有关的系统中,人们都希望能够共享不同网页普遍使用的库和图像,因此,有很多理由去提高基于XCB的系统的缓存使用率,如页面加载速度,数据包支付,缓存使用量,等等。然而,在不同的页面间共享诸如库或图像等资源(以下称为共享资源)会导致共享资源版本不一致的情况。
图9给出了常规浏览器中管理共享资源的方法。a.xhtml和b.xhtml是表示不同页面的XHTML文件,并且共享JavaScript库c.js。图9(a)表示下述情况:两个xhtml文件的1.0版本在服务器上,这两个文件共享1.0版本的x.js,并且所有的文件都已缓存在终端。
当服务器上的所有文件都升级到1.1版本时,图9(b)表示如下情况:当终端在线连接到服务器时,该终端已经访问过a.xhtml页面,并且终端上缓存的a.xhtml和c.js文件已经分别升级到1.1版本。如果该终端在这时离线,当用户尝试使用b.xhtml页面时,因为b.xhtml是1.0版本,而c.js是1.1版本,所以版本不一致就会出现,如图9(c)所示。
当不同的页面共享某一资源时就会出现的版本不一致问题不仅会在网页上出现,当在桌面操作系统中安装几个应用程序时也会发生。解决这一问题最简单的办法就是不要在不同的网页间共享资源,并且将每个网页的每个备份文件放在不同的地方。但是由于终端内存的大小有限,这种方法很难被采纳,尤其是有许多小页面的时候。
根据本发明的一个实施例,图10给出了一种解决上述版本不一致问题的方法。
图10(a)与图9(a)类似,表示服务器上有1.0版本的a.xcml,b.xcml和c.java文件,并且上述版本已经缓存在客户端。在本实施例中,所有可共享的资源文件都有自己的引用计数。引用计数表示有多少不同的文件引用所讨论的文件。例如,图10(a)中的c.java的引用计数为2。
图10(b)中,终端在线访问a.xcml页面并得到1.1版本的a.xcml和1.1版本的c.java文件。这里,正如前面解释过的那样,在终端实际进行传送和保存的不是XCML和Java源文件,而是在网关根据XCML和Java源文件生成的类文件。然而,为了方便起见,在图10中这些文件仍用其源文件的名称。此时,在保存1.1版本c.java之前,原先保存在终端缓存中的对应1.0版本c.java的引用计数减去1。同时,如图10(b)所示,如果原始版本的引用计数在减小后并不为0,1.0版本c.java就不会被删除,并且1.1版本c.java被单独存储。1.1版本a.xcml取代1.0版本a.xcml,并且其具有一个访问1.1版本c.java的链接。
如图10(c)所示,如果客户离线时访问b.xcml,将会使用最初链接的1.0版本c.java。如果访问a.xcml,1.1版本c.java会一起被访问。
如果对一个引用计数为1的共享资源文件进行更新,则只有更新后的文件得到保留,原始资源文件被删除(因为原始资源文件的引用计数变成了0)。根据前面解释过的方法,在多个页面共用同一资源文件的同一个版本时,只存贮一个文件将提高效率。同时,通过按照需要存储不同的版本,可以避免版本不一致。
下面的伪代码是为了解释一个实行上述操作的算法的实例。在下文中,“page”表示其对应的“URL”代表的网页内容文件,且“resources”为“page”需要的资源文件列表。
function download_page(url):
page,resources=request_page(url)
for r in resources:
*179cache_resource(r)
cache_page(page)
function cache_page(page):
if page.url in cache:
;不链接先前的页
for r in cache[page.url].resources:
r.ref_count一;
if r.ref_count==0:
delete cache[r.url+r.version]
;放入新页
cache[page.url]=page
f or r in page.resources:
cache[r.url+r.version].ref_count++
function cache_resource(r):
cache[r.url+r.versoin]=r
图中所示的每一个模块都概念性地代表程序的一个功能。在将本发明应用到实际程序的过程中,一个模块有可能会成为程序的一个或多个部分,或者几个模块的功能被做到一个或几个程序组件中。具体的功能模块实现方法可以由本领域的普通技术人员做出的各种改动和结合。
工业实用性
因为从网关200传送给终端300的网页内容已经被转换成终端300可以直接执行的形式,使得即使在处理能力有限的终端上也有可能实现快速执行和显示所述内容。
因为使用声明性语法生成的代码和程序代码使用相同的应用程序接口(API)和对象,两种代码之间的互锁(interlocking)更加直接和高效。
没有了终端浏览器的限制,Java虚拟机(JVM)和所有的API以及终端库中的函数都可以使用。并且所述代码在终端可以立即执行,而无需对网页内容文件进行语法分析(parsing)的过程。
即使用来表示内容的标记语言中增加了新语法,终端的浏览器也不必做改动。
通过减少无线间隙中的通信次数和有效使用缓存来减少流量,通信效率被显著提高了。在防止版本不一致和维持已缓存文件一致性的同时,保证了缓存效率。

Claims (30)

1.一种用于提供可执行网页内容的系统,其中,所述系统包括服务器和网关,所述服务器提供包含有声明性语言的声明性语言部分和非声明性部分的可执行网页内容,所述网关接收来自服务器的可执行网页内容,将其转换成终端网页浏览器可以执行的格式,并将转换后的内容传送到所述终端。
2.根据权利要求1所述的系统,其中,所述终端为无线通信的终端,所述网页内容为无线网页内容。
3.根据权利要求1所述的系统,其中,所述服务器和所述网关通过有线网络连接,所述网关通过无线网络连接到所述终端。
4.根据权利要求3所述的系统,其中
所述终端包括无线网页浏览器,
所述网关通过无线网络接收无线网页浏览器要求获取网页内容的请求,并通过有线网络向所述服务器请求获取所述网页内容,
所述网页内容包括一个或几个文件,
所述发送给服务器要求获取网页内容的请求包括对一个或多个文件的请求,和
所述网关接收到服务器响应其请求而发送来的网页内容中的一个或多个文件,并将所述一个或多个文件在一次事务中传送给终端。
5.根据权利要求4所述的系统,其中,
所述网页内容中含有的一个或多个文件包括网页内容文件和至少一个资源文件,并且
所述获取网页内容的请求包括对网页内容文件的请求和对所述至少一个资源文件的请求。
6.根据权利要求1所述的系统,其中,所述网页内容包括静态文件、动态生成的文件、程序代码的源代码、可执行二进制文件和多媒体文件中的至少一种。
7.根据权利要求1所述的系统,其中,所述非声明性部分包括程序代码,并且
所述网关包括用于将声明性语言部分转换为程序代码的装置和用于编译所述程序代码并将其转换为可执行文件的装置。
8.根据权利要求1所述的系统,其中,所述非声明性部分包括程序代码,所述网关包括用于编译所述声明性语言部分的装置,用于编译程序代码的装置,和用于合并声明性语言部分的编译结果和程序代码的编译结果、从而生成可执行文件的装置。
9.根据权利要求1所述的系统,所述网关包括用于检测所述网页内容中是否包括违反安全策略的功能,所述网页内容已经转换成能够在终端网页浏览器中执行的格式。
10.根据权利要求9所述的系统,其中,所述网关包括阻止具有违反安全策略的功能的文件传送给终端的装置,使得如果所述网页内容中包含所述文件,则所述网关不传送所述文件给终端。
11.根据权利要求9所述的系统,其中,所述网关包括在将具有违反安全策略的功能的文件传送给终端之前获取终端用户许可的装置,使得如果所述网页内容中包含所述文件,则所述网关在将所述文件传送给终端之前获取终端用户许可。
12.根据权利要求9所述的系统,其中,所述网关包括能在具有违反安全策略的功能的文件中插入代码的装置,使得如果所述网页内容中包含所述文件,则所述网关在所述文件中插入代码,其中,所述代码在运行时可以导致预定义操作的执行,所述预定义操作由系统中预定义的安全策略决定。
13.用于为终端提供可执行网页内容的系统,其中,所述系统包括服务器和网关:
所述服务器提供可执行网页内容,
所述网关从所述服务器接收可执行网页内容,将其转换为终端网页浏览器可以运行的格式,并将转换后的内容传送给终端;
其中,所述网页内容包括静态文件、动态生成的文件、程序代码的源代码、可执行二进制文件和多媒体文件中的至少一种,并且
所述网关能编译声明性语言和程序代码。
14.根据权利要求6或13所述的系统,其中,所述程序代码的源代码包括Java代码,并且所述可执行二进制文件包括jar文件。
15.从服务器接收可执行网页内容并将其转换成可以在终端网页浏览器中执行的格式的网关,其中,所述网页内容包括静态文件、动态生成的文件、程序代码的源代码、可执行二进制文件和多媒体文件中的至少一种,所述网关包括用于编译声明性语言和程序代码、并转换为可执行文件的编译器。
16.根据权利要求15所述的网关,其中,所述终端为无线通信终端,所述网页内容为无线网页内容。
17.根据权利要求15所述的网关,其中,所述网关通过有线网络与所述服务器通信,且所述网关通过无线网络与所述终端通信。
18.根据权利要求17所述的网关,其中
所述终端包括无线网页浏览器,
所述网关通过无线网络接收来自无线网页浏览器的获取网页内容的请求,并通过有线网络向服务器提出获取所述网页内容的请求,
所述网页内容包括一个或多个文件,
所述发送给服务器要求获取网页内容的请求包括对所述一个或多个文件的至少一部分的请求,和
所述网关将包括在所述网页内容中的所述一个或多个文件在一次事务中传送给终端。
19.根据权利要求18所述的网关,其中
所述网页内容中的所述一个或几个文件包括网页内容文件和资源文件,并且
所述获取网页内容的请求包括对网页内容文件的请求和对资源文件的请求。
20.根据权利要求15所述的网关,其中,所述程序代码的源代码包括Java代码,所述可执行二进制文件包括jar文件。
21.根据权利要求15所述的网关,包括:
用于将声明性语言部分转换成程序代码的转换器;
用于编译所述程序代码的编译器;
用于分析从所述服务器接收的可执行二进制文件的处理器,如果一个外部文件被引用,则所述处理器获取该外部文件;和
用于判断从服务器接收的网页内容中是否含有导致安全问题的功能的安全管理器。
22.根据权利要求15所述的网关,包括用于检测网页内容中是否含有违反安全策略的功能的装置,所述网页内容已经转换成可以在终端网页浏览器中执行的格式。
23.根据权利要求22所述的网关,其中,所述网关包括阻止具有违反安全策略的功能的文件传送给终端的装置,使得如果所述网页内容中包含所述文件,则所述网关不传送所述文件给终端。
24.根据权利要求22所述的网关,其中,所述网关包括在将具有违反安全策略的功能的文件传送给终端之前获取终端用户许可的装置,使得如果所述网页内容中包含所述文件,则所述网关在将所述文件传送给终端之前获取终端用户许可。
25.根据权利要求22所述的网关,其中,所述网关包括能在具有违反安全策略的功能的文件中插入代码的装置,使得如果所述网页内容中包含所述文件,则所述网关在所述文件中插入代码,其中,所述代码在运行时将会导致执行某种操作,并且所述某种操作是由所述系统的预定义安全策略决定的。
26.根据权利要求17所述的网关,其中,
所述终端包括无线网页浏览器,
网页内容包括至少一个文件,
所述网关通过无线网络接收来自无线网页浏览器的获取网页内容的请求,
所述获取网页内容的请求包括已经缓存在浏览器中的该文件的名称和最后修改时间,
所述网关通过有线网络向服务器提出获取网页内容的请求,
所述向服务器提出的获取网页内容的请求包括对至少一个文件的请求,和
所述网关接收服务器响应请求而发出的网页内容中的至少一个文件,同已缓存的文件的名称和最后修改时间进行比较,并且只将同已缓存文件相比已经修改过或新增加的文件传送给终端。
27.一种包含有用于浏览可执行网页内容的网页浏览器的终端,其中,所述网页浏览器接收和执行二进制可执行代码格式的网页内容。
28.根据权利要求27所述的终端,其中
所述网页内容包括至少一个文件,所述至少一个文件包括一个被网页内容所引用的共享的资源文件,
所述终端包括一缓存,配置为缓存所述共享的资源文件和表示有多少引用该共享的资源文件的引用计数。
29.根据权利要求28所述的终端,其中,所述缓存被配置为当终端接收到的网页内容中包含的文件版本比缓存的共享资源文件版本新时,缓存新版本的共享资源文件,并将现有已缓存共享资源文件的引用计数减1。
30.根据权利要求29所述的终端,其中,所述缓存被配置为当引用计数为0时,删除现有已缓存的共享资源文件。
CNB2006800022288A 2005-01-12 2006-01-11 提供和处理可执行网页内容的系统和方法 Expired - Fee Related CN100543724C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050003032A KR20060082353A (ko) 2005-01-12 2005-01-12 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
KR1020050003032 2005-01-12

Publications (2)

Publication Number Publication Date
CN101103352A CN101103352A (zh) 2008-01-09
CN100543724C true CN100543724C (zh) 2009-09-23

Family

ID=36677875

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800022288A Expired - Fee Related CN100543724C (zh) 2005-01-12 2006-01-11 提供和处理可执行网页内容的系统和方法

Country Status (6)

Country Link
US (1) US20100005527A1 (zh)
EP (1) EP1839189A4 (zh)
JP (1) JP2008527564A (zh)
KR (1) KR20060082353A (zh)
CN (1) CN100543724C (zh)
WO (1) WO2006075872A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430123A (zh) * 2010-12-10 2013-12-04 韦斯技术有限公司 用于经由支持2d画布和动态绘图的html来进行远程桌面会话的方法和系统

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) * 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US20070022459A1 (en) 2005-07-20 2007-01-25 Gaebel Thomas M Jr Method and apparatus for boundary-based network operation
US8826411B2 (en) * 2006-03-15 2014-09-02 Blue Coat Systems, Inc. Client-side extensions for use in connection with HTTP proxy policy enforcement
US8584147B2 (en) 2006-12-21 2013-11-12 Microsoft Corporation Managed execution environment for software application interfacing
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
EP1988451A1 (en) 2007-05-04 2008-11-05 Deutsche Thomson OHG Method for generating a set of machine-interpretable instructions for presenting media content to a user
US20080313545A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) * 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
WO2009018168A2 (en) 2007-07-27 2009-02-05 Synergy Sports Technology, Llc Using a website containing video playlists as input to a download manager
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8099720B2 (en) * 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7926070B2 (en) * 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
CN100474253C (zh) * 2007-11-22 2009-04-01 北京飞天诚信科技有限公司 .Net程序保护方法及装置
JP4889664B2 (ja) * 2008-02-12 2012-03-07 コニカミノルタビジネステクノロジーズ株式会社 マニュアル提供方法、周辺装置、および制御用プログラム
US8635701B2 (en) 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
CN101546310B (zh) * 2008-03-28 2012-01-04 纬创资通股份有限公司 可提升网页兼容性的方法及装置
US9082409B2 (en) * 2008-08-28 2015-07-14 Avaya Inc. Binary-caching for XML documents with embedded executable code
CN101382958A (zh) * 2008-10-21 2009-03-11 深圳华为通信技术有限公司 网页加载方法和网页加载装置
US20100211983A1 (en) * 2009-02-19 2010-08-19 Pixel8 Networks, Inc. Virtual private content delivery network and method thereof
KR100989217B1 (ko) * 2009-04-20 2010-10-20 주식회사 엘지유플러스 플래시 파일 지원 방법 및 시스템
US8813124B2 (en) 2009-07-15 2014-08-19 Time Warner Cable Enterprises Llc Methods and apparatus for targeted secondary content insertion
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US9237381B2 (en) 2009-08-06 2016-01-12 Time Warner Cable Enterprises Llc Methods and apparatus for local channel insertion in an all-digital content distribution network
US9734037B1 (en) * 2009-09-15 2017-08-15 Symantec Corporation Mobile application sampling for performance and network behavior profiling
US9635421B2 (en) 2009-11-11 2017-04-25 Time Warner Cable Enterprises Llc Methods and apparatus for audience data collection and analysis in a content delivery network
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US20110154289A1 (en) * 2009-12-18 2011-06-23 Sandya Srivilliputtur Mannarswamy Optimization of an application program
CN101777066B (zh) * 2009-12-31 2013-08-28 优视科技有限公司 一种用于移动通讯设备终端的网页页面渲染浏览系统及其应用方法
EP2550607B1 (en) * 2010-03-23 2020-02-12 Reversinglabs Corporation Cloud-based web content filtering
US8701138B2 (en) 2010-04-23 2014-04-15 Time Warner Cable Enterprises Llc Zone control methods and apparatus
US8484511B2 (en) 2010-07-01 2013-07-09 Time Warner Cable Enterprises Llc Apparatus and methods for data collection, analysis and validation including error correction in a content delivery network
CN101916276B (zh) * 2010-08-13 2016-12-07 北京新岸线移动多媒体技术有限公司 一种改善富媒体文件在网络中发布的方法、装置及服务器
US8930979B2 (en) 2010-11-11 2015-01-06 Time Warner Cable Enterprises Llc Apparatus and methods for identifying and characterizing latency in a content delivery network
US10148623B2 (en) 2010-11-12 2018-12-04 Time Warner Cable Enterprises Llc Apparatus and methods ensuring data privacy in a content distribution network
KR101288845B1 (ko) * 2010-12-29 2013-07-23 유경민 멀티 모바일 서비스 시스템 및 그 방법
CN103502984B (zh) * 2011-04-29 2017-06-09 谷歌技术控股有限责任公司 用于信息的替代下载或上载的方法和系统
US20130055369A1 (en) * 2011-08-24 2013-02-28 Mcafee, Inc. System and method for day-zero authentication of activex controls
CN102594886B (zh) * 2012-02-15 2015-04-29 华为技术有限公司 浏览器与浏览器直通的方法、装置和通信系统
US9078040B2 (en) 2012-04-12 2015-07-07 Time Warner Cable Enterprises Llc Apparatus and methods for enabling media options in a content delivery network
KR101418414B1 (ko) * 2012-06-08 2014-07-14 삼성중공업 주식회사 윈도우폼 기반 응용프로그램 제공 시스템 및 그 방법
CN103488646B (zh) * 2012-06-13 2017-11-14 腾讯科技(深圳)有限公司 一种移动终端浏览器弱光源下浏览网页的方法及装置
US8862155B2 (en) 2012-08-30 2014-10-14 Time Warner Cable Enterprises Llc Apparatus and methods for enabling location-based services within a premises
CN103795848B (zh) * 2012-11-02 2016-03-30 中兴通讯股份有限公司 一种通过移动终端浏览网页的方法和装置
US9131283B2 (en) 2012-12-14 2015-09-08 Time Warner Cable Enterprises Llc Apparatus and methods for multimedia coordination
US11347498B2 (en) * 2013-02-26 2022-05-31 Red Hat, Inc. Bytecode modification
US9954860B2 (en) * 2013-03-15 2018-04-24 Entrust, Inc. Online secure transaction verification system proxy server and method
US9342386B1 (en) 2013-09-05 2016-05-17 Google Inc. Messaging channel for web pages, extensions, and applications to communicate
CN104580097A (zh) * 2013-10-22 2015-04-29 腾讯科技(深圳)有限公司 一种数据处理方法、装置及系统
KR101598820B1 (ko) * 2013-12-02 2016-03-02 한국과학기술연구원 자바 스크립트가 포함된 html 문서를 이용한 애플리케이션 배포 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
CN104796929B (zh) * 2014-01-22 2019-12-06 腾讯科技(深圳)有限公司 网络调试方法及装置
US9544329B2 (en) 2014-03-18 2017-01-10 Shape Security, Inc. Client/server security by an intermediary executing instructions received from a server and rendering client application instructions
CN104978175B (zh) * 2014-04-09 2019-04-30 阿里巴巴集团控股有限公司 基于Sikuli的操作信息封装方法及装置
US10097565B1 (en) * 2014-06-24 2018-10-09 Amazon Technologies, Inc. Managing browser security in a testing context
US9336126B1 (en) 2014-06-24 2016-05-10 Amazon Technologies, Inc. Client-side event logging for heterogeneous client environments
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10028025B2 (en) 2014-09-29 2018-07-17 Time Warner Cable Enterprises Llc Apparatus and methods for enabling presence-based and use-based services
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
JP2017142552A (ja) * 2016-02-08 2017-08-17 株式会社日立アドバンストシステムズ マルウェア注意喚起装置および方法
EP3440542B1 (en) * 2016-03-09 2021-04-28 Shape Security, Inc. Applying bytecode obfuscation techniques to programs written in an interpreted language
US10586023B2 (en) 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US11212593B2 (en) 2016-09-27 2021-12-28 Time Warner Cable Enterprises Llc Apparatus and methods for automated secondary content management in a digital network
US11349816B2 (en) 2016-12-02 2022-05-31 F5, Inc. Obfuscating source code sent, from a server computer, to a browser on a client computer
CN106775900B (zh) * 2017-01-20 2020-10-09 陈刚 应用浏览器的调用方法和系统
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
US11741197B1 (en) 2019-10-15 2023-08-29 Shape Security, Inc. Obfuscating programs using different instruction set architectures
US20230267163A1 (en) * 2022-02-22 2023-08-24 Oracle International Corporation Runtime completion of web component metadata
CN115549757B (zh) * 2022-09-13 2024-05-07 中国电子科技集团公司第五十四研究所 一种卫星通信软件在线升级方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163878A (en) * 1998-03-31 2000-12-19 Jereme Kohl Method and system for designing, generating and storing applications
US6587684B1 (en) * 1998-07-28 2003-07-01 Bell Atlantic Nynex Mobile Digital wireless telephone system for downloading software to a digital telephone using wireless data link protocol
US6925445B1 (en) * 1999-12-20 2005-08-02 Delphi Technologies, Inc. Web-based design of software for keep-alive boards
US20010034743A1 (en) * 2000-01-14 2001-10-25 Edwin Thomas Method and apparatus for creating relocatable internet web sites
US6970127B2 (en) * 2000-01-14 2005-11-29 Terayon Communication Systems, Inc. Remote control for wireless control of system and displaying of compressed video on a display on the remote
US7111079B2 (en) * 2000-02-23 2006-09-19 Koninklijke Philips Electronics, N.V. Architecture of a bridge between a non-IP network and the web
US8135860B1 (en) * 2000-07-20 2012-03-13 Alcatel Lucent Content interpolating web proxy server
CA2423695A1 (en) * 2000-09-27 2002-04-04 Eizel Technologies, Inc. Segmenting electronic documents for use on a device of limited capability
JP2004531104A (ja) * 2000-11-28 2004-10-07 シーチェンジ インターナショナル, インク. コンテンツ/サービス処理及び配信
JP4644940B2 (ja) * 2001-01-17 2011-03-09 ソニー株式会社 課金方法、並びにスクリプト変換システム及び方法
EP1356680B1 (en) * 2001-02-02 2013-05-22 Opentv, Inc. A method and apparatus for reformatting of content for display on interactive television
WO2003039086A1 (en) * 2001-10-29 2003-05-08 Mpnet International, Inc. Data structure, method, and system for multimedia communications
KR100398044B1 (ko) * 2001-12-18 2003-09-19 한국전자통신연구원 프락시 서버에서의 악성 자바 애플릿 탐지 방법
US7752256B2 (en) * 2002-01-16 2010-07-06 Laszlo Systems, Inc. Presentation server
US7333457B2 (en) * 2002-11-06 2008-02-19 Lucent Technologies Inc. High speed dedicated physical control channel for use in wireless data transmissions from mobile devices
US20050195221A1 (en) * 2004-03-04 2005-09-08 Adam Berger System and method for facilitating the presentation of content via device displays

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103430123A (zh) * 2010-12-10 2013-12-04 韦斯技术有限公司 用于经由支持2d画布和动态绘图的html来进行远程桌面会话的方法和系统
CN103430123B (zh) * 2010-12-10 2016-10-05 韦斯技术有限公司 用于经由html来进行远程桌面会话的方法和系统

Also Published As

Publication number Publication date
WO2006075872A1 (en) 2006-07-20
KR20060082353A (ko) 2006-07-18
EP1839189A4 (en) 2010-08-25
JP2008527564A (ja) 2008-07-24
EP1839189A1 (en) 2007-10-03
US20100005527A1 (en) 2010-01-07
CN101103352A (zh) 2008-01-09

Similar Documents

Publication Publication Date Title
CN100543724C (zh) 提供和处理可执行网页内容的系统和方法
EP1156415B1 (en) Server-side control objects for processing client-side user interface elements
US6990653B1 (en) Server-side code generation from a dynamic web page content file
US6950866B1 (en) XML-based integrated services parsing
US8356276B2 (en) Flexible code generation
US7627865B2 (en) Method and apparatus for accessing instrumentation data from within a managed code environment
US20030226105A1 (en) Method in connection with a spreadsheet program
Cabeza et al. The pillow/ciao library for internet/www programming using computational logic systems
US20060020883A1 (en) Web page personalization
US20030167355A1 (en) Application program interface for network software platform
US20030084120A1 (en) Software framework for web-based applications
EP1164473A2 (en) State management of server-side control objects
US20060004910A1 (en) Postback input handling by server-side control objects
EP1588230A2 (en) System and method for network-based computing
CA2390348A1 (en) Systems, methods and computer programs for implementing and accessing webservices
Cabeza et al. Distributed WWW programming using (Ciao-) Prolog and the PiLLoW library
US6766350B1 (en) Shared management of data objects in a communication network
Thakkar et al. Next. js
EP1367514A1 (en) Method in connection with a spreadsheet program
Cabeza et al. WWW programming using computational logic systems (and the PiLLoW/CIAO library)
US11080102B2 (en) System and method for developing modularized application
US7263696B1 (en) Dynamic web based jar file finder
Mueller et al. Using XML to semi-automatically derive user interfaces
WO2006106414A2 (en) System and method for domain security with script objects
WO2004109503A2 (en) System and method for asynchronous resource management

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: RAYLESY SCIENCE ASIAN CO., LTD.

Free format text: FORMER OWNER: WIDERTHAN COM CO., LTD.

Effective date: 20080530

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20080530

Address after: Seoul, South Korea

Applicant after: Widerthan Co., Ltd.

Address before: Seoul, South Korea

Applicant before: Widerthan Com Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: REAL NETWORKS LTD.

Free format text: FORMER OWNER: WIDERTHAN CO., LTD.

Effective date: 20120309

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120309

Address after: Washington State

Patentee after: Realnetworks Asia Pacific Co., Ltd.

Address before: Seoul, South Korea

Patentee before: Widerthan Co., Ltd.

ASS Succession or assignment of patent right

Owner name: INTEL CORP .

Free format text: FORMER OWNER: REAL DIGITAL CO., LTD.

Effective date: 20150529

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150529

Address after: American California

Patentee after: Intel Corporation

Address before: Washington State

Patentee before: Realnetworks Asia Pacific Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090923

Termination date: 20180111

CF01 Termination of patent right due to non-payment of annual fee