软件组件和软件组件管理系统的制作方法

文档序号:6561737阅读:222来源:国知局
专利名称:软件组件和软件组件管理系统的制作方法
技术领域
本发明涉及软件组件和软件组件管理系统,尤其是涉及由多种应用软件程序用作“组件”的软件组件以及管理软件组件的软件组件管理系统。
背景技术
在今日的软件开发过程中,通过适当地划分现有的软件程序而获得的多个程序片段往往被视为组件(后文中称为“软件组件”),并且将其组合能高效地创建新的软件程序。
在这样的开发过程中,管理者有必要准确地通知用户如何使用软件组件。同时,为了快速应对使用软件组件的开发过程中的问题,重要的是用户准确地通知管理者软件组件是如何使用的,以及管理者正确地了解软件组件的使用情况。
注意,软件组件的“管理者”是对软件组件执行管理任务的操作者。这样的管理任务的实例包括交付、使用跟踪、版本控制、采集有关缺陷和可伸缩性的信息、向用户提供所采集的信息以及支持软件组件的应用。
软件组件的“用户”是使用软件组件开发应用软件程序的操作者。注意,通过使用应用软件程序而间接使用软件组件的终端用户不包括在软件组件的“用户”中。
JP-A11-327962(KOKAI)公开了涉及软件组件使用的技术。利用这种技术,例如将可视觉显示的信息加入到电子设备包括的软件组件中,所以能够通过电子设备的显示单元或者通过外部计算机,根据所加入的信息监视电子设备的操作条件。
在软件程序用作组件的产品开发中,软件组件的交付管理是管理者的重要任务。在交付管理中,管理者必须持续跟踪软件组件是否被授权的用户用于指定产品的开发,以及哪种软件组件被哪个用户使用,以便能够按需提供有关缺陷和可伸缩性的信息。
在由人员执行的交付管理中,难以完全持续跟踪软件组件交付后如何实际使用。例如,即使用户无意地或有意地对非原始意图的产品开发应用软件组件,或者将软件组件传递给第三方,实际上不可能可靠地检测出这样违反管理者的意图的对软件组件的使用,因为管理者无法检查关于每一项开发的源代码和连接信息。
JP-A11-327962(KOKAI)中公开的技术意在监视电子设备的操作序列并检测异常操作,因此不可应用于软件组件的交付管理。

发明内容
本发明已经考虑了上述情况。本发明的目的是提供软件组件和软件组件管理系统,它们允许将有关所述软件组件的管理信息和使用信息可靠而实时地传送到交付所述软件组件的管理者,从而能够便利软件组件的适当使用,改进软件组件的效率,以及消除软件组件的非授权使用。
根据本发明的一个方面,使计算机能够执行处理的软件组件从管理部门交付并包括至少一个所述计算机可执行的软件模块;第一软件子组件,被配置为在执行所述软件模块时向软件组件管理服务器传送识别所述软件组件的组件识别信息;以及第二软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件在其中执行的所述计算机的设备识别信息。
根据本发明的另一个方面,软件组件管理系统包括组件利用终端,用于通过加入从管理部门交付的软件组件而开发应用软件程序,或者用于使用所述已开发的应用软件程序;以及软件组件管理服务器,通过电信线路连接到所述组件利用终端,并被配置为至少接收识别所述软件组件的组件识别信息和识别所述组件利用终端的设备识别信息,其中所述软件组件包括至少一个所述组件利用终端可执行的软件模块;第一软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件的所述组件识别信息;以及第二软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件在其中执行的所述组件利用终端的所述设备识别信息。
利用本发明的软件组件和软件组件管理系统,有可能将有关所述软件组件的管理信息和使用信息可靠而实时地传送到交付所述软件组件的管理者。这就能够便利软件组件的适当使用,改进软件组件的效率,以及消除软件组件的非授权使用。


图1展示了根据本发明实施例的软件组件管理系统的示范系统配置;图2展示了根据本发明实施例的软件组件的示范配置;图3展示了软件组件和传输模块的示范配置和处理流程;图4为第一流程图,展示了软件组件和传输模块的示范处理流程;图5展示了示范组件识别信息、服务合同信息和设备识别信息;图6为第二流程图,展示了软件组件和传输模块的示范处理流程;图7展示了使用硬编码的挂钩装置实例;图8展示了使用类继承的挂钩装置实例;图9展示了使用面向方面语言的挂钩装置实例。
具体实施例方式
现在将参考附图,介绍本发明的软件组件和软件组件管理系统的若干实施例。
(1)软件组件管理系统图1展示了根据本发明实施例的软件组件管理系统1的示范系统配置。
软件组件管理系统1包括组件利用终端2和组件管理服务器3,它们通过电信线路4彼此相连。
组件管理服务器3通常位于软件组件30的管理者一方,管理者在管理部门中,而组件利用终端2通常位于软件组件30的用户一方。
软件组件30是按功能划分程序而获得的程序片段,通常是指通用程序的功能单元。如同在装置组件的情况下,组合软件组件30或将另一个软件程序增加到软件组件30的组合中可以创建具有特定功能的更大的软件程序(应用软件程序)。
只要软件组件30为通用程序并可以被用作组件,它们就可以为任何类型和规模。例如,通用程序比如傅立叶分析程序和访问具有预定数据结构之数据库的访问程序可以用作软件组件30。
软件组件30的管理者是负责持有和管理多种软件组件30的人员。管理者响应来自软件组件用户的请求,交付软件组件30。
软件组件30的交付通常包括达成关于谁能够在哪台终端使用软件组件30多长时间的协议(后文中这样的有关协议的信息被称为“服务合同信息”)。
管理者负责持续跟踪所交付的软件组件30如何使用并迅速地向适当的用户提供软件组件30的有关缺陷和可伸缩性的信息。
管理者也负责恰当地维持软件组件30的版本控制并向用户提供版本信息。
另一方面,软件组件30的用户是接收管理者交付的软件组件30的人员,并且使用接收的软件组件30开发新的应用软件程序10。
使用组件利用终端2开发应用软件程序10。组件利用终端2的实例包括但是不特定地限于通用个人计算机。
图1还展示了在组件利用终端2上开发的应用软件程序10的示范基本配置。
应用软件程序10包括从管理者交付的软件组件30、使用软件组件30的组件利用软件程序20以及传输模块(第二软件子组件)50。
应用软件程序10还被配置为包括用户(即应用软件程序10的开发者)开发的专有软件组件或者不使用软件组件开发的软件程序。
每个软件组件30都是执行预定功能的功能单元。例如,在分析类型的应用软件程序10中,软件组件30是执行傅立叶变换功能的软件单元。
另一方面,组件利用软件程序20是使用软件组件30的软件单元。在上述实例中,组件利用软件程序20将时间序列数据输入到执行傅立叶变换功能的软件组件30中,从软件组件30接收傅立叶变换后的频率数据,并且按需修改或编辑接收的数据。
在本实施例中,软件组件30配备了传输模块50,而且每个软件组件30都包括传输代码(第一软件子组件)40。这些是本发明不同于相关技术的特性。
传输代码40是在应用软件程序10执行期间调用和启动软件组件30时自动地向组件管理服务器3传送有关软件组件30的组件识别信息和服务合同信息的代码(程序)。确切地说,这些信息片段首先传送到传输模块50,并进一步通过电信线路4传送到组件管理服务器3。
传输模块50是向组件管理服务器3传送其自身获得的设备识别信息的程序单元,同时向组件管理服务器3传送从传输代码40接收的信息。
传输模块50也是从管理者交付的。所以如果每个软件组件30都称为第一软件组件,传输模块50就可以称为第二软件组件。
设备识别信息是识别组件利用终端2的信息,比如IP地址,并且是与软件组件30的类型无关的公用信息。所以,传输模块50是公用软件单元,被赋予获得公用信息的角色。
作为替代,每个软件组件30的传输代码40都可以传送设备识别信息以及组件识别信息和服务合同信息。在这种情况下,传输模块50从传输代码40收到信息后,就通过电信线路4传送到组件管理服务器3。
优选情况下,以用户无法内部修改的形式提供软件组件30和传输模块50,换言之,提供为黑盒组件。软件组件30和传输模块50是执行预定功能的软件单元,只要其外部说明清楚,用户就能够使用。如果进行不正当的修改,管理者就无法保证所交付软件组件30的质量。
在本实施例中,从组件利用终端2向组件管理服务器3传送的组件识别信息、服务合同信息和设备识别信息使得能够检测软件组件30的未授权使用。消除未授权使用是本实施例的重要效果。从这个观点,再次优选地以黑盒组件的形式提供软件组件30和传输模块50,所以防止传输代码40等被有意删除。
为了实现黑盒组件,软件组件30和传输模块50可以保存为二进制数据并交付给用户。
从组件利用终端2联机传送的组件识别信息、服务合同信息和设备识别信息由组件管理服务器3接收。
如图1所示,组件管理服务器3包括接收单元31、显示单元32、记录单元33和指令输入单元34。输入到接收单元31的信息可以通过显示单元32联机监视。作为替代,也可以在所述信息临时记录在记录单元33中之后再联机监视或分析。
根据输入到接收单元31的信息,管理者可以按照及时的方式检测用户对软件组件30的不正当使用。结果,可以向用户提供使用软件组件30的更适当的指示,并且能够改进应用软件程序10的开发效率。
此外,使用服务合同信息和设备识别信息使得易于检测用户对软件组件30的未授权使用。这可以防止软件组件30的未授权使用。
(2)软件组件的配置和操作图2展示了软件组件30的示范配置。软件组件30包括至少一个组,具有从外部(组件利用软件程序20)接收调用的方法调用接口301、调用方法调用接口301时启动的方法实施代码(软件模块)303、启动方法实施代码303时启动传输代码40的传输代码调用挂钩点302以及传输代码40。
方法实施代码303是软件模块,其中描述了原始试图由软件组件30执行的若干功能。方法实施代码303是一种概念,类似于被称为子程序或函数的软件模块。方法实施代码303在面向对象的语言比如Java和C++中往往被称为“方法”。后文中这样的软件模块被称为“方法”。
软件组件30通常包括多个方法,但是也可以由单一方法组成。
当软件组件30包括多个方法时,这些方法中的任何一个都可以被选中,并且都配备了方法调用接口301、传输代码调用挂钩点302和传输代码40。在这种情况下,优选地选中软件组件30执行期间总是被调用的方法。总是被调用的方法的实例包括软件组件30初始化的方法,以及软件组件30结束时后处理的方法。在编程语言比如Java、C++和C#中,称为构造函数和解构函数的方法对应于这样的方法。
方法调用接口301是从组件利用软件程序20接收调用所用的接口,它在软件组件30之外。在编程语言比如Java、C++和C#中,通过“类”和“接口”的各个方法定义实现方法调用接口301。
传输代码调用挂钩点302是挂钩装置的机制,在启动方法实施代码303时暂时停止执行方法实施代码303,并且启动传输代码40。一般来说,挂钩是指预占输入或消息以执行其专有处理。在本实施例中,传输代码40暂时地预占方法实施代码303的初始化处理。然后,在传输代码40的处理完成后,恢复方法实施代码303。下面将给出特定的实例。
下面将参考图3和图4,介绍如上述配置的软件组件30和传输模块50的操作。
图3展示了软件组件30和传输模块50的配置图。在图3中,由箭头指明了软件组件30和传输模块50的处理流程。图4为流程图,展示了软件组件30和传输模块50的处理流程。
首先,组件利用软件程序20通过方法调用接口301调用软件组件30的方法实施代码303(图4中的步骤ST1)。由这项调用启动方法实施代码303(步骤ST2)。
下一步,传输代码调用挂钩点302的挂钩装置挂钩(预占)方法实施代码303的操作并调用传输代码40(步骤ST3)。由这项调用启动传输代码40(步骤ST4)。作为替代,传输代码调用挂钩点302在启动传输代码40的功能时可以按需传递变元。
传输代码40从预定的存储器读取组件识别信息和服务合同信息并将读取的信息传递到传输模块50(步骤ST5)。
图5展示了示范的组件识别信息和服务合同信息。组件识别信息包括例如软件组件30的名称、标识号(ID)和版本信息。
服务合同信息包括例如服务合同商名称、合同商号码、交付软件组件30的日期、使用软件组件30的期间以及使用软件组件30的目标设备有关的信息。
由于向软件组件30的管理者传送了组件识别信息,所以管理者可以实时地持续跟踪哪个用户在哪里当前正在使用哪个软件组件30的哪个版本。此外,管理者可以快速验证软件组件30与交付前作出之承诺(合同)的符合度。
另一方面,传输模块50自己从预定的存储器读取设备识别信息。图5也展示了示范设备识别信息,它包括例如正在使用的设备(组件利用终端2)的IP地址和MAC地址。设备识别信息能够准确地识别当前实际正在使用的组件利用终端2。
传输模块50通过电信线路4向组件管理服务器3传送它自己获得的设备识别信息以及从传输代码40接收的组件识别信息和服务合同信息(步骤ST6)。
向组件管理服务器3传送了所述信息之后,所述过程返回方法实施代码303的处理,并恢复执行原始试图处理的实施代码(步骤ST7)。
在组件管理服务器3中,在接收单元31接收的组件识别信息、服务合同信息和设备识别信息被实时记录在记录单元33中,并按需显示在显示单元32中。
在记录单元33中临时记录的这些信息片段中,可以根据来自指令输入单元34的指令检索所需的信息,并且脱机或者联机显示在显示单元32中。
图6为流程图,展示了根据另一个实施例(第二个实施例)的软件组件30和传输模块50的处理流程。
在这个实施例中,传输代码40获得并向传输模块50传递组件识别信息、服务合同信息和设备识别信息(步骤ST50)。传输模块50简单地将从传输代码40接收的信息向组件管理服务器3传送(步骤ST60)。其他步骤与图4的流程图中展示的内容相同并给予与图4相同的附图标记。
图7至图9展示了步骤ST3中的示范挂钩装置。
图7展示了使用硬编码的挂钩装置实例。在这种挂钩装置中,调用传输代码40的代码在方法的实施代码中直接描述。图7中左图展示了不包括调用传输代码40之代码的已知方法(这个实例中的“方法A”)。实际上,软件组件30原始试图功能的代码将在第二行(注释行)中描述。
图7中右图展示了由硬编码实现的示范挂钩装置。传输代码40由第二行中描述的代码(“send data(data)”)调用。
这种形式的挂钩装置具有不需要编程知识以外专门知识的优点,但是也具有效率低的缺点。确切地说,如果有两种类型的软件组件30,一种具有传输代码40而另一种没有传输代码40(即不需要被管理者监视),两种类型都需要维护,那么两种类型的软件组件30中就都包括方法A所用的实施代码。所以,方法A所用的实施代码中的一切变化都必须反映在全部软件组件30中。
图8展示了使用类继承的挂钩装置实例。以这种形式,由类继承实现了面向对象语言中描述的软件组件30的挂钩装置。
在图8中的左图中,实施软件组件30原始试图功能的类被定义为基类。在图8中的右图中,实现传输代码40嵌入的类被定义为导出类。以这种类,导出类定义了与将要嵌入传输代码40的方法(这个实例中的“方法A”)具有相同名称和变元的方法,从而创建了虚函数。因此,通过在这个虚函数中使用基类的方法,实现了可监视的软件组件。
这种形式的挂钩装置的优点是一种类型的软件组件30具有传输代码40而另一种没有传输代码40时,容易维护两种类型,因为软件组件30原始试图功能的实施代码仅仅存在于一个类中。不过,这种形式的挂钩装置的缺点是如果基类具有其中将要嵌入传输代码40的多种方法,那么是否将要嵌入传输代码40的选项就增加了所需类的数目。
图9展示了使用面向方面语言(AOP)的挂钩装置实例。以这种形式的挂钩装置,面向方面语言比如AspectJ或Hyper/J用于描述软件组件30,而定义为方面的传输代码40被嵌入在现有的软件组件30中以实现可监视的软件组件。
如同在类继承的挂钩装置的情况下,这种形式的挂钩装置的优点是一种类型的软件组件30具有传输代码40而另一种没有传输代码40时,容易维护两种类型,因为软件组件30原始试图功能的实施代码仅仅存在于一个类中。此外,通过使用面向方面语言的高描述能力,可以低操作成本地指定或改变将要嵌入传输代码40的位置。
不过,这种形式的挂钩装置的缺点是与编程教育等相关联的更高的成本,因为面向方面语言当前尚未像面向对象语言一样广泛使用。
如上所述,利用本发明的软件组件30和软件组件管理系统1,有可能将有关所述软件组件30的管理信息和使用信息可靠而实时地传送到交付所述软件组件30的管理者。这就能够便利软件组件的适当使用,改进软件组件的效率,以及消除或防止软件组件的非授权使用。
本发明不限于上述实施例,而是在实践中可以通过修改本发明范围之内的若干组件而实施。此外,本发明能够通过适当地组合上述实施例中公开的多个组件而以多种方式实现。例如,可以去除实施例中公开的全部组件中的某一些。此外,不同实施例中的组件可以适当地组合。
权利要求
1.一种使计算机能够执行处理的软件组件,所述软件组件包括至少一个所述计算机可执行的软件模块;第一软件子组件,被配置为在执行所述软件模块时向软件组件管理服务器传送识别所述软件组件的组件识别信息;以及第二软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件在其中执行的所述计算机的设备识别信息。
2.根据权利要求1的软件组件,其中,所述组件识别信息包括所述软件组件的名称、标识号和版本信息至少其中之一。
3.根据权利要求2的软件组件,其中,所述组件识别信息进一步包括所述软件组件的服务合同信息。
4.根据权利要求3的软件组件,其中,所述服务合同信息包括下列至少其中之一有关能够使用所述软件组件的用户的信息、有关所述软件组件能够在其上使用的设备的信息以及所述软件组件能够使用的时间阶段。
5.根据权利要求1的软件组件,其中,所述设备识别信息包括所述计算机的IP地址和MAC地址至少其中之一。
6.根据权利要求1的软件组件,其中,所述第一软件子组件向所述第二软件子组件传送所述组件识别信息,而且所述第二软件子组件向所述软件组件管理服务器传送所接收的组件识别信息和所述设备识别信息。
7.根据权利要求1的软件组件,其中,所述第一软件子组件由所述软件模块的挂钩装置启动,所述第二软件子组件由所述第一软件子组件启动。
8.根据权利要求1的软件组件,其中,从管理部门交付的所述软件组件是二进制数据的形式。
9.一种软件组件管理系统,包括组件利用终端,用于通过加入从管理部门交付的软件组件而开发应用软件程序,或者用于使用所述已开发的应用软件程序;以及软件组件管理服务器,通过电信线路连接到所述组件利用终端,并被配置为至少接收识别所述软件组件的组件识别信息和识别所述组件利用终端的设备识别信息,其中所述软件组件包括至少一个所述组件利用终端可执行的软件模块;第一软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件的所述组件识别信息;以及第二软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件在其中执行的所述组件利用终端的所述设备识别信息。
10.根据权利要求9的软件组件管理系统,其中,所述组件识别信息包括所述软件组件的名称、标识号和版本信息至少其中之一。
11.根据权利要求10的软件组件管理系统,其中,所述组件识别信息进一步包括所述软件组件的服务合同信息。
12.根据权利要求11的软件组件管理系统,其中,所述服务合同信息包括下列至少其中之一有关能够使用所述软件组件的用户的信息、有关所述软件组件能够在其上使用的设备的信息以及所述软件组件能够使用的时间阶段。
13.根据权利要求9的软件组件管理系统,其中,所述设备识别信息包括所述组件利用终端的IP地址和MAC地址至少其中之一。
14.根据权利要求9的软件组件管理系统,其中,所述第一软件子组件向所述第二软件子组件传送所述组件识别信息,而且所述第二软件子组件向所述软件组件管理服务器传送所接收的组件识别信息和所述设备识别信息。
15.根据权利要求9的软件组件管理系统,其中,所述第一软件子组件由所述软件模块的挂钩装置启动,所述第二软件子组件由所述第一软件子组件启动。
16.根据权利要求9的软件组件管理系统,其中,从管理部门交付的所述软件组件是二进制数据的形式。
17.一种运行计算机以执行软件组件的方法,所述计算机具有识别所述计算机的设备识别信息,所述方法包括从管理部门接收软件组件并将所述软件组件存储在所述计算机的存储器中,所述软件组件包括至少一个所述计算机可执行的软件模块、被配置为传送识别所述软件组件的组件识别信息的第一子组件以及被配置为传送识别所述计算机的设备识别信息的第二子组件;在所述计算机执行所述软件模块时,使用所述第一子组件向软件组件管理服务器传送所述组件识别信息,以及在所述计算机执行所述软件模块时,使用所述第二子组件向软件组件管理服务器传送所述设备识别信息。
全文摘要
使计算机能够执行处理的软件组件,从管理部门交付并包括至少一个所述计算机可执行的软件模块;第一软件子组件,被配置为在执行所述软件模块时向软件组件管理服务器传送识别所述软件组件的组件识别信息;以及第二软件子组件,被配置为在执行所述软件模块时向所述软件组件管理服务器传送识别所述软件组件在其中执行的所述计算机的设备识别信息。
文档编号G06F9/44GK1979413SQ200610128019
公开日2007年6月13日 申请日期2006年8月31日 优先权日2005年12月7日
发明者池田信之, 高桥佳宏, 户谷浩隆, 神胜雅 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1