尽展体育的魅力,创造历史辉煌!
2008
让我们为奥运加油,为中国加油!
奥运金牌榜
高级搜索
首页
技术论坛
博客
产品中心
资源中心
银弹在线
商城
goCom - SOA中国第一社区
SOA和WebService
|
面向构件
|
业务流程
|
EOS
|
综合技术
|
goCom吧
|
版务区
|
商务专区
SOA和WebService
|
面向构件
|
业务流程
|
EOS
|
综合
Primeton EOS
|
Primeton BPS
OSOA专区
|
专题
|
技术日
|
活动
|
下载
推荐阅读
|
封面报道
|
特别报道
|
CIO锦囊
|
专栏
|
公司
|
银弹讨论
最新上架
|
银弹推荐
|
普通书籍
|
音像
|
护肤
|
生活
|
数码
goCom - 面向构件与SOA社区 讨论区
-
面向构件
SCA/SDO
SCA中国推进组
SDO中国推进组
银弹讨论
Tuscany
平台厂商
主题选项
点击展开
HOVER展开
--------
打印主题
[无发表权] 请登录或者注册
版主:
hongsoft
米布
wangfeng
ligang1111
个人资料
主页
OICQ
MSNM
SCA的java注解和API规范v100
#1楼
总分
126 分
财富
547
威望
53
排名
:(
段位
翻译自apache Tuscany子项目的
SCA
的Java注解和API规范V100
通用Annotation,API,客户程序和实现模型
1.1
简介
SCA
通用注解(annotaion),API函数,客户程序和实现模型为
SCA
装配模型规范中定义的编程理念制定了Java语法规则。他规定了一系列能用于基于Java的
SCA
规范的API和注解。
特别地,该规范包括以下内容:
1.
实现了指定组件服务,引用和属性的元数据
2.
客户端和组件API的J3. 元数据,用于异步和同步的服务。
3.
回调机制的元数据
4.
标准组件实现范围的定义
5.
Java到WSDL和WSDL到Java的映射
6.
安全策略注解
注意个别的编程模型在某些适当的时机也许会选择用本地的API和本地方言来实现自己对装配模型理念的映射。
规范注解,API,客户端以及实现模型的目标是提升一致性以减少各种Java相关的组件实现类型规范的副本。本规范中制定的注解,API,客户端以及实现模型是为被其他基于Java的
SCA
规范所使用而设计的。
本文档使用J2SE 5的注解技术来实现元数据。然而,
SCA
也允许服务的客户端和实现用J2SE1.4来开发。所有注释代表的元数据也可以使用组件类型文件来表述,该组件类型文件也在
SCA
装配规范中定义了。
1.2
实现元数据
这一节描述了基于Java技术的
SCA
元数据是如何应用到基于Java的实现中的。
1.2.1
Service元数据
1.2.1.1
@Service
@Service
注解被用在java类上来指定服务实现的接口。一般来说,服务接口用以下的方法之一来定义:
l
作为一个Java接口
l
作为一个Java类
l
作为一个从Web service描述语言产生的Java接口(一般总是远程接口)
1.2.1.2
远程服务的Java语义
远程服务在定义了服务的Java接口上使用@Remotable注解来定义。远程服务规定用语粗粒度的服务,参数以传值的方式传递。
1.2.1.3
本地服务的Java语义
本地服务只能被和本地服务组件实现部署在同一个地址空间的客户端程序访问。本地接口可以是不带@Remotable注解的java接口或java类
下面的代码片段显示了本地服务的Java接口
package
services.hello;
public interface HelloService {
String hello(String message);
}
本地接口一般是细粒度的,用于紧密联系的交互。
调用本地接口的数据交换语义是通过引用
(by-reference)
。这个意味着代码必须由知道参数的改变模式的客户端或服务的提供者所开发出来。
1.2.2
@Reference
通过定义服务接口的属性域、
setter
方法或构造函数并加入
@Reference
注解来使用引用注入来访问服务。
1.2.3
@Property
实现能通过属性来进行配置,属性在
SCA
的装配规范里也定义了。
@Property
注解用于定义
SCA
属性。
1.2.4
实现的作用域:@Scope,@Init,@Destroy
组件实现也能管理他们自己的状态或让
SCA
运行时环境来做这些工作。后一种情况下,
SCA
定义实现作用域,该作用域指定了实现和
SCA
运行时环境的可见性和生命周期契约。组件提供的服务调用由
SCA
运行时环境根据实现作用域的语义来分发到每个实现的实例上去。
作用域在实现类上用@Scope注解来指定。
该文档定义了四种基本的作用域:
l
STATELESS
l
REQUEST
l
CONVERSTATION
l
COMPOSITE
基于Java的实现可以选择去支持这些作用域,也可以定义一个新的作用域。
实现的类型也允许组件实现声明生命周期方法,用于实现被实例化或作用域过期时调用。
@Ini
t指示在作用域的生命周期中第一次使用实例的时候被调用。@Destroy表示函数当作用域结束的时候被调用。注意,只有公共的无参数的方法才能做为生命周期函数被注解。
@Init
public void
start() {
...
}
@Destroy
public void
stop() {
...
}
接下来的章节给出四个标准的基于Java的实现类型作用域。
1.2.4.1 Stateless
对于无状态组件,服务请求之间没有隐式的关联。
1.2.4.2 Request
请求作用域的生命周期是从远程接口上的请求进入到
SCA
运行时环境开始,一个线程处理该请求,直到线程同步地完成此请求为止。这期间,所有的服务请求将被委托给相同请求作用域组件的实现实例。
很多次,当本地的请求作用域服务被调用,在调用栈中没有早期的远程服务。例如,本地服务被非
SCA
实体调用的时候。这些情况下,远程请求总是被认为是存在的,但请求的生命期限依赖于实现。比如,一个时间事件将作为一个远程请求对待。
1.2.4.3 Composite
所有的服务请求被分发到同一个实现的实例,是因为容器构件的生命期限。容器构件的生命期限是作为激活和钝化的时间来定义的,可以是正常的也可以是异常的。
构件作用域的实现也许还会用@EagerInit注解来指定渴望初始化。当标注了渴望初始化的话,在容器组件启动的时候就会创建构件作用域的实例。假如一个方法被标住了@Init注解,当实例创建的时候就会被调用。
1.2.4.4 Conversation
会话是指定义了客户与目标服务之间的一系列相关的交互。当第一个服务请求被分发到某个提供了会话服务的实现实例的时候,会话作用域就开始了。当服务契约定义的某个终端操作被调用之后,并完成处理或会话过期,会话作用域就完成。一旦这个发生,运行时必须保证保存有实现实例的状态。
注意,当一个会话服务是被一个标注了会话范围的Java类实现的时候,
SCA
运行时环境将会透明地处理实现的状态。当然,也可能由实现自己来管理自己的状态。比如,一个stateless或其他作用域的Java类能实现会话服务。
to be continue........
2007/12/13 14:12
普元EOS公开培训
SOA博客精英 重金寻求
g币赠送:EOS公开培训调研
IDC最新白皮书《软件商成长路线图》免费下载
普元业务流程平台-Primeton BPS 最新频道火热上线
IDC:SOA中国路线图白皮书免费下载
普元诚招EOS技术咨询顾问
[无发表权] 请登录或者注册
发表回复
账号
用户名
密码
登录
内容:
字体大小
xx-small
x-small
small
medium
large
x-large
xx-large
字体
Arial
Courier
Georgia
Helvetica
Impact
Verdana
字体颜色
#000000
#000033
#000066
#000099
#0000CC
#0000FF
#003300
#003333
#003366
#003399
#0033CC
#0033FF
#006600
#006633
#006666
#006699
#0066CC
#0066FF
#009900
#009933
#009966
#009999
#0099CC
#0099FF
#00CC00
#00CC33
#00CC66
#00CC99
#00CCCC
#00CCFF
#00FF00
#00FF33
#00FF66
#00FF99
#00FFCC
#00FFFF
#330000
#330033
#330066
#330099
#3300CC
#3300FF
#333300
#333333
#333366
#333399
#3333CC
#3333FF
#336600
#336633
#336666
#336699
#3366CC
#3366FF
#339900
#339933
#339966
#339999
#3399CC
#3399FF
#33CC00
#33CC33
#33CC66
#33CC99
#33CCCC
#33CCFF
#33FF00
#33FF33
#33FF66
#33FF99
#33FFCC
#33FFFF
#660000
#660033
#660066
#660099
#6600CC
#6600FF
#663300
#663333
#663366
#663399
#6633CC
#6633FF
#666600
#666633
#666666
#666699
#6666CC
#6666FF
#669900
#669933
#669966
#669999
#6699CC
#6699FF
#66CC00
#66CC33
#66CC66
#66CC99
#66CCCC
#66CCFF
#66FF00
#66FF33
#66FF66
#66FF99
#66FFCC
#66FFFF
#990000
#990033
#990066
#990099
#9900CC
#9900FF
#993300
#993333
#993366
#993399
#9933CC
#9933FF
#996600
#996633
#996666
#996699
#9966CC
#9966FF
#999900
#999933
#999966
#999999
#9999CC
#9999FF
#99CC00
#99CC33
#99CC66
#99CC99
#99CCCC
#99CCFF
#99FF00
#99FF33
#99FF66
#99FF99
#99FFCC
#99FFFF
#CC0000
#CC0033
#CC0066
#CC0099
#CC00CC
#CC00FF
#CC3300
#CC3333
#CC3366
#CC3399
#CC33CC
#CC33FF
#CC6600
#CC6633
#CC6666
#CC6699
#CC66CC
#CC66FF
#CC9900
#CC9933
#CC9966
#CC9999
#CC99CC
#CC99FF
#CCCC00
#CCCC33
#CCCC66
#CCCC99
#CCCCCC
#CCCCFF
#CCFF00
#CCFF33
#CCFF66
#CCFF99
#CCFFCC
#CCFFFF
#FF0000
#FF0033
#FF0066
#FF0099
#FF00CC
#FF00FF
#FF3300
#FF3333
#FF3366
#FF3399
#FF33CC
#FF33FF
#FF6600
#FF6633
#FF6666
#FF6699
#FF66CC
#FF66FF
#FF9900
#FF9933
#FF9966
#FF9999
#FF99CC
#FF99FF
#FFCC00
#FFCC33
#FFCC66
#FFCC99
#FFCCCC
#FFCCFF
#FFFF00
#FFFF33
#FFFF66
#FFFF99
#FFFFCC
#FFFFFF
范例 Example
[
更多...
]
版权归Primeton普元公司所有 沪ICP备05008205号
关于goCom
|
联系我们
|
联系普元
|
隐私权声明
|
XOOPS