论文部分内容阅读
摘要:二次开发平台是指在某一个现存的开发框架下对一个基于此开发框架开发的应用软件进行功能扩充的平台。二次开发平台的产生和发展都有其必然性,一个良好的应用系统必然有一个与之对应的二次开发平台。本文正是基于此,针对二次开发平台的理论和技术的相关问题进行了分析与讨论。本研究旨在为二次开发平台研究和设计提供一些参考和借鉴。
关键词:二次开发平台理论技术基础
一、二次开发平台的理论基础
1.敏捷信息系统
敏捷信息系统(Agile Information System)是一种由人、计算机(包括网络)和管理规则组成的集成化系统。该系统利用计算机的软硬件,手工规程,分析、计划、控制和决策用的模型、数据库,为一个企业或组织的作业、管理和决策提供信息支持。
随着经济的发展和计算机技术的广泛应用,越来越多企业利用计算机来管理企业日常经营、生产、销售活动,期望以此提高企业的竞争力。但这并不意味企业采用了信息管理系统其竞争力就一定能得到提高,生存状况就一定能得到提高。
敏捷信息系统随着市场全球化而产生,随着企业之间竞争的激烈而发展。敏捷系统的产生和发展的过程和现代管理理论的发展是想对应的,敏捷信息系统倾向于分布式、自主管理、讲究轻薄和柔性、呈扁平的网状结构,是多元化、分布式、网络化的体系结构。
2.面向服务的体系结构
面向服务的体系结构是近来比较流行的一种架构技术和思想。它是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。由于接口是采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。这个特性为软件能够和其他软件相互通信提供了可能。
二、二次开发平台的技术基础
1.反射技术
反射技术是目前比较流行的技术之一。主流的开发软件例如微软的.net和java均支持反射技术。反射技术在许多方面被广泛运用,大多数的序列化引擎应用反射从需要序列化的对象中提取数据,许多对象关系建模(ORM)利用反射来执行动态映射功能。反射技术由于是采用后期绑定,因此降低了耦合,提高了系统的可靠性和可扩充性,因此在大型的软件设计中被广泛的实用。
反射(Reflection)是.net中的重要机制,通过反射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。通过反射技术,可以利用类的程序集名称和该类的名称去动态的创建该类,调用该类的方法,属性,甚至可以跨过访问修饰符的限定通过指定绑定类型去调用保护的、私有的方法和属性。这样就给一个高效的框架的实现提供了方便,框架可以调用类的方法而不用关心具体的类的实现,一切都可以交由后期绑定实现,程序部分的功能定义延缓到运行时确定,使得程序按需组装成为了可能,极大的提高了应用程序的灵活性和可扩充性。
2.动态编码技术
CodeDOM是代码文档对象模型(Code Document Object Model)的缩写,它允许.Net开发者以多种语言在运行时产生和编译源代码。CodeDOM是用于描述源代码的类的一个集合。一旦源代码被描述为CodedOM,它就能被打印、编译成汇编语言、或编译到内存中并执行。应用程序也能使用CodeDOM,作为阅读源代码的一个抽象层,而无需有具体语言的内部知识。
CodeDOM提供可用于表示(独立于编程语言之外的)源代码的类、接口和结构,这就意味着CodeDOM是不依赖于某一种编程语言的。通过这点,人们可以得出以下观点,利用CodeDOM技术动态产生代码,不需要具有某一种特定语言的编程知识,只要知道业务逻辑规则,按照自然语言的书写风格即可产生合格的代码。CodeDOM能将任何表示形式输出为以CodeDOM所支持的任何语言表示的源代码,在.NET Framework 2.0中,CodeDOM支持VB.NET,C#,JScript的代码生成器和代码编译器。
3.插件技术
随着计算机技术的发展,软件体系结构和开发方法也在发生着重大变化。为了提高软件开发效率,提高软件产品质量,增加软件的可扩充性,人们一直在寻求更好的软件体系结构和开发方法。插件技术由于能够满足上述要求,因此得到越来越多的应用,当前有很多成功的软件产品采用此种技术来开发。例如著名的MP3播放软件Winamp和著名的图像编辑软件PhotoShop就大量的应用了插件技术。插件技术是一种非常灵活的组件式结构,它把程序按功能划分为一个个独立的插件,插件之间相互独立,并且没有依赖次序。插件是独立于系统可独立开发的程序模块,它能够动态地插入到系统中,并且插件可以被自由地插入、删除和替换。
三、二次开发平台开发的难点及解决思路
二次开发平台的目的是让使用者能够在现有的软件框架内快速的开发出符合现有软件框架体系结构的应用程序,并使程序和原有的系统无缝的结合。但在实际的二次开发过程中,往往是二次开发人员不是原有软件的编写人员,他们不熟悉原有软件的体系架构和编写规范,甚至不是很了解原有软件的编程语言。这样就带来了一系列的麻烦,比如不了解原有的处理逻辑,只能按照自己的理解重新编写一系列的校验和处理逻辑,不能对原有的逻辑进行有效的复用,造成软件开发效率低下;不了解原有软件的编程语言,从头学习或者用其他编程语言开发,造成开发速度慢,程序风格不一致;由于二次开发人员不了解原有的程序内部逻辑结构,可能造成二次开发程序会对其他原有程序的不良影响,而且此影响是隐蔽的,不可预见的,往往当不良影响发生时错误数据已经很多,而且无法调整,对最终用户的正常工作造成影响。
因此,为了解决此问题,在二次开发平台中对二次开发要做出以下开发层次的定义:简单功能扩充;功能覆写;增加功能等。在整体的方案上可以采用.net技术的反射机制、动态编码和编译机制和SOA思想来解决上述遇到的问题。
关键词:二次开发平台理论技术基础
一、二次开发平台的理论基础
1.敏捷信息系统
敏捷信息系统(Agile Information System)是一种由人、计算机(包括网络)和管理规则组成的集成化系统。该系统利用计算机的软硬件,手工规程,分析、计划、控制和决策用的模型、数据库,为一个企业或组织的作业、管理和决策提供信息支持。
随着经济的发展和计算机技术的广泛应用,越来越多企业利用计算机来管理企业日常经营、生产、销售活动,期望以此提高企业的竞争力。但这并不意味企业采用了信息管理系统其竞争力就一定能得到提高,生存状况就一定能得到提高。
敏捷信息系统随着市场全球化而产生,随着企业之间竞争的激烈而发展。敏捷系统的产生和发展的过程和现代管理理论的发展是想对应的,敏捷信息系统倾向于分布式、自主管理、讲究轻薄和柔性、呈扁平的网状结构,是多元化、分布式、网络化的体系结构。
2.面向服务的体系结构
面向服务的体系结构是近来比较流行的一种架构技术和思想。它是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。由于接口是采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。这个特性为软件能够和其他软件相互通信提供了可能。
二、二次开发平台的技术基础
1.反射技术
反射技术是目前比较流行的技术之一。主流的开发软件例如微软的.net和java均支持反射技术。反射技术在许多方面被广泛运用,大多数的序列化引擎应用反射从需要序列化的对象中提取数据,许多对象关系建模(ORM)利用反射来执行动态映射功能。反射技术由于是采用后期绑定,因此降低了耦合,提高了系统的可靠性和可扩充性,因此在大型的软件设计中被广泛的实用。
反射(Reflection)是.net中的重要机制,通过反射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。通过反射技术,可以利用类的程序集名称和该类的名称去动态的创建该类,调用该类的方法,属性,甚至可以跨过访问修饰符的限定通过指定绑定类型去调用保护的、私有的方法和属性。这样就给一个高效的框架的实现提供了方便,框架可以调用类的方法而不用关心具体的类的实现,一切都可以交由后期绑定实现,程序部分的功能定义延缓到运行时确定,使得程序按需组装成为了可能,极大的提高了应用程序的灵活性和可扩充性。
2.动态编码技术
CodeDOM是代码文档对象模型(Code Document Object Model)的缩写,它允许.Net开发者以多种语言在运行时产生和编译源代码。CodeDOM是用于描述源代码的类的一个集合。一旦源代码被描述为CodedOM,它就能被打印、编译成汇编语言、或编译到内存中并执行。应用程序也能使用CodeDOM,作为阅读源代码的一个抽象层,而无需有具体语言的内部知识。
CodeDOM提供可用于表示(独立于编程语言之外的)源代码的类、接口和结构,这就意味着CodeDOM是不依赖于某一种编程语言的。通过这点,人们可以得出以下观点,利用CodeDOM技术动态产生代码,不需要具有某一种特定语言的编程知识,只要知道业务逻辑规则,按照自然语言的书写风格即可产生合格的代码。CodeDOM能将任何表示形式输出为以CodeDOM所支持的任何语言表示的源代码,在.NET Framework 2.0中,CodeDOM支持VB.NET,C#,JScript的代码生成器和代码编译器。
3.插件技术
随着计算机技术的发展,软件体系结构和开发方法也在发生着重大变化。为了提高软件开发效率,提高软件产品质量,增加软件的可扩充性,人们一直在寻求更好的软件体系结构和开发方法。插件技术由于能够满足上述要求,因此得到越来越多的应用,当前有很多成功的软件产品采用此种技术来开发。例如著名的MP3播放软件Winamp和著名的图像编辑软件PhotoShop就大量的应用了插件技术。插件技术是一种非常灵活的组件式结构,它把程序按功能划分为一个个独立的插件,插件之间相互独立,并且没有依赖次序。插件是独立于系统可独立开发的程序模块,它能够动态地插入到系统中,并且插件可以被自由地插入、删除和替换。
三、二次开发平台开发的难点及解决思路
二次开发平台的目的是让使用者能够在现有的软件框架内快速的开发出符合现有软件框架体系结构的应用程序,并使程序和原有的系统无缝的结合。但在实际的二次开发过程中,往往是二次开发人员不是原有软件的编写人员,他们不熟悉原有软件的体系架构和编写规范,甚至不是很了解原有软件的编程语言。这样就带来了一系列的麻烦,比如不了解原有的处理逻辑,只能按照自己的理解重新编写一系列的校验和处理逻辑,不能对原有的逻辑进行有效的复用,造成软件开发效率低下;不了解原有软件的编程语言,从头学习或者用其他编程语言开发,造成开发速度慢,程序风格不一致;由于二次开发人员不了解原有的程序内部逻辑结构,可能造成二次开发程序会对其他原有程序的不良影响,而且此影响是隐蔽的,不可预见的,往往当不良影响发生时错误数据已经很多,而且无法调整,对最终用户的正常工作造成影响。
因此,为了解决此问题,在二次开发平台中对二次开发要做出以下开发层次的定义:简单功能扩充;功能覆写;增加功能等。在整体的方案上可以采用.net技术的反射机制、动态编码和编译机制和SOA思想来解决上述遇到的问题。