CN1223938C - 一种构件的封装和一致性访问的方法 - Google Patents

一种构件的封装和一致性访问的方法 Download PDF

Info

Publication number
CN1223938C
CN1223938C CN200410030654.5A CN200410030654A CN1223938C CN 1223938 C CN1223938 C CN 1223938C CN 200410030654 A CN200410030654 A CN 200410030654A CN 1223938 C CN1223938 C CN 1223938C
Authority
CN
China
Prior art keywords
component
information
packaging part
directory
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200410030654.5A
Other languages
English (en)
Other versions
CN1564129A (zh
Inventor
张尧学
方存好
刘博�
周悦芝
郭关飞
韦理
徐鹏志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN200410030654.5A priority Critical patent/CN1223938C/zh
Publication of CN1564129A publication Critical patent/CN1564129A/zh
Priority to US11/096,437 priority patent/US20060080336A1/en
Application granted granted Critical
Publication of CN1223938C publication Critical patent/CN1223938C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种构件的封装和一致性访问的方法,属于软件工程技术领域。本发明包括:在一台或多台计算机上设置构件库,并将从互联网获得的构件存入构件库中,构成构件库计算机;在一台计算机上设置构件目录库,构成构件目录库计算机;构件使用方从构件库计算机上提取构件,对构件进行封装形成构件封装件,并将其组织存储在构件目录库计算机上;构件使用方根据构件目录库计算机中的构件封装件信息对构件资源进行一致性访问。本发明可实现对现有的构件资源的统一描述和有效组织,从而更好地支持上层应用对构件资源的高效率检索与一致性访问。本发明可在金融、教育、电子商务、电子政务、医疗卫生等应用领域中提高网络软件复用和软件开发的效率。

Description

一种构件的封装和一致性访问的方法
技术领域
本发明属于软件工程技术领域,特别涉及对软件构件的通用性的改良。
背景技术
目前金融、教育、电子商务、电子政务、医疗卫生等应用领域内,软件***作为具体技术方案的一种实施途径,它连同计算机硬件、输入输出设备以及计算机网络基础设施一起,极大地促进了这些应用领域内的业务流程集成,提高了自动化水平。在这些应用领域,软件成为一种依附在计算机硬件之上的重要的技术方案组成部分,并对各应用领域实现的功能起着重大的作用。
随着人们需要软件完成的任务越来越复杂,对功能的需求越来越强大,软件开发的任务也相应的繁重起来。同时,人们也发现,随着软件功能的增强,很多功能出现了重复开发的问题。因此就有人提出把软件***中的公用部分做成单独的软件构件,可以在不同的软件***中反复使用,既降低了开发成本,又提高了***的可靠性和安全性。这即是软件复用技术。
同时,随着Internet(因特网)应用深度的拓展,Internet已从一个简单的信息发布平台演化为分布式计算平台,人们不仅从网上取得信息,同时也在获取各种网络应用程序(服务)。这种面向终端用户的应用程序个性化定制也将是未来软件开发的主要模式之一。这就需要一种方法,利用分布在网络中一些可以复用的软件构件,通过这些构件之间的一致性访问实现对这些可复用构件的集成,从而生成一些符合要求新的程序(服务)。
软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用***的开发不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用***开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发重点集中于应用的特有构成成分。
实现软件复用的关键因素(技术和非技术因素)主要包括:软件构件技术(SoftwareComponent Technology)、领域工程(Domain Engineering)、软件构架(SoftwareArchitecture)、软件再工程(Software Reengineering)、开放***(Open Engineering)、软件过程(Software Process)、CASE技术等以及各种非技术因素、且各种因素是互相联系、互相影响的,它们结合在一起,共同影响软件复用的实现。
其中的构件技术是支持软件复用的核心技术。在本专利说明书中,构件特指具有相对独立功能和可复用价值的软件模块。
构件技术的出现是对传统软件开发过程的一次新变革,它以面向对象概念为基础,是支持软件复用的核心技术。在软件开发过程中,构件的作用与电子设计中集成电路模块(IC)的作用类似,它隐藏功能的具体实现,对外提供严格定义的接口。因此有人形象地将构件称为“软件IC”,如图1所示。
构件是一种具有相对独立功能和可复用价值的软件模块,其具有下列特征:
1)独立发布的软件实体;
2)通过严格定义的接口封装某种特定功能;
3)支持在构件框架中的即插即用(Plug-n-Play);
4)支持与其他的构件的协作与组装,形成一个具有特定功能的软件***;
5)能够被实现相同一组接口的其他构件替换。
为了支持软件复用技术,一些组织和公司纷纷推出自己的构件技术标准。目前,有影响的构件标准有SUN公司提出的Java构件标准JavaBeans、EJB,微软公司提出的COM、DCOM标准以及对象管理组织(OMG)CORBA3.0规范中的CCM标准。分别简述如下:
1)JavaBeans:JavaBeans是SUN公司于1996年9月发布的一种基于Java语言的构件技术标准规范。它是构件技术与Java语言的融合。基于该规范,开发者可以编写一种与平台无关的Java构件。
2)EJB(Enterprise JavaBean):EJB由SUN公司于1998年3月发布,它定义了开发、配置和管理服务器端Java构件的接口,允许用户通过可重用的服务器端构件开发大规模商业应用程序。目前,已经有包括Oracle、Borland、Tandem、Symantec、Sybase等多家公司宣布在自己产品中支持EJB。
3)CORBA构件模型(CCM):CCM(CORBA Component Model)于1999年8月由对象管理组织(OMG)的相关任务组投票通过,它是CORBA 3.0规范的重要组成部分,定义了即插即用CORBA对象的创建、组装和发布框架。
4)COM/DCOM构件:COM/DCOM构件是微软公司提出的构件标准,COM/DCOM规范是一个二进制标准,它既不指定构件的实现语言,也不限制构件的实现方法,它通过提供了远程操作优化机制、授权访问机制等服务,以提高远程方法调用的效率和安全性。
目前,Internet上出现了很多遵循上述构件技术标准的专门的构件库(如Alphaworks、ComponentPlanet、ComponentSource、Flashline等),提供了多种现成的可用构件,这些构件库形成了Internet上的构件资源,为软件复用,基于构件的程序开发提供了基础。而且随着构件技术的发展,网络构件库的规模仍在不断扩大,从而为基于构件的程序开发提供了坚实的基础,同时也为应用和服务的组合提供了构件资源。
但是,目前各种类型的构件都使用自己特定的规范来开发,构件描述中对不同类型构件之间一致性访问缺乏必要的支持,造成构件搜索、获取以及分析、组装等构件处理活动的困难。主要有以下两点:
1)构件描述的外部性信息不充分,即不能清晰一致地说明构件“能够做什么”。现有的构件描述语言不能提供足够的构件组织资源和功能分类信息,构件的能力描述充分且不一致,造成上层应用在构件搜索、获取方面的困难。
2)构件接口的行为信息不一致,即不能清晰一致地说明“怎样使用构件”。构件的行为是通过构件的接口来表示。目前,各类构件的接口描述严重依赖于构件实现的编程语言,造成描述不一致,不能很好地支持构件之间的相互访问。
目前,要在分属不同构件模型的两个构件之间进行一致性访问,就必须在构件之间加一个特殊的转换中间件来交换信息。例如,要在JavaBeans构件和CORBA构件之间实现一致性访问,需要以下步骤:
(1)生成一个JavaBeans-CORBA的描述转换中间件
(2)生成一个CORBA-JavaBeans的描述转换中间件;
(3)JavaBeans构件发出的访问信息通过JavaBeans-CORBA描述转换中间件,转换成CORBA构件能够识别的信息。
(4)CORBA构件接受这些信息,作出相应,并将应答消息发送给CORBA-JavaBeans的描述转换中间件,并转换成JavaBeans构件能够识别的信息。
(5)JavaBeans构件接受这些信息,完成本次访问。
同样,如果JavaBeans构件希望和一个ActiveX构件交互,还需要一个JavaBeans-ActiveX的描述转换中间件和一个ActiveX-JavaBeans的描述转换中间件,并按上述相同的步骤完成相互访问;这样,就使得在不同的构件模型之间进行数据交换和数据共享变得非常复杂和不易实现,由于每种构件模型的实现方式都不同,因此,每两种不同构件模型之间的通信都需要使用特定的描述转换中间件,而这些中间件并不是通用的,只能是针对某种特定类型特定的构件。用这种方式来处理n个构件间协同工作所需的交互,则需要数量级n(n-1)种的描述转换中间件。实现的工作量太大,而且效率显然不是很高。因此,这种方式不能从根本上解决不同构件之间进行透明的一致性访问问题。
发明内容
本发明的目的是为克服已有技术的不足之处,提出一种构件封装和一致性访问方法:在现有的各种构件模型(如ActiveX,JavaBeans,EJB等)的基础上,提出了一种通用的构件封装件,本发明称其为统一构件描述封装件(简称UCDL封装件),该封装件通过对构件的封装来屏蔽构件描述和调用接口的差异,从而实现构件的一致性访问。并以此为基础,实现对Internet上现有的构件资源的统一描述和有效组织,从而更好地支持上层应用对构件资源的高效率检索与一致性访问。本发明可在金融、教育、电子商务、电子政务、医疗卫生等应用领域中提高网络软件复用和软件开发的效率。
本发明提出一种构件进行封装及一致性访问方法,如图2所示,
主要步骤如下:
1)在一台或多台计算机上设置构件库,并将从互联网上获得的构件存入构件库,构成构件库计算机;
2)在一台计算机上设置构件目录库,构成构件目录库计算机。构件目录库计算机将用来存储构件封装件及其索引信息;
3)构件使用方从构件库计算机上提取构件,对构件进行封装形成统一形式描述的构件封装件,并将该封装件组织存储在构件目录库计算机上。具体步骤见后。
4)构件使用方根据构件目录库计算机中的构件封装件信息对构件资源进行一致性访问。具体步骤见后。
如前步骤3)所述的对构件进行封装的方法,如图3所示,包括如下步骤:
31)构造一种通用的构件封装件结构,该封装件结构包括用统一形式描述的构件静态信息部分和构件动态信息部分,其中构件静态信息部分包括构件的基本描述信息、资源位置信息、分类信息(如构件的名称、作者、版本、厂商、大小等等);构件动态信息部分为构件接口信息,包括构件所提供的接口信息和构件运行所需要的接口信息;
32)从现有的构件库中提取构件,根据该构件的文件扩展名及内部自带标识字段判断要封装的构件类型,例如区分出是JavaBean构件、ActiveX构件或是其他类型构件;
33)判断构件类型以后,针对不同构件类型,提取构件自身信息,采用相应的映射方法,将该构件自身信息填充到封装件结构的相应部分(首先根据构件自身描述中的基本信息字段获得构件的静态信息,填充到封装件结构的静态信息部分中;然后提取构件自身的动态接口信息,填充到封装件结构的动态信息部分中),最后形成用统一形式描述的该构件自身信息的UCDL封装件;
构件封装件实际上就是根据此封装件结构生成的XML文件形式的构件信息描述文件,将其称为统一构件描述封装件(简称UCDL封装件);
34)把步骤33)生成的构件UCDL封装件按照其中的分类信息组织到构件目录信息库中(向构件目录信息库进行构件封装件注册),构件目录信息库按照分类信息为构件目录库中的所有构件UCDL封装件建立一个总的索引结构,构件目录库信息库中每一个目录项为该构件的封装件;而构件本身仍然存储在原有的构件库中;
如前步骤4)所述的采用上述封装结构的构件的一致性访问包括以下步骤:
41)构件使用方根据UCDL封装件中的分类信息和基本描述信息,通过目录信息库查询到符合此条件的一组构件封装件;
42)根据UCDL封装件结构中的接口信息,进一步找到接口完全匹配的构件封装件;
43)根据UCDL封装件中的位置信息,从构件库中获取所需构件本身;
44)在构件使用方和构件之间,利用UCDL封装件中定义的接口信息,结合现有的构件绑定协议(如SOAP:Simple ObjectAccess Protocol,简单对象访问协议),实现构件的相互调用。
本发明的特点:
本发明为每一种构件提供了统一的封装件结构,称之为UCDL(UniversalComponent Description Language)封装件结构。在UCDL封装件结构中,利用统一的术语空间来表征构件“能够做什么”、“怎么使用构件”,并将这些信息用XML表示,便于构件之间行为信息的交互与处理,也便于上层应用对各种不同类型的构件资源进行一致性访问。这些不同构件模型的构件之间的数据交换和数据共享就都统一变成UCDL封装件之间的数据交换和数据共享。UCDL封装件在保证不同类型构件之间能够相互理解的基础上,实现了对现有构件资源的统一描述和有效组织,各种不同类型的构件资源与上层应用之间均可通过该构件的UCDL封装件的访问接口进行一致性访问。
本发明的技术效果及应用:
1、采用本发明的方法,通过对构件的封装来实现不同构件之间的一致性访问,使得需要访问多种构件的客户程序可以按照统一的方式来访问不同类型的构件,不仅大大简化了客户端的程序,还提高了软件集成的灵活性。
2、本发明可应用于金融、教育、电子商务、电子政务、医疗卫生等应用领域,针对这些应用领域内来自不同供应商、不同模型的各类构件,使用本发明中的通用构件描述方法,生成构件UCDL封装件,并统一组织为领域构件库,实现构件资源的一致性访问,从而可灵活地支持本应用领域的业务流程的形成和动态调整以及面向用户的个性化应用程序的定制和集成。
3、本发明不仅可以提高软件开发人员进一步开发构件平台和构件(程序)挖掘***的效率,同时还可以根据终端用户的需求直接发现、定制用户需要的应用程序,为未来面向用户的主动服务提供统一的构件访问接口。
4、以本发明的技术为基础,可以向用户提供个性化编程功能,比如可以用来建立与Yahoo、Google等Web搜索引擎类似的构件搜索引擎,通过开发相应的访问界面,建立构件搜索引擎,在因特网上提供构件的索引和检索功能。
5、应用本发明可以提高软件***的安全性。用户可以根据网络环境和应用安全的需要,随时利用本发明的构件一致性访问技术,使用备选构件灵活地置换软件***所使用的安全性构件及其组装方式,如金融、电子政务等领域的安全防护方面可以起到重要作用。
附图说明
图1为构件结构示意图。
图2为本发明方法的流程示意图。
图3为本发明的构件封装方法步骤。
图4为本发明的构件一致性访问方法步骤。
图5为本发明的UCDL封装件结构示意图。
图6为本发明构件目录库中的树形目录索引结构示意图。
具体实施方式
本发明提出的一种构件的封装及其一致性访问方法结合附图及实施例详细说明如下:本发明方法的总体步骤,如图2所示,包括:
第一步:在一台或多台计算机上设置构件库,把从互联网上获得的构件存储入构件库,构成构件库计算机;
第二步:在一台计算机上设置构件目录库,构成构件目录库计算机。构件目录库计算机将用来存储构件封装件及其索引信息;
第三步:构件使用方从构件库计算机上提取构件,对构件进行封装形成统一形式描述的构件封装件,并将其组织存储在构件目录库计算机上。具体步骤见后。
第四步:构件使用方根据构件目录库计算机中的构件封装件信息对构件资源进行一致性访问。具体步骤见后。
如前述总体第三步所述的构件的封装方法,如图3所示,包括如下具体步骤:
步骤1:
构造一种通用的构件封装件结构。构件封装件实际上就是根据此结构生成的XML文件形式的构件信息描述文件,本发明称其为统一构件描述封装件(简称UCDL封装件),表示了UCDL封装件是如何描述他所封装的异构构件的。
本发明UCDL封装件的结构如图5所示,包括四个部分:基本描述信息、资源位置信息、分类信息和构件接口信息,前三部分都属于构件静态信息部分;而构件的动态信息部分为构件接口信息,又分为构件提供的接口信息和构件使用的接口信息。各部分与其对应的描述符以及其含义,如表1所示:
                                           表1
  信息种类   描述符   描述符含义
  构件静态信息 基本描述信息   ID   构件描述符的全局唯一标识
  Name   构件的名称
Author   创建该构件的作者,包括作者的名字、地址及联系信息等
Vendor   提供该构件的厂商或组织,也包括公司名称、地址、联系信息等
  Version   构件的当前版本和修订号码
Functional Description   构件所完成功能的文字描述,指明构件的主要特征、功能及其他需要说明的信息,从该描述中可以提取关键词表以支持传统的基于关键词匹配的构件搜索;
  Date   构件发布和被索引的日期
  Size   构件的大小,以K字节为单位
  分类 Component Model   为构件运行、操作提供服务或接口的标准框架
  信息   Program Language   实现构件所采用的变成语言
Application Field   该构件实际应用的具体商业领域,如金融、商业、医疗等等
  Operation System   构件所支持的操作***平台
Component Function   软件开发过程中发挥作用的环节,构件具体功能分许多子类
  资源位置信息 Location   构件的可执行部分的位置,一般用URL来表示
动态信息   提供的接口信息 Provided Interface list   指构件提供的服务,一个构件可以有一个或多个接口
  ProvidedInterfaceDescription Name 操作名称
  Description   操作功能的描述
  Parameters   操作的入口和出口参数
  Name   操作参数名称
  Type   参数类型
  Description   参数描述
  Invariants   该参数的约束条件
  Return Value   操作的返回值
Constraints   指对操作行为的限制,如果前件满足,则该操作完成后保证后件的满足
  Pre-condition   前件
  Post-condition   后件
  EventList   构件发出的事件列表
  EventDescription   Name   事件名称
  Description   事件的描述
  ListeningMethod 事件的监听方法
  EventObject   事件所传递的对象
  Properties   构件对外展示的属性
  PropertyDescription   Name   属性名称
  Type   属性类型
Description 属性描述
Default Value 属性的默认值
Valid Value 有效值
AccessMehtods 属性的访问方法
需要的接口信息 Requfied Interface list 指构件正常运行需要外界提供的服务
RequriedInterface Component list 指明直接为本构件提供服务的构件列表
Service List 指明构件正常运行所需要的特定服务
ServiceDescription     Name 服务名称
    Type 服务类型
    Description 所需服务的描述
    Operation List 提供该服务的可执行操作列表
    Event List 构件运行需要监听的事件列表
构件中的各种信息可根据上述表中各描述符的含义转换成相应的描述符,表中内容具体说明如下:
基本描述信息:该部分指明构件的非行为特征属性(如构件的全局唯一标识、名称、作者、版本、厂商、大小等项条目),提供构件的静态信息。在基本描述信息部分,在需要的时候可以添加新的描述符来对应构件的新增信息,保证描述符的可扩展性和灵活性。
分类信息:封装件结构中的分类信息从构件模型、应用领域、编程语言、应用领域、操作***、构件功能5个分类角度的描述符对应构件的分类信息,每个分类信息描述符包括一个基本术语(term)集,每个构件的分类信息必需从该基本术语集中选择一个或多个术语作为该项的描述;本发明的基本术语集的实施例如表2所示。
                                       表2分类信息基本术语集
分类角度                       术语词表             说明
构件模型 COM,DCOM,CORBA,EJB,JAVABEAN,Other 为构件运行、操作提供服务或接口的标准框架
编程语言 C,C++,Csharp,Pascal,VisualBasic,Fortran,JavaAda,Assembly,Delphi,Prolog,Lisp,Peri,Other 指实现构件所采用的编程语言
应用领域 Agriculture,Aerospace,Automotive,Banking,Biotech,Business,Communication,Construetion,DotCom,Financial,Insurance,Healthcare,Manufacturing, 构件的应用领域是该构件实际应用的具体商业领域,如金融、商业、医疗等等
RealEstate,Retail,Public,Administration,Services,SoftwareDevelopment,Telecommunication,Transportation,Utilities,WholesaleTrade,Other
  操作*** Solaris,Linux,HPUX,MacOS,Wintel,WindowsNT,Win2000,Other   指构件所支持的操作***平台
  构件功能 Development,Tools,File,Manipulation,Multimedia,Network,Tools,Scientific Computing,User Interface,Word Processing,Internet/,Intranet,Database,Miscellaneous,Others   在软件开发过程中发挥作用的环节,构件具体功能分许多子类
本发明的分类信息的构件功能项的术语词表中可以进一步扩展子功能顶,以便对构件功能的描述更加详细和具体。本发明的构件子功能项的术语集实施例如表3所示。
                             表3:构件功能子项术语集
 分类子项 术语词表   说明
 Development Tools开发工具 Application Servers   应用服务器
Component Managers   构件管理器
Component Creation Tools   构件生成器
Code Components   代码生成
Configuration &Initialization Components   配置与初始化
Debugging & Testing Components   跟踪测试
Installation Tools   安装工具
Localization Components   本地化工具
Source Code Generators   源代码生成构件
Software Upgrade Components   软件升级
Help Components   帮助构件
Version Control Components   版本控制
Software Licensing Components   软件注册
Others   其他
 File Manipulation文件处理 Compression   压缩
Encryption   加密
Convert Tools   转换工具
File Spit Tools   文件拆分
Icon Tools   图标工具
File Upload Components   文件上载
Imaging Components   图形构件
PDF Tools   PDF工具
  Others   其他
  Multimedia多媒体   Audio,MIDI & Sound Components、、   声音
  Speech Recognition Components   语音识别
  DirectX Components   DirectX构件
  MP3 Components   MP3构件
  Video Components   视频构件
  QoS Components   服务质量控制
  Multimedia Mail   多媒体邮件
  Collaborative   协作构件
  Video Conferencing   视频会议
  3D Modeling Components   3D建模
  NetworkTools网络工具   Proxy   代理服务器
  News   新闻
  Firewall   防火墙
  Facsimile Components   传真构件
  Directory Service   目录服务
  Network Management   网络管理
  Network Communication   网络通信
  Messaging Components   消息构件
  Serial Communication Components   串行通讯
  Servlet   服务器小程序
  CGI   通用网关接口
  Dialup Components   拨号构件
  BBS   电子公告版
  Chatting Tools   聊天工具
  Others
  ScientificComputing科学计算   Signal Processing   信号处理
  Maths & Stats Components   数学/统计构件
  Algorithms   算法
  Others   其他
  User Interface用户接口   Button Components   按钮构件
  Calendars/Scheduling   日历/日程表
  Charts/Graphs   图表/图形
  Data Input/MIking   数据输入/屏蔽
  Data Entry Verification   数据入口验证
  Grids/Tables   表格
  Instrumentation   可视仪器构件
  Text Components   文本
  Treeview & List Components   树状视图/列表
  Toolbar Components   工具条
  Menu Components   菜单
  Diagramming Components   图表/曲线构件
  Others   其他
  WordProcessing字处理   Find & Replace Components   寻找/替换
  Spelling Components   拼写
  Spreadsheet Components   电子数据表构件
  Print & Preview Components   打印/预览
  Reporting Components   报告
  Others   其他
  Internet/Intranet因特网/企业内部网   E-Commerce   电子商务
  E-mail   电子邮件
  FTP   文件传输
  Telnet   远程登录
  HTTP   超文本传输
  Security   安全
  Website Components   网站
  HTML   超文本标记语言
  XML   扩展标记语言
  Internet Communication   因特网通讯
  Authoring Tools   网络出版工具
  Search Engines   搜索引擎
  Explorer Components   浏览构件
  Others   其他
  Database数据库   Database Connectivity Components   数据库连接工具
  Database Management   数据库管理
  Database Reporting   数据库报告
  Data Storage Components   数据存储
  SQL Components   SQL构件
  OLAP Components   OLAP构件
  Others   其他
  Miscellaneous杂项   Addressing,Postcode/ZipCode Components   地址/邮政编码/地区码构件
  Barcode Components   条形码
  Credit Card Authorization Components   ***授权
  Telephony Components   电话构件
  Paging Components   寻呼构件
  SMS Components   短消息
  Others   其他
资源位置信息:这部分指明构件的存储位置,本实施例的构件位置信息用URL表示。
动态信息:本发明把构件的动态信息归为两类:提供的接口信息和需要的接口信息。构件提供的接口信息用接口名称、文字描述、操作列表、发出的事件以及对外展示的属性来表示。操作列表中的每个操作进一步用操作名称、文字描述、操作参数、一组前件、后件及不变量、事件和属性等来描述。构件需要的接口信息指构件正常运行需要外界提供的条件,它可以在两个层次上指定:一是在构件级别,直接指明本构件正常运行所需要的构件;另一个是在服务级别,即用操作、事件及其语义来详细说明构件的需求。
为了满足构件信息独立于特定构件技术和易于扩展的要求,本发明选用扩展标记语言XML来表示各部分构件信息的描述符。XML是W3C组织提出的标准,是一种与平台无关的结构化信息描述语言,是目前Web中最通用的数据描述格式。构件信息描述符中的各个描述项可以通过定义相应的扩展标记语言XML标签来表示,这样每个构件的描述就成为一个XML文档,构件的搜索、访问等操作就可以转换为对XML文档的读写和检索处理。
步骤2:
在构件封装件生成之前,首先判断该构件的类型。根据构件文件的扩展名及内部自带标识字段判断要封装的构件类型是JavaBean构件,还是ActiveX构件,或是其他类型构件。
步骤3:
确定构件的类型后,根据构件类型采用相应的映射方法。将该构件自身信息转换成相应的描述符填充到封装件结构的相应部分中,形成用统一形式描述的该构件自身信息的封装件;
本发明对JavaBeans构件,提出JavaBeans-to-UCDL的映射方法(JUMA);对ActiveX构件,提出ActiveX-to-UCDL的映射方法(AUMA)。其他类型构件的UCDL封装件生成可以以上述映射方法为基础,选择针对不同类型构件的UCDL封装件映射方法。
如果构件判断类行为JavaBean构件,本发明采用的映射方法包括以下步骤:
1.按照构造好的UCDL封装件结构生成一个各描述符为空的XML文件作为构件封装件,为填充构件信息做准备;
2.分配一个唯一标识,填充到构件封装件的ID描述符中,作为构件封装件的全局唯一标识;
3.读取该JavaBean构件的Bean information类,这是JavaBean构件规范定义的;
4.根据JavaBean构件规范定义的Bean information类的结构,通过Beaninformation类获取构件名称、作者、版本、构件大小,将结果对应描述符(Name,Author,Vendor,Version,Date,Size)填充到UCDL封装件的基本信息部分中。
5.将Bean information类中的Description字段信息对应的描述符FunctionalDescription填充至UCDL中的基本信息部分中;
6.利用已有的自然语言处理模块对Bean information类中的Description字段内容进行关键字检索,得到构件的应用领域和构件功能的对应的描述符Application Field和Component Function,填充到UCDL封装件的基本信息中;
7.UCDL封装件的Component Model描述符填充为“JavaBean”,ProgramLanguage描述符填充为“Java”;
8.启动JavaBean的自检机制,得到构件的属性、事件、方法;
9.将JavaBean中的属性信息对应的描述符填充到UCDL封装件的提供接口信息的属性描述部分中;
10.将JavaBean中的事件信息对应的描述符填充到UCDL封装件的提供接口信息的事件描述部分中;
11.将JavaBean中的方法信息对应的描述符填充到UCDL封装件的提供接口信息的方法描述部分;
12.遍历UCDL的所有域,将为空的域设置为默认值;
13.根据此JavaBean构件的存储位置信息,填充封装件的描述位置信息描述符为指向此构件的URL。
如果构件判断类行为ActiveX构件,本发明采用的映射方法按照以下步骤执行:
1.按照构造好的UCDL封装件结构生成一个各描述符为空的XML文件作为构件封装件,为填充构件信息做准备;
2.分配一个唯一标识,填充到构件封装件的ID描述符,作为构件封装件的全局唯一标识;
3.根据ActiveX构件标准通过构件基本信息字段获取构件名称、作者、版本、构件大小等信息,将结果对应描述符(Name,Author,Vendor,Version,Date,Size)填充到UCDL封装件的基本描述信息中;
4.利用自然语言处理控件对ActiveX控件中的Type library类的内容进行关键字检索分析,将结果对应描述符(Application Field和Component Function)填充到UCDL封装件的基本描述信息中;
5.将ActiveX中的Interfaces信息填充至UCDL封装件中的接口信息中;
6.遍历UCDL的所有域,将为空的域设置为参考模型提供的默认值;
7.根据此ActiveX构件的存储位置信息,填充封装件的资源位置信息描述符为指向此构件的URL。
以上步骤完成以后,保存XML文件形式的UCDL封装件。
步骤4:
向构件目录信息库进行构件封装件注册——即不但要把封装件内容存储到构件目录信息库中,还要按照封装件中的分类信息对构件进行组织分类索引,形成层次化的索引结构。
本发明使用自定义的构件目录服务协议(CDSP)来完成请求注册方和目录信息库之间的关于构件信息的注册,取消,修改和搜索的功能交互。
本发明的CDSP协议中消息对象的具体格式如下:
CDSP Message=”(”MessageType MessageParameter*”)”
MessageType=”Register”注册
           |”DeRegister”取消
           |”Modify”修改
           |”Search”搜索
MessageParameter=”:sender”Expression
                |”:receiver”Expression
                |”:content”Expression
                |”:reply-with”Expression
                |”:in-reply-to”Expression
                |”:language”Expression
                |”:ontology”Expression
消息中表达式的生成规则:
<Expression>::=<word>|<quotation>|<string>|(<word>{<whitespace><expression>}*)
   <word>::=<character><character>*
   <character>::=<alphabetic>|<numeric>|<special>
   <special>::=<|>|=|+|-|*|/|&|^|~|_|@|$|%|:|.|!|?
   <quotation>::=‘<expr>|‘<comma-expr>
   <comma-expr>::=<word>|<quotation>|<string>|,<comma-expr>|
                   (<word>{<white space><comma-expr>}*)
   <string>::=“<string char>*)|#<digit><didit>*”<ascii>*
   <string char>::=\<ascii>|<ascii>-\-<double-quote>CDSP消息中各个消息参数的含义如表4所示。
        表4
  消息参数   含义
  :sender   标识消息的发送者
  :receiver   消息的接收者
  :content   消息的内容,可能包含JavaBean定位符,构件描述符等等,其内容有消息类型决定
  :reply-with   对本消息的响应标志
  :in-reply-to   对以前消息响应的标志(与前一消息的:reply-with值相同).
  :language   消息内容的编码语言
  :ontology   指明应用领域,帮助理解消息内容
  :from   标识转发消息的最初发送者
  :to   标识转发消息的最终接收者
具体注册过程如下:当要向目录信息库注册一个构件封装件时,首先把构件封装件的内容填入CDSP消息包中的content字段,协议包中的消息类型字段定义为注册,信息发送者字段标注为构件封装件注册请求方,消息接受者字段标注为构件目录信息库。然后通过现有的底层协议(如HTTP,TCP/IP)发送到目录信息库。
目录信息库接收到表示构件封装件注册的CDSP消息包以后,首先发出一条确认应答信息回复以外,然后从CDSP消息包的content字段中读取构件封装件出来。读取到构件封装件以后,把构件封装件内容存储到数据库,形成构件目录信息库的一个分类和获取单元—目录登记项。同时根据构件封装件分类信息的5方面,生成构件封装件的索引值,并将其加入到目录信息库索引目录中,该索引目录是按照构件封装件结构中的分类信息中术语集的术语进行组织的树形目录结构。如图6所示
目录树中的最下层叶节点(图中的圆圈)对应构件,非叶节点表示一组具有相同分类属性的构件。UCDL封装件结构中的分类信息的构件功能、构件模型、操作***、编程语言与应用领域5个构件分类信息部分分别对应于目录树中根下面的五个子树,而5个分类信息角度下,每个分支代表的是该种分类角度的基本术语(term)集中的一个术语,其中对应于构件功能目录子树还有子分类目录子树。构件封装件索引就按照封装件中的分类信息对应到叶子节点上(应用方在搜索构件最开始的时候,绝大部分都是从构件的分类信息查询入手,因此这样的索引目录结构能够帮助构件应用方根据所需构件的分类信息快速的搜索和发现满足条件的构件,缩小进一步搜索的范围,达到提高搜索效率,降低成本的目的)。
如前述总体第四步所述的采用上述封装结构的构件的一致性访问方法,如图4所示,包括如下具体步骤:
1、首先构件使用方根据封装件结构中的构件分类信息和基本描述信息,查询到能完成所需功能的的一组构件封装件。
2、根据UCDL封装件结构中的接口信息,进一步找到接口完全匹配的构件封装件。
3、根据封装件中的位置(Location)信息,从构件库中获取构件本身。然后把构件封装件和构件代码本身一起返回给构件应用方,
4、在构件使用方和构件之间,利用UCDL封装件中定义的接口信息描述符,结合现有的构件绑定协议(如SOAP:Simple Object Access Protocol,简单对象访问协议),来实现构件的相互调用。本发明采用SOAP协议和UCDL封装件结合来实现构件的相互调用的实施例过程如下:首先构件使用方发出SOAP请求进行初始化。在这个过程中,将根据UCDL封装件中的接口描述符,包装成一个合法的SOAP请求,把此SOAP请求提交给构件运行环境,然后构件运行环境根据不同构件类型使用相应的构件调用方法,将SOAP请求解释执行并调用构件本身。构件被调用后,其调用的返回结果将按照UCDL封装件中定义的操作描述符的返回值信息打包,以SOAP包格式返回至构件使用方。使用方打开SOAP返回信息包就可以获取调用结果了,整个构件调用过程结束。

Claims (1)

1、一种构件封装和一致性访问方法,包括以下步骤:
1)在一台或多台计算机上设置构件库,并将从互联网获得的构件存入构件库中,构成构件库计算机;
2)在一台计算机上设置构件目录库,构成构件目录库计算机;
3)构件使用方从构件库计算机上提取构件,对构件进行封装形成用统一形式描述的构件封装件,并将该封装件组织存储在构件目录库计算机上。
4)构件使用方根据构件目录库计算机中的构件封装件信息对构件资源进行一致性访问;
所述对构件进行封装的方法包括以下步骤:
31)构造一种通用构件封装件结构:该封装件结构分为用统一形式描述的构件静态信息部分和构件动态信息部分,其中构件静态信息部分包括构件的基本描述信息、资源位置信息、分类信息;构件动态信息部分为构件接口信息,包括构件所提供的接口信息和构件运行所需要的接口信息;
32)从现有的构件库中提取构件,根据该构件的文件扩展名及内部自带标识字段判断要封装的构件类型;
33)针对不同构件类型,提取构件自身信息,采用相应的映射方法,将该构件自身信息转化并填充到封装件结构的相应部分中,形成用统一形式描述的构件封装件;
34)向目录信息库注册该构件封装件:把步骤33)生成的构件的统一构件描述封装件按照其中的分类信息组织到构件目录信息库中,构件目录信息库按照构件分类信息为构件目录库中的所有构件的统一构件描述封装件建立一个总的索引结构,构件目录库信息库中每一个目录项为该构件的封装件;而构件本身仍然存储在原有的构件库中;所述构件的一致性访问包括以下步骤:
41)构件使用方根据统一构件描述封装件中的分类信息和基本描述信息,通过目录信息库的索引结构查询到符合此条件的一组构件封装件;
42)根据统一构件描述封装件中的接口信息,进一步找到接口完全匹配的构件封装件;
43)根据统一构件描述封装件中的位置信息,从构件库中获取所需构件本身;
44)在构件使用方和构件之间,利用统一构件描述封装件中定义的接口信息描述符,结合现有的构件绑定协议,实现构件的相互调用。
CN200410030654.5A 2004-04-02 2004-04-02 一种构件的封装和一致性访问的方法 Expired - Fee Related CN1223938C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200410030654.5A CN1223938C (zh) 2004-04-02 2004-04-02 一种构件的封装和一致性访问的方法
US11/096,437 US20060080336A1 (en) 2004-04-02 2005-03-31 Encapsulation and unified access scheme for components

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200410030654.5A CN1223938C (zh) 2004-04-02 2004-04-02 一种构件的封装和一致性访问的方法

Publications (2)

Publication Number Publication Date
CN1564129A CN1564129A (zh) 2005-01-12
CN1223938C true CN1223938C (zh) 2005-10-19

Family

ID=34481136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410030654.5A Expired - Fee Related CN1223938C (zh) 2004-04-02 2004-04-02 一种构件的封装和一致性访问的方法

Country Status (2)

Country Link
US (1) US20060080336A1 (zh)
CN (1) CN1223938C (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111189B2 (ja) * 2004-12-22 2008-07-02 ソニー株式会社 入力方法、情報処理装置
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
CN1313920C (zh) * 2005-09-28 2007-05-02 清华大学 一种基于统一构件封装件结构的构件组装方法
US7979789B2 (en) * 2005-12-19 2011-07-12 Microsoft Corporation System and method of replacing a delegate component associated with a delegate modular software component at software execution time
US20070255624A1 (en) * 2006-04-14 2007-11-01 Swaptree, Inc. Automated Trading System and Method
US7742978B2 (en) * 2006-04-14 2010-06-22 Swaptree, Inc. Multi-transaction system and method
CN100375957C (zh) * 2006-05-19 2008-03-19 清华大学 一种网络环境下根据用户需求生成软件服务的方法
CN1333336C (zh) * 2006-06-23 2007-08-22 清华大学 一种支持异构构件的构件库统一管理方法
TWI344288B (en) * 2007-07-23 2011-06-21 Arcadyan Technology Corp Embedded system with web-based user interface, firmware structure thereof, and method for providing information thereof
US8543994B2 (en) * 2007-12-07 2013-09-24 Sap Ag Developing java server components without restarting the application server
JP5179207B2 (ja) * 2008-01-28 2013-04-10 株式会社日立製作所 ソフトウェア開発支援の装置、そのプログラム、及び方法
US8370357B1 (en) * 2009-03-31 2013-02-05 Cellco Partnership Method and system for grouping multimedia files from plural vendors' servers in media store's catalog
CN102130777B (zh) * 2010-01-15 2013-08-21 大唐移动通信设备有限公司 一种网管***及保证与安全管理***数据一致性的方法
KR101055267B1 (ko) * 2010-03-05 2011-08-09 한국전자통신연구원 액티브엑스 컨트롤의 배포 사이트 식별 방법과 보안 취약점 검출 방법 및 면역화 방법
EP2416267A1 (en) * 2010-08-05 2012-02-08 F. Hoffmann-La Roche AG Method of aggregating task data objects and for providing an aggregated view
CN101924798B (zh) * 2010-09-08 2012-11-21 北京大学 一种基于文件类型的Android构件透明加载方法及***
US8522137B1 (en) * 2011-06-30 2013-08-27 Zynga Inc. Systems, methods, and machine readable media for social network application development using a custom markup language
CN102413181A (zh) * 2011-11-16 2012-04-11 中国软件与技术服务股份有限公司 一种提升服务器性能的方法及其***
US9141363B2 (en) * 2012-03-23 2015-09-22 Sap Se Application construction for execution on diverse computing infrastructures
CN103020259B (zh) * 2012-12-21 2016-10-05 中国农业银行股份有限公司 一种获取软件程序的方法及***
US9612826B2 (en) * 2014-07-31 2017-04-04 Facebook, Inc. Attributing authorship to segments of source code
CN104239056A (zh) * 2014-09-16 2014-12-24 国家电网公司 一种软件生成方法、装置及***
US10417183B2 (en) * 2017-03-14 2019-09-17 Salesforce.Com, Inc. Database and file structure configurations for managing text strings to be provided by a graphical user interface
CN107193545B (zh) * 2017-04-07 2020-07-10 广东省科技基础条件平台中心 一种面向构件的多语言协同开发装置、方法与***
CN107656732A (zh) * 2017-10-25 2018-02-02 中国航空无线电电子研究所 面向航电领域的可重用软件管理***
US11012236B1 (en) * 2017-11-15 2021-05-18 Rhinogram, LLC Secure communication tool for use alongside non-secure communications
US10891215B2 (en) * 2018-07-02 2021-01-12 Paypal, Inc. System and method for using an unobtrusive and discreet embedded barcode for debugging
CN111435296A (zh) * 2019-01-14 2020-07-21 神州数码信息***有限公司 一种基于统一建模的自动化服务管理方法
CN110442330B (zh) * 2019-07-05 2023-07-21 五八有限公司 列表组件转换方法、装置、电子设备及存储介质
CN110674263B (zh) * 2019-12-04 2022-02-08 广联达科技股份有限公司 一种模型构件文件自动分类的方法和装置
CN111104156A (zh) * 2019-12-17 2020-05-05 武汉烽火信息集成技术有限公司 一种服务资源标准化管理***及方法
CN112631676B (zh) * 2020-12-18 2024-01-26 深圳点链科技有限公司 代码动态加载方法、装置及计算机可读存储介质
CN113741764A (zh) * 2021-07-30 2021-12-03 阿里巴巴新加坡控股有限公司 组件处理方法、装置及设备
JP2023094838A (ja) * 2021-12-24 2023-07-06 キヤノン株式会社 プログラム、情報処理装置、情報処理装置の制御方法
CN114936031B (zh) * 2022-07-22 2022-11-11 浙江中控技术股份有限公司 组件的调用方法及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU6702594A (en) * 1993-12-17 1995-07-03 Taligent, Inc. Object-oriented distributed communications directory service
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
US7007280B1 (en) * 2001-04-30 2006-02-28 Adobe Systems Incorporated Schema driven management of a component-based application

Also Published As

Publication number Publication date
US20060080336A1 (en) 2006-04-13
CN1564129A (zh) 2005-01-12

Similar Documents

Publication Publication Date Title
CN1223938C (zh) 一种构件的封装和一致性访问的方法
US8375354B2 (en) System and method and apparatus for using UML tools for defining web service bound component applications
US7954107B2 (en) Method and system for integrating the existing web-based system
US7860815B1 (en) Computer knowledge representation format, system, methods, and applications
Benatallah et al. Overview of some patterns for architecting and managing composite web services
US20030115548A1 (en) Generating class library to represent messages described in a structured language schema
Hunter et al. PANIC: an integrated approach to the preservation of composite digital objects using Semantic Web services
US20030163450A1 (en) Brokering semantics between web services
Chaari et al. Adaptation in context‐aware pervasive information systems: the SECAS project
CN1320874A (zh) 网络环境下的程序挖掘方法及其程序挖掘***
US20090063225A1 (en) Tool for automated transformation of a business process definition into a web application package
CN1662899A (zh) 网络服务代理
CN1877523A (zh) 一种支持异构构件的构件库统一管理方法
CN101499057A (zh) 电子文档生成***及方法
US7093264B2 (en) Method and apparatus for assembling Enterprise JavaBeans components
Hunter et al. A semi-automated digital preservation system based on semantic web services
US20090187927A1 (en) Method for invoking UOML instructions
CN1662011A (zh) 使用元数据定义映射来构建组件应用程序的***和方法
Cardoso et al. Evolution and overview of linked USDL
Jelisic et al. A business-context-based approach for message standards use-a validation study
Gold et al. Program comprehension for web services
Sun et al. A model-driven reverse engineering approach for semantic web services composition
De Giorgio et al. An approach to enable replacement of SOAP services and REST services in lightweight processes
CN116795351A (zh) 一种软件工具包的生成方法、装置及可读存储介质
Gehre et al. InteliGrid deliverable D31: ontology specification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20051019

Termination date: 20180402

CF01 Termination of patent right due to non-payment of annual fee