博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 SOA 技术实现既有资产的开发和重组(下)
阅读量:2493 次
发布时间:2019-05-11

本文共 4718 字,大约阅读时间需要 15 分钟。

在本文中,作者使用中间会合 (meet-in-the-middle) 开发模式,对既有资产进行抽取、分析、编排和映射,生成满足业务目标的可部署代码和接口定义文件,从而实现了对于既有资产的转换和重组。

使用 WDz 7.0 进行既有 IT 资产开发和重组

下面我们将介绍如何通过创建 WDz 7.0 的 Service Flow 工程来实现 COBOL 应用的导入、开发、重组和部署全过程。这里采用从中间会合的模式,我们通过导入实现目标的接口定义文件和需要转换的非终端应用程序 COBOL 源代码,根据需求分析建立操作及其输入输出消息的映射和关联,最终生成可部署的 Web Service 描述文件和可运行代码,完成既有资产到 Web Service 方式的转换。

1. 创建 SFP(Service Flow Project)

创建一个空的 SFP,命名为 LookupPartOrder,进入默认的 EST 透视图。

2. 导入接口定义文件

该接口定义文件描述了目标 Web Service 的实现目标,WSDL 文件内容如图 4 所示。在 EST Project Explorer 视图的右键菜单中选择 Import->WSDL,如图 7 所示。完成 Import Wizard 之后,在 SFP 的 Interface 目录中将生成两类文件:(1) 接口定义文件 (.wsdl),描述了目标 Web Service 的操作。一个 wsdl 文件只能定义一个操作,作为调用一个 flow 的接口信息,包括端口类型、操作名称、输入与输出消息的引用等。(2) 消息定义文件 (.mxsd),描述了该操作所引用的输入与输出消息的类型信息。

3. 导入非终端应用程序

EST 工具提供了对导入基于终端的应用程序、非终端应用程序以及基于 CICS 的 Web Service 的支持,实现对这些既有资产组件的开发和重组。本例导入的 COBOL/Copy book 文件是作为非终端应用程序导入的,其他两类的导入方式与其类似,这里不再赘述。在 EST Project Explorer 视图的右键菜单中选择 Import->COBOL,主要功能是从每个 COBOL 源文件 (COBOL program 和 copy book) 中抽取 COBOL 的数据结构生成 Service Flow 工程中对应的消息文件(.mxsd)。

在 Import 向导的第二步中,需要定制将要生成的 COBOL 程序,例如创建 COBOL 应用程序提供的操作及对应的输入输出消息,并将添加的操作以描述语言的形式添加到新建或者已存在的一个 WSDL 文件中。本例的 COBOL 应用主要提供了两个操作:CheckPartOrder 和 CheckPartPrice,COBOL 程序命名为 CheckPart。如图 9,在 New File 输入框定义了新建的 WSDL 文件名称,Add Program 则可以添加多个操作,Input Data 和 Output Data 输入框则可以为操作选择输入和输出的数据类型。

4. 创建业务流程 (Service Flow)

在获取了目标业务和已有组件应用的信息之后,我们需要按照业务需求对各个应用组件之间进行组合和编排,并建立目标 Web Service 与应用组件之间的关系,以实现既有资产到 Web Service 的转换。在本例中,我们需要实现一个具有查询订单价格功能的目标 Web Service,其描述文件为 Interface 目录下的 LookupPartOrder.wsdl,需要调用已实现的应用组件的两个操作 CheckPartOrder 和 CheckPartPrice,其描述文件为 NonTerminal 目录下的 CheckPart.wsdl,flow 的创建与修改通过以图形化的形式编辑 Flow 目录下的 .seqflow 文件来完成。

(1) 将目标 Web Service 实现的操作添加到 flow 中。在 Flow Editor 的右键菜单中选择 Select Interface Operation( 或者 Select Operation),如图 10,打开向导,选择所要添加操作的 wsdl 描述文件(该文件必须来自 Interface 目录下的接口定义文件,而不能来自 Nonterminal,Terminal 或 Outbound Web Service 目录)。添加完成以后,该操作的端口类型和程序名称便与 flow 关联起来,同时该操作所引用的输入消息与 flow 中的 Receive 节点相关联,输出消息与 flow 中的 Reply 节点相关联。

(2) 将 COBOL 应用组件的两个操作添加到 flow。同样,在右键菜单中选择 Add Operation,从 Nonterminal 目录中选择我们想要添加的 operation 即可。添加完成以后,这些操作的端口类型和输入输出消息将作为 Invoke 节点与该 flow 相关联。

(3) 根据业务流程将 Receive、Reply 和 Invoke 节点之间进行逻辑连接,如图 11,这样 flow 的各个操作之间的调用关系体现了整个 Web Service 的业务流程。

5. 创建消息映射规则

一个消息映射可以是简单类型到简单类型或复杂类型到复杂类型之间的映射。我们需要建立各个操作节点之间的输入输出消息的映射规则,从而将业务流程更细粒度的进行描述。系统将会自动在 Mapping 目录下生成一个 .seqmap 文件来维护所有映射规则。以目标操作 CheckPartOrder 为例,我们在 Flow Editor 中选择其中一个 invoke 节点 CheckPartOrder,如图 12,在其右键菜单中选择 open mapping routine->msg_ORDERSTATUSREC( 绿色箭头代表建立输入映射,紫色箭头代表建立输出映射 ),便会自动打开默认的 mapping editor,同时在 .seqmapping 文件中生成一个命名为 CheckPartOrder_t_msg_ORDERSTATUSREC 的映射规则。

在 mapping editor 打开的这条映射规则中,我们需要建立目标操作 CheckPartOrder 与 Receive 节点的输入消息之间的映射,因此在 Source 界面的右键菜单中选择 Add Message Input,打开添加向导如图 13 所示,选择 Interface 目录下的消息定义文件 inputMsgMsg 作为源消息。完成添加之后,Source 和 Target 便分别列出了所有源节点和目标节点定义的所有消息类型,我们可以采用拖拽的方式来建立一对一或一对多关联,从而完成消息映射的建立。

6. 创建 Generation Properties 文件

通过接口导入、COBOL 应用组件的导入以及业务流程和消息映射的设计,Service Flow 工程结构和内容如图 15 所示。

下面我们需要创建 Generation Properties 文件来配置生成可运行代码和 Web Service 的相关信息。

(1) 新建 generation properties 文件。我们为每个需要生成 runtime code 的 flow 文件建立一个 generation properties 文件。在本例中,选择 lookupPart.seqflow 文件,在右键菜单中选择 New Generation Properties File,打开新建向导如图 16 所示,在向导中设置属性文件的名称、对应的 flow 文件名称,并选择 CICS Service Flow Runtime 类型,完成后系统便会自动生成一个 .wsdl 文件并以 generation properties editor 打开。

(2) 配置 generation properties 文件信息。我们需要对 flow 的配置文件以及 flow 中所有调用操作节点的配置文件进行设置。如图 17,首先使用属性编辑器打开该 flow 对应的配置文件,需要修改的属性例如:Flow Type,描述了 flow 中的节点类型;Request Name,描述了请求或命令的名称;Program Name,描述了将在适配器服务中运行的程序名称;Transaction ID,描述了程序所属的事务 ID;Request Type,描述了该 flow 调用事务的模式,包括 ASYNC,SYNC,SYNC ROLLBACK;Generate Internal Data Structures,选择是否生成 COBOL 源程序的数据结构,如 JCL 或 CBL;Web Service Generation Properties,用于生成非 SOAP 部署(如 CTG 或 MQ)的转换支持文件或 CICS 部署所需的 Web Service 描述文件等等。

此外,我们还需要对 flow 中所有调用操作的属性进行设置,在 Outline 视图中点击这个 flow 下的某个操作,属性编辑器将会自动打开对应的配置文件,见图 18。主要属性有:Invoke Type,描述了基于 COBOL 流程的节点调用类型,包括 DPL 和 MQ;Link To Program Name,描述了服务端由 DPL 类型调用链接的程序名称;System ID 描述了事务所运行的 CICS 系统名称;Maximum Commarea Length,COBOL 源代码所分配的存储量的最大值。

7. 生成 runtime code

这是整个资产开发的最后一步,即生成能够在 CICS Service Flow Runtime 上部署和运行的代码。CICS Service Flow Runtime 支持包含终端应用(如 FEPI 和 LINK3270)和基于 COBOL 的非终端应用(DPL 和 MQ 节点),或者这些应用的集合。在 Project Explorer 视图的右键菜单中或者直接在 generation properties 编辑器中选择 generate runtime code,系统便会自动生成运行时代码,包括:COBOL、Copybook(描述了输入输出消息的数据结构)、JCL、Web Service bind 文件和 wsdl 描述文件。

最后我们可以编译这些运行时代码并部署 bind 文件来测试 Web Service,从而完成 COBOL 应用在 WDZ 7.0 上的开发与重组,实现既有资产到 SOA 的转换。

本文介绍了利用 SOA 方法,使用 WDz SFPT 开发既有资产,将资产转化为 Web Service 的过程;并提供了一个详细的样例,描述了一种端到端的解决方案,实现和验证了上述过程,帮助读者深入了解 SOA 环境下既有资产的开发和转换。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-432961/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14789789/viewspace-432961/

你可能感兴趣的文章
JAVA中ACTION层, SERVICE层 ,MODLE层 和 DAO层的功能区分
查看>>
动态网页开发基础
查看>>
ATM + 购物商城程序
查看>>
x64 stack walking、调用约定、函数参数识别
查看>>
Hibernate查询
查看>>
(转)swc与swf的区别
查看>>
(转)AS3中的stage,this,root的区别
查看>>
PHP连接PGSQL
查看>>
网络阅读开篇
查看>>
详解-制作根文件系统,并使用yaffs,jffs,nfs挂载系统(2)
查看>>
细细讲述Java技术开发的那些不为人知的规则
查看>>
检查 Linux 服务器性能
查看>>
Servlet交互【重定向 与 请求分派】详解
查看>>
异或特性
查看>>
winform绑定多张图片
查看>>
微信小程序的页面渲染(if/for)
查看>>
spring boot 读取 application.properties 初始化bean
查看>>
.net Excel导出出现乱码及excel打开出现错误提示
查看>>
SparkStreaming
查看>>
excel列显示形式互换(字母与数字)
查看>>