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

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.mzph.cn/diannao/45336.shtml

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

相关文章

用Apipost压力测试接口

用Apipost压力测试接口 1.点击自动化测试 2.选择要测试的接口 3.如果没有接口,就先在api调试中添加要测试的接口 4.根据自己的需求设置相应的参数,这里我压测10次 5.这样就可以压测接口了,非常nice

LayoutLMv1

近年来,预训练技术在各种NLP任务中得到了成功的验证。尽管NLP应用程序广泛使用预训练模型,但它们几乎只关注文本级操作,而忽略了对文档图像理解至关重要的布局和样式信息。在本文中,我们提出了LayoutLM来联合建模文本和布局信息在…

webstorm问题解决:无法识别 @

问题解决tsconfig.json 问题 本地的 vite.config.ts 已经配置 路径 但是,我用webstorm 上识别不了 解决 新增文件tsconfig.json,添加 baseUrl 和 paths 的配置,以告诉 TypeScript 和 WebStorm 如何解析路径别名 tsconfig.json {&quo…

2006-2021年 291个地级市资源错配指数、劳动和资本相对扭曲指数do文件和结果

资源错配指数:衡量生产要素配置效率的关键指标 资源错配指数(Misallocation Index)是一个衡量资源配置效率的指标,它反映了生产要素是否得到了合理配置,以及是否达到了生产效率的最优状态。一个较高的资源错配指数意味…

斐讯N1盒子刷入Armbian并安装Docker拉取网络下行流量教程

一直在跑PCDN,目前主推八米云跟点心云,八米单价比点心更高,业务都一样,直播业务。 两种刷机教程我也发下。 八米云:点此跳转 点心云:点此跳转 最近各运营商对PCDN打击力度加大,需求拉取下行流量…

2024最新修复微信公众号无限回调系统源码下载 免授权开心版

2024最新修复微信公众号无限回调系统源码下载 免授权开心版 微信公众平台回调比较麻烦,还不能多次回调,于是搭建一个多域名回调的源码很有必要。 测试环境:Nginx1.24PHP7.2MySQL5.6 图片:

uiautomator2 多种方式键盘输入

最近做了一个爬虫项目,在向文本框输入的时候,使用了多种方法(包含:send_keys、set_text)等多种方法都无效,最终选择了以下方案得到完美解决。 # 切换输入法 d.set_fastinput_ime(True) op_user_modify d(…

【git】:初识Git 和 Git 的安装

目录 学习 Git 的目标 Git 安装 Linux-centos Linux-ubuntu Windows 学习 Git 的目标 技术目标 掌握 Git 企业级应用,深刻理解Git操作过程与操作原理,理解工作区,暂存区,版本库的含义 掌握 Git 版本管理,自由进⾏…

药监局瑞数后缀补环境教学

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! (联系看首页) 前言 之前用…

vue + echart 饼形图

图表配置: import { EChartsOption, graphic } from echarts import rightCircle from /assets/imgs/index/right_circle.png export const pieOption: EChartsOption {title: {text: 100%,subtext: 游客加量,left: 19%,top: 42%,textStyle: {fontSize: 24,color:…

部署大语言模型并对话

在阿里云的https://developer.aliyun.com/adc/scenario/b105013328814fe995c0f091d708d67d 选择函数计算 设置服务器配置 复制公网地址 这个地址不能直接 在返回应用,创建应用LLM 对话页面 Open WebUI 点击下面的创建应用 部署完成后访问域名 打开访问地址

SpringBoot新手快速入门系列教程十:基于Docker Compose,部署一个简单的项目

前述: 本篇教程将略过很多docker下载环境配置的基础步骤,如果您对docker不太熟悉请参考我的上一个教程:SpringBoot新手快速入门系列教程九:基于docker容器,部署一个简单的项目 使用 Docker Compose 支持部署 Docker 项…

SQL优化之深分页

SQL优化之深分页 我们都知道,大型项目中的SQL语句,应该尽量避免深分页。 那么问题就来了: 深分页的性能差在哪?什么方案能避免深分页呢? 什么是深分页 深分页,即SQL查询过程中,使用的页数过…

3.Softmax回归

回归和分类 回归估计一个连续值 分类预测一个离散类别 Softmax回归实际是一个分类问题 从回归到多类分类 对类别进行一位有效编码 y [ y 1 , y 2 , ⋯ , y n ] T y[y_1,y_2,\cdots,y_n]^T y[y1​,y2​,⋯,yn​]T,如果是第i类,则值为1,否则为0 使用…

用户对生活的需求,是三翼鸟创新的起点

这两天又长知识了,学到了一个网络新梗:City不City。 它源自于一种新的打卡方式,用于表达对某个城市的态度或感受。比如你跟朋友在城市游荡时,就可以随口问句City不City啊?通常被释义为“洋不洋气”“ 时髦不时髦”。 …

部署YUM仓库及NFS共享功能

目录 一、YUM仓库服务 1、YUM仓库概述 2、准备安装源 2.1、软件仓库的提供方式 2.2、 RPM软件包的来源 3、YUM主配置文件 4、软件卸载 5、YUM源的提供方式 5.1、配置本地YUM源仓库 5.2、配置ftp源 5.2.1、服务端配置 5.2.2、客户端配置 二、NFS共享存储 1、NFS基…

Git 删除包含敏感数据的历史记录及敏感文件

环境 Windows 10 Git 2.41.0 首先备份你需要删除的文件(如果还需要的话),因为命令会将本地也删除将项目中修改的内容撤回或直接提交到仓库中(有修改内容无法提交) 会提示Cannot rewrite branches: You have unstaged …

YOLOv10训练自己的数据集(交通标志检测)

YOLOv10训练自己的数据集(交通标志检测) 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用YOLOv10训练自己的数据集进行交通标志检测准备数据进行训练进行预测进行验证 参考文献 前言 由于本人水平有限,难免出现错漏&#xff…

【C++题解】1156 - 排除异形基因

问题:1156 - 排除异形基因 类型:数组基础 题目描述: 神舟号飞船在完成宇宙探险任务回到地球后,宇航员张三感觉身体不太舒服,去了医院检查,医生诊断结果:张三体内基因已被改变,原有…

头歌资源库(24)插入加号

一、 问题描述 二、算法思想 可以使用动态规划来解决这个问题。 首先将数字串拆分为多个数字,用一个数组nums来存储每个数字。例如,数字串79846会被拆分为数组[7, 9, 8, 4, 6]。 然后定义一个二维数组dp,其中dp[i][j]表示在前i个数字中插入…