信息系统架构设计-以服务为中心的企业整合实践
生命周期
- 业务分析
- 服务建模
- 架构设计
- 系统开发
案例背景
某航空公司的信息系统已有好几十年的历史。该航空公司的主要业务系统构建于20世纪七八十年代,以IBM的主机系统为主。
近年来,该公司已经在几个主要的核心系统之间构建了用于信息集成的信息Hub(Information Hub),其他应用间也有不少点到点的集成。尽管这些企业集成技术在一定程度上增进了系统间的信息共享,但是面对如此异构的系统,技术人员依然觉得企业集成困难重重:
- 因为大部分核心应用构建在主机之上,所以Information Hub是基于主机技术开发,很难被开放系统使用。
- Information Hub对Event支持不强,被集成的系统间的事件以点到点流转为主,被集成系统间耦合性强。
- 牵扯到多个系统间的业务协作以硬编码为主,将业务活动自动化的成本高,周期长,被开发的业务活动模块重用性差。
为了解决这些企业集成中的问题,该公司决定以Ramp Control系统为例探索一条以服务为中心的企业集成道路。
本文将以Ramp Control系统中的Ramp Coordination流程为例,说明如何用以服务为中心的企业集成技术一步步解决该公司IT技术人员面临的企业集成问题。
业务分析
在航空业中,Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。通常,每个航班都有一个人负责Ramp Coordination,这人通常称为Ramp Coordinator。
由Ramp Coordinator协调的业务活动有:
- 检查机位环境是否安全
- 卸货
- 装货
- 补充燃料是否方便和安全
实际上,Ramp Coordination的流程因航班类型的不同,机型的不同有很大的差异。
上述流程主要针对降落后不久就起飞的航班,这种类型的航班称为short turn around航班。
还有其他类型的两种航班:
- Arrival Only航班指降落后需要隔夜才起飞的。
- Departure Only航班是指每天一早第一班飞机。
==这些航班的流程,大部分业务活动是相似的。==这三种航班根据长途/短途,国内/国外等因素还可以进一步细分。每种细分的航班类型的Ramp Coordination流程都是略有不同。
很明显,如此多的流程之间共享着一个业务活动的集合,如此多种类型的流程都是这些业务活动的不同组装方式。以服务为中心的企业集成中流程服务就是通过将这些流程间共享的业务活动抽象为可重用的服务,并通过流程服务提供的流程编排的能力将它们组成各种大同小异的流程类型,来降低流程集成成本,加快流程集成开发效率的。
以服务为中心的企业集成,通过服务建模过程发现这些可重用的服务,并通过流程模型将这些服务组装在一起。
服务建模
使用两种方法:
- 组件业务建模(Component Business Model)
- 面向服务的建模和架构(Service-Oriented Model and Architecture)
建立以下模型:
- 组件模型
- 服务模型
- 流程模型
服务模型是服务建模的主要结果。Ramp Coordination相关的服务模型和Ramp Coordination流程相关的有两个业务组件:
- Ramp Control负责Ramp Control相关各种业务活动的组件
- Flight Management负责航班相关信息的管理,包括航班日程,乘客信息等
以上两个业务组件分别输出如下服务:
- Retrieve Flight BO:由Flight Management输出,主要用于提取和航班相关的数据信息
- Ramp Coordination:由Ramp Control输出,主要用于Ramp Coordination流程的编排
- Check Spot:由Ramp Control输出,用于检测机位安全信息
- Check Unloading:由Ramp Control输出,用于检查卸货状况
- Check Loading:由Ramp Control输出,用于检查装货状况
- Check Push Back:由Ramp Control输出,用于检查关门动作
服务建模确定了系统相关的服务输出后,还需要确定服务在当前环境下的实现方式。
- Retrieve Flight BO被实现为信息服务
- Ramp Coordination被实现为流程服务,通过BPEL4WS(Business Process Execution Language for Web Services)方式实现。
- 其他4个服务都是Staff Service(人工服务)
需要注意的是,因为环境的不同和随着系统的演化,我们可能会改变服务的实现方式,如Check Push Back现在通过Staff Service即人工服务实现。将来随着自动化程度的增强,Check Push Back完全可能通过自动化的系统实现。到那时,只需重新实现这个服务,而无需改变整个流程。这是服务可替换性的一个典型实例。
IT环境分析
在构建Ramp Control系统之前,该航空公司已经有大量的信息系统。作为架构设计的重要步骤对现有IT环境调研,描绘了和Ramp Control相关的IT系统的状况,包括周围应用和应用提供的接口,这些应用和Ramp Control交互的类型和数据格式。简化的IT环境视图,描绘了Ramp Coordination流程和周围系统交互的状况。目前Ramp Coordination流程需要4中类型的外围应用交互:
- 从乘务人员管理系统提取航班乘务员的信息
- 从订票系统中提取乘客信息
- 从机务人员管理系统中提取机务人员信息
- 接收来自航班调度系统的航班到达事件
通过主机应用中的信息集中为粗粒度的业务对象,并通过信息服务输出,为该公司的核心系统提供了更加通用的连接能力,同时为IT系统的平滑演进提供了必要的条件。
架构设计
根据需求和设计阶段的业务模型和现有IT环境调研结果Ramp Coordination的架构设计如下所示:
本案例中的主要结构元素以及它们之间的工作关系如下:
- 信息服务。Federation Service是Ramp Coordination流程中需要从已有系统重提取3类信息(乘务人员+机务人员+订票信息),在Service建模阶段这3类信息被聚合为Flight BO(Business Object)。Retrieve Flight BO被实现为一个EJB,外部访问通过RMI/IIOP绑定访问这个服务。在Retrieve Flight BO内部,Flight BO以SDO来表示
- 企业服务总线中的事件服务。Event Service是在检查机务环境安全(Check Spot)前,Ramp Coordiator需要被通知航班已经到达。这个业务事件由航班调度系统激发,Fight Arrival是典型事件发现服务(Event Detect Service),它通过MQ将事件传递给Message Broker,通过JMS的Pub/Sub,这个事件被分发给Check Spot。这里的Event Service是ESB的重要组成部分。通过ESB上通用事件服务,现有Information Hub的缺陷得到了克服。应用程序间的事件集成不再需要点到点的方式,而是通过ESB的事件服务完成订阅发布,应用程序间的耦合性得到了极大的缓解。
- 流程服务。
- 企业服务总线中的传输服务。RCMS是即将新建的系统,用于提供Ramp Control的功能。
相关文章:
信息系统架构设计-以服务为中心的企业整合实践
生命周期 业务分析服务建模架构设计系统开发 案例背景 某航空公司的信息系统已有好几十年的历史。该航空公司的主要业务系统构建于20世纪七八十年代,以IBM的主机系统为主。 近年来,该公司已经在几个主要的核心系统之间构建了用于信息集成的信息Hub(I…...
mysql知识点梳理
mysql知识点梳理 一、InnoDB引擎中的索引策略,了解过吗?二、一条 sql 执行过长的时间,你如何优化,从哪些方面入手?三、索引有哪几种类型?四、SQL 约束有哪几种呢?五、drop、delete、truncate的区…...
版本排序,(如果 版本 是 1,1a,1.1a, 2, 2c , 1c , 1.2a, 3 , 5b , 5)进行排序
如果 版本 是 1,1a,1.1a, 2, 2c , 1c , 1.2a, 3 , 5b , 5 对上面的进行排序 利用 VersionComparator 导入依赖 <dependency><groupId>cn.hutool</groupId…...
Google视觉机器人超级汇总:从RT、RT-2到AutoRT、SARA-RT、RT-Trajectory
前言 随着对视觉语言机器人研究的深入,发现Google的工作很值得深挖,比如RT-2 想到很多工作都是站在Google的肩上做产品和应用,Google真是科技进步的核心推动力,做了大量大模型的基础设施,服 故有了本文…...
python笔记(9)Dictionary(字典)
目录 创建字典 取值 修改字典 删除 内置函数和方法 创建字典 字典键值和value用:隔开,键值是不可变的,而且必须是唯一的,值可以变,可以是任意类型 dict {key1 : value1, key2 : value2 } 1)不允许同…...
蓝桥杯嵌入式总结
用到外部时钟:UART,ADC,RTC 用到中断:UART,TIM LED_KEY: 将高低电平写入对应引脚 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); 读取对应引脚的电平状态 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) UART: 发送: int fputc(int …...
渗透测试:数据库UDF提权(linux)
目录 开头: 1.UDF提权简介: 1.1共享库文件(UDF文件)指定目录: 版本特征: 操作系统版本: 2.靶场UDF提权复现 提权前提 1.要有一个高权限的MySQL的账号 编辑 2.MySQL的权限配置secure_file_priv为空 3.必须有存放UDF文件的…...
java算法day45 | 动态规划part07 ● 70. 爬楼梯 (进阶) ● 322. 零钱兑换 ● 279.完全平方数
70. 爬楼梯 (进阶) 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 输入描述:输入…...
HuggingFace踩坑记录-连不上,根本连不上
学习 transformers 的第一步,往往是几句简单的代码 from transformers import pipelineclassifier pipeline("sentiment-analysis") classifier("We are very happy to show you the 🤗 Transformers library.") ""&quo…...
面试题:Spring Boot Starter的功能与使用场景
Spring Boot Starter 是 Spring Boot 框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景: 功能: 1. 依赖管理每个 Starter 都是一组相关的依赖项集合,这些依赖项都是为了实现特定功能…...
上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 工业场景中,很多时候图像是用来做测量的。虽然我们很希望载台是平的,摄像头是正对着拍摄物体的,但是运行时间长…...
Francek Chen 的128天创作纪念日
目录 Francek Chen 的128天创作纪念日机缘收获日常成就憧憬 Francek Chen 的128天创作纪念日 Francek Chen 的个人主页 机缘 不知不觉的加入CSDN已有两年时间了,最初我第一次接触CSDN技术社区是在2022年4月的时候,通过学长给我们推荐了几个IT社区平台&a…...
PyTorch之Torch Script的简单使用
一、参考资料 TorchScript 简介 Torch Script Loading a TorchScript Model in C TorchScript 解读(一):初识 TorchScript libtorch教程(一)开发环境搭建:VSlibtorch和Qtlibtorch 二、Torch Script模型格…...
vscode 连接远程服务器 服务器无法上网 离线配置 .vscode-server
离线配置 vscode 连接远程服务器 .vscode-server 1. .vscode-server下载 使用vscode连接远程服务器时会自动下载配置.vscode-server文件夹,如果远程服务器无法联网,则需要手动下载 1)网址:https://update.code.visualstudio.com…...
arm开发板移植工具mkfs.ext4
文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中,可以通过勾选e2fsprogs工具来安装mkfs.ext4工具: Target packages -> Filesystem and flash utilit…...
某盾滑块拼图验证码增强版
介绍 提示:文章仅供交流学习,严禁用于非法用途,如有不当可联系本人删除 最近某盾新推出了,滑块拼图验证码,如下图所示,这篇文章介绍怎么识别滑块距离相关。 参数attrs 通过GET请求获取的参数attrs, 决…...
这个世界万物存在只有一种关系:博弈
$上证指数(SH000001)$ 我能给各位最大的帮助可能就是第一个从红警游戏引入了情绪周期视角的概念,而这个概念可以帮助很多人理解市场成为一种可能性,如果不理解可以重新回归游戏进行反复体验,你体验的足够多,思考的足够多ÿ…...
c#让不同的工厂生产不同的“鸭肉”
任务目标 实现对周黑鸭工厂的产品生产统一管理,主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅,南京工厂只能生产鸭翅,长沙工厂只能生产鸭脖。 分析任务 我们需要有武汉工厂、南京工厂、长沙工厂的类,类中需要实现生产鸭…...
大数据分析与内存计算——Spark安装以及Hadoop操作——注意事项
一、Spark安装 1.相关链接 Spark安装和编程实践(Spark3.4.0)_厦大数据库实验室博客 (xmu.edu.cn) 2.安装Spark(Local模式) 按照文章中的步骤安装即可 遇到问题:xshell以及xftp不能使用 解决办法: 在…...
论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection
文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文:https://arxiv.org/pdf/2103.10039.pdf 代码&…...
3D模型格式转换工具HOOPS Exchange如何将3D文件加载到PRC数据结构中?
HOOPS Exchange是一款高效的数据访问工具,专为开发人员设计,用于在不同的CAD(计算机辅助设计)系统之间进行高保真的数据转换和交换。由Tech Soft 3D公司开发,它支持广泛的CAD文件格式,包括但不限于AutoCAD的…...
c# wpf Template ContentTemplate
1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 <Window x:Class"WpfApp2.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…...
空和null是两回事
文章目录 前言 StringUtils1. 空(empty):字符串:集合: 2. null:引用类型变量:基本类型变量: 3. isBlank总结: 前言 StringUtils 提示:这里可以添加本文要记录…...
UNIAPP(小程序)每十个文章中间一个广告
三十秒刷新一次广告 ad-intervals"30" <template><view style"margin: 30rpx;"><view class"" v-for"(item,index) in 100"><!-- 广告 --><view style"margin-bottom: 20rpx;" v-if"(inde…...
pip包安装用国内镜像源
一:临时用国内源 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider,这样就会从清华这边的镜像去安装pyspider库 清华:https://py…...
uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入
先看问题: 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法:1、打开qqmap-wx-jssdk.js最后一行 然后导入:这里是我的路径位置,可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出: 运行效果…...
如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 控制另一台电脑有很多方法&…...
Aurora8b10b(1)IP核介绍并基于IP核进行设计
文章目录 前言一、IP核设置二、基于IP核进行设计2.1、设计框图2.2、aurora_8b10b_0模块2.3、aurora_8b10b_0_CLOCK_MODULE2.4、aurora_8b10b_0_SUPPORT_RESET_LOGIC2.5、aurora8b10b_channel模块2.6、IBUFDS_GTE2模块2.7、aurora_8b10b_0_gt_common_wrapper模块2.8、aurora8b10…...
基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…...
最新测试技术
在软件测试领域,随着技术的不断进步和行业需求的变化,新的测试技术和方法不断涌现。以下是一些最新的测试技术,它们正在塑造着软件测试的未来: 人工智能和机器学习(AI/ML)在测试中的应用 人工智能和机器学习正在被集成到软件测试中,以提高测试的自动化水平和效率。AI可…...
工商局网站怎么做增项/足球世界排名国家
【摘要】PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php怎么去掉字符串末尾字符,让我们一…...
企业网站能个人备案吗/seo排名计费系统
北京国际版权交易中心聚集整合各类版权专业服务资源、数字阅读类领军企业盛大文学及旗下各网站、中文在线、搜狐读书、新浪图书、腾讯图书等13家主流阅读网站联合发出倡议:将每年的10月26日设立为“数字阅读日”,倡导在线“健康阅读”、 “主题阅读”及 …...
国外装修效果图网站/精准网络营销推广
引言 PCIe接口在FPGA上的实现DSP端的PCIe外设使用 结合我前面两篇文章对FPGA和DSP两边的实现,本文对整个测试结果做一个总结。我用的FPGA和DSP都是国产的,对标Xilinx的XC7VX690T FPGA和TI的TMS320C6678 DSP。DSP作为RC,FPGA作为EP࿰…...
完美政府网站(cms)管理系统/推广软文300字
测试准备过程 1,设置环境变量,导入测试数据,具体方法见上文 su - Oracle exportPATH/monitor/agent_12c/core/12.1.0.1.0/jdk测试准备过程1,设置环境变量,导入测试数据,具体方法见上文su - OracleexportPATH/monitor/agent_12c/co…...
wordpress为什么进不去了/成都做网络推广的公司有哪些
经常出差,用U盘备份文件很麻烦怎么办?如果你是一名经常需要出差的上班族,肯定需要使用很多的文件,通常很多人会将公司电脑文件备份到U盘里,然后到上U盘去出差,但是有的人会抱怨U盘经常无缘无故的丢失&#…...
网站运营需要 做哪些工作/seo排名技术教程
文章目录1 课文2 单词2.1 tent [tent] n. 帐篷2.2. field [fi:ld] n. 田地,田野,领域2.3. smell [smel] (smelled / smelt) v. 闻起来2.4. wonderful [ˈwʌndəfl] adj. 极好的2.5. campfire [kmpfaɪə] n. 营火,篝火2.6. creep [kri:p] v. 爬行&#…...