CN101655797B - 含有描述信息的构件及函数库的构建方法 - Google Patents

含有描述信息的构件及函数库的构建方法 Download PDF

Info

Publication number
CN101655797B
CN101655797B CN 200910190723 CN200910190723A CN101655797B CN 101655797 B CN101655797 B CN 101655797B CN 200910190723 CN200910190723 CN 200910190723 CN 200910190723 A CN200910190723 A CN 200910190723A CN 101655797 B CN101655797 B CN 101655797B
Authority
CN
China
Prior art keywords
function library
descriptor
information
external interface
name
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
CN 200910190723
Other languages
English (en)
Other versions
CN101655797A (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.)
Shenzhen Skyworth Digital Technology Co Ltd
Original Assignee
Shenzhen Skyworth Digital Technology Co Ltd
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 Shenzhen Skyworth Digital Technology Co Ltd filed Critical Shenzhen Skyworth Digital Technology Co Ltd
Priority to CN 200910190723 priority Critical patent/CN101655797B/zh
Publication of CN101655797A publication Critical patent/CN101655797A/zh
Application granted granted Critical
Publication of CN101655797B publication Critical patent/CN101655797B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种含有描述信息的软件构件及函数库的构建方法,其包括:获取构件或函数库的对外接口的注释信息;将注释信息转换处理为由XML、WSDL或UDDI语言描述的构件或函数库的描述信息;将描述信息与构件或函数库的源码文件一起打包封装。本发明可以方便的从源码中构建构件或函数库的描述信息,有利于推进构件或函数库在软件开发中的更广泛使用。

Description

含有描述信息的构件及函数库的构建方法
技术领域
本发明涉及信息处理方法,尤其是涉及一种含有描述信息的软件构件及函数库的构建方法。
背景技术
构件(Component)是面向软件体系架构的可复用软件模块,是可复用的软件组成成份,可被用来构造其他软件。构件可以是被封装的对象类、类树、一些功能模块、软件框架(Framework)、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)等。1995年,Ian.oraham给出的构件定义如下:构件(Component)是指一个对象(接口规范、或二进制代码),它被用于复用,接口被明确定义。
构件是作为一个逻辑紧密的程序代码包的形式出现的,有着良好的接口。因此,开发者可以通过组装已有的构件来开发新的应用系统,从而达到软件复用的目的。软件构件技术是软件复用的关键因素,也是软件复用技术研究的重点。
由于构件种类和规范众多,如微软提出的ACTIVEX和COM组件、SUN公司提出的JAVA组件、CORBA提出的组件规范;并且,构件就像函数库一样是对代码的二进制封装,如果缺乏文档和源码,一大堆构件对使用者使用起来无所适从。为改变这一状况,目前软件构件从规范众多、标准不一向标准化发展,如目前标准化的Web Services。Web Services可以通过标准的语言和协议进行描述和发布,使用者也可以使用标准的协议进行远程调用。
但是,Web Services本身不是自描述的。并且当前函数库还被大量软件使用,也需要增加自描述特性。因此,有必要对构件和函数库构建自描述特性以便于使用。
发明内容
本发明提出一种含有描述信息的软件构件及函数库的构建方法,通过使用XML、WSDL或UDDI语言对构件或函数库的自描述来解决目前构件和函数库不带描述信息的技术问题。
为解决本发明的技术问题,本发明公开一种含有描述信息的软件构件及函数库的构建方法,其包括:
获取构件或函数库的对外接口的注释信息;
将注释信息转换处理为构件或函数库的描述信息;
将描述信息与构件或函数库的源码文件一起打包封装。
其中,注释信息为借助工具从构件或函数库的源码文件中读取,或由用户在构建构件或函数库时的输入信息。
其中,注释信息位于构件或函数库的源码文件的头部。
其中,构件或函数库的源码的对外接口注释信息采用XML语言描述,且描述信息也采用XML语言描述。
其中,描述信息包括基本描述信息和对外接口描述信息。基本描述信息包括:函数库或构件的名字、版权人信息、厂家信息、创建者信息、使用的编译器及基于的操作系统、使用平台、发布日期、版本或修订历史记录的其中一项或多项。对外接口包括:定义函数接口名称及函数接口的传递参数、传递参数的定义、传递参数的数据类型的定义;而对外接口描述信息对应包括:对外接口的操作定义、对外接口操作中传递参数的定义;传递参数包含具体参数的数据类型的定义。
其中,描述信息使用WSDL语言或UDDI语言描述;函数库或构件中只封装指向由WSDL语言或UDDI语言对该函数库或构件的描述信息的URL地址。
与现有技术相比,本发明具有如下有益效果:
本发明提出了使用XML、WSDL或UDDI语言对构件或函数库的自描述方法和源码接口的注释方法,采用本发明可以方便的从源码中构建构件或函数库的描述信息,并与构件或函数库打包封装到一起,使用户方便的从构件或函数库中得到相应的描述信息和如何使用的指导信息,从而能够在软件中使用该构件或函数库,不会造成可能丢失或没有公开源码的构件或函数库的资源和智力的浪费,有利于推进构件或函数库在软件开发中的更广泛使用。
附图说明
图1是本发明的流程示意图。
具体实施方式
本发明是采用XML(Extensible Markup Language,即可扩展标记语言)、或者使用WSDL(Web Services Description Language,网络服务描述语言)或UDDI(Universal DescriptionDiscovery and Integration,统一描述、发现和集成协议)对函数库或构件的对外接口进行描述,然后进行封装处理为含有描述信息的构件或函数库,使用户能够方便的从函数库或构件中得到相应的描述信息和如何使用的指导信息,从而在软件中使用该函数库或构件。
如图1所示,本发明采用如下方式来实现:
步骤S101、读取构件或函数库的源码中用户添加的接口注释信息,或在构建构件或函数库时由用户输入有关构件或函数库的对外接口的注释信息。
步骤S102、将注释信息转换处理,按预定的格式生成构件或函数库的对外接口的描述信息。
构件或函数库的对外接口的描述信息包括但不限于如下信息:函数库或构件名字、函数库及构件描述、版权所有者信息、厂家信息、创建者信息、使用的编译器及基于的操作系统、使用平台、发布日期、版本、修订历史记录、对外接口描述和注释信息等。
步骤S103、封装处理:将构件或函数库的对外接口的描述信息、构件或函数库的源码编译的结果一并封装成含有描述信息的软件构件或函数库;当然,构件或函数库的对外接口的描述信息也可以编码封装,也可以原封不动的封装到函数库或构件之中。
实施例1
本实施例采用XML语言对函数库或构件的对外接口进行描述。
借助工具从构件或函数库源码中读取必要的注释信息,或者由用户输入必要的注释信息。这时就要求构件或函数库的源码中对接口的注释采用标准的注释规格以及一致的关键词词条,比如,也使用以上描述相仿的XML格式进行描述。
XML对源码的描述包括两部分注释信息,一部分为基本注释信息描述,一部分为对外接口注释描述信息,都由XML语言进行描述。
基本注释信息描述如下:
/**********************************************************
<?xml version=″1.0″encoding=″GBK″?>
<lib name=″mygui″>
<Description>gui库对外接口的描述</Description>
<Copyright name=″skyworth″address=”shenzhen”/>
<Corporation name=″skyworth″address=″shenzhen″/>
<Creator name=″王五″address=″shenzhen″/>
<Compiler name=”gcc3.4”/>
<OS name=”linux2.6”/>
<Platform name=”ST7101”/>
<issue date=″2009-7-21″/>
<Version value=″1.0″/>
<Revise history>
<Item revise No=”1”Author=”张三”review=”李四”description=”问题描述1”Issue_date=″2008-01-20″/>
<Item revise No=”2”Author=”张三”review=”李四”description=”问题描述2”Issue_date=″2008-02-20″/>
</Revise history>
/lib>
**********************************************************/
基本信息注释中注释了该库的库名字、版权人信息、厂家信息、创建者信息等信息,以及得到所使用的编译器为gcc3.4,运行的操作系统为linux2.6,平台为ST7101,发布日期为2009-7-21,版本为1.0,该库的修订记录有两条等信息。
而构件或函数库的对外接口的注释信息也采用XML语言描述如下:
/*****************************************************
<?xml version=″1.0″encoding=″GBK″?>
<Interface>
<Type>
  <element name=″result″type=”int”>
<element name=″rect″type=”RECT”>
         <element name=″x″type=″int″/>
   <element name=″y″type=″int″/>
  <element name=″dx″type=″int″/>
  <element name=″dy″type=″int″/>
      </element>
<element name=″bm″type=”BITMAP”>
           <element name=″r″type=″RECT″/>
            …
         </element>
   </Type>
<Message name=″draw_rect_msg″>
   <Part name=″rect″/>
<Part name=″bm″/>
</Message>
<Operation name=″Draw_Rect_Cmd″>
  <input message=″draw_rect_msg″/>
  </Operation>
</Interface>
*********************************************************/
从上述接口XML注释信息中注释了接口的用法信息,包括三个部分:Operation部分定义构件或函数库的对外接口名称及要传递的参数;传递的参数在Message部分定义,其中每一个part对应一个参数;参数的数据类型在Type部分定义。
从源码注释信息中通过获取上述对外接口的注释信息后,生成如下所示由XML语言描述的构件或函数库的接口描述信息,并打包到构件或函数库中。当然如果源码中没有相应的XML注释信息,可以根据用户输入的上述信息进行构件或函数库的打包。
/**********************************************
<?xml version=″1.0″encoding=″GBK″?>
<lib name=″mygui″>
<BaseInfo>
<Description>gui函数库对外接口的描述</Description>
<Copyright name=″skyworth″address=”shenzhen”/>
<Corporation name=″skyworth″address=″shenzhen″/>
<Creator name=″王五″address=″shenzhen″/>
<Compiler name=”gcc3.4”/>
<OS name=”linux2.6”/>
<Platform name=”ST7101”/>
<issue date=″2009-7-21″/>
<Version value=″1.0″/>
<Revise history>
<Item revise No=”1”Author=”张三”review=”李四”description=”问题描述1”Issue_date=″2008-01-20″/>
<Item revise No=”2”Author=”张三”review=”李四”description=”问题描述2”Issue_date=″2008-02-20″/>
</Revise history>
/BaseInfo>
<Interface>
<Type>
<element name=″Rect″type=”RECT”>
<element name=″x″type=″int″/>
<element name=″y″type=″int″/>
<element name=″dx″type=″int″/>
<element name=″dy″type=″int″/>
</element>
<element name=″color″type=”RGB”>
<element name=″r″type=″unsigned char″/>
<element name=″g″type=″unsigned char″/>
<element name=″b″type=″unsigned char″/>
</element>
<element name=″bm″type=”BITMAP”>
<element name=″r″type=″RECT″/>
</element>
<element name=″result″type=int>
</Type>
<Message name=″draw_rect_msg″>
<Part name=″Rect″/>
<Part name=″color″/>
</Message>
<Message name=″result_msg″>
<Part name=″result″/>
</Message>
<PortType name=″GuiQuotePortType″>
<Operation name=″Send_Draw_Rect_Request″>
<input message=″draw_rect_msg″/>
</Operation>
<Operation name=″Draw_Rect_Cmd″>
<input message=″draw_rect_msg″/>
<output message=″result_msg″/>
</Operation>
/PortType>
</Interface>
</lib>
**********************************************************/
从上述XML描述代码可以看出,构件或函数库的描述信息包括两部分信息:一部分为基本描述信息,一部分为对外接口描述信息。
基本描述信息中我们可以得到:函数库的库名字(对应代码lib name)为“mygui”、版权人(对应代码为Copyright name)信息为“skyworth”、厂家(对应代码为Corporation name)信息为“skyworth”、创建者(对应代码为Creator name)信息为“王五”等信息,以及得到所使用的编译器(对应代码为Compiler name)为gcc3.4.6,运行的操作系统(对应代码为OSname)为linux2.6,平台(对应代码为Platform name)为ST7101,发布日期(对应代码为issuedate)为2009-7-21,版本(对应代码为Version value)为1.0,该函数库的修订记录(对应代码为Revise history)有两条等信息。
而从函数库的对外接口描述信息中,可以看出该函数库的对外接口包括两个操作:一个发送一条消息,没有返回结果的操作;一个发送一条消息,并返回结果的操作。
而函数库的对外接口的操作在代码PortType中定义,PortType是对外接口的容器,由一个个操作operation构成,接口操作中传递的参数采用消息Message进行封装,Message又是元素element的容器,Message由一个个元素element构成,元素element对应要传递的具体参数,消息Message中有几个元素,就对应操作中要传递几个参数,元素element的类型可以由基本数据类型定义,也可以由复杂数据类型定义,复杂数据类型采用递归定义,即复杂数据类型可以由基本数据类型定义,也可以由复杂数据类型进一步构成更复杂的数据类型。
用户使用打包后的构件或函数库时,就可以从中得到构件件或函数库的如上描述信息,从而可以正确使用。
实施例2
可以独立使用WSDL或UDDI语言对函数库或构件的描述进行描述,而函数库或构件中只封装指向由WSDL或UDDI语言对该函数库或构件的接口描述的URL(UniformResource Locator,统一资源定位符,又称为网页地址)。比如如下描述代码:
由于WSDL或UDDI语言是开放标准,因此具体格式不再陈述。
/**********************************************************
<?xml version=″1.0″encoding=″GBK″?>
<lib name=″mygui″>
<Wsdl>
<wsdl:address location=″http://example.com/guilib.wsdl″/>
</Wsdl>
<UDDI>
<uddi:address location=″http://example.com/guilib.uddi″/>
</UDDI>
/lib>
**********************************************************/
综上,本发明提出了使用XML,或者使用WSDL或UDDI语言对构件或函数库的自描述方法,以及相应的源码接口的注释方法,采用本发明可以方便的从源码中构建构件或函数库的描述信息,并与构件或函数库打包封装到一起,使用户方便的从构件或函数库中得到相应的描述信息和如何使用的指导信息,从而能够在软件中使用该构件或函数库,不会造成可能丢失或没有公开源码的构件或函数库的资源和智力的浪费,有利于推进构件或函数库在软件开发中的更广泛使用。

Claims (8)

1.一种含有描述信息的软件构件及函数库的构建方法,其特征在于,包括:
获取构件或函数库的对外接口的注释信息;
按预定的格式,将注释信息转换处理为构件或函数库的描述信息;
将描述信息与构件或函数库的源码文件一起打包封装成含有描述信息的软件构件及函数库;
所述的注释信息为借助工具从构件或函数库的源码文件中读取,或由用户在构建构件或函数库时的输入信息;
所述的注释信息包括基本注释信息描述和对外接口注释描述信息,基本注释信息描述包括:库名称、版权人信息、厂家信息、创建者信息、编译器、操作系统、平台、发布日期、版本;对外接口注释描述信息包括对外接口名称、传递的参数、参数的数据类型。
2.根据权利要求1所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,注释信息位于构件或函数库的源码文件的头部。
3.根据权利要求1所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,注释信息采用XML语言描述,且描述信息也采用XML语言描述。
4.根据权利要求3所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,描述信息包括基本描述信息和对外接口描述信息。
5.根据权利要求4所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,基本描述信息包括:函数库或构件的名字、版权人信息、厂家信息、创建者信息、使用的编译器及基于的操作系统、使用平台、发布日期、版本或修订历史记录的其中一项或多项。
6.根据权利要求4所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,对外接口包括:定义函数接口名称及函数接口的传递参数、传递参数的定义、传递参数的数据类型的定义;而对外接口描述信息对应包括:对外接口的操作定义、对外接口操作中传递参数的定义;传递参数包含具体参数的数据类型的定义。
7.根据权利要求1所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,描述信息使用WSDL语言或UDDI语言描述。
8.根据权利要求7所述的含有描述信息的软件构件及函数库的构建方法,其特征在于,函数库或构件中只封装指向由WSDL语言或UDDI语言对该函数库或构件的描述信息的URL地址。
CN 200910190723 2009-09-25 2009-09-25 含有描述信息的构件及函数库的构建方法 Expired - Fee Related CN101655797B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910190723 CN101655797B (zh) 2009-09-25 2009-09-25 含有描述信息的构件及函数库的构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910190723 CN101655797B (zh) 2009-09-25 2009-09-25 含有描述信息的构件及函数库的构建方法

Publications (2)

Publication Number Publication Date
CN101655797A CN101655797A (zh) 2010-02-24
CN101655797B true CN101655797B (zh) 2013-09-18

Family

ID=41710093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910190723 Expired - Fee Related CN101655797B (zh) 2009-09-25 2009-09-25 含有描述信息的构件及函数库的构建方法

Country Status (1)

Country Link
CN (1) CN101655797B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222004B (zh) * 2011-07-01 2013-10-30 福建富士通信息软件有限公司 交换机专用语言转换为c语言的方法
CN102891892A (zh) * 2012-09-28 2013-01-23 用友软件股份有限公司 用于面向服务架构系统的附加信息携带装置和方法
CN108241503A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 注释说明的生成方法及装置
CN107092478B (zh) * 2017-02-24 2018-09-21 中国人民解放军海军大连舰艇学院 一种软件构件库与构件开发工具的集成系统与方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1313925C (zh) * 2002-12-31 2007-05-02 上海科泰世纪科技有限公司 构件自描述封装方法及运行的方法
CN100492290C (zh) * 2007-11-22 2009-05-27 上海交通大学 软件动态演化中构件运行时状态的获取和转换方法
CN101382893B (zh) * 2008-10-10 2011-06-29 清华大学 一种基于Web服务的构件在线组装方法

Also Published As

Publication number Publication date
CN101655797A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
US7162687B2 (en) JSP tag libraries and web services
CN100389572C (zh) 一种远程调用通信组件的系统及方法
US20060155529A1 (en) System and method for a context-independent framework for management and execution of xml processing tasks
US7934252B2 (en) Filtering technique for processing security measures in web service messages
CA2438176A1 (en) Xml-based multi-format business services design pattern
KR101159364B1 (ko) 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑
CN103092594B (zh) 模型转换方法及装置
US7290206B2 (en) Converting documents using a global property indicating whether event logging is performed on conversion filters
CN101192141B (zh) 一种将uoml封装成应用程序编程接口的方法
CN101655797B (zh) 含有描述信息的构件及函数库的构建方法
CN101807205B (zh) 用于处理xml数据的处理模块、设备和方法
CN103399735A (zh) 远程函数调用接口中间层开发方法
CN101334872A (zh) 基于Web服务的电子公文交换方法
Jayasinghe Quickstart apache axis2
CN113568661A (zh) 一种基于Android sdk实现app混合开发的方法
Varga et al. Engineering web service invocations from agent systems
CN105024923B (zh) 基于xmpp扩展消息的消息分类实现的方法及装置
CN102710769A (zh) 一种Web Service客户端及其大批量数据传输方法
CN112765252B (zh) 数据传输方法、客户端、终端、服务器及存储介质
CN101047663A (zh) 一种减少有效负荷的方法及系统
US9304983B2 (en) Method and system for Xform generation and processing application integration framework
CN108984676B (zh) 一种基于xml的电子书跨终端自适应显示系统及方法
Käbisch et al. XML-based Web service generation for microcontroller-based sensor actor networks
CN113032003B (zh) 开发文件导出方法、装置、电子设备及计算机存储介质
CN102651735A (zh) 服务描述协议转换处理方法

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
C56 Change in the name or address of the patentee

Owner name: SHENZHEN SKYWORTH DIGITAL TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SKY-WORTH DIGITAL TECHNOLOGY CO., LTD.;SHENZHEN CITY

CP01 Change in the name or title of a patent holder

Address after: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A14

Patentee after: Shenzhen Skyworth Digital Technology Co., Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A14

Patentee before: Shenzhen Skyworth Digital Technology Co., Ltd.

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

Granted publication date: 20130918

Termination date: 20190925

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