一、组件类型
SCA中有两种组件类型,即Component组件类型(Component Type)和Composite组件类型(Composite Type),对应这两种组件类型,在模型对象中有两个组件类型的装载器:SystemComponentTypeLoader和SystemCompositeTypeLoader(请注意它们是组件类型装载器,而不是组件装载器) 。
1、Component 类型装载器(Component Type Loader) 用来装载以.componentType为扩展名的文件。以.componentType为扩展名的文件描述了一个组件的实现是由哪些内容配置而成的。ComponentType包含了当前组件提供的服务、通过连线连接到外部的服务的组件引用以及组件可以被设置的属性等内容。
2、组件和实现的关系通过Component Type表现出来,如图:
3、一个典型的.componentType文件如下:
以下是引用片段: <?xml version=”1.0″ encoding=”ASCII”?> <componentType > <service name=”HelloWorldService”> <interface.java interface=”helloworld.HelloWorldService”/> </service> <reference name=”extService”> <interface.java interface=”helloworld.HelloWorldService”/> </reference> </componentType> |
4、Composite类型装载器(Composite Type Loader) 是用来装载scdl文件。scdl是一个基于XML的服务组件描述文件。在scdl中包含许多sca定义的组件元素。Composite类型装载器解析scdl文件所描述的元素关系和属性,并生成对应的元素模型对象。
5、一个典型的scdl文件如下:
以下是引用片段: <?xml version=”1.0″ encoding=”UTF-8″?> <composite name=”calculatorws”> <dbsdo:import.sdo location=”wsdl/calculator.wsdl” /> <service name=”CalculatorWebService”> <interface.wsdl interface=”http://calculator#wsdl.interface(Calculator)” wsdli:wsdlLocation=”http://calculator wsdl/calculator.wsdl” /> <binding.ws endpoint=”http://calculator#wsdl.endpoint(CalculatorService/CalculatorServiceSOAP11port)” location=”wsdl/calculator.wsdl” /> <reference>CalculatorServiceComponent</reference> </service> <component name=”CalculatorServiceComponent”> <implementation.java class=”calculator.CalculatorServiceImpl”/> <reference name=”addService”>AddServiceComponent</reference> <reference name=”subtractService”>SubtractServiceComponent</reference> <reference name=”multiplyService”>MultiplyServiceComponent</reference> <reference name=”divideService”>DivideServiceComponent</reference> <reference name=”mathService”>MathServiceComponent</reference> </component> <component name=”AddServiceComponent”> <implementation.java class=”calculator.AddServiceImpl”/> </component> <component name=”SubtractServiceComponent”> <implementation.java class=”calculator.SubtractServiceImpl”/> </component> <component name=”MultiplyServiceComponent”> <implementation.java class=”calculator.MultiplyServiceImpl”/> </component> <component name=”DivideServiceComponent”> <implementation.java class=”calculator.DivideServiceImpl”/> </component> <component name=”MathServiceComponent”> <implementation.java class=”calculator.MathServiceImpl”/> </component> </composite> |
二、元素类型
SCA定义了很多的元素,这些元素在装配文件和组件定义文件中被详细的描述。在SCA启动过程中的载入(load)阶段,各个元素的描述被转化为相应模型对象。元素类型会在下面的图中给出。
三、模型对象(ModelObject)
模型对象ModelObject是一个接口,用来表现SCA系统中定义的任何一个组件类型和SCA元素在内存中的模型对象。
载入过程(load)或者称为载入阶段所做的就是将scdl以及.componentType文件中描述的元素转换为对应的模型对象,完成文件描述到内存中模型对象的建立。
四、模型对象继承关系图: 这个图有些大了,如果看不清需要单独打开一个窗口并放大。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
如何透过业务和技术看SOA的发展
随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。面对庞大而复杂的SOA相关技术标准,我们如何来有选择的使用它们呢?
-
SOA架构下补偿模型驱动的安全苛求软件开发
随着我国高速铁路的快速发展,传统的计算机联锁软件开发方法在灵活性、可维护性、安全性以及开发效率上都显露出不足,怎样才能弥补这一不足呢?
-
浅谈基于SOA架构的服务集成技术研究
在近几年软件行业的发展中,面向服务架构(SOA)成为了当下的热门话题。那么对于SOA架构的服务集成你又了解多少?
-
揭秘WebSphere Process Server中SCA组件的事务实现机制
SCA作为一种新的编程模型,自然也需要提供完整的事务支持。所幸的是WPS本身是基于WebSphere Application Server的,所以底层天然就具有了强大的事务处理能力。