请输入您要查询的百科知识:

 

词条 tuscany
释义

tuscany是Apache组织关于SOA实现的一个开放源码的工程项目,目前处于孵化期阶段。

该项目主要基于SCA,SDO,DAS等标准上实现的。

引言

如今在企业级应用中,Ajax、Widget、RSS/Atom 等 Web 2.0 技术正在得到越来越广泛的使用,这些技术不但产生了良好的用户体验,同时也来越来越多地影响着许多前端系统的编程模式和系统架构。许多传统的 Java EE 产品和框架也在越来越多地引入这些 Web 2.0 技术,如 Struts2 和 JSF 都有了越来越完善的 Ajax 扩展,Portal 产品中也基于 Dojo 等 javascript 框架引入部分刷新等机制,大幅提升了性能和用户体验。可以看出,Web 2.0 不仅是互联网应用的概念,它为企业级应用乃至整个软件行业都产生着深远影响。

基于 SOA 的企业应用,要考虑和 Web 2.0 的结合,首先需要解决的是怎样将各种各样的服务与那些 Web 2.0 技术整合在一起,在很多时候服务端和客户端的整合是具有一定难度的。SCA 作为一种跟具体语言、平台无关的 SOA 编程模型,必然需要考虑那些 SOA 传统技术与 Web 2.0 技术的整合。Apache Tuscany 作为开源界最成熟的 SCA 框架之一,在这方面提供了很多支持。本文正是从这个角度出发,结合实例介绍 Tuscany 在 Web 2.0 方面提供的诸多功能,同时对 SCA 和一些典型的 Web 2.0 技术作一定的介绍。

Tuscany 简介

SCA 的基本概念以及 SCA 规范的具体内容并不在本文的范畴之内,有兴趣的读者可以通过一些相关文档了解相关内容,这也是阅读本文的基础。下面本文首先对 Tuscany 框架做一定的介绍。

Tuscany 是 Apache 的开源项目,它是 IBM、Oracle、SAP 等厂商联合成立的 SOA 标准化组织 -OSOA 支持下开发出的 SCA 框架,它既是开源界 SCA 的试金石,也是当前开源界最成熟的 SCA 框架之一。

Tuscany 基本架构

图 1 为 Tuscany 的基本架构图,从图中可以看出,作为一个轻量级 SCA 框架,Tuscany 提供了非常松散耦合的框架结构。主要有以下几个特点:

· Tuscany 是平台无关的可嵌入框架,可以在各种 Hosting Platform 上运行,如 Tomcat,JBoss,WAS 等 Web 容器上运行,也可以在 J2SE 环境下运行。

· Tuscany 的核心模块提供了 SCA 规范的 API 实现,Tuscany 系统的 SPI 接口,一些系统基本实现(如事件,工厂类,存储等),以及一整套扩展机制,这些扩展机制为 Tuscany 整合各个平台的服务提供了基础。

Tuscany 的扩展是完全松散耦合的,框架本身提供了大量的扩展实现,用户也可以在自己的系统中扩展 Tuscany 的实现,只需要遵循 Tuscany 的扩展规范以及 API 接口。Tuscany 主要有以下几个方面的扩展:

· Implementation:SCA 组件(Component)的实现方式,一个 SCA 组件可以由各种语言或技术平台实现,如:POJO,EJB,Spring Bean,bpel 流程,各种脚本语言等等。

· Binding:是 SCA 的绑定(Binding)规范的实现,SCA 服务(Service)和引用(Reference)的绑定方式,即一个 SCA 服务可以暴露为 Web Service,Java RMI 服务,http 资源,jms 消息等等,一个 SCA 引用也可以通过 Web Service,RMI 调用,http 调用,jms 调用等方式调用远端服务。

· Databinding:数据绑定方式,这是 Tuscany 提出的概念,一般用与在 Binding 中定义参数的传输格式,比如 Web Service 的 Binding 一般用 XML 格式,SCA 的 Binding 一般用 SDO 格式,Jsonrpc 的 Binding 一般用 Json 格式等等。

· Interface:是 SCA 的接口(Interface)规范的实现,SCA 服务(Service)和引用(Reference)的接口暴露方式,一般有 Java,WSDL 等类型。

Tuscany 的 Web 2.0 扩展

Tuscany 在 Web 2.0 方面主要提供了以下几类扩展:

· Implementation 扩展:script implementation 提供了各种脚本语言的实现,如 Javascript,python,ruby 等,widget implementation 提供了将一个 SCA Component 封装成 widget 的能力。resource implementation 提供了一种简单的 http 资源的实现。

· Binding 扩展:atom binding 提供了 atom 方式的绑定实现,dwr binding 提供了利用 dwr 框架进行 ajax 调用的能力,http binding 提供了直接进行 http 访问的能力,jsonrpc binding 提供了在 Javascript 中使用 jsonrpc 进行 ajax 调用的能力。

Databinding 扩展:json 格式的 databinding 提供了将 json 格式的数据与其他格式(如 xml,Java Bean,SDO 等)之间互相转换的能力。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/19 18:14:55