「应用架构」应用架构行为准则

简介: 「应用架构」应用架构行为准则

应用架构行为准则

应用程序架构是企业解决方案架构(ESA)的一个子集(图1)。应用程序架构既是一个过程(架构和设计)又是一个东西(可交付成果——架构的内容)。应用程序架构帮助组织规划其在应用程序解决方案和其他系统中的投资。正在评估、设计和交付的应用程序解决方案必须能够与已建立的解决方案共存。其中包括新开发的应用程序、遗留应用程序扩展、应用程序现代化、购买的应用程序包及其升级。




图1

应用程序架构存在于多个详细级别:


  • 在概念层次上,企业架构(EA)策略和计划确保应用程序组合与其他形式的解决方案架构(业务、技术和信息)协同有效地发展。
  • 在逻辑层次上,应用程序架构超出了企业解决方案架构(ESA)工作的概念层次,它包括设计和重用软件服务和接口,从而提高了开发人员的生产力和应用程序的灵活性、质量和一致性。

应用程序架构的原则适用于所有类型的应用程序方法和解决方案。面向服务的架构(SOA)支持共享软件服务的需求正在推动组织实现应用程序架构师的角色和相关角色,包括SOA卓越中心(CoEs)或能力中心(CCs),以便跨SOA实现计划进行协调。

企业级范围和角色

在概念层次上,企业架构(EA)策略和计划确保应用程序组合与其他形式的解决方案架构(业务、技术和信息)协同有效地发展。

  • 在这个概念级别上,最能实现这些策略和计划以及应用程序架构规程的角色是企业解决方案架构师。
  • 项目级的解决方案和应用程序架构师也可能被要求担任这个角色(或者至少就AA规划问题咨询)。但是,将解决方案架构策略和规划职责与项目设计和实现职责分离是一种最佳实践,否则,两者都无法正确执行。

企业解决方案架构有两个主要级别(图2)-

  • 一个EA级别,包括代表不同架构和观点的各种类型的企业架构师-业务、技术、信息和解决方案(包括AA的概念级别)
  • 一种解决方案/项目级别,在解决方案设计和交付的详细逻辑和实现级别中包含多个架构师和分析师角色。

在EA概念级的细节中,企业解决方案架构师(在其他团队成员和项目级主题专家的帮助下)正在确定可重复的标准和指南,以及可重用的资产和投资,包括与应用程序架构相关的资产和投资,它可以传递给负责项目和个人解决方案的人。



图2

企业解决方案架构师的角色

企业解决方案架构师的角色可以是广泛而富有挑战性的。在大多数组织中,我们看到这个EA角色的两个主要职责领域:

1] 采用ESA的标准化和再利用

企业解决方案架构师将可重复的标准和指南交付给适当的企业解决方案组合,然后将这些以及现在定义/部署的共享服务和资产用于单个项目解决方案工作。



图3

2] 利用企业解决方案架构(ESA)协调当前和未来的状态

  • 根据ESA的现状,决定需要记录哪些内容(并在发生变化时进行更新)。解决方案架构师应确保正确描述每个解决方案。
  • 与其他架构师合作,创建并记录欧空局未来状态的愿景,包括解决与在正确的时间为每个架构的正确更改提供资金相关的业务问题。然后,解决方案架构师应确保每个解决方案都针对其未来状态进行了适当的规划(包括一个解决方案对EA标准和指南的利用,以及解决方案模式中描述的解决方案组合中的那些标准和指南)。
  • 确保合适的人员、流程和技术到位,以实现有效的协作

项目级范围和角色

未能区分解决方案架构师工作和应用程序架构师工作的企业错过了确保单个项目成功和多个项目重用的机会。

  • 应用程序架构师有责任以最大化重用为目标进行设计,并尽可能消除项目、应用程序系统和业务单元之间的冗余和不一致。
  • 虽然解决方案架构师将通过创建可重用的软件和信息服务来促进重用,但相对于为项目团队正在构建、集成和/或部署的特定解决方案定义一个合理、有效和完整的设计,它的优先级较低。
  • 企业解决方案架构(ESA)团队(包括SAs和a as)负责细节和内容的概念级别,包括将哪些标准、指南、可重用资产和投资传递给项目作为起点

解决方案架构师

SAs专注于给定项目的所有架构方面(尽管它们可能一次处理多个项目)。正如企业SA确保ESA团队成员在概念/规划详细级别上的架构协作一样,SAs也确保了项目级别上的架构协作。此外,他们必须完成一个完整的设计,定义解决方案的所有方面,包括但不限于应用程序架构方面。

应用程序架构师

AAs的重点是应用接口和软件服务的设计。与设计应用程序接口和软件服务相关联的强调程度取决于项目方法,以及有多少预先存在的接口和服务可以重用和构建。因此,AAs侧重于应用程序软件(box)之间接口(line)的设计,以及box的设计,以使它们尽可能像应用程序服务那样可重用。AAs有责任设计接口和服务,以提高应用程序的灵活性,最大限度地重用,并尽可能消除项目、应用程序系统和业务部门之间的冗余和不一致。

以下是SA职责与AA职责的比较。



图4

大多数组织最初都将AA的重点放在应用程序接口的设计上,而且有充分的理由——应用程序集成是实现应用程序包以及支持将新的SOA Web浏览器与遗留应用程序和数据集成的一个主要问题。虽然良好的应用程序接口设计解决了稳定性、安全性和性能问题,但也希望尽可能提高业务敏捷性和开发人员的生产力。

  • 具有SOA服务接口设计技能的AA侧重于应用程序接口(行)。
  • AA与SOA软件服务提供商的设计技能侧重于应用程序服务(box)。
  • 具有实现编码技能的开发人员根据AA生成的设计对服务的消费者和提供者实现以及新的应用程序服务(行和框解决方案)进行编码。

以下是AA和应用程序开发团队的职责区别-



图5

相关文章
|
15天前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
6天前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
6天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
31 5
|
7天前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
5天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
5天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
13天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
52 1
|
15天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
51 1
|
18天前
|
前端开发 API UED
深入理解微前端架构:构建灵活、高效的前端应用
【10月更文挑战第23天】微前端架构是一种将前端应用分解为多个小型、独立、可复用的服务的方法。每个服务独立开发和部署,但共同提供一致的用户体验。本文探讨了微前端架构的核心概念、优势及实施方法,包括定义服务边界、建立通信机制、共享UI组件库和版本控制等。通过实际案例和职业心得,帮助读者更好地理解和应用微前端架构。