CN101589375B - 用于软件应用程序接口的托管执行环境 - Google Patents

用于软件应用程序接口的托管执行环境 Download PDF

Info

Publication number
CN101589375B
CN101589375B CN2007800476849A CN200780047684A CN101589375B CN 101589375 B CN101589375 B CN 101589375B CN 2007800476849 A CN2007800476849 A CN 2007800476849A CN 200780047684 A CN200780047684 A CN 200780047684A CN 101589375 B CN101589375 B CN 101589375B
Authority
CN
China
Prior art keywords
execution environments
managed execution
software program
host software
code
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.)
Active
Application number
CN2007800476849A
Other languages
English (en)
Other versions
CN101589375A (zh
Inventor
N·科塔里
S·N·沙科
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101589375A publication Critical patent/CN101589375A/zh
Application granted granted Critical
Publication of CN101589375B publication Critical patent/CN101589375B/zh
Active 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

某些实施例涉及通过提供在主机软件程序中运行的托管执行环境来控制主机软件程序和计算机系统之间的交互。在一个实施例中,计算机系统在主机软件程序中集成托管执行环境。计算机系统使用该托管执行环境来与主机软件程序的一个或多个特征交互。托管执行环境包括被配置成在计算机系统和主机软件程序之间接口的接口控件。计算机系统基于下载内容中所标识的代码来更改各软件程序特征中的一个或多个。

Description

用于软件应用程序接口的托管执行环境
背景
全世界都使用计算机来执行各种各样的任务。计算机通过处理包含由该计算机解释(或编译)并执行的命令的软件代码来执行这些任务。软件代码通常由开发者通过使用一个或多个脚本或编程语言来编写。许多软件程序被设计成与由其他软件开发者编写的过程码和/或脚本交互。然而,这些程序经常限制软件程序可与其交互的脚本和/或代码的类型。这样做主要是出于兼容性和安全性的原因。
被设计成与由其他开发者编写的代码交互的软件程序的一个示例是因特网浏览器。因特网浏览器被设计成读取描述网页的内容和布局的文件(例如,超文本标记语言(HTML)文件)并根据该文件中所描述的布局来显示该网页。网页可包括脚本(诸如用JAVASCRIPT
Figure G2007800476849D00011
编写的脚本等)、其他文本、或对诸如ADOBE
Figure G2007800476849D00012
SHOCKWAVE或MICROSOFTACTIVEX
Figure G2007800476849D00015
元素等图形文件或对象的引用。这些脚本以及对对象和其他元素的引用的代码可被直接嵌入HTML文件中。大多数浏览器被设计成能够读取并显示已结合多个脚本、对象和其他元素的网页,尽管这可能涉及安装更新和/或插件以正确地显示某些对象。
存在对易于使用、快速加载的定制网页的日益增长的需求。该需求已导致用于处理并显示网页的新的基于浏览器的代码实现的开发。这一实现的一个示例是组合JavaScript和可扩展标记语言(XML)的脚本语言,两者的合并形成异步JavaScript和XML(AJAX)。AJAX通常用于开发供浏览器用来生成并显示复杂的动态网页的复杂软件功能。这些复杂的功能经常导致通常数百KB范围内的大型文件。这些大型文件经常花费大量时间下载和/或处理。
此外,诸如JavaScript、XML和AJAX等脚本语言与诸如C++、C#和VisualBasic等其他成熟的编程语言相比具有有限的能力。诸如这些编程语言等多功能编程语言对构建软件程序之间的复杂的编程交互而言适用得多。然而,许多时候浏览器和被设计成读取并实现由其他开发者编写的代码的其他应用程序被调整为适于(gear toward)运行脚本而并非被设计成运行用诸如C++、C#和Visual Basic等高级语言编写的代码。
简要概述
本发明的各个实施例涉及通过提供在主机软件程序中运行的托管执行环境来控制主机软件程序和计算机系统之间的交互。在一个实施例中,计算机系统在主机软件程序中集成托管执行环境。计算机系统使用该托管执行环境来与主机软件程序的一个或多个特征交互。托管执行环境包括被配置成在计算机系统和主机软件程序之间接口的控件。托管执行环境基于下载内容中所标识的代码来更改各软件程序特征中的一个或多个。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1示出了本发明的各实施例可在其中操作的计算机体系结构,包括控制主机软件程序和计算机系统之间的交互;
图2示出了用于控制主机软件程序和计算机系统之间的交互的示例方法的流程图;
图3示出了用于控制因特网浏览器应用程序和计算机系统之间的交互的替换示例方法的流程图;
图4示出了其中网页使用文档对象模型来呈现的本发明的一实施例。
详细描述
本发明的各个实施例涉及通过提供在主机软件程序中运行的托管执行环境来控制主机软件程序和计算机系统之间的交互。在一个实施例中,计算机系统在主机软件程序中集成托管执行环境。计算机系统使用托管执行环境来与主机软件程序的一个或多个特征交互并基于下载内容中所标识的代码来更改各软件程序特征中的一个或多个。本发明的各个实施例可包括含有各种类型的计算机硬件的专用或通用计算机,这将在以下更详细地讨论。
本发明的范围内的各个实施例还包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括物理(或可记录类型)计算机可读介质,包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。另外,当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,任何这样的连接也被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
图1示出了其中可采用本发明的各原理的计算机体系结构100。计算机体系结构100包括客户计算机系统101。在某些实施例中,客户计算机系统101被配置成存储并处理一个或多个软件程序。通常,这些软件程序经由操作系统(OS)来访问和打开。客户计算机系统101包括主机软件程序102。
主机软件程序105可以是可被配置成在客户计算机系统101上运行的任何类型的软件程序。主机软件程序105包括主机软件程序特征106。主机软件程序特征106包括三个特征106A、106B和106C。应当注意,所示主机软件程序特征的数量是任意选择的并可包括多于或少于三个特征。主机软件程序特征106可包括对主机软件程序105有用的任何类型的功能或其任何部分。例如,如果主机软件程序105是字处理程序,则特征可以是类属词典、拼写检查程序、表格向导或字处理程序中的任何其他功能块。客户计算机系统101不仅包括主机软件程序105而且包括其他软件程序120。这些其他软件程序105也可以是可被配置成在客户计算机系统101上运行的任何类型的软件程序。
主机软件程序105还包括托管执行环境110。如此处所使用的术语“托管执行环境”指的是被配置成在计算机系统和主机软件程序之间接口的接口控件。例如,在某些实施例中,托管执行环境110可包括被配置成在客户计算机系统101和主机软件程序105之间接口的控件。接口控件可用于管制客户计算机系统101和主机软件程序105之间的通信。
此外,托管执行环境110包括功能111、下载内容112和代码生成模块113。功能111可包括任何类型的软件功能,包括脚本、可执行汇编文件或仅仅是汇编文件中的功能。下载内容112可包括可从另一计算机系统和/或计算机网络下载的任何类型的内容。这些内容包括但不限于,文本、图形、媒体(例如,电影、音频、视频剪辑等)、脚本、功能或可下载的任何其他内容。代码生成模块113可被配置成生成包括文本、脚本或整个功能的代码。代码可响应于下载内容来生成,如将在以下更详细地解释的。
客户计算机系统101还包括声明性表示114。如此处所使用的“声明性表示”是对象的结构或布局的表示模型。更具体而言,声明性表示可以是表示用户打算如何更改对象的结构或布局的模型。例如,用户可创建文档对象模型的声明性表示,其用于描述HTML网页的结构或布局。该声明性表示可描绘用户打算如何更改该网页的文档对象模型并由此影响该网页最终将被如何显示。
客户计算机系统101还包括应用程序编程接口115。如此处所使用的术语“应用程序编程接口”包括用于在应用程序和操作系统之间接口的任何装置。此外,应用程序编程接口115可与任何软件应用程序接口,无论该应用程序是被包括在操作系统中还是单独安装的。
图2示出了用于控制主机软件程序和计算机系统之间的交互的方法200的流程图。方法200现在将频繁地参考环境100的组件和数据来描述。
方法200包括在主机软件程序中集成托管执行环境的动作(动作210)。例如,托管执行环境110可被集成在客户计算机系统101中的主机软件程序105内。如此处所使用的术语“集成”指的是或者将托管执行环境110作为插件来在主机软件程序105中安装并运行。或另选地,托管执行环境110已经是主机软件程序105的一部分并且“集成”可指从主机软件程序105中调用托管执行环境110的功能。在这两种情况下,托管执行环境110在主机软件程序105中集成并运行。
尽管在某些实施例中托管执行环境110可被设计成作为主机软件程序105的插件来运行,但在某些实施例中,托管执行环境110可被设计成作为独立程序来运行。由此,例如,使用可计算机系统101的计算机用户将能够将托管执行环境110作为与主机软件程序105分开的应用程序来打开。然而,无论是作为插件还是作为独立应用程序来运行,托管执行环境110都执行基本上相同的功能。
方法200包括使用托管执行环境来与主机软件程序的一个或多个特征交互的动作,该托管执行环境包括被配置成在计算机系统和主机软件程序之间接口的接口控件(动作220)。例如,托管执行环境110可用于与主机软件程序105的特征106A交互,其中托管执行环境110包括被配置成在客户计算机系统101和主机软件程序105之间接口的接口控件。如上所述,托管执行环境110可用于与主机软件程序特征106交互。在其中主机软件程序105是字处理程序的一个实施例中,软件特征106A可表示类属词典、特征106B可表示拼写检查程序而特征106C可表示表格向导。托管执行环境110可用于与字处理程序的这些或其他特征交互。
方法200包括托管执行环境基于下载内容中所标识的代码来更改各主机软件程序特征中的一个或多个的动作(动作230)。例如,托管执行环境110可基于下载内容(例如,下载内容112)中所标识的代码来更改软件程序特征106A。如上所述,下载内容112可包括任何类型的文本、图形、脚本、功能或可经由网络从本地或远程计算机系统下载的任何其他类型的内容。所标识的代码可包括任何类型的计算机代码,包括脚本、函数、经编译的汇编码或其他形式的计数据代码。
在某些实施例中,托管执行环境110可加载所标识的代码,初始化主机软件程序105内的代码并将控制转移到托管执行环境110中的入口点。在某些情况下,以这一方式处理代码提供了对诸如根文档、直接父内容元素以及软件特征(例如,软件特征106)的当前统一资源标识符(URI)等软件程序特征中的对象的访问。
在其他实施例中,计算机用户可生成托管执行环境与各软件程序特征的交互的声明性表示。例如,用户可生成托管执行环境110与主机软件程序特征106B和106C的交互的声明性表示。在某些实施例中,软件程序开发者可使用图形工具来生成托管执行环境与例如软件程序特征106B和106C的交互的声明性表示。在某些情况下,声明性表示可表示托管执行环境110和主机软件程序特征(例如,106B和106C)之间的交互的期望结果。
在某些实施例中,托管执行环境110自动下载用于更新托管执行环境110的软件更新。另外地或另选地,托管执行环境110可自动下载用于更新软件程序特征106中的任一个的软件更新。在其他实施例中,托管执行环境110可从各主机软件程序特征106中的一个接收对托管执行环境110所提供的功能(例如,功能111)的功能调用。由此,托管执行环境110可向主机软件程序特征106提供功能111,并可接收功能作为下载内容112中所标识的代码,由此示出托管执行环境110所提供的接口的双向特性。此外,在某些实施例中,托管执行环境110可被配置成基于下载内容来按需生成代码。
图3示出了用于通过提供在因特网浏览器应用程序中运行的托管执行环境来控制因特网浏览器应用程序和计算机系统之间的交互的方法300的流程图。图4示出了其中网页使用文档对象模型来呈现的本发明的一实施例。方法300和实施例400现在将频繁地参考环境100的组件和数据来描述。
方法300包括在因特网浏览器应用程序中集成托管执行环境的动作(动作310)。例如,托管执行环境110可被集成在因特网浏览器应用程序中。如以上关于主机软件程序105所解释的,因特网浏览器应用程序可包括托管执行环境110作为该应用程序的一部分,或另选地,托管执行环境110可使用浏览器的可扩展性模型来作为插件单独添加。在某些实施例中,因特网浏览器应用程序可担当如客户计算机系统101中的主机软件程序105所代表的主机软件程序。
方法300包括使用托管执行环境来与包括文档对象模型的网页交互的动作,该文档对象模型表示包括可程序性地访问的元素的网页的结构轮廓,该托管执行环境包括被配置成在计算机系统和因特网浏览器应用程序之间接口的接口控件(动作320)。例如,托管执行环境110可用于与包括文档对象模型410的网页401交互。文档对象模型410可表示包括对网页元素405的引用的网页401的结构轮廓。托管执行环境110可包括被配置成在客户计算机系统101和因特网浏览器应用程序之间接口的接口控件。
方法300包括基于下载内容中所标识的代码来动态更改文档对象模型的动作(动作330)。例如,文档对象模型410可基于下载内容112中所标识的代码来动态更改。在某些情形下,在下载内容112中引用代码,标识该引用并按需下载该代码。
在某些实施例中,动态更改文档对象模型410所引用的元素。元素是作为网页HTML文件的一部分或者在网页HTML文件中引用的任何对象。在一个示例中,网页401可包含对元素1的引用(406)和对元素2的引用(407),以及对其他元素的其他引用(未在图4中示出,应当注意,网页401中可存在任何数量的对元素的引用)。通常,当因特网浏览器应用程序访问文档对象模型以确定网页的布局时,文档对象模型不更改元素的布局并且这些元素根据它们在该网页中被引用的地方来显示。例如,在包括HTML和对元素的引用405的网页中,元素最终基于引用被放置在该网页的HTML中的地方来显示(例如,对元素1的引用(406)将被显示在对元素2的引用(407)的上方,因为在该网页布局中406在407之前)。继续该示例,文档对象模型410通常将标识每一个元素被放置在网页HTML中的地方且未经更改地显示元素(如被示为通过未经更改箭头411)。
然而,在本发明的某些实施例中,可更改元素(如被示为通过更改箭头412),因为文档对象模型已被更改(参见上文中的动作330)。经更改的文档对象模型410可更改元素的一个或多个特性。例如,经更改的文档对象模型410可更改在网页上显示元素的地方,元素的颜色或样式、字体、大小或任何其他元素属性。在某些实施例中,经动态更改的元素包括可经由脚本应用程序接口来访问的那些元素。在其他实施例中,经动态更改的元素包括网页的HTML或XML本身。
在某些实施例中,使用一个或多个其他编程框架来动态更改文档对象模型。例如,可使用允许动态语言支持的编程框架。由此,在使用文档对象模型410来呈现网页时,允许动态语言支持的编程框架能够用不同的语言来显示该网页的文本。
方法300包括使用经更改的文档对象模型来显示网页的动作(动作340)。例如,网页401可使用经更改的文档对象模型412来显示在显示器415上。在其中未经更改地显示元素(这些元素被示为通过未经更改的文档对象模型411)的情况下,结果是显示未经更改的元素416(元素1)和417(元素2)。另外地或另选地,在其中在显示元素之前更改元素(这些元素被示为通过经更改的文档对象模型412)的情况下,结果是显示经更改的元素418(元素1B)和419(元素2B)。由此,如果对元素1的引用(406)和对元素2的引用(407)中所引用的元素分别是ActiveX
Figure G2007800476849D00081
对象和JavaScript脚本,则在前一种情况下,将对原始布局未经更改地处理并显示元素,而在后一种情况下,将按对原始布局经更改的布局来处理并显示元素(例如,JavaScript
Figure G2007800476849D00083
脚本现在可以在ActiveX
Figure G2007800476849D00084
对象之前出现在网页中,或者它们可以是不同颜色的、不同字体的、不同大小的等等)。
在某些实施例中,托管执行环境与浏览器内容的交互的声明性表示可由托管执行环境110来生成。如上所述,声明性表示是对象的结构或布局的表示模型。在一个实施例中,声明性表示是表示文档对象模型的所需经更改布局的模型。
在某些实施例中,使用多个托管执行环境来动态生成和/或更改网页(例如,网页401)的内容是可能的。例如,可以对网页中的每一个元素分配一个托管执行环境110以增加处理速度并减少网页加载时间。在某些实施例中,可将丰富的网络连接与因特网浏览器应用程序或其他主机软件程序105集成。在某些情况下,这将大大增强主机软件程序的可用性和功能。
在其他实施例中,托管执行环境110可从网页的可程序性地访问的元素中的一个接收对托管执行环境110所提供功能的功能调用。如以上所提到的,托管执行环境110可包括可被提供给其他网页元素或软件程序特征106的功能111。托管执行环境110包括双向接口,其既允许环境110与主机软件程序105、其他软件程序120和主机软件程序特征交互又允许这些相同的程序和特征与托管执行环境110进行通信并向其请求信息。
由此,本发明的实施例涉及通过提供在主机软件程序中运行的托管执行环境来控制主机软件程序和计算机系统之间的交互。在一个实施例中,计算机系统在主机软件程序中集成托管执行环境,使用该托管执行环境来与主机软件程序的特征交互,并基于下载内容中所标识的代码来更改各软件程序特征中的一个或多个。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (19)

1.一种用于通过提供在主机软件程序中运行的托管执行环境来控制所述主机软件程序和计算机系统之间的交互的方法,所述方法包括:
在所述主机软件程序中集成所述托管执行环境的动作;
使用所述托管执行环境来与所述主机软件程序的一个或多个特征交互的动作,所述托管执行环境包括被配置成在所述计算机系统和所述主机软件程序之间接口的接口控件;以及
所述托管执行环境基于下载内容中所标识的代码来更改各主机软件程序特征中的一个或多个的动作;
其中,所述托管执行环境加载所标识的代码,所述托管执行环境初始化所述主机软件程序内的代码,并且所述托管执行环境将控制转移到所述托管执行环境中的入口点。
2.如权利要求1所述的方法,其特征在于,所述方法还包括所述托管执行环境从所述各软件程序特征中的一个接收对所述托管执行环境所提供功能的功能调用。
3.如权利要求1所述的方法,其特征在于,所述方法还包括生成所述托管执行环境与各软件程序特征的交互的声明性表示。
4.如权利要求3所述的方法,其特征在于,软件程序开发者使用图形工具来生成所述托管执行环境与各软件程序特征的交互的声明性表示。
5.如权利要求1所述的方法,其特征在于,所述方法还包括所述托管执行环境自动下载用于更新所述托管执行环境或任一个所述软件程序特征的软件更新。
6.如权利要求1所述的方法,其特征在于,所述托管执行环境作为插件被添加到软件程序。
7.如权利要求1所述的方法,其特征在于,所述方法还包括所述托管执行环境基于所述下载内容来按需生成代码。
8.一种用于通过提供在因特网浏览器应用程序中运行的托管执行环境来控制所述因特网浏览器应用程序和计算机系统之间的交互的方法,所述方法包括:
在所述因特网浏览器应用程序中集成所述托管执行环境的动作;
使用所述托管执行环境来与包括文档对象模型的网页交互的动作,所述文档对象模型表示包括可程序性地访问的元素的网页的结构轮廓,所述托管执行环境包括被配置成在所述计算机系统和所述因特网浏览器应用程序之间接口的接口控件;
所述托管执行环境基于下载内容中所标识的代码来动态更改所述文档对象模型的动作,其中,所述托管执行环境加载所标识的代码,所述托管执行环境初始化所述主机软件程序内的代码,并且所述托管执行环境将控制转移到所述托管执行环境中的入口点;以及
使用经更改的文档对象模型来显示所述包括文档对象模型的网页的动作。
9.如权利要求8所述的方法,其特征在于,所述方法还包括动态更改所述文档对象模型所引用的元素。
10.如权利要求9所述的方法,其特征在于,经动态更改的元素包括可经由脚本应用程序接口来访问的那些元素。
11.如权利要求9所述的方法,其特征在于,经动态更改的元素包括所述包括文档对象模型的网页的HTML。
12.如权利要求8所述的方法,其特征在于,所述方法还包括所述托管执行环境从所述可程序性地访问的元素中的一个接收对所述托管执行环境所提供功能的功能调用。
13.如权利要求8所述的方法,其特征在于,所述方法还包括生成所述托管执行环境与浏览器内容的交互的声明性表示。
14.如权利要求8所述的方法,其特征在于,所述托管执行环境使用因特网浏览器应用程序的可扩展性模型来添加到所述浏览器应用程序。
15.如权利要求8所述的方法,其特征在于,所述方法还包括使用多个托管执行环境来动态生成所述包括文档对象模型的网页的内容。
16.如权利要求8所述的方法,其特征在于,下载内容中所标识的代码是按需下载的。
17.如权利要求8所述的方法,其特征在于,所述方法还包括将丰富的网络连接集成到所述因特网浏览器应用程序中的动作。
18.如权利要求8所述的方法,其特征在于,一个或多个允许动态语言支持的编程框架被用于动态地更改所述文档对象模型。
19.一种用于通过提供在主机软件程序中运行的托管执行环境来控制所述主机软件程序和计算机系统之间的交互的系统,所述系统包括:
用于在所述主机软件程序中集成所述托管执行环境的装置;
用于使用所述托管执行环境来与所述主机软件程序的一个或多个特征交互的装置,所述托管执行环境包括被配置成在所述计算机系统和所述主机软件程序之间接口的接口控件;
用于使所述托管执行环境基于下载内容中所标识的代码来更改各软件程序特征中的一个或多个的装置;
用于使所述托管执行环境加载所标识的代码的装置;
用于使所述托管执行环境初始化所述主机软件程序内的代码的装置;以及
用于使所述托管执行环境将控制转移到所述托管执行环境中的入口点的装置。
CN2007800476849A 2006-12-21 2007-12-20 用于软件应用程序接口的托管执行环境 Active CN101589375B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/614,945 US8584147B2 (en) 2006-12-21 2006-12-21 Managed execution environment for software application interfacing
US11/614,945 2006-12-21
PCT/US2007/088410 WO2008080000A1 (en) 2006-12-21 2007-12-20 Managed execution environment for software application interfacing

Publications (2)

Publication Number Publication Date
CN101589375A CN101589375A (zh) 2009-11-25
CN101589375B true CN101589375B (zh) 2012-07-18

Family

ID=39544832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800476849A Active CN101589375B (zh) 2006-12-21 2007-12-20 用于软件应用程序接口的托管执行环境

Country Status (8)

Country Link
US (3) US8584147B2 (zh)
EP (1) EP2115601A4 (zh)
CN (1) CN101589375B (zh)
AU (1) AU2007336810B2 (zh)
BR (1) BRPI0718217A2 (zh)
MX (1) MX2009005757A (zh)
RU (1) RU2459238C2 (zh)
WO (1) WO2008080000A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594900B2 (en) * 2008-12-09 2017-03-14 Microsoft Technology Licensing, Llc Isolating applications hosted by plug-in code
WO2012071653A1 (en) * 2010-11-30 2012-06-07 Fabric Engine Inc. Method and system for executing a browser application
AU2012294372B2 (en) * 2011-08-08 2016-03-03 Bloomberg Finance Lp System and method for electronic distribution of software and data
CN104516908A (zh) * 2013-09-29 2015-04-15 华为技术有限公司 一种数据库访问方法和装置
CN105404458B (zh) * 2014-09-10 2021-02-05 腾讯科技(深圳)有限公司 网页内容更新方法及装置
US10650140B2 (en) * 2015-03-27 2020-05-12 Intel Corporation Control-flow integrity with managed code and unmanaged code
JP2018536233A (ja) * 2015-07-31 2018-12-06 ページクラウド インコーポレイテッドPagecloud Inc. ウィジウィグウェブコンテンツ生成用の方法およびシステム
CN105404517B (zh) * 2015-11-27 2018-09-28 北京奇虎科技有限公司 一种浏览器和浏览器实现方法
US10097606B2 (en) 2016-03-14 2018-10-09 Amazon Technologies, Inc. Application streaming using access and execution environments
CN108509228B (zh) * 2017-11-10 2021-04-30 平安普惠企业管理有限公司 加载页面的方法、终端设备及计算机可读存储介质
US11997154B1 (en) * 2019-11-12 2024-05-28 Zive, Inc. Systems and methods for visualizing digital content
CN113326043B (zh) * 2021-05-26 2022-05-03 上海哔哩哔哩科技有限公司 网页渲染方法、网页制作方法及网页渲染系统
CN113858971A (zh) * 2021-10-08 2021-12-31 合肥巨一动力系统有限公司 一种集成多功能应用的电机驱动控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1221661A2 (en) * 2001-01-05 2002-07-10 Openwave Systems Inc. Method and apparatus for dynamically updating a HTML based user interface

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266681B1 (en) * 1997-04-08 2001-07-24 Network Commerce Inc. Method and system for inserting code to conditionally incorporate a user interface component in an HTML document
US5956709A (en) * 1997-07-28 1999-09-21 Xue; Yansheng Dynamic data assembling on internet client side
US6188401B1 (en) * 1998-03-25 2001-02-13 Microsoft Corporation Script-based user interface implementation defining components using a text markup language
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6981212B1 (en) * 1999-09-30 2005-12-27 International Business Machines Corporation Extensible markup language (XML) server pages having custom document object model (DOM) tags
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US6826726B2 (en) * 2000-08-18 2004-11-30 Vaultus Mobile Technologies, Inc. Remote document updating system using XML and DOM
US7162697B2 (en) * 2000-08-21 2007-01-09 Intellocity Usa, Inc. System and method for distribution of interactive content to multiple targeted presentation platforms
US20030128234A1 (en) * 2002-01-09 2003-07-10 International Business Machines Corporation Utilizing document white space to persistently display designated content
CA2384183A1 (en) * 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Browser-independent pop-up windows
US7340673B2 (en) * 2002-08-29 2008-03-04 Vistaprint Technologies Limited System and method for browser document editing
AU2003267390A1 (en) 2002-10-01 2004-04-23 Sap Aktiengesellschaft Method and system for refreshing browser pages
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US20050086587A1 (en) * 2003-05-14 2005-04-21 Balz Christopher M. System and method for presenting computerized interactive forms to respondents using a client-server-systems technology based on web standards
US7331014B2 (en) * 2003-05-16 2008-02-12 Microsoft Corporation Declarative mechanism for defining a hierarchy of objects
KR20060082353A (ko) 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1221661A2 (en) * 2001-01-05 2002-07-10 Openwave Systems Inc. Method and apparatus for dynamically updating a HTML based user interface

Also Published As

Publication number Publication date
EP2115601A1 (en) 2009-11-11
MX2009005757A (es) 2009-06-08
WO2008080000A1 (en) 2008-07-03
US10061575B2 (en) 2018-08-28
AU2007336810A1 (en) 2008-07-03
AU2007336810B2 (en) 2011-11-03
US20080155554A1 (en) 2008-06-26
BRPI0718217A2 (pt) 2013-11-12
EP2115601A4 (en) 2010-07-07
RU2009128038A (ru) 2011-01-27
CN101589375A (zh) 2009-11-25
US20160274891A1 (en) 2016-09-22
RU2459238C2 (ru) 2012-08-20
US20140075459A1 (en) 2014-03-13
US9170857B2 (en) 2015-10-27
US8584147B2 (en) 2013-11-12

Similar Documents

Publication Publication Date Title
CN101589375B (zh) 用于软件应用程序接口的托管执行环境
US7523223B2 (en) Web control simulators for mobile devices
US6968539B1 (en) Methods and apparatus for a web application processing system
US20060156315A1 (en) Method, computer-readable medium and apparatus for providing a graphical user interface in a client-server environment
JP2007524875A (ja) ネットワーク・ベースの処理のためのシステムおよび方法
CA2293180C (en) Document/view application development architecture applied to activex technology for web based application delivery
CN101176095A (zh) 独立地更新入口浏览中的小窗口内容
Bishop et al. Cross-platform development: Software that lasts
US20100269093A1 (en) Content Management System and Method for Generating Dynamic Applications
US7051015B1 (en) System and method for implementing a flexible data-driven target object model
Ames et al. Introducing the MapWindow GIS project
Chaganti Google Web Toolkit GWT Java AJAX Programming
Puder A cross-language framework for developing ajax applications
Pascarello et al. AJAX in Action
Udell Pro web gadgets for mobile and desktop
Patel Sitecore Cookbook for Developers
Yu et al. OpenXUP: an alternative approach to developing highly interactive web applications
Steyer Learning JQuery: A Hands-on Guide to Building Rich Interactive Web Front Ends
KR20010081239A (ko) 응용 소프트웨어를 이용한 인터넷 광고방법
Han et al. Problems, solutions and new opportunities: using pagelet-based templates in development of flexible and extensible web applications
Smith ASP. Net by Example
Udell Designing the Core Gadget
Mineo et al. A basic graphical user interface for R: R-interactive
Cinar Android
Carnell et al. Templates and Velocity

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150512

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

Effective date of registration: 20150512

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.