业务数据集成.docx

上传人:b****2 文档编号:83789 上传时间:2023-04-28 格式:DOCX 页数:41 大小:313.78KB
下载 相关 举报
业务数据集成.docx_第1页
第1页 / 共41页
业务数据集成.docx_第2页
第2页 / 共41页
业务数据集成.docx_第3页
第3页 / 共41页
业务数据集成.docx_第4页
第4页 / 共41页
业务数据集成.docx_第5页
第5页 / 共41页
业务数据集成.docx_第6页
第6页 / 共41页
业务数据集成.docx_第7页
第7页 / 共41页
业务数据集成.docx_第8页
第8页 / 共41页
业务数据集成.docx_第9页
第9页 / 共41页
业务数据集成.docx_第10页
第10页 / 共41页
业务数据集成.docx_第11页
第11页 / 共41页
业务数据集成.docx_第12页
第12页 / 共41页
业务数据集成.docx_第13页
第13页 / 共41页
业务数据集成.docx_第14页
第14页 / 共41页
业务数据集成.docx_第15页
第15页 / 共41页
业务数据集成.docx_第16页
第16页 / 共41页
业务数据集成.docx_第17页
第17页 / 共41页
业务数据集成.docx_第18页
第18页 / 共41页
业务数据集成.docx_第19页
第19页 / 共41页
业务数据集成.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

业务数据集成.docx

《业务数据集成.docx》由会员分享,可在线阅读,更多相关《业务数据集成.docx(41页珍藏版)》请在冰点文库上搜索。

业务数据集成.docx

业务数据集成

1.1.1.业务数据集成

业务数据集成是指MDMServer与外围系统之间的数据交换时需要中间处理的模块应用层。

 

如图所示,外围系统要紧通过三种模式与MDMServer交互(那个地点不考虑ETL):

直截了当的webservice访问–要紧通过协议联机访问,一样不通过业务集成层而直截了当访问数据服务层

近实时的消息通知–要紧通过MQ消息访问,需要在业务集成层进行必要的处理

批量处理–要紧通过文件进行数据传递,需要在业务集成层进行处理

业务集成服务层的要紧内容包括:

近实时的消息通知

⏹数据标准代码的转换

⏹交易xml的拆分

⏹其他规则

批量处理

⏹标准代码的转换

⏹入库方式判定处理,判定是否是新增依旧更换

⏹交易拆分

⏹其他规则

1.1.2.联机数据集成(基于MQ/XML)

联机数据集成要紧处理近实时消息通知,处理模式如下图所示。

MQ组件是所有的客户信息更新消息的载体,MsgReceiver组件负责接收MQ的消息,通过MsgParser组件进行xml格式解析,MsgReceiver转交到IntegrateFW组件,IntegrateFW组件是转发框架,负责业务集成层的差不多操纵,依照报文的类型调用必要的规则处理进行数据转换或者信息拆分,然后交由具体逻辑处理实现模块IntegrateImpl完成业务集成逻辑,并最终通过ServiceInvocation模块调用MDM的服务,完成交易。

数据服务层要紧包括扩展服务和组合服务。

如上图,依照业务需求,一样性的顺序如下详述:

1ejbCreate–MQ中的信息通知WAS容器,依照MsgReceiver组件的MDB情形,创建一个实例进入池态;

2onMessage–WAS容器调用MDB的onMessage方法,并把消息作为参数传递到该方法;

2.1deliver–onMessage方法中调用IntegrateFW组件的deliver方法,并传递消息;

2.1.1parse–IntegrateFW组件调用MsgParser组件解析传入的消息体;

2.1.1.1Constructor–MsgParser组件依照消息体解析,生成一个IBObj对象;

2.1.2parse–parse方法返回生成的IBObj对象;

2.1.3getTCRMTxType–猎取IBObj对象的服务类型;

2.1.4getTCRMTxType–返回字符串结果;

2.1.5getRequestName–猎取IBObj的要求者;

2.1.6getRequestName–返回;

2.1.7Constructor–IntegrateFW依照服务对象和要求者,实例化一个IntegrateImpl组件中集成服务实例;

2.1.8execute–调用具体实例的业务逻辑,并把IBObj作为参数传递;

2.1.8.1callRule–调用标准代码转换规则,进行必要规则处理;

2.1.8.2callRule–返回规则处理后的IBObj对象;

2.1.8.3matchRule–调用客户识别规则,进行识别

2.1.8.4matchRule–调用返回

2.1.8.5constructIBObj–在具体的业务逻辑处理中,依照具体需要调用MsgParser创建需要的IBObj对象;

2.1.8.5.1Constructor–MsgParser构建新的IBObj实例;

2.1.8.6constructIBObj–返回具体的IBObj实例;

2.1.8.7setAttribute–处理具体的IBObj实例内容;

2.1.8.8setAttribute–处理内容返回;

2.1.8.9toServiceXml–处理完所有的IBObj实例内容后,调用方法转换为xml标准服务格式;

2.1.8.10toServiceXml–返回xml字节流;

2.1.8.11invoke–调用MDM服务;

2.1.8.12invoke–返回;

2.1.9execute–完成具体业务集成逻辑实例的执行;

2.2deliver–完成整个业务集成逻辑的执行;

注:

2.1.8到2.1.9之间可能有多次的callRule和invoke调用;

2.1.8到2.1.9execute的调用需要包括在事务处理中;

批量处理的业务集成层设计参见《批量型》章节。

1.1.2.1.MsgReceiver组件

MsgReceiver组件要紧由IntegrateMDB组成,IntegrateMDB是一个MessageDriverBean,通过onMessage(Message)方法接收MQ的消息通知。

信息接收组件要紧负责从MQ接收消息,参数Message使用BytesMessage类型,消息格式为XML形式,其具体的接口定义参见《服务接口定义》中的相关通过MQ接口部分。

接口要紧包括:

个险–增加客户(addPerson/CSCMQ)

个险–保全修改客户(updatePerson/CSCMQ)

电商网上销售–增加客户(addPerson/TOLMQ)

电商网上销售–修改客户差不多信息(updatePersonBase/TOLMQ)

电商网上销售–保全修改客户(updatePerson/TOLMQ)

注:

以上括号中的服务名是指各个业务系统提交到MQ中的消息服务名,而不是MDM调用的标准服务名;

组件调用IntegrateFW组件进行后续处理。

publicvoidonMessage(Messagemsg){

……

if(msginstanceofBytesMessage){

BytesMessagebm=(BytesMessage)msg;

longlength=bm.getBodyLength();

byte[]bs=newbyte[length];

bm.getBytes(bs);

BytesInputStreambis=newBytesInputStream(bs);

IntegrateFW.deliver(bis);

}else{

……

}

……

}

1.1.2.2.IntegrateFW组件

IntegrateFW组件是框架组件,负责业务集成层的操纵调度。

组件负责调用MsgParser组件,解析xml报文,然后依照报文类型调用具体的操纵处理逻辑,同时调用业务处理规则进行数据和业务处理,最后形成处理后的报文提交ServiceInvocation组件调用MDMService,完成整个处理,同时假如在处理中发生专门,则交由IntegException组件处理专门结果。

IntegrateFW组件中关于多个service调用作为同一事务来治理,假如调用出错需要进行回滚处理。

IntegrateFW组件暴露一个接口IntegrateLogic供IntegrateImpl组件实现,其接口方法如下。

/**

*执行具体的业务集成任务.用于MQ异步通知模式

*在IntegrateImpl组件实现该方法,处理具体某一项接口的逻辑调用,一样包括

*代码转换、服务拆分、服务变换、DSP判定等

*@paramis输入流,是通过MQ接收到的消息内容,xml字节流

*@throwsItegrateException例外,假如发生例外需要到例外组件处理

*/

publicvoidexecute(IBobjobj)throwsItegrateException;

组件对外调用的Façade接口调用是IntegratFW类,使用静态方法。

/**

*传递到IntegrateFW组件执行后续任务.用于MQ异步通知模式

*@paramis输入流,是通过MQ接收到的消息内容,xml字节流

*/

publicstaticvoiddeliver(InputStreamis);

1.1.2.3.IntegrateImpl组件

IntegrateImpl组件是依照报文类型确定的具体的业务集成逻辑的实现。

一期需求要紧包括:

个险增加客户

个险修改客户差不多信息

个险保全修改客户信息

网上销售增加客户

参见个险增加客户,只是其接口内容稍有差异

网上销售修改客户差不多信息

参见个险修改客户差不多信息,只是其接口内容稍有差异

网上销售保全修改客户信息

参见个险保全修改客户信息,只是其接口内容稍有差异

此组件需要处理地址、、电子邮件、客户标识等的格式变换,是把输入的对象格式变为标准的MDM扩展服务格式,包括:

从粗粒度服务格式转换为updatePersonName服务格式

转换为changePartyAddress服务格式–服务中确定具体调用correctPartyAddress依旧addPartyAddress依旧不做处理;

转换为changePartyContactMethod服务格式–服务中定具体调用updatePartyContactMethod依旧addPartyContactMethod依旧不做处理;

从粗粒度服务格式转换为changePartyIdentifer服务格式–服务中定具体调用updatePartyIdentifer依旧addPartyIdentifer依旧不做处理;

具体接口参见《服务接口》和MDM开发文档。

服务逻辑参见相关在线服务组合服务设计;

1.1.2.4.MsgParser组件

信息解析要紧是依照xml报文解析其内容。

MsgParser组件依照不同的报文类型解析不同的内容。

MsgParser组件还负责输出变更后的报文结果。

MsgParser是暴露在外的Façade调用界面,通过两个个方法接收外部调用。

/**

*解析xml.

*@paramis输入流,是通过MQ接收到的消息内容,xml字节流

*/

publicstaticIBObjparse(InputStreamis);

/**

*把IBObj依照类型输出为标准的MDMservice报文.

*@paramobj输入的IBObj

*@return返回一个字节数组,组成xml,使用标准的iso-8859-1格式

*/

publicstaticbyte[]toServiceXml(IBObjobj);

/**

*依照名称构建新的IBObj对象.

*@paramname输入的IBObj名称

*@return返回IBObj对象

*/

publicstaticIBObjconstructIBObj(Stringname);

IBObj是用于定义报文的bean,类似MDM中的BObj。

IBObj要紧定义xml中的bobj对象,IBObj内部能够嵌套。

其暴露的接口如下。

/**

*设置IBObj的类型.是指对象类型,如TCRMPersonBObj、

*TCRMAdminContEquivBObj、TCRMPartyAddressBObj、TCRMAddressBObj等。

*/

publicvoidsetType(Stringname);

publicStringgetType();

/**

*设置服务的类型.

*/

publicvoidsetTCRMTxType(Stringtype);

pubicStringgetTCRMTxType();

/**

*设置服务的对象类型.

*/

publicvoidsetTCRMTxObject(Stringobj);

publicStringgetTCRMTxObject();

/**

*设置IBObj对象.

*/

publicvoidsetIBObj(IBObjobj);

/**

*依照名字猎取IBObj对象.只能猎取下一级对象.

*/

publicIBObj[]getIBObj(Stringtype);

publicStringgetAttribute(Stringtype);

/**

*设置属性.自动区分处理Extension属性.

*/

publicStringsetAttribute(Stringtype,Stringvalue);

/**

*设置服务头.

*/

publicvoidsetHeader(Stringheader);

publicStringgetHeader();

/**

*设置要求操纵部分.

*/

publicvoidsetRequestControl(Stringrc);

publicStringgetRequestControl();

/**

*设置要求操纵部分的要求名称.

*/

publicvoidsetRequestName(Stringrn);

publicStringgetRequestName();

/**

*设置要求操纵部分的LOB.

*/

publicvoidsetRequestLOB(Stringrlob);

publicStringgetRequestLOB();

 

1.1.2.5.DSPRule组件

处理DSP规则,具体参见DSP设计中在线可疑客户识别。

1.1.2.6.CDRule组件

处理标准代码的转换,依照requestName来判定来源,并把源系统标准代码转换为MDM标准代码。

CDRule组件由CDPool从数据库中装载标准代码数据映射。

映射关系是各个源系统指向MDM。

sources.properites文件是每个源系统接口中的需要转换的代码定义,其格式如下:

CSCMQ=GenderType|HighestEducationType|TCRMAdminContEquivBObj.AdminSystemType|…

TOLMQ=GenderType|…

格式以Key=Value方式存放,key为源系统提交的requestName,而值是以’|’分割的多个数据域,每个数据域都需要进行标准代码替换。

假如该数据域是在接口的更底层,以’.’作为路径分割,如TCRMAdminContEquivBObj.AdminSystemType表示是在该对象中的TCRMAdminContEquivBObj对象下的AdminSystemType需要进行代码转换。

具体的实现类CDRule则依照输入IBObj对象和相应数据定义进行代码转换任务。

RuleFW是对外暴露的调用类,提供静态方法。

/**

*规则调用处理.

*@paramtype规则类型,依照此类型确定是调用哪个规则实现

*@paramobj输入输出对象,规则实现对其进行处理,并形成结果返回

*/

publicstaticvoidcallRule(Stirngtype,IBObjobj)throwsIntegrateException;

一期需要进行的代码转换为:

个险

数据域

源系统代码

源系统值

MDM代码

MDM值

GenderType

M

M

F

F

U

未知

U

未知

TCRMPartyIdentificationBObj

.IdentificationType

0

身份证

00

其它

1

参字第

10

后字第

11

空文字第

12

北文字

13

护照

14

装字第

15

北文字第

RelationshipType

1

本人

2

夫君

3

妻子

4

父亲

5

母亲

6

亲小孩

HighestEducationType

'01'

'文盲'

'02'

'小学'

'03'

'初中'

'04'

'高中'

'05'

'大专'

'06'

'本科'

'07'

'研究生及以上'

'08'

'中专'

未知

MaritalStatusType

0

未婚

0

未婚

1

已婚

1

已婚

2

离婚

2

离婚

3

鳏寡

3

鳏寡

AddressUsageType

B

单位地址

2

单位地址

P

邮递地址

3

邮递地址

R

家庭地址

1

家庭地址

电商网上销售

银保

养老金

团险

1.1.2.7.Utils组件

Utils组件是工具类组件,要紧包括

服务调用组件,负责进行MDM服务的调用

通过IIOP方式访问MDM的EJB(DWLServiceController)来处理webservice格式的要求,具体请参考MDMworkbench中的com.ibm.mdm.training.testerDWLServiceControllerTester。

数据库访问

1.1.2.8.IntegException组件

例外处理的组件,假如处理过程中有例外,则需要记录例外的缘故和状态,并把该服务要求xml储存到数据库。

例外后需要储存的内容如下:

字段

代码

类型

备注

错误流水号

ERRLOGID

BigInt

PK,自增型

时刻

LOG_DT

Timestamp

错误返回消息

ERRMESSAGE

Varchar(255)

exception.getMessage()

或者业务逻辑错误说明,如找不到该客户等

错误提交消息

REQUESTXML

Xml字段

错误堆栈同样需要记录到log4j日志中。

1.1.3.批量数据集成(基于批量/XML)

批量处理的要紧内容类似业务数据集成章节的近实时处理部分,要紧是FileParser模块治理各个业务系统上传的批量文件,并调用MsgParser模块解析具体的数据内容,同样,依照规则处理各个业务逻辑规则,然后形成具体的批量文件,并调用MDM的BatchProcessor进行批量处理。

具体模块关系如下图所示。

批量处理的部分将会复用较多的近实时处理部分的业务组件,包括:

MsgParser组件

IntegException组件

CDRule组件

1detectFile–守护线程,检查各个系统相应名目下的上穿文件是否ready;

2Constructor–读入文件,形成文件输入流和输出流,并调用批量处理,依照源系统类型实例化具体的业务逻辑处理实例,传递输入流;

3readOneService–从输入流读取一个service块;

4readOneService–返回读取的service块;

5parse–调用MsgParser把servie块的xml格式解析成为一个IBObj;

6parse–返回IBObj;

7callRule–调用代码转换rule,转换客户证件类型、地址类型、联系类型为MDM标准代码;

8callRule–调用返回;

9writeTmp–把客户关键信息写入数据库,内容参见临时表定义;

10writeTmp–返回;

以上从3到10循环处理,直到文件输入流到尾端;

11resetFile–把文件输入流重新定位到开始;

12resetFile–返回重新定位后的文件输入流;

13callRule–调用批量客户识别的规则处理;

13.1updateTmp–依照规则处理结果更新临时表,确定客户增加、修改类型以及客户的地址、联系、证件类型更换类型;

13.2updateTmp–处理临时表终止;

14callRule–调用规则返回;

15readOneService–从文件输入流读入一个servicexml块;

16readOneService–返回service块;

17parse–调用MsgParser解析为一个IBObj;

18parse–返回IBObj;

19readTmp–读入一条与IBObj匹配的临时表记录;

20readTmp–读入返回数据;

21callRule–调用格式转换规则处理,依照临时表类型标志,转换IBObj的内容为标准服务的IBObj;

22callRule–返回转换完毕的IBObj;

23toServiceXml–把IBObj转换为标准的xml格式;

24toServiceXml–xml结果;

25writeXml2File–把xml结果写入文件输出流;

26writeXml2File–返回;

以上15到26循环处理,直到文件处理完毕;

27runbatch.sh–关闭相应资源,调用MDM的BatchProcessor进行批量处理,完成后处理相应输入输出及中间文件;

1.1.1.1.批量处理接口

批量处理要紧包括三个外部系统接口:

银保增加客户

养老金增加客户

团险增加客户

具体接口格式参见《服务接口》

外部系统输出符合接口规范的数据文件,并FTP到规定的名目,具体参见《服务接口》中“批量接口模式”。

1.1.1.2.FileParser组件

FileParser组件是解析文件的处理,其要紧处理客户的上传数据文件,同时新建输出结果文件。

解析整体文件格式;包括输入输出,输出文件每个servicexml只能是一行;

FileParser调用IntegrateFW组件以处理不同的业务集成逻辑。

FileParser组件暴露一个抽象类IntegrateBatchLogic供IntegrateImpl组件实现,其抽象方法如下。

/**

*执行具体的业务集成任务.用于批量模式

*在IntegrateImpl组件实现该方法,处理具体某一项接口的逻辑调用,一样包括

*代码转换、服务拆分、服务变换、DSP判定等

*@paramis输入流,是通过MQ接收到的消息内容,xml字节流

*@throwsItegrateException例外,假如发生例外需要到例外组件处理

*/

publicabstractvoidexecuteBatch(InputStreamis,OutputStreamos)throwsItegrateException;

在IntegrateBatchLogic中还实现必要方法:

✧resetFile–重置文件指针到文件头;

✧callBatchSDP–调用批量客户识别规则;

✧callRule–调用代码转换规则;

✧getService–猎取文件的下一个service块;

✧callMDMBatch–调用MDM的runb

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2