一种软件组件架构的制作方法

文档序号:6554145阅读:270来源:国知局
专利名称:一种软件组件架构的制作方法
技术领域
本发明涉及软件技术领域,尤其涉及一种软件组件架构。
背景技术
随着IT技术的不断发展,人们对软件的功能、性能、安全性等提出了更高的需求,导致软件的规模和复杂度日益增大,也给软件的开发带来了困难与挑战。
针对这种情况,人们提出了各种技术与方案。如面向对象技术、组件技术、构件技术、中间件技术、SOA技术等。各种技术都有其实现方案,如面向对象技术的方案则有C++、Java、C#等;组件技术有COM、JavaBean等。
其中的组件技术是一种使用得非常广泛的技术,它通过将软件组件化来分解软件,从而降低软件的复杂度。
COM就是当前提出的一种组件技术。它定义了一系列的标准接口,分别提供一些能力,实现了某些接口就具有了相应的能力。它将组件的信息记录到操作系统的注册表当中,也将一些跟COM组件相关的操作和机制封装成API(应用程序接口),内嵌到操作系统之中。用户只要按照COM的标准编写出组件就可以在支持COM的操作系统上运行。通过接口机制可以降低,甚至消除COM组件之间的耦合性,从而达到将软件模块化,降低软件复杂度的目的。
但是,在上述COM方案中由于使用了太多与操作系统相关的东西,如注册表、内嵌于操作系统中COM的支持库等,所以该技术依赖于操作系统的支持,无法跨平台,而且机制过于复杂,使用不够简便。

发明内容
本发明的目的在于提供一种软件组件架构,各组件的功能以接口的方式提供,通过入口模块访问各功能组件和业务组件,使该软件的组件方案可以跨平台使用,可扩展性强。
本发明的目的是通过以下技术方案实现的一种软件组件架构,包括功能组件、业务组件、入口模块、配置文件及应用程序;所述各组件的功能以接口的方式提供给入口模块,各设备通过入口模块访问各组件;所述的配置文件与入口模块连接,用于记录各组件的信息供入口模块使用;所述的应用程序是整个程序的入口,与入口模块交互。
所述功能组件为多个,相互之间不发生直接交互,在功能层面上实现复用。
所述业务组件是将多个功能组件关联在一起,实现可以被用户使用的一种业务,并在业务层面上实现复用。
所述业务组件包含界面时,向外仅提供与界面显示有关的接口。
为扩展使用各功能组件或业务组件,为所述组件增加相应的接口,内部增添相应要增加该接口对应的信息。
将多个功能组件和/或业务组件放置于一个模块中,向外提供多个组件入口,各组件入口分别对应各组件的接口;或只提供一个组件入口,通过该一个组件入口返回一个管理接口,再通过管理接口获得各组件的接口。
所述入口模块向外提供一个总的访问各组件的入口,用于从配置文件获取组件信息,具有用于从配置文件中获取组件信息,具有寻找组件、加载组件、创建组件和/或卸载组件。
所述配置文件用于记录各功能组件或业务组件信息供入口模块使用。
所述配置文件中记录的组件信息包括组件标识、组件的位置、访问组件的入口。
所述应用程序是整个程序的入口,只与入口模块交互,通过入口模块的入口来获得各组件类接口,再通过类接口来使用各组件的功能。
由上述本发明提供的技术方案可以看出,本发明将各组件功能以接口的方式提供,通过入口模块访问所有组件,由于该方案与操作系统无关,可以跨平台使用;该方案通过增加相应的接口实现扩展组件功能,可扩展性强,且本组件架构机制简单,易于实现及学习、使用。


图1为本发明一种实施例组件架构示意图。
具体实施例方式
本发明的核心思想是提供一种软件组件架构,将组件的功能以接口的方式提供,通过入口模块访问所有组件,入口模块只需获取配置文件的位置,与具体的组件分离出来,可以跨平台使用、机制简单,易于实现及使用,可扩展性强。
本发明提供一种软件组件架构,其一种实施例如图1所示,该组件架构至少包括功能组件、业务组件、入口模块、配置文件及应用程序;所述功能组件由基本的功能组件组成,用于实现基本的功能,以一种“呼叫”的业务为例,该业务包含“电话簿”、“呼叫记录”和“呼叫”功能,这些就属于基本功能,可以组成功能组件。功能组件之间不存在直接的交互,功能比较独立,可复用性好;
所述的业务组件是较上层的组件,是将一些功能组件关联在一起,从而实现可以被用户使用的一种业务。例如,在上例中将所述功能组件有机组合在一起,就可以构成“呼叫”业务组件。业务组件一般要利用功能组件来实现其功能,也就是调用功能组件的功能来实现其业务,而业务组件只是用于做封装和信息的整合等操作。
在业务组件中,除了各功能组件本身的功能外,业务组件还需要利用这些功能组件实现以下功能如上例,从电话簿发起呼叫、呼叫时生成呼叫记录、将呼叫记录中的号码保存到电话簿等功能,这些都是需要配合才能实现的功能。
所述各功能组件之间相互独立,在业务组件中可以进行配合使用,完成间接交互,这样功能组件可以在功能层面上实现复用,而业务组件可以在业务层面上实现复用。一个软件如果需要“呼叫”业务,则可以直接使用该业务组件来实现,若只需要使用电话簿功能,则可以将电话簿功能组件进行复用,通过和其它功能组件配合形成新的业务组件。
业务组件中可以包含界面,此时只需向外提供与界面显示有关的接口,由于具有界面,内部功能可以自动运转;也可以不包含界面,则需要将其提供的功能都以接口的方式与外界交互,这样使各业务独立,使主程序的逻辑非常简单;为扩展使用各功能组件或业务组件,可以为所述组件增加相应的接口,如增加一个获取组件信息的接口,通过该接口获取组件的相关信息,包括组件标识、组件的入口,在windows系统中表现为dll的导出函数,配合一个可以读写配置文件的应用程序,可以实现组件的自动注册,即,将组件的信息登记到配置文件中,及注销,即,将组件的信息从配置文件中删除;相应的也可以增加组件的相关信息,如可以增加一个组件版本号信息,并且可以通过“获取组件信息”接口取得该信息,这样就可以为组件的自动升级提供方便;为便于管理,可以将多个小型组件放置于一个模块中。可以通过两种方式实现1)在该模块中提供多个组件入口;2)只提供一个组件入口函数,但是通过该入口返回一个管理接口,再通过管理接口获得各组件的接口;所述的入口模块是访问各组件的入口,用于从配置文件中获取组件信息,具有寻找组件、加载组件、创建组件和卸载组件等功能;其向外提供一个总的访问各组件的入口,调用者只要传入一个组件标识,该入口模块会从配置文件中找到该组件标识对应的组件信息,从而知道组件路径和组件入口,根据这些信息,可以发现并加载组件模块,再调用组件入口,从而创建并得到该组件的功能接口。
所述的配置文件用于记录各组件的信息,供入口模块使用,其中记录的组件相关信息包括但不限于组件标识、组件的位置,即组件路径、访问组件的入口;在windows系统中,若组件以dll的方式组织,则该入口为dll的导出函数,并可以通过该函数获得组件的类接口指针;所述的应用程序是整个程序的入口,只与入口模块交互,通过入口模块的入口来获得各组件类接口,再通过类接口来使用各组件的功能,一般应用程序只使用业务组件的接口,即,只使用比较高层的服务;所述应用程序一般只包含界面部分,在windows中指的是exe文件,本实施例中只包含界面架构部分。它通过组合各业务组件来获得业务功能。
所述组件架构的工作原理为以“呼叫”的业务为例,通过呼叫业务组件实现,应用程序通过入口模块获取呼叫业务组件接口,并通过调用该接口将呼叫业务的界面加入到应用程序的界面架构中,则该应用程序就具有了“呼叫”的业务功能。
以通过“呼叫业务组件”中的电话簿界面发起呼叫为例呼叫业务组件通过入口模块获取电话簿、呼叫、呼叫记录等功能组件的接口,先调用电话簿组件功能获取电话号码,再调用呼叫组件功能发起呼叫。
所述呼叫业务组件可以包括如下功能组件电话簿组件、呼叫组件、呼叫记录组件等功能组件,其中电话簿组件提供电话簿组件功能接口,具有获得记录总数、通过索引获取电话号码等功能;呼叫组件提供呼叫组件功能接口,具有通过电话号码发起呼叫等功能;呼叫记录组件提供呼叫记录组件功能接口,具有添加呼叫记录,删除呼叫记录,查询呼叫记录等功能。
通过组合各功能组件,业务组件将各功能组件中的功能揉合在一起,使各功能组件间可以进行间接交互,以实现更复杂的功能。如呼叫业务组件除了具有各功能组件本身的功能之外,还具有从电话簿中发起呼叫,呼叫时会自动记录呼叫记录等功能;而且加上界面之后,业务组件可以自成一体,所有功能在其内部实现,应用程序只要将业务组件加载并显示出来,它就具有了该业务功能,而不用关心该业务功能的具体逻辑关系。
综上所述,本发明建立了一种软件组件架构,将各组件功能以接口的方式提供,通过入口模块访问所有组件,由于该方案与操作系统无关,可以跨平台使用;该方案通过增加相应的接口实现扩展组件功能,可扩展性强,且本组件架构机制简单,易于实现及学习使用。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种软件组件架构,其特征在于,包括功能组件、业务组件、入口模块、配置文件及应用程序;所述各组件的功能以接口的方式提供给入口模块,各设备通过入口模块访问各组件;所述的配置文件与入口模块连接,用于记录各组件的信息供入口模块使用;所述的应用程序是整个程序的入口,与入口模块交互。
2.如权利要求1所述的一种软件组件架构,其特征在于,所述功能组件为多个,相互之间不发生直接交互,在功能层面上实现复用。
3.如权利要求1或2所述的一种软件组件架构,其特征在于,所述业务组件是将多个功能组件关联在一起,实现可以被用户使用的一种业务,并在业务层面上实现复用。
4.如权利要求1所述的一种软件组件架构,其特征在于,所述业务组件包含界面时,向外仅提供与界面显示有关的接口。
5.如权利要求1所述的一种软件组件架构,其特征在于,为扩展使用各功能组件或业务组件,为所述组件增加相应的接口,内部增添相应要增加该接口对应的信息。
6.如权利要求1所述的一种软件组件架构,其特征在于,将多个功能组件和/或业务组件放置于一个模块中,向外提供多个组件入口,各组件入口分别对应各组件的接口;或只提供一个组件入口,通过该一个组件入口返回一个管理接口,再通过管理接口获得各组件的接口。
7.如权利要求1所述的一种软件组件架构,其特征在于,所述入口模块向外提供一个总的访问各组件的入口,用于从配置文件获取组件信息,具有用于从配置文件中获取组件信息,具有寻找组件、加载组件、创建组件和/或卸载组件。
8.如权利要求1所述的一种软件组件架构,其特征在于,所述配置文件用于记录各功能组件或业务组件信息供入口模块使用。
9.如权利要求8所述的一种软件组件架构,其特征在于,所述配置文件中记录的组件信息包括组件标识、组件的位置、访问组件的入口。
10.如权利要求1所述的一种软件组件架构,其特征在于,所述应用程序是整个程序的入口,与入口模块交互,通过入口模块的入口来获得各组件类接口,再通过类接口来使用各组件的功能。
全文摘要
本发明涉及软件技术领域中一种软件组件架构,其包括功能组件、业务组件、入口模块、配置文件及应用程序;所述各组件的功能以接口的方式提供给入口模块,各设备通过入口模块访问各组件;所述的配置文件与入口模块连接,用于记录各组件的信息供入口模块使用;所述的应用程序是整个程序的入口,与入口模块交互。由于该方案与操作系统无关,因此可以跨平台使用,另外,通过增加相应的接口实现扩展组件功能,可扩展性强,且本组件架构机制简单,易于实现及学习、使用。
文档编号G06F9/44GK1866204SQ200610001320
公开日2006年11月22日 申请日期2006年1月17日 优先权日2006年1月17日
发明者纪大胜 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1