知识卡片
PM Suite案例:综合C/S+B/S的架构风格与技术选型
内容
延续[[PM Suite案例:鲁棒图探索发现架构级决策点]]积累的决策依据,PM Suite最终的架构风格选型是综合C/S和B/S、而不是二选一。理由是不同功能对UI交互密集度的要求截然不同:”制定进度计划”这类功能UI交互比较密集,C/S架构有优势(用惯了MS Project客户端的项目经理会希望用类似的方式操作,架构师甚至考虑过是否能直接采用MS Project、或开发类似的客户端);而很多一般项目成员和高层管理者用到的大量功能,本质上是”信息展示”,B/S架构最合适。这个决策过程可以用[[场景技术的五要素与目标场景决策表]]更清晰地刻画——不同功能场景对应不同的架构风格倾向,最终选择不是非此即彼,而是让两种架构风格分别服务于各自更擅长的功能场景。围绕开发、集成、二次开发三项技术选型,PM Suite的备选决策是:开发技术选用Java;支持二次开发,一是方便本公司在提供整体解决方案时进行”应用集成”,二是提供给其他厂商供其产品调用PM Suite功能,二次开发技术选型暂时只提供API for Java,未来视需要再考虑其他语言的API;必须支持集成,因为PM Suite的互操作性要求明显(第8章”确定关键需求”已重点分析过这一点)——集成技术选型上,PM Suite方案里少数功能需要多系统集成完成,另外数量稍多的情况是”将无关的多个功能统一呈现到某角色的工作台之上”,因此决定Web UI集成和应用集成两种技术都采用:对后一种情况优先用Web UI集成(如Portal技术),因为集成开发比较便捷、PM Suite需要新写的代码量少;其余情况才用应用集成技术(PM Suite调用要集成系统的API、再由自己组织界面展现),这种方式代码量更多,因此只在必要时才采用。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第9章《概念架构设计》"9.6.2 第2步:选择架构风格,划分顶级子系统"及"9.6.3 第3步:开发技术、集成技术与二次开发技术的选型"节(源文件:_epub-src/OEBPS/text00012.html)
- 结论依据:原文说明"这个'制定进度计划'功能,UI交互比较密集,C/S架构有优势……但是,很多一般项目成员和高层管理者用到的大量功能,基本上就是'信息展示',B/S架构最适合……因此,我们决定综合C/S+B/S的好处",并详述开发/集成/二次开发技术选型的具体决策及理由,直接支撑本卡片结论。
- 原始内容:这个"制定进度计划"功能,UI交互比较密集,C/S架构有优势……很多一般项目成员和高层管理者用到的大量功能,基本上就是"信息展示",B/S架构最适合……因此,我们决定综合C/S+B/S的好处,结合使用。