知识卡片
企业应用的六个典型特征
内容
企业应用(工资单、患者记录、发货跟踪、保险等)没有精确定义,但有六个典型特征共同把它和车辆加油、编译器、电子游戏这类软件区分开。持久化数据:数据要跨越程序的多次运行、甚至跨越硬件和操作系统的生命周期,结构还要能在不破坏已有信息的前提下扩展。大量数据:中等规模系统往往涉及GB级、数百万条记录,数据管理本身成为主要工作。多用户并发访问:即使只有几十上百人,也要处理”两人同时操作同一数据项”的正确性问题,事务管理工具能处理但通常无法对开发者完全透明。大量用户界面屏幕:屏幕数量多、用户技术背景参差不齐,还有大量容易被忽视的批处理过程。需要与其他系统集成:企业很少独立存在,不同时期用不同技术构建的系统(COBOL文件、CORBA、消息系统)风格各异,统一集成技术的愿望几乎从未真正实现。业务逻辑本身”无逻辑”:业务规则里充斥着大量因历史原因、行政妥协形成的”一次性特殊情况”(比如为了配合客户账期临时把到账时间推迟两天),这些逻辑会随时间不断变化,因此必须把它们组织成便于应对变化的结构,而不是指望它天生就是自洽的。六个特征共同说明:企业应用的难点往往不在算法本身复杂,而在于数据的持久性、规模、并发、集成和”不讲道理”的业务规则叠加带来的结构性复杂度。
结构图:
flowchart TB
A["企业应用六个典型特征"]
A --> B["持久化数据:跨越硬件/程序生命周期"]
A --> C["大量数据:GB级/百万条记录"]
A --> D["多用户并发访问:正确性问题"]
A --> E["大量UI屏幕+批处理"]
A --> F["需要与其他系统集成:技术风格各异"]
A --> G["业务逻辑'无逻辑':历史妥协堆积且持续变化"]
参考来源
- 位置:《企业应用架构模式》"引言"之"0.2 企业应用"(源文件:_epub-src/OEBPS/Text/000007.html)
- 结论依据:原文依次说明"企业应用一般都涉及持久化数据……企业应用一般都涉及大量数据……企业应用一般还涉及很多人同时访问数据……企业应用还涉及大量操作数据的用户界面屏幕……企业应用很少独立存在,通常需要与散布在企业周围的其他企业应用集成……接下来的问题是由'业务逻辑'带来的",直接支撑本卡结构图。
- 原始内容:企业应用一般都涉及持久化数据……企业应用一般都涉及大量数据……企业应用一般还涉及很多人同时访问数据……企业应用很少独立存在,通常需要与散布在企业周围的其他企业应用集成……成千上万的这类"一次性特殊情况"最终导致了复杂的业务"无逻辑"