以语言形式呈现的架构:飞行管理系统产品线的实践探索
1. 引言
在软件系统开发中,架构往往存在两种不良状况。一种是架构过于抽象,主要存在于Word文档中,难以实际操作;另一种则完全由技术主导,如“使用XML架构”,这会将架构概念隐藏在技术炒作背后。对于平台和产品线而言,这种情况尤为棘手,因为明确定义的架构对于确保产品在其生命周期内的可维护性至关重要。
解决之道在于,在开发架构的过程中,创建一种语言来描述基于该架构的系统。这种语言能使架构变得具体,清晰明确地描述架构构建块和具体系统,同时避免过早做出技术决策。基于此语言,还可以在产品线的背景下描述变体。
2. 案例故事
2.1 系统背景
某客户决定构建一个新的飞行管理系统。航空公司利用此类系统来跟踪和发布飞机的着陆情况、是否晚点以及飞机的技术状态等信息。该系统还会为互联网上的在线跟踪系统和机场的信息显示屏提供数据。这是一个典型的分布式系统,由多台运行不同部分的机器组成,有一个中央数据中心负责大量数据处理,还有分布在较大区域的其他机器。
客户有多年构建此类系统的经验,计划推出新一代系统。新系统需要在15 - 20年的时间内不断发展,这就要求进行技术抽象,因为技术在这段时间内可能会经历多次变革。此外,系统的不同部分将采用不同的技术,如Java、C++和C#。由于系统的分布式特性,无法同时更新所有部分,因此需要对系统组件进行版本控制,以确保组件之间的兼容性。而且,实际构建的是一个飞行管理系统的产品线,不同客户会购买、安装和运营不同的系统变体。
2.2 起点状况
当项目开始时,客户已决定采用消息传递基础设施作为系统的骨干,并正在评
超级会员免费看
订阅专栏 解锁全文
2054

被折叠的 条评论
为什么被折叠?



