当前位置: 首页 > 科技观察

《应用架构》应用架构行为准则

时间:2023-03-12 08:38:41 科技观察

应用架构行为准则应用架构是企业解决方案架构(EnterpriseSolutionArchitecture,ESA)的一个子集(图1)。应用程序架构既是一个过程(架构和设计)又是一个事物(可交付成果——架构的内容)。应用程序架构帮助组织规划他们在应用程序解决方案和其他系统上的投资。正在评估、设计和交付的应用程序解决方案必须能够与已建立的解决方案共存。其中包括新开发的应用程序、遗留应用程序扩展、应用程序现代化、购买的应用程序包及其升级。图1应用程序架构存在于多个细节级别:在概念级别,企业架构(EA)策略和计划确保应用程序组合与其他形式的解决方案架构(业务、技术和信息)一起有效地发展。在逻辑层面上,应用程序架构超越了企业解决方案架构(ESA)工作的概念层面,包括软件服务和接口的设计和重用,从而提高开发人员的生产力和应用程序的灵活性、质量和一致性。应用程序架构的原则适用于所有类型的应用程序方法和解决方案。面向服务的架构(SOA)支持共享软件服务的需求正在推动组织实施应用程序架构师角色和相关角色,包括SOA卓越中心(CoE)或能力中心(CC),以协调跨SOA实施计划。企业级范围和角色在概念级,企业架构(EA)策略和计划确保应用程序组合与其他形式的解决方案架构(业务、技术和信息)一起有效地发展。在这个概念层面上,最能实现这些策略和计划以及应用程序体系结构规程的角色是企业解决方案架构师。项目级解决方案和应用程序架构师也可能被要求担任此角色(或至少咨询AA规划问题)。然而,最好的做法是将解决方案架构策略和规划职责与项目设计和实施职责分开,否则两者都无法正确执行。企业解决方案架构有两个主要级别(图2)——一个EA级别,包括代表不同架构和观点的各种类型的企业架构师——业务、技术、信息和解决方案(包括AA的概念级别)解决方案/项目级别,具有多个在解决方案设计和交付的详细逻辑和实施级别担任架构师和分析师角色。在EA概念级细节中,企业解决方案架构师(在其他团队成员和项目级主题专家的帮助下)正在识别可重复的标准和指南,以及可重用的资产和投资,包括那些与应用程序架构资产和投资相关的资产和投资,可以将其传递给负责项目和个人解决方案的人员。图2.企业解决方案架构师的角色企业解决方案架构师的角色可能广泛且具有挑战性。在大多数组织中,我们看到这个EA角色的两个主要责任领域:1]标准化和重用采用ESA的企业解决方案架构师,为适当的企业解决方案组合提供可重复的标准和指南,然后使用这些和现在定义/部署的共享单个项目解决方案工作的服务和资产。图32]使用企业解决方案架构(ESA)协调当前和未来状态根据ESA的当前状态,决定需要记录的内容(并在发生变化时更新)。解决方案架构师应确保正确描述每个解决方案。与其他架构师合作创建并记录ESA未来状态的愿景,包括解决与在正确的时间为每个架构的正确更改提供资金相关的业务问题。然后,解决方案架构师应确保每个解决方案都针对其未来状态进行了适当规划(包括解决方案对EA标准和指南的利用,以及这些标准和指南)。确保配备合适的人员、流程和技术以实现有效协作。项目级范围和角色。未能区分解决方案架构师工作与应用程序架构师工作的组织错失了确保单个项目成功和跨多个项目重用的机会。应用程序架构师的责任是以最大化重用为目标进行设计,并尽可能消除项目、应用程序系统和业务单元之间的冗余和不一致。虽然解决方案架构师将通过创建可重用的软件和信息服务来促进重用,但其首要任务是为项目团队正在构建、集成和/或部署的特定解决方案定义合理、高效和完整的设计。低等级。企业解决方案架构(ESA)团队(包括SA和AA)负责细节和内容的概念级别,包括将哪些标准、指南、可重用资产和投资作为起点传递给项目给定项目的所有架构方面(尽管它们可能同时处理多个项目)。正如企业SA确保ESA团队成员之间在概念/规划细节级别的架构协作一样,SA也确保项目级别的架构协作。此外,他们必须完成完整的设计,定义解决方案的所有方面,包括但不限于应用程序架构方面。应用程序架构师AA专注于应用程序接口和软件服务的设计。与设计API和软件服务相关的重点程度取决于项目方法以及可以重用和构建的现有接口和服务的数量。因此,AA着重于应用软件(盒子)之间的接口(线)的设计,以及盒子的设计,使其像应用服务一样尽可能的可复用。AA负责设计接口和服务,以提高应用程序的灵活性,最大限度地重用,并尽可能消除项目、应用程序系统和业务单元之间的冗余和不一致。以下是SA职责和AA职责的比较。图4大多数组织最初将AA重点放在应用程序编程接口的设计上,这是有充分理由的——应用程序集成是实现应用程序包和实现新SOAWeb浏览器与遗留应用程序和数据集成的关键集成的一个主要问题。虽然良好的API设计解决了稳定性、安全性和性能问题,但也希望最大限度地提高业务敏捷性和开发人员的工作效率。具有SOA服务接口设计技能的AA专注于应用程序编程接口(IPI)。AA和SOA软件服务提供商的设计技能侧重于应用程序服务(框)。具有实现编码技能的开发人员根据AA生成的设计对服务的消费者和提供者实现以及新应用程序服务(线路和盒式解决方案)进行编码。下面是AA和应用开发团队的职责区别——图5