TUXEDO服务设计和编码规范-融金教育

上传人:豆浆 文档编号:48615690 上传时间:2018-07-18 格式:PPT 页数:46 大小:333.50KB
返回 下载 相关 举报
TUXEDO服务设计和编码规范-融金教育_第1页
第1页 / 共46页
TUXEDO服务设计和编码规范-融金教育_第2页
第2页 / 共46页
TUXEDO服务设计和编码规范-融金教育_第3页
第3页 / 共46页
TUXEDO服务设计和编码规范-融金教育_第4页
第4页 / 共46页
TUXEDO服务设计和编码规范-融金教育_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《TUXEDO服务设计和编码规范-融金教育》由会员分享,可在线阅读,更多相关《TUXEDO服务设计和编码规范-融金教育(46页珍藏版)》请在金锄头文库上搜索。

1、www.si-*TUXEDOTUXEDO服务设计和编码规范服务设计和编码规范 www.si-*提纲提纲旧版TUXEDO规范 新版TUXEDO规范11.1 概述1.2 文件体系结构 1.3 源文件结构 1.4 TUXEDO服务程序组成1.5 文件命名规范 1.6 TUXEDO服务命名规范1.7 编码规则www.si-*概概 述述 u制定编码规范的最主要的目的是为了对产出代码的长期维 护。通常负责维护代码的人大多都不是开发者本人,如果 有一个统一的代码格式以及说明就可以减少混淆提高理解 速度。因此,下列的编码规范是基于良好的编码习惯和可 读性的原则来制定的。 uTUXEDO服务是在UNIX C u

2、return(0); u u void tpsvrdone() u uspublicDBClose(LABELDBCHANGE); u www.si-*服务编码规则服务编码规则 -2-2u 规则2 必须使用get_input_parms32_2函数取TUXEDO的传入参数。 u 废弃get_input_parms32函数。 u 规则3 必须使用add_value32函数向TUXEDO中压入一个值。 u 规则4 必须使用Fget32函数从TUXEDO中读取多行中取一个值。 u 规则5 数据库登录必须用spublicDBLogin函数登录。 u 规则6 必须使用sChkDBLogin函数校验数据库

3、连接。 u 此函数用于数据库常连接的数据库连接验证。www.si-*服务编码规则服务编码规则 -3-3u 规则7 TUXEDO服务中不能出现SQL语句,所有的SQL语句必须出现 在公用函数中。 u 规则8 控制注释的输出。注释采用统一的注释控制规则,对日志进行 非类,分监控类、调试类等,原则上服务中不能出现printf等语句。 u 使用DBUG_ENTER、DBUG_PRINT等函数。 u 规则9 调用服务统一入口函数CallTuxedo,跟踪服务的入口参数信息 。 u 规则10 输入输出参数的长度不能超过1000个字节,否则会溢出。 u 规则11 TUXEDO的错误代码和错误信息必须放在SV

4、C_ERR_NO32 和SVC_ERR_MSG32中,不能占用GPARM32_X的位置。www.si-*服务编码规则服务编码规则 -4-4u规则12TUXEDO的返回值的数量不能超过50个;如果 超过50个参数,参数按行放在第一列GPARM32_0中。 u规则13输出参数缓冲的内存分配,必须调用函数 MemoryAllocate32。 u规则14一个TUXEDO SERVER中的SERVICE不能超 过10个。 u规则15每个SERVICE的函数说明,必须在SERVICE 前说明清楚,包括描述、输入输出,返回值。www.si-*提纲提纲旧版TUXEDO规范 新版TUXEDO规范22.1 技术架

5、构2.2 开发流程 2.3 案例开发www.si-*技术架构技术架构- -概述概述www.si-*技术架构技术架构- -uTypeuType介绍介绍u接口标准化,所有系统函数的接口格式统一 u扩展性强,在接口不变的情况的下,参数可以树 状扩充 u升级、维护简单,风险小 u跨平台应用,可以在任意平台间轻便移植www.si-*技术架构技术架构- -uTypeuType介绍介绍【重点关注蓝色字体部分的描述】 typedef struct tagutype utype; typedef struct tagueint type; /包含的uType数据条数union char v_char;int v

6、_int;long v_long;double v_double;char * p_char;utype * p_utype; value; ue;struct tagutypeint cnt;int capacity;ue *ppe; ;utypeintstringutypedoublestringutypestringstringstringwww.si-*技术架构技术架构- -uTypeuType介绍介绍uuType函数原型 要求系统内的函数全部采用一下接口进行描述,不同函 数只是functionName不同。 函数原型如下: utype* functionName(utype *puI

7、nParam, TCtrlInfo *ptCtrlInfo) u3.2uType接口数据定义 utype是个树状的数据结构描述,在uType结构体内可以 无限级扩展。www.si-*技术架构技术架构- -组件分层组件分层SERVERSERVICEBP(Business Process)BC(Business Component)所有业务集中在BC/BP, Server/Service不能有逻辑www.si-*提纲提纲旧版TUXEDO规范 新版TUXEDO规范22.1 技术架构2.2 开发流程 2.3 案例开发www.si-*开发流程开发流程- -目录结构目录结构开发目录结构: framewor

8、k/* 开发环境根目录 */ bin/* 可执行文件目录 */ include/* 头文件目录 */ lib/* 静态库目录 */ src/* 源代码目录 */ baselib/* 基础库类库 */ BossLib/* BOSS基础库目录 */ 。/* 其他基础库 */ custsvc/* 客户服务子系统 */ business/* 业务组件 */ custsvcBCP/* 原子服务 */ server/* 业务组件发布 */ prodmng/* 产品管理子系统 */ 。/* 其他子系统 */ svctest/* 业务测试目录 */ tools/* 辅助工具 */ test/* 测试目录 */

9、 synlib/* 动态库目录 */ tools/* 辅助工具 */www.si-*开发流程开发流程- -开发步骤开发步骤www.si-*开发流程开发流程- -开发步骤开发步骤以“客户服务”为例: u原子服务开发 使用autoBC 工具生成原子服务 原子服务的命名规则:c + 操作的表名 + .cpp,例如 cdCustMsg.cpp 内部函数命名规则:c + 数据操作符(Q、I、U、D)+ 操作的表 名 + .cpp,例如:cQdCustMsg(查询用户资料), cIdCustMsg(插入用户资料), cUdCustMsg(更新用户资料 ), cDdCustMsg(删除用户资料) 修改mak

10、efile文件,将生成的原子服务编译成库 libcustsvcBCP.a,供业务构件使用 将生成的原子服务函数在头文件中custsvcBCP.h声明 u业务组件开发 u业务组件发布www.si-*开发流程开发流程- -开发步骤开发步骤以“客户服务”为例: u原子服务开发 u业务组件开发 编写业务组件,执行一个完整的业务逻辑,需要调用 libcustsvcBCP.a中的原子服务 业务组件的命名规则:pub + 业务名称 + .cpp,例如 :pubCreateUser.cpp 修改makefile文件,将业务组件编译成客户服务组件 库 libcustsvc.a 将生成的业务组件在头文件中 cus

11、tsvc.h声明 u业务组件发布www.si-*开发流程开发流程- -开发步骤开发步骤以“客户服务”为例: u原子服务开发 u业务组件开发 u业务组件发布 编写业务组件发布文件,在文件中添加自己业务组件, extern “C“ void sMovePhone(TPSVCINFO *transb) TuxInterface(“sCMultiUser“, transb, LABELDBCHANGE, “CreateMultiUser“, CreateMultiUser, LONG_CONN_TYPE,0); 发布文件命名规则:R + 业务名称 + .cpp,例如: RCreateUser.cpp

12、修改makefile文件,添加业务组件编译项 编译业务组件文件,重新启动服务(server)www.si-*开发流程开发流程-BC-BC生成器生成器u使用autoBC脚步可以直接生成访问数据库实体表 的原子接口函数,包括select insert update delete等接口,通过原子接口可以屏蔽外围系统 对数据库的直接访问。语法如下: autoBC dbcustadm/dbcustadmahlt X X cFuncName sqlfile suffixwww.si-*开发流程开发流程-BC-BC生成器生成器autoBC dbcustadm/dbcustadmahlt X Y cFuncN

13、ame sqlfile suffix数据库连接串输入参数形式:0/1 0:单值,1:多值输出参数形式:0/1 0:单值,1:多值原子函数名数据库操作SQL文件(可选参数)动态表后缀名www.si-*开发流程开发流程- -测试工具测试工具u使用clut 工具可以对编写完成的utype输入输出格式的 Tuxedo服务进行测试: clut.sh 业务名称.clutwww.si-*开发流程开发流程- -测试工具测试工具u clut文件格式 “-”+ 数据类型 + 值 + 注释信息 以“-”开头,每个嵌套层比上一层多一个“-”,类似于XML文件格式 “#”为注释符号 u 举例: -utype #TOpr

14、Info -string 0208091200000008 #sCustOrderId -long 2000012805097 #lLoginAccept -string 1104 #sOpCode -string ba0001 #sLoginNo -string CODCDOJHGECIFONG #sLoginPwd -string 172.16.24.100 #sIpAddress -string 10032 #sOprGroupId -string 20080912 09:59:01 #sOpTimewww.si-*开发流程开发流程- -开发案例开发案例u 以“用户开户”业务组件为例:

15、1. SQL文件准备 2. 自动生成BC原子服务 3. 编写业务组件 4. 发布业务组件 5. 测试业务组件www.si-*提纲提纲旧版TUXEDO规范 新版TUXEDO规范22.1 技术架构2.2 开发流程 2.3 案例开发www.si-*开发流程开发流程- -开发案例开发案例u SQL文件准备 在framework/src/custsvc/custsvcBCP/sqlFile目录下 编写插入dCustMsg表的SQL文件cIdCustMsg.sql ,文 件内容:INSERT INTO dCustMsg (ID_NO,CUST_ID,CONTRACT_NO,IDS,PHONE_NO) VALUES (:ID_NO,:CUST_ID,:CONTRACT_NO,:I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号