软考高级之系统架构师之企业应用集成EAI

概述

在企业信息化建设的过程中,由于缺乏统一规划和总体布局,往往形成多个信息孤岛。信息孤岛使数据的一致性无法得到保证,信息无法共享和反馈,需要重复多次的采集和输入。信息孤岛是企业信息化一个重要的负面因素,其主要原因既有技术因素也有管理因素,还有业务流程和标准方面的因素。如何将众多的信息孤岛联系起来,以便让不同的系统乏间交互信息,是当前很多企业都面临的一个问题。

此时集成技术应运而生,集成包括软硬件及网络的集成,软件层次的集成技术——企业应用集成(Enterprise Application Integration,EAI)。

EAI技术可以消除信息孤岛,它将多个企业信息系统连接起来,实现无缝集成,使它们就像一个整体一样。EAI是伴随着企业信息系统的发展而产生和演变的,企业的价值取向是推动EAI技术发展的原动力,而EAI的实现反过来也驱动企业竞争优势的提升。

包括表示集成、数据集成、控制集成、应用集成等,适用于大多数实施电子商务的企业及企业之间的应用集成,在做数据集成前必须首先对数据进行标识并编成目录。数据集成是白盒集成,表示集成和控制集成是黑盒集成。

EAI所连接的应用包括各种电子商务系统、ERP、CRM、SCM、OA、数据库系统和数据仓库等。从单个企业的角度来说,EAI可以包括表示集成、数据集成、控制集成和业务流程集成等多个层次和方面。当然,也可以在多个企业之间进行应用集成。

平台

企业集成平台是一个支持复杂信息环境下信息系统开发、集成、协同运行的软件支撑环境,包括硬件、软件、软件工具和系统。基本功能包括:

  • 通信服务:提供分布环境下透明的同步/异步通信服务功能,使用户和应用程序无需关心具体的操作系统和应用程序所处的网络物理位置,而以透明的函数调用或对象服务方式完成它们所需的通信服务要求
  • 信息集成服务:为应用提供透明的信息访问服务,通过实现异种数据库系统之间数据的交换、互操作、分布数据据管理和共享信息模型定义(或共享信息数据库的建立),使集成平台上运行的应用、服务或用户端能够以一致的语义和接口实现对数据(数据库、数据文件、应用交互信息)的访问与控制
  • 应用集成服务:通过高层应用编程接口来实现对相应应用程序的访问,这些高层应用编程接口包含在不同的适配器或代理中,它们被用来连接不同的应用程序。这些接口以函数或对象服务的方式向平台的组件模型提供信息,使用户在无需对原有系统进行修改(不会影响原有系统的功能)的情况下,只要在原有系统的基础上加上相应的访问接口就可以将现有的、用不同的技术实现的系统互联起来、通过为应用提供数据交换和访问操作,使各种不同的系统能够相互协作
  • 二次开发工具:集成平台提供的一组帮助用户开发特定应用程序(如实现数据转换的适配器或应用封装服务等)的支持工具,其目的是简化用户在企业集成平台实施过程中(特定应用程序接口)的开发工作
  • 平台运行管理工具:企业集成平台的运行管理和控制模块,负责企业集成平台系统的静态和动态配置、集成平台应用运行管理和维护、事件管理和出错管理等。通过命名服务、目录服务、平台的动态静态配置,以及其中的关键数据的定期备份等功能来维护整个服务平台的系统配置及稳定运行。

分类

表示集成

表示集成,也称为界面集成,这是比较原始和最浅层次但又是常用的集成。将用户界面作为公共的集成点,把原有零散的系统界面集中在一个新的界面中,统一入口。其模型如图
在这里插入图片描述
表示集成是黑盒集成,无须了解程序与数据库的内部构造。常用的集成技术主要有屏幕截取和输入模拟技术。表示集成通常应用于默下几种情况:

  • 在现有的基于终端的应用系统上配置基于PC的用户界面
  • 为用户提供一个看上去统一,但是由多个系统组成的应用系统
  • 当只有可能在显示界面上实现集成时

表示集成的实现是很简单的,也是很不彻底的,只是一层外装修,而额外多出来的集成界面也将可能成为系统的性能瓶颈。

数据集成

应用集成和业务过程集成的基础。把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。ETL、数据仓库、联邦数据库都可视为数据集成。

为了完成控制集成和业务流程集成,必须首先解决数据和数据库的集成问题。在集成之前,必须首先对数据进行标识并编成目录,另外还要确定元数据模型,保证数据在数据库系统中分布和共享。因此,数据集成是白盒集成,其模型如图
在这里插入图片描述
有很多不同的中间件工具可以用于数据集成。例如,批量文件传输,即以特定的或是预定的方式在原有系统和新开发的应用系统之间进行文件传输;用于访问不同类型数据库系统的ODBC(Open DataBase Connectivity,开放数据库互连)标准接口:向分布式数据库提供连接的数据库访问中间件技术等。通常在以下情况下,将会使用数据集成:

  • 需要对多种信息源产生的数据进行综合分析和决策。
  • 要处理一些多个应用喜人需要访问的公用信息库。
  • 当需要从某数据源获得数据来更新另一个数据源时,特别是它们之间的数据格式不相同时。

相对而言,数据集成比表示集成要更加灵活。但是,当业务逻辑经常发生变化时,数据集成就会面临困难。

控制集成

也称为功能集成、应用集成、API集成,是在业务逻辑层上对应用系统进行黑盒集成的。控制集成的集成点存于程序代码中,集成处可能只需简单使用公开的API就可以访问,当然也可能需要添加附加的代码来实现。控制集成是黑盒集成,其模型如图
在这里插入图片描述
实现控制集成时,可以借助于远程过程调用、远程方法调用、面向消息的中间件、分布式对象技术和事务处理监控器来实现。控制集成与表示集成、数据集成相比,灵活性、复杂度更高。表示集成和数据集成适用的环境下,都适用于控制集成。但是,由于控制集成是在业务逻辑层进行的,其复杂度更高一些。而且,很多系统的业务逻辑部分并没有提供API,这样,集成难度就会更大。

业务流程集成

也叫过程集成,超越数据和系统,它由一系列基于标准的、统一数据格式的工作流组成。当进行业务流程集成时,企业必须对各种业务信息的交换进行定义、授权和管理,以便改进操作、减少成本、提高响应速度。

业务流程集成不仅要提供底层应用支撑系统之间的互连,同时要实现存在于企业内部的应用之间,本企业和其他合作伙伴之间的端到端的业务流程的管理,它包括应用集成、B2B集成、自动化业务流程管理、人工流程管理、企业门户,以及对所有应用系统和流程的管理和监控等。

其他

其他集成:

  • 消息集成:适用于数据量小、但要求频繁地、立即地、异步地数据交换场合
  • 共享数据库:实时性强、可以频繁交互,数据的交换属于同步方式
  • 文件传输:适用于数据量大、交换频度小、即时性要求低的情况

集成模式

市场上主流的集成模式有3种,分别是:

  • 面向信息的集成技术

在数据集成层面、信息集成技术仍然是必选的方案。信息集成采用的主要数据处理技术有:数据复制、数据聚合、和接口集成等。其中接口集成仍然是一种主流的技术。通过一种集成代理的方式实现集成,即为应用系统创建适配器作为自己的代理,适配器通过其开放或私有的接口,将信息从应用系统中提取出来,并通过开发接口与外界系统实时交互。而加入适配器的结构支持一定的标准,将极大的简化集成的复杂度,并有助于标准化,这也是面向接口集成方法的主要优势来源。标准化的适配器技术可以使企业从第三方供应商获取适配器,从而使集成技术简化。

  • 面向过程的集成技术

实际上是一种过程流集成的思想,不需要处理用户界面开发、数据库逻辑、事务逻辑等。而只是处理系统之间的过程逻辑,与核心业务逻辑相分离。
在结构上,面向过程的集成方法在迷信爱那个接口的集成方法之上,定义另外的过程逻辑层;而在该层的底层,应用服务器、消息中间件提供支持数据传输和跨域过程协调的基础服务。对于提供集成代理、消息中间件以及应用服务器的厂商来说,提供用于业务过程集成是对其产品的重要扩展,也是目前应用集成市场的重要需求。

  • 面向服务的集成技术

基于SOA和web技术的应用集成,是业务集成技术上的一次重要变化,被认为是新一代的应用集成技术。集成的对象是一个web服务或者是封装成web服务的业务处理。web服务技术由于是基于最广为接受的、开放的技术标准,支持服务接口描述和服务处理的分离、服务描述的集中化存储和发布、服务的自动查找和动态绑定以及服务的组合,称为新一代面向服务的应用程序的构件和应用系统集成的基础设施。

企业信息集成

指企业在不同应用系统之间实现数据共享,即实现数据在不同数据格式和存储方式之间的转换、来源不同、形态不一、内容不等的信息资源进行系统分析、辨清正误、消除冗余、合并同类,进而产生具有统一数据形式的有价值信息的过程。企业信息集成是一个十分复杂的问题,按照组织范围来分,分为企业内部和外部信息集成。按集成内容,企业内部的信息集成一般可分为以下四个方面:

  • 技术平台集成
  • 数据集成
  • 应用系统集成:实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享
  • 业务过程集成:使得在不同应用系统中的流程能够无缝连接,实现流程的协调运作和流程信息的共享。

数据集成
为了完成应用集成和过程集成,必须首先解决数据和数据库的集成问题。在集成之前,必须首先对数据进行表示并编成目录,另外还需要确定元数据类型,保证数据在数据库系统中的分布和共享。

数据集成的模式包括:

  • 数据联邦
  • 数据复制模式
  • 基于结构的数据集成模式

控制集成
这种集成能够为两个应用中的数据和函数提供接近实时的集成。应用集成在底层的网络集成和数据集成的基础上,实现异构应用系统之间应用层次上的互操作。

应用集成的主要模式包括:

  • 集成适配器模式
  • 集成信使模式
  • 集成面板模式
  • 集成代理模式

集成技术

不同分类下有不同的技术

表示集成

EP

企业门户,Enterprise Portal。
分类

  • 企业网站:注重单向信息传递,缺乏互动
  • 企业信息门户:EIP,把各种应用系统、数据资源和互联网资源统一集成到企业门户之下
  • 企业知识门户:EKP,企业网站的基础上增加知识性内容
  • 企业应用门户:EAP,实际上是对企业业务流程的集成。它以业务流程和企业应用为核心,把业务流程中功能不同的应用模块通过门户技术集成在一起
  • 企业通用门户:集以上四者于一身

EP实施的关键问题

  • 单点登录SSO
  • 业务流程整合
  • 个性化配置
  • 与企业应用系统的集成
  • 知识转化

应用集成

有5类

Web Service

Web服务,简称WS,随着Internet应用逐渐成为一个B2B应用平台,应用集成所面临的问题也日益突出:各种构件之间的“战争”、各种编程语言之间的“战争”、防火墙的阻挡、互操作协议的不一致等。Web服务定义一种松散的、粗粒度的分布计算模式,使用标准的HTTP/S协议传送XML表示及封装的内容。

Web服务的典型技术包括:

  • SOAP:Simple Object Access Protocal,用于传递信息的简单对象访问协议
  • WSDL:Web Services Description Language,用于描述服务的Web服务描述语言
  • UDDI:Universal Description Discovery and Integration,用于Web服务的注册的统一描述、发现及集成
  • XML:用于数据交换

Web服务的主要目标是跨平台的可操作性,适合使用WS的情况:

  • 跨越防火墙
  • 应用程序集成
  • B2B集成
  • 软件重用

在某些情况下,Web服务也可能会降低应用程序的性能。不适合使用Web服务的情况如下:

  • 单机应用程序
  • 局域网上的同构应用程序

J2EE架构

J2EE(Java 2 Platform Enterprise Edition)是由Sun公司主导、各厂商共同制定并得到广泛认可的工业标准。业界各主要中间件厂商如IBM、Oracle都在积极地促进该标准的推广和应用。完整的J2EE技术规范由4部分组成:J2EE平台、J2EE应用编程模型、J2EE兼容测试套件、J2EE参考实现。J2EE应用服务器运行环境包括构件(Component)、容器(Container)及服务(Services)三部分。构件是表示应用逻辑的代码;容器是构件的运行环境;服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。

.NET架构

微软的.NET是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境基础上,给开发人员提供完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。.NET开发通用语言运行环境(Common Language Runtime)处于.NET开发框架的最低层,是该框架的基础,它为多种语言提供统一的运行环境、编程模型,大大简化应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。基础类库(Hase Class Library)给开发人员提供一个统一的、面向对象的、层次化的、可扩展的编程接口,使开发人员能够高效、快速地构建基于下一代互联网的网络应用。

工作流

国际工作流管理联盟,Workflow Management Coalition,WfMC给出的定义,工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则,使文档、信息或任务能够在不同的执行者之间传递和执行。工作流是一种能够实现过程集成的技术。

工作流就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。

如果用户的业务流程经常发生改变,那么首先应想到工作流技术。

作用:

  • 整合所有的专门业务应用系统,使用工作流系统构建一个灵活、自动化的EAI(企业应用集成)平台
  • 协助涉及多人完成的任务提高生产效率
  • 提高固化软件的重用性,方便业务流程改进
  • 减少需求转化为设计的工作量,简化维护,降低开发风险
  • 实现的集中统一的控制,业务流程不再是散落在各种各样的系统中。可提高对流程的控制与管理
  • 提高对客户响应的预见性,用户可根据变化的业务进行方便的二次开发

数据仓库

数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。首先,数据仓库用于决策支持,面向分析型数据处理;其次,数据仓库是对多个异构数据源(包括历史数据)的有效集成,集成后按主题重组,且存放在数据仓库中的数据一般不再修改。与操作型数据库相比,数据仓库的主要特点如下:面向主题、集成、相对稳定、反映历史变化

共享数据库

共享数据库是一种重要的企业应用集成方式,它通常将应用程序的数据存储在一个共享数据库中,通过制定统一的数据库模式来处理不同应用的集成需求。共享数据库为不同的应用程序提供统一的数据存储与格式定义,能够在一定程度上缓解数据语义不一致的问题,但无法完全解决该问题。在共享数据库集成中,多个应用程序可能通过共享数据库频繁地读取和修改相同的数据,这会使数据库成为一个性能瓶颈。共享数据库集成方式的一个重要限制来自外部的已封装应用,这些封装好的应用程序只能采用自己定义的数据库模式,调整和集成余地较小。

参考

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

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

相关文章

php笔记1

php环境 PHP作为一种服务器端脚本语言,可以在各种操作系统上运行。搭建PHP网站的环境,你需要以下几个要素: Web服务器:常见的选择有Apache、Nginx和IIS。你需要安装和配置其中一个服务器软件。PHP解释器:PHP是一种解…

OpenAI开发系列(二):大语言模型发展史及Transformer架构详解

全文共1.8w余字,预计阅读时间约60分钟 | 满满干货,建议收藏! 一、介绍 在2020年秋季,GPT-3因其在社交媒体上病毒式的传播而引发了广泛关注。这款拥有超过1.75亿参数和每秒运行成本达到100万美元的大型语言模型(Large …

Linux服务器占用处理手记

磁盘占用定位处理 查看磁盘占用情况: df -h 查看每个目录的占用情况: du -h -x --max-depth1 查找大文件和目录 du -sh /* du -sh /home/* 可参考: Linux垃圾清理指北_linux 清理垃圾_智商二五零_的博客-CSDN博客 查看CPU和内存占用情…

javascript使用正则表达式去除字符串中括号的方法

如下面的例子: (fb6d4f10-79ed-4aff-a915-4ce29dc9c7e1,39996f34-013c-4fc6-b1b3-0c1036c47119,39996f34-013c-4fc6-b1b3-0c1036c47169,39996f34-013c-4fc6-b1b3-0c1036c47111,2430bf64-fd56-460c-8b75-da0a1d1cd74c,39996f34-013c-4fc6-b1b3-0c1036c47112) 上面是前…

PyTorch深度学习代码获取内存、显存使用情况

内存使用情况 import os import psutildef get_current_memory_gb():# 获取当前进程内存占用。pid os.getpid()p psutil.Process(pid)info p.memory_full_info()return info.rss / 1024. / 1024. / 1024.显存情况 import torch import pynvml# Total memory of a GPU card…

【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

本周的工作结束&#xff0c;详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景&#xff1a; 有个业务接口&#xff0c;接口返回的值是一个JSON格式的字符串&#xff0c;通过JSON解析的方式&#xff0c;解析为格式为&#xff1a; Map<Long, Map<String, O…

IP-guard发布新版本4.82.610.0

IP-guard发布新版本4.82.610.0 新版本下载地址&#xff1a;http://www.tec-development.com/down/IPguard/Release/V4/IPguard4.82.0610.0.zip?s6B2D4226740543769BD8CED2D10FC4B1F64F53298624725C4DF687FFE1DEAC61 新版本升级地址&#xff1a;http://www.tec-development.c…

windbg调试句柄问题

这里写自定义目录标题 winform&#xff0c;句柄资源不够强&#xff0c;程序crash句柄主程序c程序&#xff0c;加载的插件是c# dll&#xff0c;这时候如何用windbg调试dll库如果查看句柄和对象的关系!handle 怎么能知道哪个句柄是Form对话框的句柄如何查看句柄对应的类对象 winf…

代码随想录 动态规划Ⅴ

494. 目标和 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 &#xff0c;在 1 之前添加 - …

优维低代码实践:菜单

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

基于Gradio/Stable Diffusion/Midjourney的AIGC自动图像绘画生成软件 - Fooocus

0.参考 本项目&#xff1a;GitHub - lllyasviel/Fooocus: Focus on prompting and generating 作者&#xff1a;Lvmin Zhang ​编辑 lllyasviel 另一杰作 ContorlNet https://github.com/lllyasviel/ControlNet 模型&#xff1a;https://huggingface.co/stabilityai/stab…

编写自己的目标跟踪算法

目标跟踪算法大致可以分为两类&#xff0c;一类是用前后两帧目标的相似程度来判断它们是否为同一个目标&#xff0c;另一类是预测目标的运动轨迹来判断下一帧同一目标的位置。 本文也编写一个目标跟踪算法&#xff0c;其原理是计算相邻两帧目标中心点的距离来判断它们是否为同…

Windows 构建 Acid Game Engine 的坑

下载 OpenAL 的话&#xff0c;配置环境变量到 OpenAL 1.1 SDK 就好了 我的 cmake 的 FindOpenAL 里面会添加 OpenAL 的库&#xff0c;所以我不知道为什么原仓库会把那个判断是否已经存在 OpenAL 库的语句注释掉……我就加回来了 Sources\CMakeLists.txt # OpenAL must be in…

cpolar内网穿透

1、下载地址 https://www.cpolar.com/ windows系统可以在cpolar官网下载最新的安装包&#xff0c;然后解压默认安装即可。 2、地址配置 创建隧道映射内网端口&#xff0c;双击安装的软件&#xff0c;即可进入浏览器配置界面 http://localhost:9200/#/dashboard cpolar安装…

go的学习路线

学习 Go 语言的路线可以分为以下几个步骤&#xff1a; 安装和设置 Go 环境&#xff1a;下载安装 Go 并设置环境变量&#xff0c;安装开发工具。 学习基础语法&#xff1a;了解 Go 的基本语法、数据类型、控制流程、函数等基础知识。 掌握标准库和常用工具&#xff1a;学习标准…

Vue中的生命周期钩子

生命周期钩子 :::warning 注意 所有生命周期钩子的 this 上下文将自动绑定至实例中&#xff0c;因此你可以利用 this 访问 props、data、computed 和 methods 等选项内的数据/函数。这意味着你不应该使用箭头函数来定义一个生命周期方法&#xff0c;因为箭头函数中没有 this&a…

实时车辆行人多目标检测与跟踪系统(含UI界面,Python代码)

算法架构&#xff1a; 目标检测&#xff1a;yolov5 目标跟踪&#xff1a;OCSort其中&#xff0c; Yolov5 带有详细的训练步骤&#xff0c;可以根据训练文档&#xff0c;训练自己的数据集&#xff0c;及其方便。 另外后续 目标检测会添加 yolov7 、yolox&#xff0c;目标跟踪会…

node_modules/XXX/index.js:XXX;XX ||= XXX?.[level];SyntaxError: Une

这个语法是 ECMAScript 2021的语法 还挺新的 对node版本要求会比较高 这里这个 icon || this.options.icon?.[level];意思就是 如果this.options.icon [level] 拿得到值 就等于它 否则 如果拿不到 icon 就等于自己 要解决这个问题 一个是你可以提高node版本 但我不建议 还是…

k8s---基本架构--节点

节点 Kubernetes 中添加节点到 API 服务器的两种主要方式&#xff1a; 节点上的 kubelet 自动向控制平面注册。您&#xff08;或其他人&#xff09;手动添加一个 Node 对象。 当您创建一个 Node 对象&#xff0c;或者节点上的 kubelet 自动注册时&#xff0c;控制平面会检查…

AlexNet——训练花数据集

目录 一、网络结构 二、创新点分析 三、知识点 1. nn.ReLU(inplace) 2. os.getcwd与os.path.abspath 3. 使用torchvision下的datasets包 4. items()与dict()用法 5. json文件 6. tqdm 7. net.train()与net.val() 四、代码 AlexNet是由Alex Krizhevsky、Ilya S…