SCA规范中定义了构件、服务的元数据描述规格。其实动态链接库文件也是有元数据的,每一个动态链接库都有一个导入函数表和导出函数表。导入函数表记录了导入了哪些模块,导出函数表记录了导出哪些模块。动态链接库的导出函数可以被其他动态链接库或执行文件调用。
SCA规范中定义了构件、服务的元数据描述规格。如果是一个Java的构件实现,会先从Java Class中查找元数据信息。如果没有找到,继续在*.composite,*.component文件中查找。
SCA可以将已有的程序、代码、服务添加上元数据,从而可以被其他的服务引用或调用。独立于程序代码的元数据描述信息,可以方便的描述已有的代码,而不须对已有代码做修改。
.NET Framework同样有类似的元数据机制。利用元数据可以对程序集、模块、类型、方法、成员等进行某种特性描述,而这些描述将作为元数据被编译到程序集中,并通过.NET运行环境为其调用者所使用。
DotNet同SCA类似,也支持采用多种语言来实现模块。如C++、VB、C#、Java。并且理论上可以支持任何语言。只需要将源语言翻译为IL代码即可。
回过头看看以前的程序是如何实现程序模块化的。最早实现模块化的方式是动态链接库。其实动态链接库文件也是有元数据的,每一个动态链接库都有一个导入函数表和导出函数表。导入函数表记录了导入了哪些模块,导出函数表记录了导出哪些模块。动态链接库的导出函数可以被其他动态链接库或执行文件调用。但是缺点是没有调用参数信息。
再往前就是汇编语言、机器语言或者在纸带上打洞了。这是程序开发的蛮荒时代。元数据当然无从谈起。
由此看来,要实现应用模块化,元数据是必要的。这么多年来技术发展都是在元数据上做文章。现在应用的规模越来越大,硬盘也越来越大,并且朝着分布式部署、分布式计算发展。可以预料到今后程序的元数据描述的信息将会越来越丰富,以适应复杂的计算环境。
SCA规范中定义了构件、服务的元数据描述规格。如果是一个Java的构件实现,会先从Java Class中查找元数据信息。如果没有找到,继续在*.composite,*.component文件中查找。
SCA可以将已有的程序、代码、服务添加上元数据,从而可以被其他的服务引用或调用。独立于程序代码的元数据描述信息,可以方便的描述已有的代码,而不须对已有代码做修改。
.NET Framework同样有类似的元数据机制。利用元数据可以对程序集、模块、类型、方法、成员等进行某种特性描述,而这些描述将作为元数据被编译到程序集中,并通过.NET运行环境为其调用者所使用。
DotNet同SCA类似,也支持采用多种语言来实现模块。如C++、VB、C#、Java。并且理论上可以支持任何语言。只需要将源语言翻译为IL代码即可。
回过头看看以前的程序是如何实现程序模块化的。最早实现模块化的方式是动态链接库。其实动态链接库文件也是有元数据的,每一个动态链接库都有一个导入函数表和导出函数表。导入函数表记录了导入了哪些模块,导出函数表记录了导出哪些模块。动态链接库的导出函数可以被其他动态链接库或执行文件调用。但是缺点是没有调用参数信息。
再往前就是汇编语言、机器语言或者在纸带上打洞了。这是程序开发的蛮荒时代。元数据当然无从谈起。
由此看来,要实现应用模块化,元数据是必要的。这么多年来技术发展都是在元数据上做文章。现在应用的规模越来越大,硬盘也越来越大,并且朝着分布式部署、分布式计算发展。可以预料到今后程序的元数据描述的信息将会越来越丰富,以适应复杂的计算环境。