【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

组件组合的策略与技巧

  • 2008-01-11
  • 本文字数:898 字

    阅读完需:约 3 分钟

自 20 世纪 90 年代以来,组件技术一直在持续发展。随着 Spring 的出现和依赖注入模式的发展,它们到了一个新的转折点,开始提供先进的组合机制。

前几周,SAP Labs 的标准架构师 Sanjay Patil 发表了一篇名为服务组件体系结构的 IT 场景的文章,描述了一些服务组件体系结构(SCA)提供的组合策略。

上个月,一个 IBM 的团队比较了不同的组件技术,以及各种组件技术对组合的支持程度。这篇文章首先定义了一些促使组合机制的属性:

  • 接口耦合
  • 数据(类型系统和消息格式)
  • 版本弹性(译注:即接口的版本对消费者的影响)
  • 转换独立性
  • 预期的交互模式
  • 会话
  • 仲裁能力
  • 动态性

对 Sanjay 来说,两个最重要的因素是:转换独立性,它导致部署的灵活性;动态性,在 SCA 中可利用策略达到。

IBM 的文章也探讨了影响组件粒度的很多因素,它支持当前行业共识:

一般说来,松散耦合的组件是粗粒度的,而紧耦合的组件更可能是细粒度的。

这篇文章声称:

SCA 在两个坐标轴上提供组合:引用组合与实现组合

  • SCA 组件可以这样组合服务:以一个单一调用编程模型(它独立于服务部署的位置和方式)来编制那些服务的调用模式。
  • SCA 还可以通过实现来提供组合:通过把一组细粒度的组件装配成一个粗粒度组件的实现。

Sanjay 把他们的分析分享出来,他认为:

  • 在一个自底向上的组合场景里,一个应用是通过装配现有的不同实现部件 [而组合在一起的]
  • 在一个异构的组合场景里,……SCA 允许将结构化逻辑以及相关的功能(例如映射等)作为第一级别的组件,这些组件与其它组件的关系将被作为一个定义良好的组合的一部分。

然而,他也描述了另一个场景,一个“自顶向下”的场景:

……采用相反的方式来创建组合 [……] 装配器的目标是分析高层业务需求,并在一些仍需实现的组件的顶层创建组合。

IBM 的文章总结:

SCA 的一个强大之处在于它的整合各种各样的细粒度组件模型的能力,而这些模型过去一般被用来实现粗粒度的服务组件。通过模型化全局解决方案的结构,提供机动性与灵活性,以及无需在实现代码中定义复杂的配置细节,SCA 给它们中的每一个带来价值。SCA 还有一个优点,它能把整个解决方案中不同部分的不同组件模型连接起来。

查看英文原文: Component Composition Strategies and Tactics

2008-01-11 20:01876
用户头像

发布了 29 篇内容, 共 36182 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

Android春招面经分享:一个Android渣渣终于拿到了一个offer

android 程序员 移动开发

Android架构之LiveData组件,原理竟然是这

android 程序员 移动开发

Android知识笔记:记录 2 个 “容易误解(1),【干货】

android 程序员 移动开发

Android知识笔记:记录 2 个 “容易误解,网易的朋友给我这份339页的Android面经

android 程序员 移动开发

微信朋友圈的高性能复杂度分析

stars

架构训练营

Android架构组件JetPack之Room(三),Android大厂74道高级面试合集

android 程序员 移动开发

Android模拟面试,解锁大厂—,这些面试题你会吗

android 程序员 移动开发

Android第三方库收藏汇总,移动应用开发框架

android 程序员 移动开发

Android架构设计——MVC,flutterrow居中

android 程序员 移动开发

Android热修复基础篇(一),flutter图片压缩

android 程序员 移动开发

Android篇:2019初中级Android开发社招面试解答(中,跨平台app开发框架排名

android 程序员 移动开发

Android程序员的Java后台学习建议,2021最新Android中级面试题目汇总解答

android 程序员 移动开发

Android网络优化攻略,简单了解一下?,图文详解

android 程序员 移动开发

自动驾驶汽车如何工作? 易筋 ARTS 打卡 Week 74

John(易筋)

ARTS 打卡计划

Android源码-一文带你搞懂OkHttp,kotlin高阶函数

android 程序员 移动开发

Android热修复基础篇(二),android设计模式面试题

android 程序员 移动开发

Android篇:2019初中级Android开发社招面试解答(上,作为Android开发者

android 程序员 移动开发

Android系统架构与系统源码目录,灵魂一问-如何彻底防止APK反编译

android 程序员 移动开发

Android性能优化:这是一份全面&详细的内存优化指南,Flutter最新开源框架

android 程序员 移动开发

Android插件化主流框架和实现原理,一举拿下腾讯美团滴滴offer

android 程序员 移动开发

Android系统启动流程(一)解析init进程启动过程,安卓移动开发基础案例教程

android 程序员 移动开发

【LeetCode】删除链表中的节点Java题解

Albert

算法 LeetCode 11月日更

Android数据库的使用(增删改查),移动开发工程师

android 程序员 移动开发

Android文件系统总结——从-Android-Q-,面试必备知识点

android 程序员 移动开发

Android研发大厂面试记:阿里,字节,腾讯android面试题目

android 程序员 移动开发

Android程序员现状:没有架构师的命,却得了架构师的病

android 程序员 移动开发

Android技能树 — Activity小结,【深夜思考

android 程序员 移动开发

Android插件化-Service篇,flutter通知推送

android 程序员 移动开发

Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)

android 程序员 移动开发

Android源码解析——Handler,看完直接跪服

android 程序员 移动开发

Android组件化开发的意义何在?,androidui开发框架

android 程序员 移动开发

组件组合的策略与技巧_SOA_Jean-Jacques Dubray_InfoQ精选文章