WEB开发网
开发学院WEB开发Xml 企业基于 XML 的统一数据模型 阅读

企业基于 XML 的统一数据模型

 2010-10-22 17:19:06 来源:WEB开发网   
核心提示: 这里 BranchServerCtx 被定义为 Root Context, 它包含跨渠道的数据和服务,企业基于 XML 的统一数据模型(8), 如后端连接,日志服务等,为企业带来技术价值和业务价值,文章作者根据在行业应用框架中间件的工作经验,Java Channel Context 和 Html

这里 BranchServerCtx 被定义为 Root Context, 它包含跨渠道的数据和服务, 如后端连接,日志服务等。Java Channel Context 和 Html Channel Context 被定义为 BranchServerCtx 的子 Context, 它们包含渠道连接特性的数据如客户端类型数据。在各自渠道 Context 下,分别下挂 Session Context。它们包含的是和用户会话相关的共用数据,如客户信息,账户信息等。在通过各渠道执行交易的时候,系统在运行时动态创建交易操作的 Operation Context, 并链接到 Session Context 上。各交易的 Operation Context 如 AccountQueryCtx 和 TransferCtx 都能共享 Session Context 的数据。并通过 Session Context 共享 Channel Context 和 BranchServerCtx 的数据。

首先定义的是 branchServer Context,它是 Root Context,它包含共享的银行数据和服务资源,如下所示:

清单 6. 企业数据字典定义实例

 <context id="branchServer" parent="nil" type="branch"> 
 <refKColl refId="branchData"/> 
 <refService alias="CSServer" refId="realCSServer" type="cs"/> 
 <refService refId="CommunicationsPool" alias="pool" type="pool"/> 
 </context> 
 
 <kColl id="branchData"> 
 <refData refId="BranchId"/> 
 </kColl> 
 
 // 然后定义渠道上下文 Channel Context, 它是父 Context 是 branchServer Context。 
 <context id="javaChannelCtx" parent="branchServer" type="op"> 
 <refKColl refId="javaChannelData"/> 
 </context> 
 
 <kColl id="javaChannelData"> 
 <refData refId="clientType"/> 
 </kColl> 
 
 // 接下来定义的是渠道会话 Context,它包含用户登录后的会话上下文操作所用到的数据如用户 ID、 
客户信息、账户信息等。Session Context 在用户登录后会被创建并链接为 Channel Context 
 的子 Context。为了简洁起见,下面只列出了 Java 渠道的 Session Context 定义。 
 <context id="javaSessionCtx" type="op"> 
 <refKColl refId="javaSessionData"/> 
 </context> 
 
 // 在上面会话上下文包含的是一个集合数据 javaSessionData, 它被定义为一个 
KeyedCollection 如下: 
 <kColl id="javaSessionData"> 
 <refData refId="TID"/> 
 <refData refId="UserId"/> 
 <refData refId="CustomerId"/> 
 <refData refId="CustomerName"/> 
 <refData refId="AccountList "/> 
 <refData refId="HostBuff"/> 
 <refData refId="sessionID"/> 
 </kColl> 
 
 // 在其中包含的账户信息被定义为一个账户类型数据的数组 (Indexed Collection)。 
 <iColl id="AccountList"> 
 <refData refId="account "/> 
 </iColl> 
 
 <data id="account" refType="Account"/> 
 
 // 账户类型定义如下: 
 <type id="Account" implClass="com.ibm.dse.base.KeyedCollection"> 
 <descriptor id="typeDefault" 
 implClass="com.ibm.dse.base.types.KCollPropertyDescriptor"/> 
 <dataDescriptor id="Name" refType="String"/> 
 <dataDescriptor id="Type" refType="String"/> 
 <dataDescriptor id="AccountNumber" refType="String"/> 
 <dataDescriptor id="Balance" refType="Amount"/> 
 </type> 
 
 // 最后我们需要针对交易操作定义 Operation Context, 如针对转账交易定义 
transferOperationCtx。转账交易 Context 是 Session Context 的子 Context, 
能共享上层链路上所有 Context 的数据。 
 <context id="transferOperationCtx" type="oper"> 
 <refKColl refId="accountTransferData"/> 
 </context> 
 
 <kColl id="accountTransferData"> 
 <data id="acctFrom" refType="String"> 
 <param id="isMandatory" value="true" /> 
 </data> 
 <data id="acctTo" refType="String"> 
 <param id="isMandatory" value="true" /> 
 </data> 
 <data id="amount" refType="String"> 
 <param id="isMandatory" value="true" /> 
 </data> 
 < data id="AccountBalance" refType="Money"/> 
 <field id="outcome" /> 
 <field id="TrxReplyCode" /> 
 <field id="TrxErrorMessage" /> 
 </kColl> 

通过以上的 Context 数据模型定义实例,可以看到对于企业复杂数据结构和类型的支持非常充分,并且各个层次的数据定义在逻辑上很清晰,能很好的支持数据共享,减少数据冗余,并且支持不同业务渠道的数据整合。

总结

随着企业应用复杂度增加,使用基于 XML 中间语言的统一数据模型能够降低企业数据字典的建立、维护的复杂性,为企业带来技术价值和业务价值。

文章作者根据在行业应用框架中间件的工作经验,抽象和介绍了基于 XML 中间语言的统一数据模型 Context 的架构、组件、设计原理、以及使用实例。

上一页  3 4 5 6 7 8 

Tags:企业 基于 XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接