`
varsoft
  • 浏览: 2508644 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

通过一个真实故事理解SOA监管

阅读更多
SOA监管(SOA Governance)是SOA实施中的一个重要话题,但是很多人都搞不清楚其含义。我采访过很多人,也阅读过一些资料,才基本弄明白。总的感觉是,如果 直白地去讲SOA监管的问题,必然引进大量的新术语,一般开发者实在不容易听懂。如果能够举一个例子,那么大家就容易理解得多。恰好昨天在书上看到一个真 实的故事,很形象地说明了SOA监管的意义。所以不妨跟大家分享一下。这个故事是关于Sun的,当然这类事情实际上曾经发生在很多大型公司里。

在90年代后期,Sun推出了一系列产品,包括Java、Solaris等,他们希望能够尽可能地鼓励用户去使用这些产品,但是当时网速太慢,通过 Internet下载几百兆的软件根本不现实,于是Sun在网站上推出一个电子商务服务,下面我们不妨称之为服务A,你只要通过信用卡付10-20美刀快 递费用,就可以免费获赠Sun的超值产品光盘。被叫去编写这个电子商务服务的程序员当时隶属与内部IT部门,他写了一个在线服务,用来完成信用卡付账交 易。当然,这是一个“子服务”,我们不妨称其为服务Z,这个在线服务Z运行在内网上,采用了今天看来都不落后的体系结构——直接通过HTTP传输加密的 XML消息。很快,服务A对用户见面了,并且工作得很好。

不久之后,这个程序员被调到了Java开发组。当时Sun的Java网站提供一个类似MSDN的Java产品光盘订阅服务,下面不妨称之为服务B,这个服 务每季度向订阅者寄送最新的Java产品光盘。当然,订阅者也要通过信用卡付订阅费。碰巧这项工作又交给了这位程序员来完成。他当然不愿意重写那个很麻烦 的信用卡结帐服务Z,既然原来的那个服务是通过HTTP暴露在内网里的,何不复用之?他就简单地复用了这个信用卡结帐服务Z,完成了任务。这样,在90年 代后半期,这位程序员就率先实现了企业服务的复用。而十年后,服务的复用正是今天SOA追求的目标之一。

这样就形成了一个有趣的局面,即服务A中包含一个子服务Z,而服务B又依赖于服务Z,Z实际上成为了一个公共服务,但是这个秘密只有那个程序员和少数几个人知道,Sun的经理们对此懵然不知。

几年之后,这位程序员离开了Sun,随着他的离去,这个秘密变得更加不为人知。

随着互联网的发展,人们已经习惯于从网上直接下载软件,服务A已经变得越来越过时了。于是终于有一天,Sun的一个经理决定,关闭服务A。结果意想不到的事情发生了,随着A的关闭,服务Z也被关闭了,这就导致服务B全面崩溃,所有的订阅者都无法付款了。

这就是一个缺乏监管的情况下产生的典型事故。在传统的企业IT架构里,当系统仅仅是部门级烟囱系统时,软件模块之间的关系简单,监管不是一个很突出的问 题。而当各部门系统进行整合时,如果采用EAI/ETL方案,则也不大有监管的问题。只有在实施SOA的时候,把传统的烟囱系统打散成为一个个可复用的服 务时,监管的问题就突出了。SOA监管的意图,就是要让各种服务以清晰有条理的方式组合协作起来,并清晰地度量每一个服务的开销,评估每一个服务的开发和 维护所需的技术,确定当服务失效时采取的必要措施。总之,就是要把服务管起来,让它们有组织有纪律的共同工作。如果没有一个监管的制度和计划,那么就会出 现这样的局面:服务与服务之间有什么关系?不知道。服务之间彼此是否依赖?不知道。这两个服务的功能是否重复?不知道。这个服务是否冗余?不知道。开发维 护这个服务需要什么技能?不知道。当用户量增加时,维持这一服务的QoS所需的硬件消耗怎么变化?不知道。当服务崩溃时,谁来接替?往谁那里打电话?是否 有手工流程紧急应对?不知道!一大堆无法无天的服务以谁也想不到的方式攒在一起,任何一个点风吹草动都有可能会天下大乱。这就是缺乏监管的SOA将发生的 局面。这样的SOA,与其说是一个系统,不如说是一团乱麻,一场灾难。

因此,SOA监管对SOA来说,不是可选的,而是必须的,甚至是决定SOA实施成败的关键。
分享到:
评论

相关推荐

    真实世界里的SOA

    例如,一个案例可能讲述了一个企业如何通过SOA将多个孤立的系统集成到一个统一的平台上,实现了跨部门的数据共享和协作。 此外,书中还会涉及服务总线(Service Bus)的概念,如Azure Service Bus,它在云环境中...

    微软SOA架构介绍,便于大家理解SOA

    - **新员工入职流程**:一个典型的SOA应用场景是实现新员工入职流程,通过SOA技术可以显著提高工作效率并减少服务开通时间,同时也能提高客户满意度并创造新的商业机会。 #### 四、SOA实施方法论 **1. 实施步骤** ...

    理解SOA中的服务生命周期-运行时

    这篇文章将探讨SOA服务在运行时的生命周期,以提高对这一阶段的理解。 首先,共享服务生命周期(SSLC)模型如图1所示,为整个讨论提供了指导框架。在运行时阶段,服务工程团队需确保服务能够有效地在实际环境中运行...

    通过Oracle EBS 看SOA

    架构和实施的时候,采用了Oracle Portal以及SSO 单点登陆到BIEE 系统,OA以及Oracle ERP系统等等,幵丏我们的生活中类似SOA”也到处存在啊,我们新房子装修的时候,提前在门口的宽带迚口那准备了一个“HUB(集线器)...

    SOA principles & practice(SOA课程课件 10章)

    最后,通过真实的SOA项目案例,展示SOA在不同行业和场景中的应用,帮助学习者理解SOA在实际工作中的价值和挑战。 通过这套详尽的SOA课程,学习者不仅能掌握SOA的基本理论,还能了解到实际项目中的最佳实践,从而...

    理解SOA中的服务生命周期-设计时

    设计时是服务生命周期的第一个重要阶段,主要涉及服务在被创建、设计和准备部署到生产环境之前的过程。在这个阶段,关注点在于如何确保服务能够满足业务需求,并为未来的变化提供足够的灵活性。 传统的应用程序开发...

    SOA.zip_SOA optical_SOA 光_SOA 半导体_VPI SOA仿真_光放大

    在提供的MATLAB文件"SOA.m"中,我们可以预期找到一个详细的SOA仿真模型,它可能包含了以下部分: 1. **增益模型**:基于半导体材料的能带结构和载流子密度,计算增益谱。 2. **增益饱和**:考虑高功率输入导致的...

    理解SOA中的服务生命周期:设计时

    面向服务架构(SOA)是一种将业务流程分解为基于标准服务的架构方法,旨在促进重用和业务灵活性。服务可以有各种粒度和中心性,如细粒度、粗粒度、以表示为中心或以数据为中心。理解服务生命周期是SOA成功的关键,...

    SOA资源.rar

    总的来说,"SOA资源.rar"为学习者提供了一个全面了解和实践SOA技术的平台,从基本概念到高级特性,从理论到实践,都得到了充分的覆盖。通过这四个实验,学生能够掌握如何构建、部署和管理服务,以及如何使用ESB优化...

    SOA.rar_SOA_SOA 开发

    虽然现在XFire已经被Apache CXF所替代,但在学习SOA和Web服务开发的过程中,XFire仍是一个重要的历史参考。 ### XFire入门 1. **安装与配置**:首先,你需要下载XFire的JAR文件,并将其添加到项目的类路径中。...

    解读SOA :SOA实践方法论

    一个现象 -SOA正在被企业迅速接受 -选择SOA的理由 SOA的方方面面 -什么是SOA?-怎样切入到SOA? -采用什么样的开发流程? -采用什么样的开发方法? -采用什么样的架构? -采用什么样的标准? -采用什么样的编程模型? -...

    SOA作业及要求,soa

    SOA,即Service-Oriented Architecture(面向...通过这次作业,不仅能加深对SOA理论的理解,还能锻炼团队合作、项目管理和技术创新能力,是一次宝贵的学习机会。希望所有参与者能够全情投入,共同探索SOA的无限可能。

    SOAOperation_soa开发_SOA_teamcenter_TeamcenterSOA_

    例如,`SOAOperation.java`可能就是一个Java类,它包含了对Teamcenter SOA服务的调用,实现了创建item、创建folder和查询属性等功能。 在实际应用中,Teamcenter的SOA服务可以帮助企业实现以下目标: 1. **系统...

    IBM soa 培训教材-SOA 治理

    为了更好地理解 SOA 治理的重要性,我们可以参考一个具体的案例。假设某公司推出了一个货币兑换服务,最初该服务只面向财务部门,但随后其他部门也开始使用这一服务。由于缺乏有效的治理机制,导致了以下问题: 1. ...

    SOA概述SOA基础

    服务在理想的场景下指的是一个自给自足、无状态的业务功能单元,它通过定义良好的标准接口接收请求并返回响应。服务能够独立完成特定的任务,并且不应该依赖于其他功能或过程。这里提到的服务具体实现技术并不作为...

    SOA实践指南-分布式系统设计的艺术.pdf

    领先行业的公司中全面推广SOA的第一手经验,解释了SOA如何简化大型应用的创建和 维护。不管你的项目是包含一套巨大的、基于Web Services的组件集,还是需要将老 系统和更现代化的业务流程连接起来,《SOA实践指南...

Global site tag (gtag.js) - Google Analytics