SOA体系架构及相关技术,主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产,保护用户IT投资,并能够以服务的方式构建新的业务流程,对企业流程进行灵活重构和优化,增强业务的敏捷性。鉴于SOA体系架构的诸多优点和对用户带来的利益,国内越来越多的用户开始采用SOA相关技术和产品,来构建自己的业务应用系统。

下面以海事应急辅助指挥系统为例,介绍一下SOA参考架构的实际应用。

海上船舶出现险情或其他灾害性事件时,如果尽可能地控制紧急事件的发展,并消除险情和事故,能将海上事故对人命、财产和环境的危害降低到最低限度。为了提高我国海事应急指挥综合水平,保护海上人民生命和财产的安全,把“中国海上搜救中心办公室建成具有现代化、数字化、信息化管理水平,集水上安全监控、海上搜救决策、信息分析处理等为一体的组织、协调、指挥中心”,努力提高搜救现代化、数字化、信息化水平,交通部海事局启动了海事应急辅助指挥系统试点工程的建设。

海事应急辅助指挥系统是一个系统工程,范围上覆盖中国MRCC、MRSC,技术上涉及到网络、数据库、船舶交通管理系统(简称VTS)、船舶自动识别系统(简称AIS)、电子海图、搜救模型等众多专业,非常复杂。此系统的建设目标,是通过对海事系统现有信息资源和通信资源的整合,在应急指挥数据库和电子海图平台的支持下,利用海上落水人员漂移等数学模型,初步建立以实现人命救助的辅助指挥、应急预案的应用管理为重点的海事应急辅助指挥系统。要实现应急指挥系统,需要将不同部门和应用系统进行资源整合,形成统一的指挥平台系统。在海事应急辅助指挥系统的建设中,需要整合的应用系统很多,如VTS系统、AIS系统、船舶动态系统、船舶报告查询系统、应急指挥系统等,这些系统涉及不同的提供厂家(如国内外应用系统厂商)、多种通讯接口(如FTP、TCP/IP、HTTP等)、多种实现技术(如CORBA、J2EE、.NET等)、多种数据格式等,业务复杂,技术难度大。以AIS系统为例,它由岸基(基站)设施和船载设备以及AIS数据链路共同组成,它包括诸如雷达等硬件通讯设备,又包括信号采集和处理的软件系统,技术相当复杂。图2为本系统信息整合拓扑图,是需要将海事应急指挥所需要的分布在不同地方的海事直属局的应用系统和数据,同步到部局对应的系统中,而部局的相关数据,也要分发到下面相关直属局对应系统中。通过数据交换平台,整合现有信息资源,形成统一的数据信息,为应急指挥系统提供信息服务,实现海事应急信息综合查询。

图2.海事应急辅助指挥系统信息整合拓扑图

按照传统的应用集成解决方案,开发工作量大,系统难于扩展和维护,而且它对系统集成商的技术储备和开发团队有很高的要求。在这种场景下,采用SOA相关解决方案,无疑是最佳选择。基于SOA的解决方案,将现有应用系统和业务进行梳理,以服务的方式将现有应用系统接入服务总线,把复杂的业务逻辑、通讯协议转换、复杂数据格式转换等封装成服务,对封装的服务进行自由组合与编排,能够快速进行不同应用系统之间的互联互通和数据交换。这样不但屏蔽了不同应用系统的业务和技术复杂性,还保护了现有应用系统的投资,提高了开发效率。

在数据交换平台产品的选型上,经多方比较和权衡,海事局采用了东方通科技基于SOA架构的企业应用集成产品TongIntegrator3及其他中间件产品,作为信息整合的产品解决方案。TongIntegrator3是东方通科技公司新一代的符合SOA架构的企业应用集成产品,主要功能是在两个或更多的异构系统(如不同的数据库、消息中间件、ERP或CRM等)之间进行资源整合、互联互通,实现数据集成、应用集成、业务流程集成等需求功能,以构建灵活可扩展的分布式企业应用。TongIntegrator3产品结构由集成开发工具TI Studio、监控管理中心、资源中心、运行环境逻辑节点、便于应用集成开发的组件和套件(如适配器、Java服务、合成服务等)以及企业服务总线TI ESB组成,其结构与SOA参考架构类似

关于SOA的架构设计案例分析的更多相关文章

  1. SOA架构设计案例分析

    转载自:https://www.jdon.com/soa.html 首先Martin Fowler提出SOA歧义Service Oriented Ambiguity,认为"什么是SOA&qu ...

  2. 面向SOA服务架构的案例分析的研究

    随着互联网应用的不断发展,网络业务的种类.数量不断增加,计算机网络管理的研究重 点正在由过去的个别资源监控.应用可用性阶段,向着如何通过网络获得所需业务.业务流程的优化.保障业务服务水平方向发展.但这 ...

  3. Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战

    Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战 说明: Java生鲜系统中微服务的拆分应该如何架构设计与分析呢?以下是我的实战中的设计与经验分析. 目录 1. 微服务简介2. 当前现状3. ...

  4. sns社区架构设计案例分享

    今天看了个社区,了解了一下该产品的架构设计,做一下分享. 内容来源:http://www.jinhusns.com/Document/FrameworkDocument/?type=cc 一. 架构使 ...

  5. .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

    阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...

  6. 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析

    作者:唐老师,华清远见嵌入式学院讲师. 通过前两节HAL框架分析和JNI概述,我们对Android提供的Stub HAL有了比较详细的了解了,下面我们来看下led的实例,写驱动点亮led灯,就如同写程 ...

  7. sns社区架构设计案例分享(二)

    源码下载地址:http://www.jinhusns.com/Products/Download/?type=xcj 五. 架构使用说明 > 缓存 > 使用说明 > (一)基础类库介 ...

  8. 《大型网站技术架构:核心原理与案例分析》【PDF】下载

    <大型网站技术架构:核心原理与案例分析>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 本书通过梳理大型网站 ...

  9. .NET架构设计、框架设计系列文章总结

    从事.NET开发到现在已经有七个年头了.慢慢的可能会很少写.NET文章了.不知不觉竟然走了这么多年,热爱.NET热爱c#.突然想对这一路的经历进行一个总结. 是时候开始下一阶段的旅途,希望这些文章可以 ...

随机推荐

  1. django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现

    首先画图一张,用来展示今天要做的事情,读写分离,个人理解就是使用mysql主从备份的原理,让两个数据库同时为自己提供服务.其中主库负责数据保存,从库负责数据展示,可以一主一从,也可以一主多从.从而降低 ...

  2. Ubuntu 16.04 系统编译部署lamp服务。

    壹  下载Apache 和 PHP源码包: Apache:http://httpd.apache.org/download.cgi PHP:http://php.net/downloads.php 贰 ...

  3. YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21)

    背景: 最近在研究音视频,了解YUV这样的格式对于音视频开发比较重要. 虽然这篇文章大部分是转载别人的,但是经过了校对以后,重新排版并补充了一部分内容   概览: 之所以提出yuv格式的原因,是为了解 ...

  4. P1092 最好吃的月饼

    1092 最好吃的月饼 (20分)   月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种. 若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给 ...

  5. k8s 各种网络方案【转】

    网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...

  6. Android的事件处理机制之基于监听的事件处理

    无论是桌面应用还是手机应用程序,面对用户的使用,经常需要处理的便是用户的各种动作,也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理. 而Android为我们提供了两套强大的响应机 ...

  7. 运行jar包中的main方法

    java -classpath jar包名.jar 包名.类名

  8. 嵊州普及Day1T2

    题意:走迷宫.求走到a[n][n]需要多久. 考场上想的dfs,听老师说最多50分.代码懒得码了,知道是走迷宫就好. 正解:bfs,时间复杂度O(n). 见代码: #include<iostre ...

  9. AS3.0判断数组中最大值

    function getMax(Arr) { if (typeof Arr !="object") {     return null;  }  for (var i=0,max= ...

  10. JAVA Main方法中调用非静态方法

    在JAVA中静态方法中只能调用其他,静态方法.main方法都是静态方法,如果想调用其它的方法,要么只能是其它的静态方法.还有一种方法就是将当前类实例化在调用它的非静态方法 public class t ...