`

Tuscany SCA启动过程分析(组图)

    博客分类:
  • SOA
阅读更多
Tuscany SCA启动过程分析(组图)
 Tuscany作为SCA Spec1.0实现,现在已接近Release 1.0的尾声,在近期将发布。其结构相对7月份发布的0.91版本进行了较大的调整,优化了代码的结构并且增加了部分新功能。本文将针对其最新代码,通过对其启动过程进行分析,来了解Tuscany中对资源的加载及模型组装的处理。

  一、启动前准备

  1、 扩展点注册器实例化

  Tuscany的实现采用了扩展点机制,所有的可重用对象都会在其中注册,因此把扩展点注册器作为参数来回传递,通过它可以从中拿到所有的已注册对象。

  2、 注册对象到扩展点注册器

  Tuscany的现有版本与以前版本进行了较大改进,由原来在代码中指定改为了由配置文件中指定,加载的方式也改为了Lazy Loading,在从注册器中取得对象时加载配置文件,然后把实例放入注册器的集合中,以便下次直接从中取得需要的对象,不再解析配置文件。

  最先注册的对象有:WorkScheduler,ModelFactoryExtensionPoint,ContextFactoryExtensionPoint,ProxyFactory,InterfaceContractMapper。

  3、加载ModuleActivator

  遍历所有定义的ModuleActivator文件,解析其中的内容作为ModuleActivator接口的实现,然后执行其中的start方法。

  ModuleActivator现有接口已经去掉了扩展点注册的方法。

  4、解析策略配置文件definitions.xml

  策略配置文件配置了针对binding,implementation所使用的策略,其使用方式可参考其SCA spec中的 Policy Framework一节。

  二、资源加载

  Tuscany对资源的划分是以Contribution为单位的,Contribution作为一组资源的集合,包含了SCA的配置文件如*.composite,*.componentType,sca-contribution.xml,以及用到的一些附加文件如*.wsdl等。

  现在说明一下Tuscany对单个Contribution的资源加载处理。

  1、资源查找

  在Tuscany中定义了两种Processor,Dir Processor和Jar Processor,分别对目录及Jar中资源进行遍历,返回其中包含的资源列表。

  2、资源解析

  针对Contribution中的每一个资源都会生成DeployedArtifact对象,在其属性Model中保存着资源的元模型数据。

  每个资源解析成元模型主要是依据针对每一资源有一对应的Processor,在其中包含有Read方法负责解析提供URL对应的资源。已提供的解析器有针对*.composite,*.componentType,*.wsdl,*.xsd类型文件的解析。同时针对文件中的不同结点也定义了相应的解析器,如对composite,reference,property,service等结点的解析。Tuscany中采用流XStream方式解析。

  3、可发布资源解析

  每一个Contribution中都可以定义对外发布的资源列表,通过META-INF/sca-contribution.xml进行定义。同时,在其中也可以定义对外引用和对外暴露的服务。

  其Schema格式如下:

  

  示例:4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

  4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

  4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

  4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

  4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

  Contribution的结构图如下:


  

  三、资源组装

  针对每个Contribution中的可发布资源,如果类型为composite,则进行各个composite,component之间的关联(Wire)。

  组装的过程分为三个步骤:build, activate, start。

  1、build过程

  build主要完成Composite之间的关联,包括compoiste文件中Include元素的解析,Component实现为Compoiste的处理,以及Service,binding,Reference的处理等等。

  2、activate过程

  主要完成component的ImplementationProvider的赋值,同时针对component中Service的binding进行设置BindingProvider,并针对每一Service,设置其RuntimeWire。

  3、start过程

  主要完成Component对应的ServiceBindingProvider,ImplementationProvider,ScopeContainer完成启动,通过执行方法start完成。

  形成RuntimeWire过程图如下:

  
分享到:
评论

相关推荐

    Tuscany SCA in Action

    《Tuscany SCA在行动》一书深入探讨了Service Component Architecture(SCA)与Apache Tuscany项目,这是IT领域内对服务组件架构及其实现的重要研究资料。以下是基于标题、描述、部分目录和标签生成的相关IT知识点:...

    基于Tuscany SCA的分布式SCA应用的设计与实现.pdf

    总结而言,文件中提到的分布式SCA应用的设计与实现,是基于Tuscany SCA框架对SCA规范的具体应用和创新。该分布式模型展现了分布式系统在云端部署、易于实现、逻辑整合和实际应用中的特点和优势。通过这些详细的理论...

    Tuscany SCA与Spring、Hibernate整合实例-简洁方法

    **SCA(Service Component Architecture)服务组件架构**是Apache Tuscany项目的一部分,它是一种用于构建分布式应用程序和服务的开源框架。Tuscany SCA提供了一种声明式的方式来组合和管理服务,使得开发者能够关注...

    Apache tuscany SCA实例

    Apache Tuscany是Apache软件基金会的一个开源项目,它实现了Service Component Architecture(SCA,服务组件架构),这是一种用于构建和集成分布式应用程序的规范。这个实例可能是关于如何使用Apache Tuscany来开发...

    apache-tuscany-sca-1.6.2

    Apache Tuscany SCA(Service Component Architecture)是一个开源框架,由Apache软件基金会开发,用于构建分布式应用程序和服务。SCA是一种标准,它定义了一种模型来组合、管理和部署服务及组件,使得开发人员能够...

    Apache Tuscany SCA 用户指南StepByStep

    Apache Tuscany SCA(Service Component Architecture)是Apache软件基金会开发的一个开源项目,它提供了一个用于构建、部署和管理服务的框架。SCA是一种服务导向架构(SOA)标准,旨在简化不同技术间的互操作性,使...

    apache-tuscany-sca-1.6.zip

    Apache Tuscany SCA(Service Component Architecture)是一个开源项目,由Apache软件基金会维护,它提供了一个框架和中间件,用于构建、部署和管理分布式应用程序。SCA是一种标准,旨在简化服务导向架构(SOA)的...

    一种基于Tuscany SCA的分布式应用模型.pdf

    标题中提及的"Tuscany SCA"是Apache Tuscany项目中的一个子项目,名为Service Component Architecture (SCA),它是一个用于构建分布式系统的框架,其主要目的是简化企业级应用的开发和部署。SCA提供了一种声明式的...

    sca.rar_SCA_tuscany

    **Apache Tuscany Service Component Architecture (SCA) 概述** Apache Tuscany是一个开源的服务组件架构(Service Component Architecture,简称SCA),它提供了一种用于构建和部署分布式应用程序和服务的标准化...

    Apach Tuscany SCA

    Apache Tuscany是Apache软件基金会开发的一个开源项目,其核心目标是实现Service Component Architecture(SCA,服务组件架构)规范,这是一种用于构建Service-Oriented Architecture(SOA,面向服务架构)的应用...

    tuscany发布webservice实例

    部署过程涉及编译服务代码,然后使用Tuscany的部署工具将其发布到服务器上。发布后,服务将可供其他应用程序通过网络调用。 6. **测试Web服务** 发布完成后,我们需要验证Web服务是否正常工作。这通常通过发送一个...

    How does ServiceMix compare to Tuscany or SCA

    ServiceMix、Tuscany和SCA(Service Component Architecture)是企业级服务导向架构(SOA)领域的关键组件,它们在构建分布式、可扩展的应用程序时起着重要作用。下面将详细对比这三个技术,并探讨它们的核心特点。 ...

    TuscanySCAinActionPDFBooks.pdf 英文原版

    Tuscany SCA in Action – PDF Books

    SOA之SCA导航-Apache Tuscany篇

    Apache Tuscany是Apache软件基金会开发的一个开源实现SCA的项目,它提供了一个全面的SOA平台,用于构建、部署和管理分布式应用程序。 **1. 使用命令行构建计算器应用** 在Apache Tuscany中,构建计算器应用通常...

Global site tag (gtag.js) - Google Analytics