隔离、管理用户界面元素以及与之通信的制作方法

文档序号:6476581阅读:280来源:国知局
专利名称:隔离、管理用户界面元素以及与之通信的制作方法
隔离、管理用户界面元素以及与之通信
北旦 冃足
在现代软件开发中,编写了许多应用程序来在例如MICROSOFT .NET
框架等托管运行时环境中执行。托管运行时环境用作允许应用程序访问系统资 源、实施安全策略等等的方式。托管运行时环境通过创建其中执行应用程序的
"分区进程空间"来实现这一点。分区进程空间允许应用程序以使该应用程序 与在那时计算机可能正在执行的进程中的任何其它分区空间隔离的方式来执 行。在MICROSOFT .NET框架中,这些分区进程空间称为"应用程序域
(AppDomain)"。
当在一个分区进程空间中执行应用程序而需要在另一个分区进程空间中 执行内容时,问题产生。给定隔离和其它支配早先讨论的托管运行时环境的规 则,该应用程序将不能与不同分区进程空间中的内容通信,内容也将不能作为 该应用程序的一部分被显示。
概述
公开了允许托管运行时环境中的用户界面显示来自两个或更多不同分 区进程空间的内容的各种技术和方法。提供在托管运行时环境中操作的特定 软件应用程序,该特定软件应用程序具有用户界面。使用窗口句柄来允许该特 定软件应用程序的用户界面同时显示来自两个或更多不同分区进程空间的内 容。在保持两个或更多不同分区进程空间之间的隔离级别的同时,可以将来自 两个或更多分区进程空间的信息集成在该软件应用程序的用户界面中。这可以 通过向用户界面的内容容器的第一部分提供主控件来实现,该主控件将包含提 供的窗口作为子窗口并驻留在主窗口的第一分区进程空间中。向用户界面的内 容容器的第二部分提供源控件,该源控件提供窗口句柄并驻留在主窗口的第二 分区进程空间中。在一个实现中,内容容器的第二部分可以具有供例如在隔离 框架控件中显示的内容。提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些 概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。
附图简述


图1是一个实现的计算机系统的图示。
图2是在图1的计算机系统上操作的一个实现的托管软件应用程序的图示。
图3是示出图1的系统的一个实现所涉及的高级阶段的处理流程图。 图4是图1的系统的一个实现的处理流程图,其示出允许来自不同分区进
程空间的内容被一起显示并互相通信时所涉及的阶段。
图5是图1的系统的高级阶段的一个实现的处理流程图,其示出允许来自
不同分区进程空间的内容以不同安全级别一起显示时所涉及的阶段。
图6示出显示隔离框架控件中出现的外部内容的一个实现的逻辑图。
图7是示出使用窗口句柄来允许在相同用户界面中显示来自不同分区进
程空间的内容的一个实现的逻辑图。
详细描述
为促进对本发明的原理的理解,现将对图中所示的各实施例加以参考,同 时也将用具体语言描述它们。不过,需要理解的是,并无意由此作出范围上的 限制。对所述实施例的任何改变和进一步更改,以及在此所述的原理的进一步 应用都可以预期将是本领域技术人员通常能想到的。
该系统可以作为允许在托管环境中在同一用户界面中显示来自不同分区 进程空间的内容的应用程序而在一般上下文中描述,但是该系统还用于除此 之外的其它目的。在一个实现中,此处所描述的一个或多个技术可被实现为 诸如MICROSOFT .NET框架等框架环境内的、或来自允许软件的执行和/或 开发的任何其它类型的程序或服务的特征。
如图1所示,用于实现该系统的一个或多个部分的示例性计算机系统包括 诸如计算设备100等计算设备。在其最基本的配置中,计算设备100通常包括200880007313.2储器104。取决于计算设备的确切配置和类型,存储器104可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配置在图1中由虚线106来示出。
另外,设备100还可具有附加特征/功能。例如,设备IOO还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加存储在图1中由可移动存储108和不可移动存储IIO示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可用于存储所需信息并且可由设备100访问的任何其它介质。任何这样的计算机存储介质都可以是设备100的一部分。
计算设备100包括允许计算设备100与其它计算机/应用程序114进行通信的一个或多个通信连接115。设备100还可以具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备112。还可以包括诸如显示器、扬声器、打印机等输出设备lll。这些设备在本领域中公知且无需在此处详细讨论。在一实现中,计算设备100包括托管软件应用程序200。托管软件应用程序200将在图2中更详细地描述。
现在转向图2,并继续参考图l,示出了在计算设备100上操作的托管软件应用程序200。托管软件应用程序200是驻留在计算设备100上的应用程序之一。然而,可以理解,托管软件应用程序200可另选地或另外地被具体化为一个或多个计算机上的计算机可执行指令和/或与图1所示的不同的变型。另选地或另外地,托管软件应用程序200的一个或多个部分可以是系统存储器104的一部分、可以在其它计算机和/或应用程序115上、或可以是计算机软件领域的技术人员能想到的其它此类变型。
托管软件应用程序200包括程序逻辑204,其负责执行在此描述的一些或全部技术。程序逻辑204包括用于提供在托管运行时环境(.NET框架等)中操作并具有用户界面的特定软件应用程序的逻辑206;用于使用窗口句柄(例如,MICROSOFT Windows HWND句柄)来允许特定软件应用程序的用户界面同时显示来自两个或更多不同分区进程空间(例如,应用程序域)的内容的逻辑208;用于允许在保持两个或更多不同分区进程空间之间的隔离级别的同时将来自两个或更多分区进程空间的信息集成在于托管运行时环境中操作的软件应用程序的用户界面中的逻辑210;用于允许分区进程空间中的第一个通过执行按引用进程的编组(windows操作系统中的Marsha旧yRefObjects (按引用对象编组))来与分区进程空间中的第二个进行通信的逻辑212;用于允许分区进程空间中的第一个拥有内容容器的具有包含提供的窗口句柄的主控件的第一部分,而分区进程空间中的第二个拥有内容容器的具有提供窗口句柄的源控件的第二部分的逻辑214;用于允许内容容器的第一部分所遵循的第一安全级别与内容容器的第二部分(例如,该第二部分来自可信或不同的源等等)所遵循的第二安全级别不同的逻辑216;以及其它用于操作该应用程序的逻辑220。在一个实现中,程序逻辑204可用于通过编程,如使用对程序逻辑204中的过程的单一调用而从另一程序调用。
现在转向图3-5,并继续参考图1-2,更详细地描述了用于实现托管软件应用程序200的一个或多个实现的各阶段。图3是示出图1的系统的一个实现所涉及的高级阶段的处理流程图。在一种形式中,图3的过程至少部分地在计算设备100的操作逻辑中实现。该过程在起始点250处开始,在那里提供在托管运行时环境(例如,.NET框架等)中操作的特定软件应用程序,该特定软件应用程序具有用户界面(阶段252)。该用户界面的内容容器的第一部分拥有主控件,该主控件包含提供的窗口句柄(例如,MICROSOFT WindowsHWND句柄)并且驻留在主窗口的第一分区进程空间(例如,应用程序域等)中(阶段254)。向用户界面的内容容器的第二部分提供源控件,该源控件提供该窗口句柄并驻留在主窗口的第二分区进程空间中,该第二部分具有供显示的内容(阶段256)。在保持该内容容器的第一部分和第二部分之间的隔离级别的同时,可以将来自第一分区进程空间和第二分区进程空间的信息集成在该用户界面中(阶段258)。可以为第一和第二分区进程空间任选地提供/实施不同的安全级别(例如,诸如当一个空间来自不可信或未知源时,等等)(阶段260)。该过程在结束点262处结束。图4是图1的系统的一个实现的处理流程图,其示出允许来自不同分区进程空间的内容被一起显示并互相通信时所涉及的阶段。在一种形式中,图4的
过程至少部分地在计算设备100的操作逻辑中实现。该过程在起始点270处开始,在那里提供在托管.NET框架环境中操作的特定软件应用程序,该特定软件应用程序具有用户界面(阶段272)。向该用户界面的内容容器的第一部分提供主控件,该主控件包含MICROSOFT Windows HWND句柄并且驻留在主窗口的第一分区进程空间(例如,应用程序域等)中(阶段274)。向该用户界面的内容容器的第二部分提供源控件,该源控件提供MICROSOFT Windows HWND句柄并驻留在主窗口的第二分区进程空间中(阶段276)。在一个实现中,内容容器的第二部分具有供例如在隔离的框架控件中显示的内容(阶段276)。第一分区进程空间可以通过执行Marsha旧yRefObjects进程来与第二分区进程空间通信(阶段278)。该过程在结束点280处结束。
图5是图1的系统的高级阶段的一个实现的处理流程图,其示出允许来自不同分区进程空间的内容以不同的安全级别一起显示时所涉及的阶段。在一种形式中,图5的过程至少部分地在计算设备100的操作逻辑中实现。该过程在起始点290处开始,在那里提供在托管框架环境中操作的特定软件应用程序(阶段292)。该特定软件应用程序的用户界面可以通过使用MICROSOFT Windows HWND互操作来拥有来自多个应用程序域的内容区域(阶段294)。在维持隔离和应用程序域所提供的管理功能的同时,可将可视元素合并到同一用户界面中,同时使用按引用编组来允许应用程序域之间的双向通信(阶段296)。可任选地,例如软件开发者等用户可以声明要使用的安全级别和/或其它关于内容区域中的一个或多个的细节(例如以XAML文件、或以各种其它格式)(阶段298)。这允许按需以变化的安全授权级别来显示该内容区域(阶段29S)。例如,可能需要取决于内容是来自可信还是不可信的源来改变安全级别,等等。该过程在结束点299处结束。
图6是示出隔离框架控件中出现的外部内容的一个实现的逻辑图。应用程序主窗口 300是包含窗口内容305的某一图形应用程序。窗口内容305可以是向用户显示的任何种类的可视元素。应用程序主窗口 300还包含隔离框架控件310。隔离框架控件310将包含内容320,其中内容320在整个应用程序的外部。隔离框架控件310对用户可以是不可见的。在一个实现中,使用此处讨论的某些或全部技术来允许将内容320 (例如来自不可信的单独实体)显示在操作于 与窗口内容305不同的分区空间中的隔离框架控件中。图7是示出使用窗口句柄来允许在同一用户界面中显示来自不同分区进 程空间的内容的一个实现的逻辑图。进程350将在托管运行时环境352中创建 第一分区进程空间358。在分区进程空间358中,执行应用程序360。应用程 序360包含其中存在句柄源366的隔离框架控件362。该隔离框架控件将加载 内容364以使内容364对用户可见。内容364在应用程序360的外部,并且, 由此,将要求进程350创建其中应执行内容364的第二分区进程空间356。在 加载内容364时,它的一个组件,句柄宿主368将它自己作为窗口句柄370向 句柄提供者354注册。然后句柄源366可以访问该窗口句柄370,并在应用程 序360中包含的隔离框架控件362中显示内容364。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解, 所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体 特征和动作是作为实现权利要求的示例形式公开的。落入在此所述和/或所附权 利要求所描述的实现的精神的范围内的所有等效方案、更改和修正都期望受到 保护。例如,计算机软件领域普通技术人员会认识到在此讨论的示例中所述的客 户机和/或服务器布置、用户界面屏幕内容、和/或数据布局可在一台或多台计 算机上不同地组织,以包括比示例中所描绘的更少或更多的选项或特征。
权利要求
1.一种具有用于使得计算机执行以下步骤的计算机可执行指令的计算机可读介质,所述步骤包括提供在托管运行时环境中操作的特定软件应用程序,所述特定软件应用程序具有用户界面;使用窗口句柄来允许所述特定软件应用程序的用户界面同时显示来自两个或更多不同分区进程空间的内容;以及在保持所述两个或更多不同分区进程空间之间的隔离级别的同时,允许将来自所述两个或更多分区进程空间的信息集成在操作于所述托管运行时环境中的软件应用程序的用户界面中。
2. 如权利要求1所述的计算机可读介质,其特征在于,所述窗口句柄是 Windows HWND句柄。
3. 如权利要求1所述的计算机可读介质,其特征在于,所述托管运行时 环境是托管.NET框架环境。
4. 如权利要求1所述的计算机可读介质,其特征在于,所述一个或多个 分区进程空间是所述托管运行时环境中的应用程序域。
5. 如权利要求1所述的计算机可读介质,其特征在于,所述分区进程空 间中的第一个可用于通过执行按引用进程编组来与所述分区进程空间中的第 二个进行通信。
6. 如权利要求5所述的计算机可读介质,其特征在于,所述按引用编组 使用Windows操作系统中的Marsha旧yRefObjects进程。
7. 如权利要求1所述的计算机可读介质,其特征在于,所述分区进程空 间中的第一个拥有所述用户界面的内容容器的第一部分,该第一部分具有包含 窗口句柄的主控件;以及所述分区进程空间中的第二个拥有所述用户界面的内容容器的第二部分, 该第二部分具有提供所述窗口句柄的源控件。
8. 如权利要求7所述的计算机可读介质,其特征在于,所述内容容器的 第一部分所遵循的第一安全级别与所述内容容器的第二部分所遵循的第二安 全级别不同。
9. 如权利要求8所述的计算机可读介质,其特征在于,所述内容容器的 第二部分显示来自不可信源的内容。
10. —种将来自不同分区进程空间的内容集成在单个用户界面中的方法, 包括以下步骤提供在托管运行时环境中操作的特定软件应用程序,所述特定软件应用程 序具有用户界面;向所述用户界面的内容容器的第一部分提供主控件,所述主控件包含窗口 句柄并驻留在主窗口的第一分区进程空间中;向所述用户界面的内容容器的第二部分提供源控件,所述源控件提供所述 窗口句柄并驻留在所述主窗口的第二分区进程空间中,所述内容容器的第二部 分具有供显示的内容;以及在保持所述内容容器的第一部分和第二部分之间的隔离级别的同时,允许 将来自所述第一分区进程空间和所述第二分区进程空间的信息集成在于所述 托管运行时环境中操作的软件应用程序的用户界面中。
11. 如权利要求io所述的方法,其特征在于,所述托管运行时环境是托 管.NET框架环境。
12. 如权利要求IO所述的方法,其特征在于,所述第一分区进程空间和 所述第二分区进程空间是所述托管运行时环境中的应用程序域。
13. 如权利要求IO所述的方法,其特征在于,所述窗口句柄是Windows HWND句柄。
14. 如权利要求IO所述的方法,其特征在于,所述内容容器的第一部分 所遵循的第一安全级别与所述内容容器的第二部分所遵循的第二安全级别不 同。
15. —种具有用于使得计算机执行如权利要求10所述的步骤的计算机可 执行指令的计算机可读介质。
16. —种将来自不同分区进程空间的内容集成在单个用户界面中的方法, 包括以下步骤提供在托管.NET框架环境中操作的特定软件应用程序,所述特定软件应 用程序具有用户界面;向所述用户界面的内容容器的第一部分提供主控件,所述主控件包含Windows HWND句柄并驻留在主窗口的第一分区进程空间中;以及向所述用户界面的内容容器的第二部分提供源控件,所述源控件提供所述Windows HWND句柄并驻留在所述主窗口的第二分区进程空间中,所述内容 容器的第二部分具有供显示的内容。
17. 如权利要求16所述的方法,其特征在于,通过使用来自所述内容容器 的第一部分和来自所述内容容器的第二部分的所述Windows HWND句柄,允许在保持所述第一部分和所述第二部分之间的隔离级别的同时,将来自多于一 个分区进程空间的信息集成在于所述托管.NET框架环境中操作的软件应用程 序的用户界面中。
18. 如权利要求16所述的方法,其特征在于,所述第一分区进程空间和 所述第二分区进程空间是所述托管.NET框架环境中的应用程序域。
19. 如权利要求16所述的方法,其特征在于,所述第一分区进程空间可 用于通过执行Marsha旧yRefObjects进程来与第二分区进程空间通信。
20. —种具有用于使得计算机执行如权利要求16所述的步骤的计算机可执 行指令的计算机可读介质。
全文摘要
公开了允许托管运行时环境中的用户界面显示来自两个或更多不同分区进程空间的内容的各种技术和方法。具有用户界面的软件应用程序在托管运行时环境中操作。窗口句柄允许应用程序的用户界面同时显示来自不同分区进程空间的内容。在保持分区进程空间之间的隔离级别的同时,可以将来自分区进程空间的信息集成在该用户界面中。这可以通过向用户界面的内容容器的第一部分提供主控件来实现,该主控件包含窗口句柄并驻留在主窗口的第一分区进程空间中。向内容容器的第二部分提供源控件,该源控件提供该窗口句柄并驻留在主窗口的第二分区进程空间中。
文档编号G06F17/00GK101627380SQ200880007313
公开日2010年1月13日 申请日期2008年2月15日 优先权日2007年3月9日
发明者A·S·谢蒂, D·P·雷里亚, L·拉沃, Z·魏秉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1