从业务架构到应用架构技术剖析

news2024/9/25 9:28:21

86437a1004acd2fd23ed9a3f8e6eb7c2.jpeg 

从业务架构到应用架构   

4A架构理论,一个企业级架构框架,将企业架构(EA)划分为四大核心领域,每个领域都聚焦于组织的不同维度。该理论提供了一种结构化的设计和理解企业运作方式的方法,确保技术解决方案能够紧密配合业务目标和战略。

31234852c28c1697c447934e0c4ba6a1.jpeg

业务架构与应用架构,是企业架构设计中的双璧。它们从不同视角揭示企业的业务及IT脉络。本文将为您精要解读这两大架构。

一、     业务架构和应用架构的概念

"商业架构",这是企业整体构造的蓝图,涵盖业务模型、业务流程、组织结构和技术框架等多个维度。特别地,业务流程是企业在追求特定业务目标或成果过程中所进行的一系列活动,如新产品开发、订单处理和客户服务等。只有深入理解这些流程,我们才能洞察业务活动、服务、模块或组件的功能及其相互关系,从而为后续的架构设计奠定坚实的信息基础。

“应用架构”指的是特定软件系统或应用程序的架构,包括其组件、交互和关系的设计。

1. 业务架构:

关注企业的业务模型、业务流程、业务组件以及它们之间的关系。

从业务角度描述企业的运作方式,定义业务的目标、职责、规则和约束。

业务架构的目的是优化业务流程,提高业务效率和敏捷性,支持企业战略的实现。

业务架构通常由业务领域专家和业务分析师负责设计和维护。

2. 应用架构:

关注支持业务的IT应用系统、应用组件、服务以及它们之间的关系。

从技术的角度描述如何通过IT系统来实现业务功能和流程。

目的是设计高效、可扩展、可维护的应用系统,满足业务需求和性能要求。

应用架构通常由IT架构师和开发人员负责设计和实现。

3. 业务架构和应用架构的区别和联系:

不同项

业务架构

应用架构

关注点

业务模型和流程

IT系统和技术实现

抽象级别

业务架构处于更高的抽象级别,关注业务的逻辑结构和关系

处于更低的抽象级别,关注具体的应用系统和技术组件

演进驱动因素

业务战略和业务模式的变化

技术发展和业务需求的变化

设计主体

由业务领域专家设计

由IT技术专家设计

虽然业务架构和应用架构有所区别,但它们之间存在着紧密的联系和映射关系。

应用架构需依据业务需求,巧妙设计服务与组件,助力业务流程的自动化与优化。同时,业务架构也需兼顾应用架构的限制和能力,确保业务模型及流程的落地实施。

在实践中,业务架构与应用架构需协同设计、演进,确保业务与IT战略一致且持续创新。有效融合两者,企业能灵活应对市场变化,提升业务韧性和运营效率,实现数字化转型与可持续发展。

业务架构图示例:PLM管理的端到端研发流程,从市场需求到生产制造全过程。

c303990946fac6aac54523b8724d0e71.jpeg

c3e479dec88f4c43a4191c4cdfd5f3af.jpeg

为了得到业务架构的关键信息,需要收集和分析以下几个方面的信息:

业务战略:了解企业的业务目标、愿景、使命和价值观念。

业务模型:了解企业的业务模型、收入来源、成本结构和价值链。

业务流程:了解企业的业务流程、操作流程和管理流程。

组织结构:了解企业的组织结构、部门设置和职责分配。

业务能力:了解企业的业务能力、核心竞争力和技术优势。

客户和市场:了解企业的客户群体、市场需求和竞争格局。

业务数据:了解企业的业务数据、数据流和数据管理方式。

技术架构:了解企业的技术架构、系统架构和基础设施。

业务挑战:了解企业面临的业务挑战、问题和机遇。

二、从业务架构到应用架构转换的原则

1. 依据业务架构中业务组件转换为应用服务原则

业务架构通过深入分析和抽象,确立了一系列业务组件及其相互联系。在转化为应用架构时,需依据这些组件设计相应的应用服务。每个服务承载特定功能,通过服务间的组合与编排实现完整业务流程。

某制造企业研发部门在设计新产品时,巧妙划分了需求管理、概念设计、详细设计、仿真验证、样机试制等核心环节。基于这些环节,我们构建了一套完整的应用架构,包含需求管理、概念设计、详细设计、仿真验证和样机管理五大服务,各司其职,共同推动产品创新。

86ef8bed7b025987654d519886751625.jpeg



某制造企业研发部在设计新产品时,巧妙划分了PLM(产品生命周期管理)、CAD(计算机辅助设计)、CAE(计算机辅助工程)及CAPP(计算机辅助工艺规划)等业务环节。在构建应用架构时,依据这些环节,精心打造了PLM、CAD、CAE与CAPP等应用服务,各司其职,共同完成功能使命。

0f0919d151d44146af7f66388fa32d4a.jpeg

2. 根据业务流程形成应用集成关系原则

业务架构不仅描绘业务组件,还描绘业务流程与组件间的互动。应用架构据此设计服务间集成关系,实现流程与服务的完美融合。

通过精心编排服务和流程设计,将零散的应用服务整合为流畅的业务流程,并明确服务间的调用联系。同时,要关注服务的松耦合性,尽量采用标准协议和接口实现服务互联,以减少服务间的依赖。

在新品研发流程中,需求管理是开端,同时进行概念和详细设计。仿真验证贯穿始终,样机试制则是关键环节。应用架构据此构建了需求管理、概念设计与详细设计之间的调用关系,以及与仿真验证的交互机制,更巧妙地整合了详细设计与样机管理服务。

309c60f4eebdb89d9dbf03f602504928.jpeg

案例揭示:在新品研发过程中,PLM作为开端,主导着产品数据和流程管理;CAD则负责产品设计的模型构建;CAE专注于产品性能的仿真分析;CAPP则制定产品的工艺流程。基于这一流程,应用架构精心规划了PLM与CAD、CAE、CAPP的服务协同关系,确保CAD与CAE的数据无缝交互,同时CAE与CAPP的紧密结合。

04e8ce8ae6bd8600cb1dbbf751198c61.jpeg

3. 形成清晰合理的分层应用架构原则

构建清晰、合理的应用架构分层,包括表现层、业务逻辑层、数据访问层及可选的服务层。此分层设计有助于实现解耦、独立演进和扩展,优化应用性能。

在划分层次时,遵循单一职责原则,确保每层专注于自身任务,降低与其他层的耦合。清晰界定层与层边界和接口,明确调用关系。合理分层架构提升应用内聚性和独立性,有效降低整体复杂度。

案例:研发部门应用架构四层设计。首层为表示层,涵盖需求门户、设计工具等,与用户紧密交互;次层为业务层,包含需求管理、概念设计等,实现业务逻辑;服务层提供仿真计算等共享服务,供业务层使用;底层为数据层,负责研发数据的存储和访问。此分层架构使研发业务与技术实现分离,各层可独立发展。

cc0680b7c072f07474ff088e52074ec7.jpeg

案例:研发部门采用四层应用架构,实现高效运作。首层为表示层,包含PLM门户与CAD工具等,负责用户交互;其次为业务层,涵盖PLM、CAD等核心业务应用,实现业务逻辑;服务层提供PDM和知识库等共享服务,供业务层调用;底层为数据层,负责研发数据的持久存储和访问。此分层架构将研发业务与技术实现解耦,各层独立演进,提升整体效率。

4e0fc00bc18684e248181e833ea404b7.jpeg

三、将业务架构转换为应用架构的步骤:

1. 根据业务端到端的流程,形成集成架构

第三,明确服务间的调用关系,通过服务编排将分散的服务连接成完整的端到端流程。

形成的集成架构要能反映业务的真实场景和要求。

以需求管理为例,企业精心梳理了从客户需求到新产品交付的全流程研发。识别出关键环节如需求管理、概念设计、详细设计等,并为其定义清晰的输入输出和业务规则。基于此,我们构建了覆盖研发全程的集成架构,明确了需求管理服务作为流程触发点,仿真验证与设计服务的迭代调用,以及样机管理服务与采购、生产服务的紧密对接。

b72f06e582e59ac5a159cb4851d8ae6f.jpeg

以PLM服务为典范,企业深度解析了从产品构想到新品发布的全程研发流程。识别出市场需求管理、概念设计、详细设计等关键步骤,并设定了各环节的输入输出和业务规则。据此,我们构建了一个覆盖研发全流程的集成架构,明确了PLM服务作为流程驱动的角色,以及CAD与CAE服务的协同设计,CAPP服务与ERP采购和生产模块的对接等关键整合点。

0b5268150ab95841d6316e383fbda94d.jpeg

2. 遵循SOA设计原则,将应用架构进一步拆分为服务架构

SOA,即服务导向架构,是软件设计的新典范。它以松散耦合的服务集合打造应用程序,提升灵活性、可重用性和易维护性。让复杂问题变得简单,让软件开发更富有成效。

应用架构要进一步向服务化架构演进,需要遵循SOA(面向服务的架构)设计原则:

服务抽象:将应用服务内部的通用功能抽象成独立的基础服务,提高复用性

服务契约:服务对外提供标准化接口契约,明确服务边界,实现服务解耦

服务自治:服务内部要自治,尽量避免对其他服务产生强依赖

服务可复用:将服务设计为可复用的组件,避免重复建设

服务无状态:服务要尽量无状态,降低服务间的耦合度

服务可组合:服务可以灵活组合,快速构建新的应用

在应用架构的支撑下,研发部门深入挖掘并提炼了研发过程中的通用功能服务。这些服务包括产品结构管理(含BOM)、文档管理、工艺知识库和项目管理等,它们构成了一组可重复使用的基础服务。为了增强服务的灵活性和可复用性,我们实施了解耦策略,通过标准接口调用各应用服务。同时,我们采用了自治设计来优化服务内部实现,有效降低了服务间的强依赖。此外,我们还进一步细化了服务的粒度,以组件化的方式提供服务,实现了灵活的组装和编排。

ed2bbe4843ce35ff1b6474187fb694b2.jpeg

3. 应用架构向技术架构映射和落地

应用架构形成后,需要进一步向技术架构映射,并落实到具体的技术产品和组件中。需要根据应用架构选择合适的技术栈、开发框架、中间件产品、基础设施等。要综合考虑性能、可用性、安全性、扩展性等架构目标,合理配置各种技术组件,并做好容量规划、高可用设计、灾备方案等。同时,在项目开发过程中,要结合敏捷开发、持续集成、自动化运维等实践,将应用架构高效落地和交付。例如,ESB(Enterprise Service Bus)软件架构模式,可以将不同的应用程序和服务连接起来,提供一个统一的集成平台,以提高企业的整体性能和效率。

研发部门精心选择了J2EE技术栈,借助Spring框架进行服务开发,利用ESB实现服务集成。数据存储方面,我们选用Oracle数据库来管理研发数据。在应用部署上,我们采用WebSphere进行操作。同时,我们也运用虚拟化技术搭建了高效的开发测试环境。通过引入持续集成工具,我们实现了自动化构建和测试,并通过自动化运维平台,实现了应用的快速部署和动态扩容。

9cbddf0ad00632522e95f1a585fcfb5b.jpeg

4. 应用架构持续优化和演进

应用架构并非一成不变,而是需随业务变化持续优化。定期评审业务战略与架构的匹配度,及时调整不适应部分。关注新技术发展,评估其对架构的影响。建立度量指标,持续监控应用运行状况,评估并优化架构性能瓶颈。通过持续优化,让应用架构紧跟业务发展,成为创新和快速响应的坚实基础。

案例:研发部实施架构评审机制,定期确保业务战略与应用架构的完美对接。借助大数据分析平台,我们深度挖掘产品使用数据,优化需求管理服务。为解决仿真验证服务的性能瓶颈,我们引入了高性能计算集群,显著提升仿真效率。顺应产品智能化趋势,我们引入机器学习服务,进一步强化智能设计能力。我们的架构团队始终关注新技术动态,评估区块链、微服务等新技术对架构的潜在影响,并制定相应的架构演进路线图。

ebd1bbcc1f342b5abe8a2c5a7f4c95f2.jpeg

业务架构向应用架构的演变,是一个持续深化、不断进化的过程。在深入洞察业务本质的基础上,运用架构设计原则和方法,通过服务化、分层和解耦等策略,塑造出灵活、弹性且可演进的应用架构。同时,建立持续优化机制,确保应用架构与业务架构同步发展,实现业务与IT的长期共生和良性循环。

从上述案例,我们洞察了业务架构向应用架构的完美转变,以及业务、应用、技术三个层面的默契协作。制造业研发部门以业务为出发点,运用架构设计原则,通过服务化、分层和集成等策略,塑造出支撑端到端研发流程的应用架构。在此基础上,继续遵循SOA原则优化服务架构,借助技术手段高效实施,建立持续优化机制,确保应用架构与业务的同步发展。

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1920583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端面试题53(在vue中history与hash区别)

在Vue.js应用中,路由(routing)是管理应用程序中不同页面(视图)的重要部分。Vue Router提供了两种路由模式来管理URL:hash模式和history模式。下面详细介绍这两种模式的区别: 1. Hash 模式 原理…

如何在idea安装git,使用gitee?

一、什么是git,git与gitee、GitHub的关系? 1.什么是git? Git 是一个开源的分布式版本控制系统,用于企业项目中程序员协同开发。 2.git与gitee、GitHub的关系是什么? git :Git是一种版本控制系统&#x…

Linux:NFS共享存储

目录 一、NFS基本概述 二、NFS共享文件实验 2.1、安装nfs和rpcbind软件 2.2、修改配置文件设置共享 2.3、创建共享目录 ​编辑 2.4、开启服务 2.5、客户端验证共享目录可访问 三、tcpdump命令 3.1、概述 3.2、简单表达 3.3、过滤规则 ​编辑 3.4、tcpdump常见参数…

Redis分布式锁在高并发环境下的超卖问题

先看这样一段代码,购买商品,扣减库存的逻辑代码 当用户下单,并且调用扣减库存的接口时,先判断商品库存是否还有,因为是秒杀场景下,太多请求都打到数据库,可能会导致数据库崩溃,所以…

[leetcode] largest-divisible-subset 最大整除子集

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> largestDivisibleSubset(vector<int>& nums) {int len nums.size();sort(nums.begin(), nums.end());// 第 1 步&#xff1a;动态规划找出最大子集的个数、最大子集中的最大整…

Djngo项目创建的准备工作【5】

【 一 】搭建纯净模式 核心就是 在安装完drf之后记得在app里面注册rest_framework, # django 默认很多app--》很多表auth 6个表session 表content-type表 # django很多中间件 ​ # 以后我们的项目&#xff0c;可能不用这些东西---》由于带了内置app&#xff0c;这些表就会创建…

MaxViT : 多轴Vision Transformer

本文提出了一种高效、可扩展的多轴注意力模型,该模型包括两个方面:局部注意力被阻塞和全局注意力被扩张。这些设计选择允许在任意输入分辨率下的全局-局部空间交互,只有线性复杂度。还通过有效地将注意力模型与卷积混合在一起,提出了一个新的架构元素,并相应地提出了一个简…

IAR全面支持芯驰科技E3系列车规MCU产品E3119/E3118

中国上海&#xff0c;2024年7月11日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与全场景智能车芯引领者芯驰科技宣布进一步扩大合作&#xff0c;最新版IAR Embedded Workbench for Arm已全面支持芯驰科技的E3119/E3118车规级MCU产品。IAR与芯驰科技有着悠久的合作历史&…

强化学习实战3:Sarsa 与 Q-Learning 算法求解迷宫问题

前置知识 首先实验环境依然是我们之前说的迷宫环境&#xff0c;然后是一些基本术语&#xff0c;应该都是比较熟悉的&#xff1a; 强化学习的算法大概有两类&#xff0c;一类是策略迭代&#xff08;讲究的是策略 Π &#xff09;&#xff0c;还有一类是价值迭代&#xff0c;也就…

电脑 DNS 缓存是什么?如何清除?

DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;是互联网的重要组成部分&#xff0c;负责将人类易记的域名转换为机器可读的 IP 地址&#xff0c;从而实现网络通信。DNS 缓存是 DNS 系统中的一个关键机制&#xff0c;通过临时存储已解析的域名信息&#xf…

lnmp+DISCUZ+WORDPRESS

lnmpDISCUZWORDPRESS lnmpDISCUZ&#xff08;论坛的一个服务&#xff09; l&#xff1a;linux操作系统 n&#xff1a;nginx前端页面的web服务 php&#xff1a;动态请求转发的中间件 mysql&#xff1a;数据库 保存用户和密码以及论坛的相关内容 mysql8.0.30安装&#xff1a…

微信综合购物商城小程序ui模板源码

微信电商小程序前端页面&#xff0c;综合购物商城ui界面模板。主要功能包含&#xff1a;电商主页、商品分类、购物车、购物车结算、我的个人中心管理、礼券、签到、新人专享、专栏、商品详情页、我的订单、我的余额、我的积分、我的收藏、我的地址、我的礼券等。这是一款非常齐…

单相整流-TI视频课笔记

目录 1、单相半波整流 1.1、单相半波----电容滤波---超轻负载 1.2、单相半波----电容滤波---轻负载 1.3、单相半波----电容滤波---重负载 2、全波整流 2.1、全波整流的仿真 2.2、半波与全波滤波的对比 3、全桥整流电路 3.1、全波和全桥整流对比 3.2、半波全波和全桥…

【Linux杂货铺】2.进程优先级

1.进程优先级基本概念 进程优先级是操作系统中用于确定进程调度顺序的一个指标。每个进程都会被分配一个优先级&#xff0c;优先级较高的进程会在调度时优先被执行。进程优先级的设定通常根据进程的重要性、紧急程度、资源需求等因素来确定。操作系统会根据进程的优先级来决定进…

出现 failed to remove xxxx: Invalid argument 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法 前言 这好像是一个Git的一个Bug&#xff0c;对应有个下下策的解决方式 1. 问题所示 Git提交的时候出现如下问题 Git warning:failed to remove debug.log:invalid argumentgit clean -f -1 --F&#xff1a;\xxx failed to rem…

准备工作+1、请求和响应+2、模型和管理站点

Django快速入门——创建一个基本的投票应用程序 准备工作1、创建虚拟环境2、安装django 1、请求和响应&#xff08;1&#xff09;创建项目&#xff08;2&#xff09;用于开发的简易服务器&#xff08;3&#xff09;创建投票应用&#xff08;4&#xff09;编写第一个视图1、编写…

Python(四)---序列

文章目录 前言1.列表1.1.列表简介1.2.列表的创建1.2.1.基本方式[]1.2.2.list()方法1.2.3.range()创建整数列表1.2.4.推导式生成列表 1.3. 列表各种函数的使用1.3.1.增加元素1.3.2.删除元素1.3.3.元素的访问和计数1.3.4.切片1.3.5.列表的排序 1.4.二维列表 2.元组2.1.元组的简介…

mybatis基础语法

Mybatis快速入门 1.需求 使用MyBatis查询所有的用户, 封装到List集合 2.分析 创建maven工程&#xff08;jar&#xff09;&#xff0c;添加坐标创建pojo创建UserDao接口创建UserDao映射文件创建Mybatis核心配置文件SqlMapConfig.xml编写java代码测试 3.实现 准备工作&…

《梦醒蝶飞:释放Excel函数与公式的力量》11.3 ISTEXT函数

第11章&#xff1a;信息函数 第三节 11.3 ISTEXT函数 11.3.1 简介 ISTEXT函数是Excel中的一个信息函数&#xff0c;用于检查指定单元格中的内容是否为文本。如果单元格内容是文本&#xff0c;则返回TRUE&#xff1b;否则返回FALSE。ISTEXT函数在数据验证、条件格式化和逻辑判…

【排序算法】插入排序(希尔排序)

目录 一.直接插入排序 1.基本思想 2.实现 3.特性 1.效率 2.时间复杂度&#xff1a;O(N^2) 3.空间复杂度&#xff1a;O(1) 4.稳定性&#xff1a;稳定 二.希尔排序 1.基本思想 2.实现 3.特性 1.效率 2.时间复杂度&#xff1a;O(N^1.3) ​编辑 3.空间复杂度&#xff…