IT架构师该如何对应用程序实施SOA架构

简介:         围绕SOA的宣传热潮似乎是一浪高过一浪。软件提供商和分析师乐于向媒体提供信息,借此大肆吹捧自己的产品和技术特点。
        围绕SOA的宣传热潮似乎是一浪高过一浪。软件提供商和分析师乐于向媒体提供信息,借此大肆吹捧自己的产品和技术特点。一些提供商声称他们的产品为实现SOA不断努力,另一些人尽管可能正在或多或少的使用着这些产品,但他们更愿意认为SOA在更大的程度上只是一种架构模式。

  不论市场上有什么样的说法,重要的是要认识到任何一个SOA基础架构产品都是实现SOA的方法之一,是人们在实现SOA这一路走到现在的一个里程碑,但同时,这并不意味SOA的完结,SOA本身还要继续发展。平台软件能够为整个企业的服务架构,提供必要的主干网络,但是选择怎样的方案只能依据企业的具体需要来定。

  目前普遍使用的企业服务总线(enterprise service bus,ESB)就是这样一类软件。最近的一些创新产生了一些搔动和困扰。所有的ESB提供商都说使用他们的ESB产品为面向服务的技术架构提供核心组件。然而,大多数提供商仍然是努力组成一个ESB,他们的产品仅仅具有普通ESB应该具备的功能。

  设身处地想象一下,作为IT架构师,负责对应用程序实施SOA架构。你应该作些什么?这真的非常简单,你只需回到业务需求一块,只要服务调节指挥和架构模型能够满足业务需求即可。

   服务调节

  调节(Mediation)并不是一个新概念。在传统的面向对象的文献中,众所周知, 调节者(mediator)是推动“松耦合”(loose coupling)的一种模式, Mediator可以用来控制和协调这些对象间的相互调用,避免他们之间的复杂调用造成混乱甚至死循环,同时使逻辑更加清晰,需要改变某些逻辑时也很容易实现。

  用服务替代上一句中的对象,这样你就可以很好地理解什么是服务调节。然而, 在SOA中服务调节不仅可以用来控制和协调这些服务间的相互调用(尽管这种相互间的调用是一个好的开始)。在强调技术中立性的服务世界里, 基于XML的信息交互作用更可以使多事情都变成可能,只要你在服务生产者和服务消费者之间放置一合格的调节者。

   传输协议转化

  通常,服务提供商基于某种传输协议(例如HTTP)提供服务,而服务消费者只能通过另一种不同的协议(比如MQ)通信。 因此,也许需要在服务提供商与消费者之间建立一座异步起动同步运行的连接桥梁,超越HTTP和Java Messaging Service消息服务(JMS)等协议.从技术角度讲, Java Messaging Service消息服务(JMS)并不是一种传输协议,而是一组供应商中立(vendor-neutral)的通信APIs。正如图1所示,异步Web服务实施通常表现为 “简单对象访问协议(SOAP)服务在JMS之上,”而在使用传输协议的背后是供应商特定(vendor-specific)的,如MQ或Tibco RV。

  这种现象在有很多遗留软件的环境中非常普遍,这些遗留软件的服务已被开启,而其它应用程序却因为传输协议不配不能使用这些服务。与其建立一个新的协议适配器或在执行服务提供商的基础上实施异步起动同步运行桥梁,还不如让调节者来解决这些差异不同,做必要的转换。这样服务开发人员只需要集中精力解决服务逻辑问题,可以让基础结构软件负责调节责任。

   数据格式转化

  即使在同一机构中,不同部门对于业务实体的定义也会不一样。财务部可能有特别的客户结构,它区别于从开发帐单角度定义的客户。这种情况下,一个开发帐单中与客户相关的服务就不能在没有弄清数据模型区别的情况下采用财务部的服务。

  你可以努力使每个人都接受一个公共的定义(如使用被提议的标准数据模型),不过这种方法在大型机构中可能并不十分有效。最好的方法就是让斡旋组件来解决不同格式的转化问题.甚至可以让服务接口只处理标准数据模式,不过服务消费者则将需要配置斡旋组件来转化其数据格式,使之成为服务提供商要求的数据格式。

   执行服务政策

  让调节者来解决服务提供商与服务消费者之间的交互问题,这使得在两者之间阻止XML传输变得十分简单,需要采取必要的步骤来保证政策的执行—例如以适当审查,日志监测和安全检测的方式。

  其次,以调节组件代替这些横切关注点(cross-cutting concerns)使服务开发人员不需要一定在服务层满足调节需求.当然,如果这是你面临的唯一调节需求,那么实施像面向方面编程(Aspect-oriented programming,AOP)这样的基于技术的横切解决方案是最划算的。

   服务处理器传输途径

  传输途径和过滤器架构模式介绍了多用途消息预处理程序和后置处理程序如何提高消息处理循环速度。一个调节平台能够以宣告的形式为服务呼叫构成这样的过滤器,允许我们通过改变过滤器配置,改变这些呼叫预处理和后置处理组件的顺序。

  这些预处理程序包括消息内容基础上的服务路径,背景或业务规则,消息富集,消息加密/解密,消息复制等等(如图1)。在这里,调节的核心价值不是在于能够提供一些开发者无论如何都要创建的处理程序,而是在于它能在宣告的形式下使任意处理程序的组合变得简单易行。

   服务呼叫与调度

  还记得关于服务提供商与服务消费者之间“松耦合”(loose coupling)的部分吗?如果服务消费者直接与服务提供商相互作用,那么在不影响服务消费者的情况下改变服务提供商的接口(不是实施,无论如何实施独立于接口)会是个难题。换句话说,服务消费者永远都与服务提供商紧紧地联系在一起。

  然而,如果服务消费者只与中间人调节相互作用,同时调节服务保证不改变它与服务消费者接口,那么很显然调节者可以为不同版本的服务派发服务呼叫,甚至是对不同服务接口。很明显,这种情况下仍然需要调解诶(就是必要的转化),但是重要的是,它使服务消费者与服务提供商相对独立。

   服务编制

  与服务调节不同,服务调节本质上就是配置一个中间组件作为实时中间件的一部分,而编制具备与服务内容和服务实施相关的功能。编制技术也是基于中间件,它能建立一个高度集中的架构,来管理设计业务流程的定义以及业务流程逻辑的操作执行。 
相关文章
|
10月前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
364 8
|
10月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
762 6
|
11月前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
11月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1704 0
|
10月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
462 0
|
12月前
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
556 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
12月前
|
机器学习/深度学习 数据采集 存储
技术赋能下的能源智慧管理:MyEMS 开源系统的架构创新与应用深化
在全球能源转型与“双碳”战略推动下,MyEMS作为基于Python的开源能源管理系统,凭借模块化架构与AI技术,助力重点用能单位实现数字化、智能化能源管理。系统支持多源数据采集、智能分析、设备数字孪生与自适应优化控制,全面满足国家级能耗监测要求,并已在制造、数据中心、公共建筑等领域成功应用,助力节能降碳,推动绿色可持续发展。
391 0
|
10月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。