科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Apache Tuscany SCA Java 架构指南

Apache Tuscany SCA Java 架构指南

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SCA Java运行时由core和extension组成。Core本质上来说是一个多VM的wiring引擎。该引擎使用IOC(控制反转)和DI(依赖注入)原则来连接组件。

作者:oracle1000g 来源:论坛整理 2007年12月24日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

4、 启动composite:这个阶段,由ImplementationProvider、ReferenceBindingProvider和ServiceBindingProvider定义的start()回调方法会被调用。最终,组件,组件引用和组件服务被初始化而服务于组件的交互。服务监听器会启动,从而接受来自绑定层(binding layer)的入内请求。

  

  

  <!--[if !vml]--><!--[endif]-->

  <!--[if !vml]--><!--[endif]-->

  调用概述

  调用会被分发到WireInvocationHandler

  WireInvocationHandler查找正确的InvocationChain

  然后创建一个消息,设置有效负载,设置TargetInvoker,并传递消息给下层链

  当消息到达链的末端,TargetInvoker会被调用,现在轮到TargetInvoker负责叫调用分发到目标

  存储在outbound边界上的TargetInvoker当连接源的作用域值等于或小于目标的作用域值时,允许缓存目标实例。运行时环境通过Inboundwire和Outboundwire提供组件。调用链附着于组件连接(wire)中,因此是无状态的。所以调用链可以具有动态行为,例如新拦截器的介入和重新连接。

  装载SCA装配

  工件处理器用于处理contribution上的每个有效的工件。为了让contribution服务有效,工件处理器要注册自己给工件处理extension 。对于每个工件,工件处理器分两个阶段被调用。

  Ø 读阶段:这里是你读取工件(可以是一个文档、XML元素或类等等)的地方,组装描述工件的模型并返回它。SCA contribution服务在所有注册了工件处理器的工件上调用ArtifactProcessor.read()。假如你的模型引用了其他的模型,不需要立刻装载那些模型,你只需要保持描述引用的信息,在resolve阶段,你将会把该信息转换成指向被引用模型的指针。注意:你没有必要在这个时刻完全读取并装载模型,你可以在以后来完成这些工作。

  Ø 解析阶段:这个阶段让你有机会解析对其他模型的引用。这个时刻,SCA contribution中所有的描述工件的模型都已经读取,并注册了工件解析器,准备被解析。

  装载Java SCA

  SCA服务装配以SCDL文件的形式被发布到SCA域中。Tuscany运行时工件处理器将SCDL装载成一系列模型对象。这些模型对象是一系列持有元数据信息的Java bean。

  有两种装载器:

  •   StAXElementLoader:从StAX(Streaming API for XML)事件载入XML元素
  •   ComponentTypeLoader:通过解析文件或内省机制来载入实现的组件类型

  装载组件类型

  为特定的实现载入组件类型定义:

  •   如何做是实现规范
  •   也许会装载XML文件(该文件由具体实现来定位)
  •   也许内省实现工件(例如 Java注解机制)
  •   或其他的任何方式

  Loading composite componentType Loader

  •   从提供的URL中载入SCDL
  •   从composite包解压并载入SCDL
  •   POJO componetType Loader
  •   内省Java 注解
  •   利用可插入的注解处理框架来内省Java类

  运行时工件的类图

  

  <!--[if !vml]--><!--[endif]-->

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章