O3W中间件应用

news/2025/3/31 1:18:29/文章来源:https://www.cnblogs.com/kokoa/p/18797107

Web页面跳转控制文件G1CControl.xml

<ControlDefinition><ControlId>G1CControl</ControlId><DefaultDSID>DSG1CControl</DefaultDSID><ControlProcess><PageId description="初期画面">NoPageID</PageId><ActionId>NoActionID</ActionId><NextPage><NextPageId>G2</NextPageId><NextPageJSPPath>G2.jsp</NextPageJSPPath></NextPage></ControlProcess><ControlProcess><PageId description="G2画面">G2</PageId><ActionId buttonName="Action1">Action1</ActionId><PLTr>C1</PLTr><NextPage><ProcRet description="正常">0</ProcRet><NextPageId>G4</NextPageId><NextPageJSPPath>G4.jsp</NextPageJSPPath></NextPage><NextPage><ProcRet description="error">8</ProcRet><NextPageId>G5</NextPageId><NextPageJSPPath>G5.jsp</NextPageJSPPath></NextPage></ControlProcess><ControlProcess><PageId description="G3画面">G3</PageId><ActionId buttonName="Action1">Action1</ActionId><PLTr>C1</PLTr><NextPage><ProcRet description="正常">0</ProcRet><NextPageId>G4</NextPageId><NextPageJSPPath>G4.jsp</NextPageJSPPath></NextPage></ControlProcess><ControlProcess><PageId description="G2画面">G2</PageId><ActionId buttonName="Action2">Action2</ActionId><PLTr>C1</PLTr><NextPage><ProcRet description="正常">0</ProcRet><NextPageId>G2</NextPageId><NextPageJSPPath>G2.jsp</NextPageJSPPath></NextPage></ControlProcess>
</ControlDefinition>

事务请求数据(Transaction Request Data)G1C_TRD_Def.xml

<?xml version="1.0" encoding="Windows-31J"?>
<!-- 作成者:XXX,作成日:YYYYMMDD -->
<DispatchDef><Tr_Def PLTrID="C1" DSBCheck="False"><BETr_Def BETrID="P1" ConnectorName="ConnectBean" TrType="seq"/></Tr_Def>
</DispatchDef>
  1. 主要结构:
    • 根元素为 <DispatchDef>
    • 包含一个 <Tr_Def> 元素,属性:
      • PLTrID="C1" (流程跟踪ID)
      • DSBCheck="False" (DSB检查标志)
  2. 业务事务定义:
    • <BETr_Def> 元素定义业务事务,属性:
      • BETrID="P1" (业务事务ID)
      • ConnectorName="ConnectBean" (连接器名称)
      • TrType="seq" (事务类型为顺序执行)

Transaction Request Data
表示事务请求数据,需要处理事务的中间件(如消息队列、交易处理系统)。


数据交换(Data Exchange)DSG1C_DEX_Def.xml

<?xml version="1.0" encoding="Windows-31J"?>
<!-- 作成者:XXX,作成日:YYYYMMDD -->
<ExchangeDef><BETrInfo BETrID="P1"><TrLayoutID InLayoutID="C1U" OutLayoutID="C1D" InFormat="COBOL_AIFA-AIK" OutFormat="COBOL_AIFA-AIK"/><ConnectInfo><ConnectInfoItem InfoName="SG_Name" Info="P1G"/><ConnectInfoItem InfoName="S_Name" Info="P1"/></ConnectInfo></BETrInfo>
</ExchangeDef>
  1. 主要结构:
    • 根元素为 <ExchangeDef>
    • 包含一个 <BETrInfo> 元素,属性:
      • BETrID="P1" (业务事务ID)
  2. 布局信息:
    • <TrLayoutID> 元素定义输入输出布局,属性:
      • InLayoutID="C1U" (输入布局ID)
      • OutLayoutID="C1D" (输出布局ID)
      • InFormat="COBOL_AIFA-AIK" (输入格式)
      • OutFormat="COBOL_AIFA-AIK" (输出格式)
  3. 连接信息:
    • <ConnectInfo> 包含两个连接信息项:
      • SG_Name="P1G" (服务组名称)
      • S_Name="P1" (服务名称)
  • Data Exchange
    表示数据交换,中间件的数据同步或集成功能(如文件交换中间件)。

上行电文C1U.xml

<?xml version="1.0" encoding="Windows-31J"?>
<!-- 作成者:XXX,作成日:YYYYMMDD -->
<TRLAYOUTDEF><TRLAYOUTHDR><TRID ItemType="X" ItemSize="8" value="C1U"/><RETCD ItemType="X" ItemSize="4"/><MSGCD ItemType="X" ItemSize="3"/></TRLAYOUTHDR><FMTDEF><iData1 ItemType="X" ItemSize="13" DsbColName="iData1" DsbColJpName="iData1Name"/></FMTDEF>
</TRLAYOUTDEF>
  1. 主要结构:

    • 根元素为 <TRLAYOUTDEF>
    • 包含两部分:
      • <TRLAYOUTHDR> - 事务布局头信息
      • <FMTDEF> - 格式定义部分
  2. 事务布局头信息:

    • <TRID> - 事务ID
      • ItemType="X" (数据类型)
      • ItemSize="8" (数据长度)
      • value="C1U" (具体值)
    • <RETCD> - 返回码
      • ItemType="X"
      • ItemSize="4"
    • <MSGCD> - 消息码
      • ItemType="X"
      • ItemSize="3"
  3. 格式定义:

    • <iData1> - 数据项1
      • ItemType="X"

      • ItemSize="13"

      • DsbColName="iData1" (DSB列名)

      • DsbColJpName="iData1Name" (DSB列日文名)

下行电文C1D.xml

<?xml version="1.0" encoding="Windows-31J"?>
<!-- 作成者:XXX,作成日:YYYYMMDD -->
<TRLAYOUTDEF><TRLAYOUTHDR><TRID ItemType="X" ItemSize="8" value="C1D"/><RETCD ItemType="X" ItemSize="4"/><MSGCD ItemType="X" ItemSize="3"/></TRLAYOUTHDR><FMTDEF><OData1 ItemType="X" ItemSize="13" DsbColName="oData1" DsbColJpName="oData1Name"/><DataGroup1 Group="G" DsbColJpName="DataGroup1Name"/><OData4 ItemType="X" ItemSize="13" DsbColName="oData4" DsbColJpName="oData4Name"/><DataGroup2 Group="G" DsbColJpName="DataGroup2Name"/><OData2 ItemType="9" ItemSize="6" Figure="6" DecimalPlace="0" DsbColName="oData2" DsbColJpName="oData2Name"/><OData3 ItemType="9" ItemSize="10" Figure="10" DecimalPlace="0" DsbColName="oData3" DsbColJpName="oData3Name"/></FMTDEF>
</TRLAYOUTDEF>
  1. 主要结构:
    • 根元素为 <TRLAYOUTDEF>
    • 包含两部分:
      • <TRLAYOUTHDR> - 事务布局头信息
      • <FMTDEF> - 格式定义部分
  2. 事务布局头信息:
    • <TRID> - 事务ID
      • ItemType="X" (字符类型)
      • ItemSize="8" (长度8)
      • value="C1D" (具体值)
    • <RETCD> - 返回码
      • ItemType="X"
      • ItemSize="4"
    • <MSGCD> - 消息码
      • ItemType="X"
      • ItemSize="3"
  3. 格式定义:
    • 包含多个数据项和两个数据组:
      • OData1: 字符类型,长度13
      • DataGroup1: 数据组1
        • 包含OData4: 字符类型,长度13
      • DataGroup2: 数据组2
        • 包含OData2: 数字类型,长度6,6位整数
        • 包含OData3: 数字类型,长度10,10位整数
  4. DSB相关属性:
    - 每个数据项都有DsbColName(DSB列名)和DsbColJpName(DSB列日文名)属性

使用业务逻辑来处理用户的请求并返回数据;

  • 如果需要跟外系统交互,那么需要将数据封装为上行电文,发给 OLTP(On-Line Transaction Processing,联机事务处理),OLTP 处理完成后返回下行电文,将下行电文分解后再返回。

COBOL语言来实现业务逻辑功能P1.CBL

123456789012345678901234567890123456789012345678901234567890123456789012IDENTIFICATION DIVISION.PROGRAM-ID. P1 IS INITIAL PROGRAM.AUTHOR. XXX.DATE-WRITTEN. YYYY.MM.DD* 环境部ENVIRONMENT DIVISION.* 定义节CONFIGURATION SECTION.* SOURCE-COMPUTER. HP WITH DEBUGGING MODE.SPECIAL-NAMES.ENVIRONMENT-NAME IS ENV-NAMEENVIRONMENT-VALUE IS ENV-VALUE.* 数据部 DATA DIVISION.* 作业节WORKING-STORAGE SECTION.01 ARG-AREA.COPY "C1.CPY".05 C2-ARG.COPY "C2.CPY".05 C3-ARG.COPY "C3.CPY".01 CNS-AREA.05 CNS-ON-OFF.10 CNS-OFF PIC X(1) VALUE "0".05 CNS-MSG-LEN PIC 9(9) COMP-5 VALUE 111.01 WK-AREA.05 WK-ERR-COUNT PIC 9(9).05 WK-ERR-COUNT-X REDEFINES WK-ERR-COUNT PIC X(9).01 FLG-AREA.05 FLG-ERR PIC X(1).01 WK-AREA-1  PIC X(003) OCCURS 50.01 WK-ID PIC 9(04).* 连接节LINKAGE SECTION.*    输入文件01 RPC-IN-REQ-PKT.05 IN-AIFA.COPY "AIFA.CPY".05 IN-USER-ATTR.COPY "USER.CPY".05 IN-DATA.COPY "C1U.CPY".01 RPC-IN-LEN-REQ-PKT PIC S9(9) COMP-5.*    输入文件01 RPC-OUT-REQ-PKT.05 OUT-AIFA.COPY "AIFA.CPY".05 OUT-USER-ATTR.COPY "USER.CPY".05 OUT-DATA.COPY "C1D.CPY".01 RPC-OUT-LEN-REQ-PKT PIC S9(9) COMP-5.PROCEDURE DIVISION USING RPC-IN-REQ-PKT, RPC-IN-LEN-REQ-PKT,RPC-OUT-REQ-PKT, RPC-OUT-LEN-REQ-PKT.MAIN-PRC-RTN SECTION.PERFORM INIT-RTN.IF FLG-ERR = CNS-OFF THENPERFORM TANTAI-CHK-RTNELSECONTINUEEND-IF.MAIN-PRC-EXT.EXIT PROGRAM.INIT-RTN SECTION.COPY "C4.CPY".IF FLG-ERR = CNS-OFF THENPERFORM SONCHO-INIT-RTNELSECONTINUEEND-IF.INIT-EXT.EXIT.UINIT-RTN SECTION.MOVE SPACE TO C2-ARG.INITIALIZE C2-ARG.MOVE SPACE TO MSG-CD OF RPC-OUT-REQ-PKT.UINIT-EXT.EXIT.CHK-4-RTN SECTION.IF DATA1 OF IN-DATA = "1" OR DATA1 OF IN-DATA = "2" THENCONTINUEELSEMOVE CNS-ON TO FLG-ERREND-IF.CHK-4-EXT.EXIT.HEAD-RTN SECTION.IF MSG-CD OF RPC-OUT-REQ-PKT = SPACE THENEVALUATE APL-RTN-CODE OF COMMON-AREAWHEN CNS-APL-RTN-NORMALCONTINUEWHEN CNS-APL-RTN-GYOMUERRMOVE "E1A" TO MSG-CD OF HEAD OF RPC-OUT-REQ-PKTWHEN CNS-APL-RTN-SYSERRMOVE "S1A" TO MSG-CD OF HEAD OF RPC-OUT-REQ-PKTWHEN OTHERCONTINUEEND-EVALUATEELSECONTINUEEND-IF.PERFORM VARYING WK-ID FROM CNS-9-1 BY CNS-9-1UNTIL WK-ID > CNS-9-100 OR WK-AREA-1(WK-ID) = SPACEIF CODE2(WK-ID2) = WK-AREA-1(WK-ID)MOVE CNS-1 TO WK-FLGEND-IFEND-PERFORM.HEAD-EXT.EXIT.LOG-OUT-RTN SECTION.MOVE "1" TO SEONO.D  DISPLAY CNS-PGM-NAME " " SEONO.D  DISPLAY "MSG-CD = " D      "[" MSG-CD OF RPC-OUT-REQ-PKT "]".CALL CNS-A1 USING IN-AIFAOUT-USER-ATTR OF RPC-OUT-REQ-PKTHEAD OF RPC-OUT-REQ-PKTAI-ARG.LOG-OUT-EXT.EXIT.

RPC-IN-REQ-PKT入站RPC请求数据包

  1. 分解缩写
  • RPC
    Remote Procedure Call(远程过程调用),指外部系统通过网络调用当前节点的服务或函数。
  • IN
    Inbound(入站),表示该请求是由外部发起、传入当前系统的(与OUT/出站相对)。
  • REQ
    Request(请求),标识这是一个请求包(对应响应包可能是RPC-IN-RESP-PKT)。
  • PKT
    Packet(数据包),指网络传输中的原始数据单元。
  1. 组合含义
  • RPC-IN-REQ-PKT 指:
    外部系统向当前服务发起的RPC调用请求数据包,即当前服务接收到的远程调用请求。

RPC-OUT-REQ-PKT:远程过程调用(RPC)的请求数据包

  1. 分解缩写
  • RPC:
    Remote Procedure Call(远程过程调用),指跨网络调用其他节点上的函数或服务。
  • OUT:
    表示 “出站”(Outbound),即从当前系统发起的请求(相对于IN表示入站)。
  • REQ:
    Request(请求),标识这是一个请求数据包(相对于RESP表示响应)。
  • PKT:
    Packet(数据包),指网络传输中的最小数据单元。
  1. 组合含义
  • RPC-OUT-REQ-PKT 的整体含义可能是:
    “出站RPC请求数据包”,即当前系统向外部服务发起RPC调用时构造的网络数据包。

参考

O3W 框架介绍

Object 3Tier Infoworks (简称 O3W)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…

第2章 C#2

第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合:数组普通对象集合 如 ArrayList​、Hashtable​专用类型集合 如 StringCollection​// 数组 static string[] GenerateNames() {string[] names = new string[4];names…

ESP32S3串口UART0,UART1UART2,软件模拟串口,USB虚拟串口的使用 - 基于ArduinoIDE

硬件串口的使用 硬件资源我使用的具体的模组型号为 ESP32-S3-WROOM-1(U), 根据官方手册其有3个串口。UART0:通常用于下载和输出调试信息串口,信号管脚默认与 GPIO43(TX) ~ GPIO44(RX) 复用,可以通过 GPIO 交换矩阵连接到任意 GPIO. UART1:信号管脚默认与 GPIO17(TX) ~ GPIO…

从0搭建nacos单点、集群

主机IP 主机名10.0.0.91 elk9110.0.0.92 elk9210.0.0.93 elk93nacos单机部署使用内置数据库 1.下载解压nacos [root@elk91 ~]# wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz[root@elk91 ~]# tar xf nacos-server-2.5.1.tar.gz -C…

ESP32在ArduinoIDE中的配置

🟡 注意 使用 Arduino IDE 开发 ESP32 时除了要看 Arduino 官方的资料一定还要看乐鑫的支持包的资料。详见↗️ 安装ArduinoIDE 到 Arduino 官网 下载最新版的 Arduino IDE 并安装。 🟡 压缩包格式的下载选项意义不大,Arduino IDE 2 无法制作为便携版,参考:绿色(Portabl…

文献阅读《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

参考博客: 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 摘要 为将CNN推广到高维图结构数据中,基于spectral graph theory(谱图理论),设计了一种通用的fast local…

1013 Div3 F题目加注释

https://codeforces.com/contest/2091/problem/F这题主题思路就是递推,从下往上递推,然后用差分和前缀合得到下一行可能性,详细看代码注释点击查看代码 #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const…