SOA是英文 Service-Oriented Architecture 三个首字母单词的缩写,中文译为: 面向服务架构 ( SOA), SOA架构与 B/S 、 C/S 架构是目前最流行三种 Web服务的基础架构。
       SOA架构的特点为:系统集成:站在系统的角度,解决企业系统间的通信问题,把原先散乱、无规划的系统间的网状结构,梳理成规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范,解决的核心问题是【有序】;系统的服务化:站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生,目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用,解决的核心问题是【复用】;业务的服务化:站在企业的角度,把企业职能抽象成 可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;“前面两步都是从技术层面来解决系统调用、系统功能复用的问题”。第三步,则是以业务驱动把一个业务单元封装成一项服务,解决的核心问题是【高效】。

(SOA架构是面向服务的体现)

  如果把SOA的架构简单的理解为是多个子系统之间的整合其实有点太过于简单,也没有真正搞清楚SOA的架构模型。按照SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代。其实这就是本节要讲的服务的分层,通过分层将服务按照使用类型进行分配,上层服务对下层服务的包装,下层服务负责原子性的操作,上层服务对下层服务进行业务性的组合。

  至于SOA架构,在网上看到这样一个例子:

  一个公司里有基层员工 有管理层 有老板,最初大家都听老板指挥,谁干什么谁干什么,根据需要,你可能今天干A事情,明天干B事情,后来人越来越多了,事情也越来越多了,做事情的效率越来越多,管理也很混乱,就开始做部门划分(服务化),专门部门做专门事情的,IT部门只做研发,人事部门只做招聘; 这个时候就无法避免的发生跨部门协作(服务器调用), 但是你怎么知道有这样一个部门可以做这个事情呢,就要依赖行政部门(注册中心),新成立的部门要在行政哪里做一个备案(服务注册),然后公布一下,让其他部门知道了(服务发布),大家就可以在新的工作秩序里面嗨皮的上班了,这个时候依然是在公司的组织架构中运转。
  说法没错,可以对SOA的有一个大概的理解了。
       参照网上介绍一下 SOA参考架构 的实际应用:海事应急辅助指挥系统是一个系统工程,范围上覆盖中国 MRCC 、MRSC ,技术上涉及到网络、数 据库、船舶交通管理系统(简称 VTS)、船舶自动识别系统(简称 AIS)、电子海图、搜救模型等众多专业, 非常复杂。此系统的建设目标, 是通过对海事系统 现有信息资源和通信资源的整合,在应急指挥数据库和电子海图平台的支持下,利用海上落水人员漂移等数学模型, 初步建立以实现人命救助的辅助指挥、 应急预案 的应用管理为重点的海事应急辅助指挥系统。要实现应急指挥系统,需要将不同部门和应用系统进行资源整合,形成统一的指挥平台系统。在海事应急辅助指挥系统 的建设中,需要整合的应用系统很多, 如 VTS系统、AIS 系统、船舶动态系统、 船舶报告查询系统、应急指挥系统等,这些系统涉及不同的提供厂家(如国内外 应用系统厂商)、多种通讯接口(如 FTP、TCP/IP、HTTP等)、多种实现技术(如 CORBA 、J2EE、.NET等)、多种数据格式等,业务复 杂,技术难度大。以 AIS 系统为例,它由岸基(基站)设施和船载设备以及 AIS 数据链路共同组成,它包括诸如雷达等硬件通讯设备,又包括信号采集和处理的 软件系统,技术相当复杂。图 2 为本系统信息整合拓扑图,是需要将海事应急指挥所需要的分布在不同地方的海事直属局的应用系统和数据,同步到部局对应的系统 中,而部局的相关数据,也要分发到下面相关直属局对应系统中。通过数据交换平台,整合现有信息资源,形成统一的数据信息,为应急指挥系统提供信息服务,实 现海事应急信息综合查询。在数据交换平台产品的选型上, 经多方比较和权衡, 海事局采用了东方通科技基于 SOA架构的企业应 用集成产品 TongIntegrator3 及其他中间件产品, 作为信息整合的产品解决方案。 TongIntegrator3 是东方通科技公司新一代的符合 SOA架构的企业应用集成产品,主要功能是在两个或更多的异构系统(如不同的数据库、消息中间件、 ERP或 CRM等)之间进行资源整合、互联互通,实现数 据集成、应用集成、业务流程集成等需求功能,以构建灵可扩展的分布式企业应用。 TongIntegrator3 产品结构由集成开发工具 TI Studio 、监控管理中心、资源中心、运行环境逻辑节点、便于应用集成开发的组件和套件 (如适配器、 Java 服务、合成服务等) 以及企业服务总线 TI ESB组成,其结构与 SOA参考架构类似,具体组成如图:

  在海事应急辅助指挥系统中, SOA参考架构的各个组成部分, 从方案的设计、 编码开发、打包部署, 到业务应用的运行、监控和管理,大部分得到了实际的应用。如使用集成开发工具 TI Studio 进行基于 SOA的业务分析、设计开发及打包部署;利用资源中心集中存储服务资源,并进行团队协作开发和资源编辑版本控制等;使用监控管理中心能够对 SOA运行环境及部署其上运行的 SOA应用进行监控和管理; 使用 Java 服务和服务总线 TI ESB,完成服务的编排、接入、通讯协议转换、数据格式转换等功能。

  总体来说:面向服务的架构SOA更加贴近业务客户,也更适合业务伙伴之间流程整合。从海事应急辅助指挥系统项目的开发和实施效果来看,基于 SOA参考架构的技术、产品及实施方法 论,能够方便地复用企业现有应用系统,保护用户 IT 投资,加快开发进度。并且基于 SOA构建的新应用业务系统,架构灵活,便于维护和重构,提高用户的业务 敏捷性。

 

SOA案例分析浅谈的更多相关文章

  1. $.ajax()方法详解 ajax之async属性 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    $.ajax()方法详解   jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...

  2. SOA案例架构分析浅谈

    上课中讲到了SOA架构设计,自己在课下决定总结一下对于SOA架构的理解以及应用. 先总结一下SOA的定义,SOA是面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使 ...

  3. SOA分析浅谈

    根据百度定义:面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服 ...

  4. 一个QQ木马的逆向分析浅谈(附带源码)

    程序流程:首先注册自己程序的窗口以及类等一系列窗口操作,安装了一个定时器,间隔为100ms,功能搜索QQ的类名,如果找到就利用FindWindow("5B3838F5-0C81-46D9-A ...

  5. android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (3)

    上节已经详细说了下注入过程,最后寄生进程在宿主进程中下了个蛋,这下完的蛋有什么作用呢?接下来再具体分析一下. lib0的感染过程分析 对于本例注入的so动态库,首先看一下so的符号: $ readel ...

  6. android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (1)

    fps meter是常用的检测帧率的软件,该软件需要root权限才能工作,一直比较好奇它一个apk是如何知道系统当前的帧率情况的,就针对此apk分析了一下其工作原理. Apk组成 首先看一下apk的组 ...

  7. 技术分析 | 浅谈在MySQL体系下SQL语句是如何在系统中执行的及可能遇到的问题

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 SQL语句大家并不陌生,但某种程度上来看,我们只是知道了这条语句是什么功能,它可 ...

  8. 【原创】详细案例解剖——浅谈Redis缓存的常用5种方式(String,Hash,List,set,SetSorted )

    很多小伙伴没接触过Redis,以至于去学习的时候感觉云里雾里的,就有一种:教程随你出,懂了算我输的感觉. 每次听圈内人在谈论的时候总是插不上话,小编就偷偷去了解了一下,也算是初入门径. 然后就整理了一 ...

  9. 防止apk反编译的技术分析浅谈--内存修改器篇

    声明: 1.本帖转载自http://jingyan.baidu.com/article/a24b33cd509eb719fe002b94.html,仅供自用,勿喷 Apk反编译修改器有很多.拿其中的比 ...

随机推荐

  1. leetcode 1041. 困于环中的机器人

    题目地址 : https://leetcode-cn.com/problems/robot-bounded-in-circle/ 在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.机器人可以 ...

  2. networkx生成网络的子网计算

    当我们用networkx生成网络时,节点之间的关系是随机的,很多时候我们生成的一个网络,存在不止一个子网,也就是说任意两个节点之间不一定连通 当我们想生成一个任意两点都能连通的网络时,就需要去判断生成 ...

  3. Net中的并发锁

    object _lock 锁的概念,这里不做详细阐述.先从最经典的应用场景来说,单例模式在不考虑静态构造函数实现的方式下,用锁实现是必须的.比如: public class Singleton { p ...

  4. 06-Django视图

    什么是视图? 视图就是应用中views.py文件中的函数,视图函数的第一个参数必须是request(HttpRequest)对象.返回的时候必须返回一个HttpResponse对象或子对象(包含Htt ...

  5. 细数使用View UI(iView)开发中遇到的坑

    一.前言 View UI,即原先的 iView,是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品. 官网地址:https://www.iviewui.com/docs ...

  6. ansible命令参数介绍

    -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码.当使用密码验证的时候用 -s:su ...

  7. python基础(13):函数名的使用、第一类对象、闭包、迭代器

    1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...

  8. ArchLinux 2019.11.01安装流程--安装基本系统

    安装前的一些话 本文是参考官方文档ArchLinux的Installation guide(简体中文)加实际操作编写的. 有啥都好说,转载时请注明作者,这是基本素质,也是法律要求 安装是在虚拟机上进行 ...

  9. Nginx+keepalived(高可用主备模式)

    Nginx+keepalived(高可用主备模式) 环境:centos6.7 准备:两台服务器(虚拟机).两台应用(Tomcat).Nginx.keepalived server1:192.168.2 ...

  10. C++ 成员对象和封闭类

    01 成员对象与封闭类 类里有其他对象则该对象叫成员对象:有成员对象的类叫 封闭类: class CTyre // 轮胎类 { public: // 有参数构造函数 // 初始化成员变量m_radiu ...