U9研发体系(BP服务开发手册)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

U9 BP服务开发指南

文件编号:

版本号: 1.0

修改状态:0

编写人:祁宏伟

审核人:

适用对象

该规范适用于U9所有BP和服务的开发人员

版本记录

【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】

版本修改与

参与人

修改时间修改原因修改概述审批人

1.0 祁宏伟 2008-7-10 原始版本创建

1.1 祁宏伟 2008-7-30 增加模型设计,调整格式

相关文档

名词解释

BP: business operation 业务操作,指一个业务操作单元.可以理解成一个有平台元数据和框架引擎支撑的业务方法.

主要用于对于UI调用后台的业务数据操作和后台业务操作的逻辑封装. SV:服务,和BP一样同样也是业务操作单元, 但服务从设计上是用于为外部服务组外部应用提供的业务接口,可以进行webService发布.

U9中使用BP和服务的主要场景:

对于支持IIS和应用服务可分布的场景,UI在IIS服务器,调用应用服务器的处理必须要走BP,来支持跨进程,机器调用.此时该BP主要用于对UI的数据请求作处理和返回.对于应用服务间业务逻辑的处理过程中,常常有需要对业务逻辑进行一定的封装,此时用BP封装业务逻辑,主要是包装多个业务操作,提供功能接口.

对于服务,只用于跨服务组,跨组织,跨Site情况下的业务功能接口访问.

手册正文

1BP,SV模型设计:

BP与SV的模型设计是一样的,下面用BP的模型来演示.

1.1创建BP项目

打开UBF,解决方案中右键 “Solution’demo’”弹出菜单选择新建

弹出创建对话框

1.选择区域1操作项目 BP

2.项目名称 SubmitSOBP

3.点击确定保存退出

这时解决方案中就多了一个项目” SubmitSOBP.ubfb”

1.2 设计BP

第一步: 双击SubmitSOBP进入BP设计区

第二步: 拖入操作BP

从工具箱中选择‘操作’拖入工作区中如图区域2所示修改操作属性名称为SumitSO

显示名称为审核

第三步新增BP传入参数

在模型图中选中BP,在详细信息视图中添加传入参数

类型的设置,同实体的设置方法一样

第四步 设置BP属性

选中BP, 点属性窗口

1.修改名称

2.修改显示名称

3.修改返回类型,在这里默认为空类型,也就是V oid型

4.是否是实体的主键

5.事务类型选择

6.是否需要权限的控制。

第五步引用实体

如果在一个解决方案中可以拖动下图区域1到区域2 Reference中

第六步引用实体

如果不在一个解决方案中我们可以在发布浏览器中找到PMBE,BaseBe,PubBE拖入Reference

在后边的开发中会用到两个实体

拖入后如下图所示

2BP,SV模型概念:

2.1 BP,SV的模型区分:

目前,BP,SV在元数据模型上是同一模型,仅靠一个是否服务的元数据标识来区分。并通过IDE建的项目文件来控制。BP项目中只能建立BP操作。SV项目中

只可以建立SV操作。

一般来说,同一个服务组的SV项目是引用BP项目。但BP项目不会引用SV 项目。BP主要用于本服务组的业务操作单元,并且一般给UI使用,而SV是对外

部服务组,或外部组织可见的服务。

2.2 BP,SV的元数据模型:

扩展属性中异常:该BP,SV可能会报出的异常类型。 目前没有使用,无用状态。。。

返回类型: 目前基本上的类型都可以作为返回类型。并且支持集合。

实体主键:当返回类型为实体或实体集合类型时,该项可用。表示返回的实体的

KEY。

事务类型: 具体参考持久化事务文档。

是否权限控制: 是否进行权限控制。

2.3 BP,SV的属性和实现策略:

BP,SV的属性是作为其传入参数,调用BP,SV时,给属性赋值,在实现方,使用其属性来进行逻辑处理。BP的属性支持几乎全部类型。具体类型问题参见下面

代码构架。

实现策略:是BP,SV的一种实现,目前支持添加多种实现策略。

2.4 版型的支持:

BP,SV支持应用版型,但版型的支持依赖于TPL上的特殊处理。所以,目前TPL上已经支持的特殊版型有:

查询BP版型:用于标识该BP为查询BP,用于查询列表生成特殊代码片断。

不明BP类型注册版型:用于在BP,SV使用OBJECT类型时,INDIGO需要其显示注册其中可能的类型。生成代码时,会生成INDIGO标签标明其中注册的

类型。

3BP,SV代码框架:

3.1 调用方式:

目前BP,SV支持本地Local和远程Agent两种方式来调用。

本地调用方式示例:

GetDateExchangeRate getDateExchangeRateBP = new GetDateExchangeRate();

getDateExchangeRateBP.FromCurrency = ..;

getDateExchangeRateBP.ToCurrency = ..;

ExchangeRateDTO rateDto = getDateExchangeRate.Do();

代理调用方式示例:

GetDateExchangeRateProxy getDateExchangeRateBPproxy = new GetDateExchangeRateProxy

();

getDateExchangeRateBPproxy.FromCurrency = ..;

getDateExchangeRateBPproxy.ToCurrency = ..;

ExchangeRateDTOData rateDtodata = getDateExchangeRateBPproxy.Do();

3.2 生成的代码项目和类型:

3.2.1 每个BP,SV都会生成3个项目:

**.Deploy 部署项目

**.Agent 代理项目

** 实现项目

Deploy项目中为异常,DTOData等类型,作为BP的Agent和实现项目都需要使用和依赖。Agent和实现项目相互不依赖。

3.2.2 每个BP,SV都会生成5个相关类型.例:CheckOrder

ICheckOrder : BP,SV的接口类型,同时存在于Agent和实现两个项目中,用的相同的Indigo契约标签ServiceContractAttribute().

CheckOrderAgent : 代理类型,用于远程调用时,使用该类型实例化并执行其Do().

CheckOrderStub : 代理调用的桩.用于与代理调用的通讯.并处理与本地调用的接口类型转化处理.

CheckOrder : 实现类型,用于本地调用时,使用该类型实例化并执行其Do().

CheckOrderImplement :生成在实现项目的Extend文件中,仅此是由开发需要实现BP,SV的实现策略.在Do()方法中编写业务逻辑.

相关文档
最新文档