SOA(Service-Oriented Architecture,面向服务架构)开发领域谈论最多的一个词。
中国的SOA市场这几年发展的很不错,但也有很多是卖羊头挂狗肉的。打着SOA的旗号干起工作流的勾当(个人想法,且听我说完)。
我觉得SOA的一个很重要的目标是信息共享,解决数据孤岛的问题。那么离开了网络的SOA能算是一个真正意义上的SOA平台吗?所以我觉得说工作流就是SOA是错误的虽然SOA离不开流程。但是把SOA的思想应用到工作流的设计中我是很赞同的。(题外话)
中国现代化建设这么多年,信息孤岛到处可见,每个部门都抱着自己数据。这样造成了资源的浪费和生产力的下降。信息共享是发展的必然趋势。
我认为解决数据孤岛有两种途径:
1.数据集中。
2.组成分布式网络,并且网络中各个节点可以通过某种协议进行通信(SOA平台)。
分析下这两种方式。
数据集中是一个很理想化的解决方案,因为实际的环境,历史遗留问题和业务的需要很多数据是不可能做成集中式的。就算要这么做成本也太大了。
SOA平台对于现在的中国来说是一个可行的解决方案。相对于数据集中方式来说SOA具有灵活,不入侵,安全,管理方便和易扩展等特性。最重要的一点是它的成本小。
既然SOA能够解决信息孤岛的问题那么为什么在实际的应用中却频频受助呢?
我认为有以下几方面:
第一 平台规范,中国的SOA平台还不成熟,每个公司都有自己的规范。为了解决规范的问题适配器变得非常重要(没有规范带来的麻烦)。在缺少规范的情况下不同SOA平台都属于自己的王国,其它平台无法访问,这样就造成不同平台间的通信问题。更糟糕的是不同平台的信息孤岛访问接口都是按照各自平台标准编写的所以当两个SOA平台要整合的时候会非常的麻烦。
第二 信息孤岛,中国信息孤岛不少,但是愿意开放不多。客户都是希望从别人那里拿到数据而不希望自己的数据被别人看。正所谓巧妇难为无米之炊。
第三 信息孤岛历史数据问题,这也许是SOA平台的性能瓶颈所在。在实际环境中有相当一部分信息孤岛中的信息是没有规范的,甚至很多信息就是垃圾数据,表结构的不合理,没有索引等。这些问题都会让SOA平台的访问能力大幅度的下降。好吧在没有索引的情况下一句查询语句可能要执行几十秒。
第四 字典表带来的烦恼,假设A部门用1表示男性0表示女性,B部门用2表示男性3表示女性。碰见这种问题的时候就带来了一个疑问,B部门要怎么去识别A部门的字典内容呢?这个转换工作由谁来完成?SOA平台,A还是B?如果由平台定义一套标准A和B各自转换那么平台的标准得多大?好像有点不确实际。假如要B去转换那么B就得先知道A的映射,好像也不合适。在碰见这种情况的时候也许我们在发布A服务的时候就应该写一个适配进行转换,或者架设一个服务发布映射管理中心。换汤不换药其实还是定义了一个平台标准。不过现阶段这个问题还是好解决的因为B这端的请求接口还是由平台开发的要不然平台怎么长久赚钱呢?
第五 安全性问题,虽然SOA平台在安全性方面能做到很好但是在实际的环境中平台间传递的还是明文。如果传递密文那么对高访问量或者附带有流程的SOA平台来说是一个很大的性能损耗。
第六 网络的问题,其实网络不存在问题,问题存在于如何让SOA平台能够快速高效实时的传递大数据。好比大于2M的数据库如果用一个XML去传输那么就慢的可以了。分包,断点可以解决问题但是这并不能从根本上解决问题,SOA平台内部怎么减少传输量是一个课题。
第七 题外话,为什么要SOA平台呢?这个疑问确实很难回答。我把服务发布成一个WS接口这样就不信息共享了吗?还要你平台干嘛?没错是这样的。如果单纯是要数据的话这样一点问题也没有,因为一个WS接口不仅可以提供数据而且还能进行安全控制。那么如果我数据是需要从多个地方获取而且有一点逻辑呢?这个时候单纯的靠访问WS接口就不行了,然而SOA的流程可以帮你做到。所以我觉得SOA不是ETL工具,离开了ESB的SOA也不能算是正在意义上的SOA。而现在我国的SOA大多是没有ESB的,就是没有提供流程的。
所以我觉得,我国应该早定义出一个SOA的规范,只有在这个规范的指导下中国的SOA才会得到质的发展。
分享到:
相关推荐
为了实现这样的组件化开发模型,开发团队需要考虑以下几点: 1. 设计明确的接口模型:定义BC的输入输出参数,确保与其他组件的交互清晰无误。 2. 确立内部结构模型:合理划分组件的职责,保证每个BC具有单一职责原则...
然而,随着市场的快速收缩,至少有三十到四十家SOA厂商已被大型企业收购,这一趋势引发了对SOA未来命运的思考。 对于那些被并购的SOA厂商的股东和投资者而言,这是一个积极的信号,因为它通常代表着资产的优化和...
在实现中台概念的过程中,需要关注几个关键点: 1. 数据连接:包括但不限于3D数据、图纸、库存、供应商信息等关键业务数据的连接与聚合。 2. 图形化模型聚合:使复杂的业务逻辑以图形化的方式表现,便于快速理解和...
本文主要探讨了基于Android的网络应用程序开发,涉及到 Android 架构、应用程序层、Android 开发的应用、AndroidManifest.xml 配置文件、SOA 模式、网络应用开发、前端开发等多方面的知识点。 一、Android 架构 ...
### 企业应用架构模式知识点概览 #### 一、企业应用架构模式概述 《企业应用架构模式》(Patterns of Enterprise Application Architecture)是一本由Martin Fowler撰写,并与David Rice、Matthew Foemmel、Edward...
考虑到电子书的标题“软件随想录”,我们可以推测内容可能涉及到软件开发的反思和思考,通常可能包括但不限于以下几个方面: 1. 软件开发方法学:比如敏捷开发、极限编程、TDD(测试驱动开发)和持续集成等开发实践...
实施webMethods与SAP的集成项目时,必须充分考虑以下几点: - **成功价值主张**:明确项目目标,确保所有参与者对预期成果有共同的理解。 - **风险因素**:评估潜在的技术风险、操作风险和市场风险,制定相应的风险...
针对云原生环境的特点,《各类架构类构图整理分享》提供了以下几点思考: 1. **PaaS技术能力平台**:提供软件开发、测试、部署所需的一系列工具和服务。 2. **研发过程管理**:包括需求分析、设计、编码、测试等...
他们需要具备以下几点关键技能和知识: 1. 技术广度:系统架构师需要对各种技术有深入理解,包括操作系统、网络、数据库、编程语言等,以便选择最适合的解决方案。 2. 设计原则:理解并应用设计模式和架构模式,如...
在备考过程中,考生应着重理解以下几点: - **系统分析与设计**:理解和掌握需求分析、系统设计的基本方法,包括UML建模语言、数据流图、实体关系图等工具的使用。 - **架构模式与设计原则**:学习常见的系统架构...
根据李包罗教授的研究,HIS新阶段的主要特征可以归纳为以下几点: 1. **数据存储架构分层**:为了更好地管理和利用海量医疗数据,HIS采取了分层的数据存储架构,包括临床文档库、运营数据库和服务交易系统等多个...
随着科技的发展,新的概念层出不穷,比如从前几年的SOA(面向服务架构)到如今的云计算,IT界总是不断地推出新的技术和理念。尽管如此,扎实的基础加上较强的学习能力依然是应对变化的关键。 **具体而言**,公司...
本文将深入探讨“架构设计资源(3)”中提供的几个关键知识点,这些资源涵盖了架构设计的多个方面。 首先,"开发架构大总结.mht"很可能是一个综合性的文档,它可能对各种开发架构进行了全面的梳理,包括但不限于...
这篇内容可能会涵盖以下几个关键知识点: 1. **流程银行理念**:流程银行是一种将银行业务流程化、标准化和自动化的管理思想,旨在打破传统部门间的壁垒,实现业务流程的端到端优化。它强调以客户为中心,通过流程...
4. **系统架构设计**:涵盖企业级系统架构的规划与设计,包括系统架构风格、服务导向架构(SOA)、云计算架构、安全性设计等方面。考生应能根据业务需求选择合适的架构策略,并考虑系统的可扩展性、可用性、安全性和...
因此,模拟题目的设计通常会围绕以下几个核心知识点展开: 1. **需求工程**:这是系统分析师的基础,包括需求获取、分析、表述和管理。考生应能理解和运用各种需求工具有效地进行需求分析,如用例图、数据流图、...
### 关于《Real World Java EE Patterns: Rethinking Best Practices》的重要知识点 #### 一、简介与背景 《Real World Java EE Patterns: Rethinking Best Practices》是一本深入探讨Java EE开发模式及其最佳实践...