zoukankan      html  css  js  c++  java
  • ESB开发WebService接口

    1 概述

    在进行系统间集成时经常利用WebService,但是从建立WebService和调用的重复性和维护性的工作量都相当大。

    首先简单介绍一下,ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

    2 预期读者

    1. 数通畅联新进员工

    2. 广大技术爱好者

    3 名词解释

    AEAI ESB:应用集成平台主要作为企业信息系统的“龙骨”来集成各业务系统,一般称之为企业服务总线(Enterprise Service BUS,ESB),在数通畅联软件的产品家族中应用集成平台命名为AEAI ESB。

    Web Server:是一种开发web服务的技术规范,按照web services规范开发的web服务组件,可以用来进行企业应用系统集成。

    传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。

    多种服务集成方式:如HTTP ,WEB等。

    通信:服务发布、订阅,响应 请求,同步异步消息,路由和寻址等;

    服务安全: 认证和授权、不可否认和机密性、安全标准的支持等;

    服务质量: 事务,服务的可交付性等;

    服务等级: 性能、可用性等

    4 总体思路

    1. 简单的账号、密码验证接口,输入账号及密码验证成功与否。

    2. 初步了解WebService相关知识

    5 实现步骤

    5.1 简单参数与简单返回值

    首先创建WS服务,样例为Demo,别名“账户”, 本WebService服务里面只有一个操作operation1, 两个入参(userCode、userPassword)及一个出参(RESULT),与DemoOperation1子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。

    1. 在添加的操作上右键点击,在弹出的页面中选择需要绑定流程的位置,点击OK后将在对应位置自动生成基本的流程,可到对应位置进行流程的编辑,本例将样例创建于基础样例中。

    2. 在子流程中创建流程。

    a) 首先接收参数(账号、密码)通过判断是否为空,并添加到全局变量中。

    b)通过分支判断如果账号密码为空则直接输出。 

    c) 如果有值,则进行数据库查询,并判断是否正确并输出

    3. 利用soapUI测试,结果如下图:

    5.2 简单参数与简单返回值

    复用样例Demo,别名“账户”, 本WebService服务里面只有一个操作operation2, 添加对象参数及一个出参(RESULT),与DemoOperation2子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。

    1.  在入参过多的情况下可以采用添加对象参数的形式,在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:

    2. 流程图复用简单参数与简单返回值,并在代码中进行扩展开发,如下图:

    a) 接收新建的参数类,并获取参数。

    b)  分支及判断与上例一致,在输出节点是我们通过jsonObject对象返回,如图:

    3. 利用soapUI测试,结果如下图:

    5.3 对象参数与简单返回值

    首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test, 一个入参对象reqInfo及一个出参(RESULT),与UserCodeTest子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。

    1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:

    2.  在子流程中创建流程。

    a) 首先接收对象参数(账号、密码),并添加到全局变量中。

    b) 通过分支判断如果账号密码为空则直接输出。 

    c) 进行数据库查询,并判断是否正确并输出

    3. 利用soapUI测试,结果如下图:

    5.4 简单参数与ResultStatus返回值

    首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test1, 两个入参对象userCode、userPassword及一个出参对象(RESULT),与UserCodeTest1子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。

    1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:

    2.  在子流程中创建流程。

    a) 首先接收对象参数(账号、密码),并添加到全局变量中。

    b) 进行数据库查询,并判断是否正确并输出

    3. 利用soapUI测试,结果如下图:

    5.5 简单参数与返回值对象List

    首先创建WS服务,样例为UserCode,别名“账户”, 本WebService服务里面只有一个操作test3, 一个入参对象reqInfo及一个出参(RESULT)list集合,与UserCodeTest3子流程绑定。通过向浏览器传入words参数,执行子流程的业务。服务地址在右侧,可以通过它来定位本WebService服务。

    1. 在项目下创建com.xcorp.xproject.model包,在保重创建参数类,如下图:

    2. 在子流程中创建流程。

    a) 首先接收对象参数(账号、密码),并添加到全局变量中。

    b) 进行数据库查询,并判断是否正确并输出

    3.  利用soapUI测试,结果如下图:

    6 心得总结

    以上为笔者通过ESB进行的Web Service接口的开发,实现不同类型的入参及不同类型出参的演示的操作。

    在工作中,要学会对自己锁定的目标坚定不移。否则,遇到困难,只要有机会,有退路,我们就会本能地尝试绕过,或者退却。只有瞄着目标不放,我们才会 穷尽全力推翻,或者跨越那些障碍。通过这篇文档的整理编写使笔者对以往做过的内容也加深了记忆。善于记录,勤加整理,温故知新,才能使自己更快成长。

  • 相关阅读:
    GOF23设计模式之适配器模式(Adapter)
    浅谈浅克隆(shallow clone)和 深克隆(deep clone)
    GOF23设计模式之原型模式(prototype)
    GOF23设计模式之建造者模式(builder)
    GOF23设计模式之工厂模式(factory)
    GOF23设计模式之单例模式(singleton)
    面向对象设计的六大基本原则
    day38 各种队列、Event事件、协程、猴子补丁
    day37 GIL、同步、异步、进程池、线程池、回调函数
    day36 joinablequeue、多线程理论、多线程的两种使用方式、守护线程、互斥锁、死锁、递归锁、信号量
  • 原文地址:https://www.cnblogs.com/agileai/p/6846204.html
Copyright © 2011-2022 走看看