当前位置: 首页 > 专利查询>微软公司专利>正文

基于元数据的事件化制造技术

技术编号:7287026 阅读:252 留言:0更新日期:2012-04-21 17:42
本申请涉及基于元数据的事件化。通过将要调用的事件处理程序添加到元数据中来取代编码制品以允许软件源代码的定制。类提供可以被分配处理程序的代表的事实被作为元数据的一部分来描述,换句话说,作为事件本身的描述。通过在元数据中定义事件化,就能在不编程源代码或不修改源代码的情况下,为特定事件添加和/或移除处理程序。

【技术实现步骤摘要】

本申请涉及软件程序的定制。具体而言,涉及基于元数据的事件化的软件程序的定制。
技术介绍
事件驱动编程是一种编程范例,其中由事件输入、用户动作或来自其它程序或线程的消息来确定程序的流程。在事件驱动应用架构中,应用具有分成两个部分的主循环事件检测和事件处理。在一些集成开发环境中,代码生成助理可以自动化事件处理所需的一些重复性任务。事件驱动程序包括一系列子例程或方法,也称为事件处理程序(handler)例程。 这些方法对主程序响应的事件进行处理例如,用户输入(例如键盘输入、鼠标点击等)可以触发一种方法来打开或关闭作为用户界面一部分的窗口、保存数据、退出应用和类似的动作。事件处理程序被绑定到事件,以便当事件发生时调用正确的函数。用户动作促使程序弓I发事件并调用匹配事件处理程序来处理事件。商业应用是具有可能上千的方法和事件处理程序的复杂软件,并且典型地涉及深度调查、大量的代码、可扩展的测试等。当要进行象商业应用的复杂软件的定制时,设计者要么提供了有限数目的默认备选,这会限制用户体验,要么提供了对定制代码的开发者的完整代码的访问。然而,当软件应用的大部分或完整代码是可访问的时,原始开发者失去对程序特征的控制。各个开发者作出的改变使对原始程序执行的任何测试无效,可能发生原始开发者不具有控制的非预期的错误或执行结果。这样,打开代码可能具有破坏程序的目标(例如用户满意度、性能、解决特定问题域中的问题的适用性等等)的不想要的结果。
技术实现思路
提供本
技术实现思路
以便以简化的形式介绍将在以下的具体实施方式中进一步描述的一些概念。本
技术实现思路
并不旨在专门标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。实施例旨在通过将要调用的事件处理程序添加到元数据中来取代编码制品对软件源代码进行定制。根据一些实施例,类提供可以被分配处理程序的代表的事实被作为元数据的一部分来描述,换句话说,作为事件本身的描述。通过在元数据中定义事件化,就能在不编程源代码(即不修改源代码)的情况下,为特定事件添加和/或移除处理程序。通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。可以理解,前述一般描述和以下的详细描述都是说明性的,并且不限制所要求保护的各方面。附图说明图1是示出在软件环境中的示例方法和处理程序的概念图2示出了根据某些实施例的示例元数据模型;图3说明了在用于根据一些实施例的代码开发的示例用户界面上的具有处理程序和特性的事件节点;图4说明了用于将处理程序添加到在用于根据其它实施例的代码开发的示例的用户界面上的事件的上下文菜单;图5是可实现根据各实施例的系统的联网环境;图6是可实现各实施例的示例计算操作环境的框图;以及图7示出了根据各实施例的基于元数据的事件化的过程的逻辑流程图。具体实施例方式如上简要描述,软件源代码可以在没有对其自身的代码进行修改的情况下通过将要调用的事件处理程序添加到元数据中以取代编程制品来进行定制。在以下详细描述中, 参考了构成详细描述的一部分并作为说明示出各具体实施例或示例的附图。可组合这些方面,可利用其他方面,并且可以做出结构上的改变而不背离本专利技术的精神或范围。因此,以下具体实施方式并不旨在限制,并且本专利技术的范围由所附权利要求及其等效方案来限定。尽管在结合在计算设备上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施方式,但是本领域的技术人员会认识到各方面也可以结合其它程序模块实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域的技术人员可以明白,各实施例可以用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、小型计算机、大型计算机以及类似计算设备。各实施例还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。各实施例可被实现为计算机实现的过程(方法)、计算系统、或者诸如计算机程序产品或计算机可读介质等的制品。计算机程序产品可以是计算机系统可读并且编码包括用于使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。计算机可读存储介质可例如通过易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或紧致盘以及类似存储介质中的一个或多个来实现。在整个说明书中,术语“平台”可以是用于执行应用的软件和硬件组件的组合,其中可实现各实施例。平台的示例包括但不限于,在多个服务器上执行的托管服务、在单个服务器上执行的应用以及类似系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为被视作网络上的服务器的、在一个或多个计算设备上执行的虚拟服务器(软件程序)。尽管将商业应用用作以元数据实现用于在不修改源代码的情况下定制程序的处理程序的软件的示例,但是各实施例可以在任何类型的应用中实现。以下提供关于这些技术和示例操作的更多细节。图1包括示出在软件环境中的示例方法和处理程序的概念图100。源代码的基本形式可以包括语句、声明、方法、操作符和关键词。在面向对象的编程中,类是一种构造,其用作模板以创建那个类的对象。类将其表示的概念的状态和行为封装起来。它通过被称为特性的数据占位符来封装状态并通过方法来封装行为。方法是或者与类相关联(该情况下它被称为类方法或静态方法)或者与对象相关联的子例程(在该情况下它是实例方法)。 方法通常包括用于执行动作的一系列编程语句、用于定制那些动作的一组输入参数、以及可能的一个或多个输出值(也称为(诸)返回值)。方法提供了用于访问和处理所指定的数据部分的机制。根据实施例的软件定制系统能够通过基于元数据的事件化来定制复杂软件,而不需要软件程序102的源代码104的修改,这可通过服务器、桌面计算机、膝上计算机、手持计算机、车载计算机、智能电话和类似的计算设备来执行。如上所述,源代码104包括许多方法108。在根据实施例的系统中,类提供了可以被分配处理程序110的代表作为元数据106 的一部分。通过在元数据106中定义事件化,可以在不修改源代码104的情况下添加或移除用于特定事件(或方法108)的处理程序110图2示出了根据某些实施例的示例元数据模型。根据实施例的系统遵循公布和订阅模型,其中所述可定制代码发布任意数目的感兴趣方(即定制代码)可以订阅的信息。定制代码就与实现被定制的功能的代码松散地耦合。底层实现因而可以自由地改变(不需要中断定制代码),只要在类似的情况下激发事件。事件是用信号通知应用代码的状态中的改变的编程制品。当引发事件时可以通知订阅者。订阅是在事件和事件处理程序之间存在的契约。订阅可以使得事件处理程序只要引发事件就被调用。根据实施例的系统中的事件处理程序是一段代码,该段代码指明了当引发事件时将被通知的兴趣(订阅)。每个事件可以具有任意数目的分配给其的事件处理程序。根据实施例的系统可以使用许多类型的事件,可以包括商业事件,所述事件可以在应用元数据中建模,并且只要应用确定其与告知商业逻辑执行中的兴趣点的感兴趣方 (即订阅者)相关则引发事件。每个方法可以具有指定的(正式)参本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:P·维拉森陈兆琪M·C·马西亚斯R·戈图穆卡拉
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术