-
轻量级异步服务总线开发方案
关键词:企业服务总线,
WEB
SE
RVICES
,分布式协作网络,轻量级平台,异步数据
交换,
XML
,
WS-*
,
Indigo
,
WSE
随着
SOA
技术的不断成熟,
协作软件架构逐步明晰,
国内外主要的软件场
上开始用
ESB
取
代传统的中间件结构
,
使得软件平台的业务层信息传输更易拓展。
为此,
我们在原有信息平
台基础上,搭建服务总线模块,目标如下:
1
、
实现平
台内部信息流转:实现栏目之间数据拷贝、数据同步;实现内部文件传输流程、
上传审批
流程等
2
、
实现平台间信息流转:
实现不同平台栏目间数据拷贝、
数据同步;
实现跨平台信息流转;
3
、
实现平
台与客户端间信息交流:提供基于
Indigo
的即时消息,及
远程信息处理等功能;
针对当前平台需要做的工作如下:
1
、
理顺当前栏目,将当前栏目归类,不同类别栏目分别放置
2
、
为当前栏目添加
WEB SERVICE
和
ATOM
服务以及对应的搜索模块
3
、
建设独
立的认证系统服务、组织机构列表服务、服务列表服务、功能模块列表服务、授
权服务系
统
4
、
建立异步数据交换中心,承担数据接收、转发、订阅等工作
异步服务总线结构剖析:
异步企业服务总线示意图
图
1
2005-8-15
总
服
务
线
平台
2
平台
1
服
务
线
总
总
服
p>
务
线
平台
3
以上图所示:
每个平台嵌入一个服务总线引
擎,
该引擎除提供对平台内的服务接口外,
还提
供远程总线对接服务,最终将各个平台互联。服务总线同时还起着
SOA
代理的作用,目的
有两个,
一是统一管理各组
件所提供服务的列表,
二是将组件的请求服务统一转发,
从而归
并组件对外请求的代码,并实施统一管理。
异步服务总线引擎的逻辑原理:
(见
下图)
:
左侧是组件、栏目和客户端
的请求,
右侧是服务总线对外的接口,
中间部分是总线模型,总
线模型的关键部分是三个引擎四个列表和一个任务定时器。
RULE
引擎用于处理业务规则,根
据规则对信息流程做出更改;
BPEL
流程引擎用于解析流程
数据翻译引擎用于交换和翻译不同结构的数据
组织机构列表用于分布式传送定位和流程关节
服务接口列表用于订阅服务、发现使用、和流程关节
用户列表用于流程关节
订阅列表保存计划任务和普通流程任务两部分,
计划任务需要定期处理,
普通流程任务
由流程引擎解
析后保存下来,用于对外进行传输
任务定时器用于启动异步流程服务
异步企业服务总线示意图
图
2
2005-8-15
异步引擎
栏目、
客户端
分布式
各平台
状态
监
服务接
异步启
管
动定时
理
测器
口列表
器、订
界
阅服务
面
流程管
订阅服
监测器
理
器
务列表
数据暂存服务
RULE
引擎
分
布
式
传
输
SOAP
数据翻译
引擎
BPEL
引擎
HTTP
栏目、
客户端
服务接口
组
织机构同
用户列表
步列表
中间件
异步服务总线和客户端的请求响应模型:
异步企业服务总线示意图
图
3
2005-8-15
模型
服务点列表
(人员、服
务、组织机
构)
订阅和工作
流
异步服务总线
SOAP
异步服务总线
请
求
:
检
索
数
据
请
求
:<
/p>
发
送
数
据
注
册
服
务
、
功
能
回
执
、
签
批
启
动
流
程
栏目
订
阅
直接请求
栏目
总线向栏目(客户端)的
WEBSERVICE
发送的信息:
1
、
检索数据的请求,请求检索特定条件的数据
2
、
向栏目
发送数据,该数据为该栏目通过流程后获取的或是直接订阅的。栏目接收并
处理数据
p>
栏目向总线的
WEB SERVICE
发送的信息:
1
、
发布一个工作流程
2
、
对一个流程进行回执
3
、
注册该栏目已实现的服务功能
4
、
订阅其他栏目的信息
5
、
查询服务列表(保留)
根据需要:栏目间通过定制服务可进行直接的同步访问,该访
问不作为本方案的内容。
实际的模块结构见下图:
异步企业服务总线示意图
图
4
< br>2005-8-15
存在形式
备份数据
< br>RSS
和
ATOM
定时器和引擎
数据库和文件
列表数据
暂存数据
WINDOWS
服务
网站平台
INDIGO
服务接口
向外请
求
应用程序
管理客
户端
WEB
SERVICE
服务受体
相关流程:
异步企业服务总线示意图
图
5
200
5-8-16
寄达处理流程
定时
器
p>
触
发
扫
描
列表:人
扫描队
启动流程引擎
< br>获取节点信息
员、部
列
流程处理
引擎
门、功能
模块
流
< br>程
信
息
启
动
翻译引擎
远程引擎
web
serv
ice
暂存到任务队
< br>列中
发
送
进
程
存
储
数据库
发出数据
向目的地址
发送
Web
service
异步企业服务总线
示意图
图
5
2005-8-16
寄送处理流程
触
发
策
略
策略列表
定时
器
扫描队
列
业务规则引擎
擎
扫
描
webservi
ce
向目的地址
发送
启
动
发
送
进
程
启
动
流
程
引
流程处理引擎
发
< br>出
数
据
点
信
息
获
取
节
暂存到任务队
列中
存
< br>储
发送流程数据
本地功能模块
流
程
列表:人
员、部
门、功能
模块
信
息
数据库
异步企业服务总线
示意图
图
5
2005-8-16
订阅处理流程
栏目、功能模块
启
动
查
询
服
< br>务
列
表
定时器
< br>扫描
任务扫描器
任务列表
请
p>
求
订
阅
服务列表<
/p>
注册订阅任务
被请求栏目、模
块、
RSS
、
ATOM
存
储
想外请
求
请
求数据
流程处理引擎
发送数据
转换、<
/p>
向外发送
取出数据
订阅者
保存数据
任务队列
数据暂存
注
册
执
行
执行
实现方式:栏目模型和服务模型分离
企业服务总线
栏目
栏目服务类
栏目基类
服务基类
using
System;
namespace
e
{
///
///
实现各组件向外发送服务请求的公共方法,包括:
///
发送信息请求
///
请求服务列表
///
订阅服务请求
///
注册服务
///
public
class
RequestBase
{
public
RequestBase()
{
}
///
///
直接对外请求服务
///
///
请求格式
XML
///
返回请求内容
XML
public
string
RequestThrough(
string
RequestInfo)
{
}
///
///
向
E
SB
发送消息
///
///
消息内容
///
返回状态
public
string
SendMessage(
string
MsgInfo)
{
}
///
///
向
E
SB
获取本地或指定条件区域的服务列表
///
///
指定的区域条件
///
XML
格式的服务列表
public
string
GetServiceList(
string
position)
{
}
///
///
向
E
SB
订阅服务
///
///
服务描述
///
返回状态
public
string
ServiceSubscribe(
string
ServiceInfo)
{
}
///
return
return
return
return
//
// TODO:
在此处添加构造函数逻辑
//
-
-
-
-
-
-
-
-
-
上一篇:bboedre计算_机专业英语常用词汇大全
下一篇:3D英文解释