OGC网游链技术业务架构与逻辑架构的运行逻辑是什么?

  其实各种业务架构与逻辑架構模式并不是凭空出现的是你写代码到达一定功底的时候自然出现的结果。走的弯路多了就会主动去思考该如何将代码组织的更好,哽符合业务需求与业务架构与逻辑架构标准

  Fowler的《企业应用业务架构与逻辑架构模式》 (Patterns of Enterprise Application Architecture)就是这样一本书,里面详细叙述了企业级开发Φ常用的业务架构与逻辑架构模式对于业务逻辑层,常见的有四种:

事务脚本表模块,活动记录领域模型。见图:

在不同的业务架构与逻辑架构设計方法中出现的软件业务架构与逻辑架构视图种类很多本文介绍最常用的两种业务架构与逻辑架构视图——逻辑业务架构与逻辑架构视圖和物理业务架构与逻辑架构视图,并通过具体案例的分析说明如何运用它们进行业务架构与逻辑架构设计

当观察和描述事物大局的时候,逻辑业务架构与逻辑架构和物理业务架构与逻辑架构是最常用的角度比如,以我们办公室里的局域网为例:从物理角度看所有计算机“毫无区别”地连接到路由器上;而从逻辑角度看呢,就发现这些计算机是有区别的——一台计算机充当文件服务器而其它计算机昰可以访问服务器的客户机。如图1所示

图1  区分物理视角与逻辑视角

同样,在软件业务架构与逻辑架构设计过程中也可以通过区分软件嘚逻辑业务架构与逻辑架构和物理业务架构与逻辑架构,分别从不同的角度设计和描述软件业务架构与逻辑架构

所谓软件业务架构与逻輯架构视图,是指设计和看待整个软件系统的特定视角每个软件业务架构与逻辑架构视图关注系统业务架构与逻辑架构的不同方面,针對不同的目标和用途也就是说,业务架构与逻辑架构要涵盖的内容和决策太多了超过了人脑“一蹴而就”的能力范围,因此采用“分洏治之”的办法从不同视角分别设计;同时也为软件业务架构与逻辑架构的理解、交流和归档提供了方便。

软件的逻辑业务架构与逻辑架构规定了软件系统由哪些逻辑元素组成、以及这些逻辑元素之间的关系

软件的逻辑元素一般指某种级别的功能模块,大到我们熟悉的邏辑层(Layer)以及子系统、模块,小到一个个的类至于具体要分解到何种大小的功能模块才可结束软件业务架构与逻辑架构设计,并不存在一个“一刀切”的标准——只要足够明确简单能够分头开发就可以了。于是在实践中我们往往将关键机制相关的业务架构与逻辑架构设计部分明确到类,而一般功能则到模块甚至子系统的接口定义即可

值得说明的是,功能模块有时容易识别有时却比较隐含。而仳较全面地识别功能块、规划功能块的接口、明确功能块之间的使用关系和使用机制正是软件逻辑业务架构与逻辑架构设计的核心任务所在。对此Ivar Jacobson曾有过极为形象的说法,“软件系统的业务架构与逻辑架构涵盖了整个系统尽管业务架构与逻辑架构的有些部分可能只有‘一寸深’”。

图2展示了一个网络设备管理系统逻辑业务架构与逻辑架构设计的一部分我们借此来举例说明软件逻辑业务架构与逻辑架構设计的3大核心任务:

明确功能块之间的使用关系和使用机制

软件的逻辑业务架构与逻辑架构是业务架构与逻辑架构设计思维的重要方法。在用例技术已经成为捕获功能需求的事实标准的今天逻辑业务架构与逻辑架构的设计往往是从用例分析开始的。基于用例的分析方法使逻辑业务架构与逻辑架构的设计变得比较有序——通过对每个关键用例的分析从逻辑上将用例实现为一组功能块的特定组合,最后综匼这些用例分析成果将一个个独立的协作归纳合并成整个软件系统的逻辑业务架构与逻辑架构。而在用例分析方法产生之前功能模块嘚确定多多少少带有些“硬”想出来的味道,特别是并不直接承载业务功能的模块有时比较容易遗漏直到大规模编程实现阶段才发现。

軟件的物理业务架构与逻辑架构规定了组成软件系统的物理元素、这些物理元素之间的关系、以及它们部署到硬件上的策略

物理业务架構与逻辑架构可以反映出软件系统动态运行时的组织情况。此时上述物理业务架构与逻辑架构定义中所提及的“物理元素”就是进程、線程、以及作为类的运行时实例的对象等,而进程调度、线程同步、进程或线程通信等则进一步反映物理业务架构与逻辑架构的动态行为

随着分布式系统的流行,“物理层(Tier)”的概念大家早已耳熟能详物理层和分布有关,通过将一个整体的软件系统划分为不同的物理層可以把它部署到分布在不同位置的多台计算机上,从而为远程访问和负载均衡等问题提供了手段当然,物理层是大粒度的物理单元它最终是由粒度更小的组件、模块、进程等单元组成的。

物理业务架构与逻辑架构的应用很广泛例如,业务架构与逻辑架构设计中可能需要专门说明数据是如何产生、存储、共享和复制的这时可以利于物理业务架构与逻辑架构,展示软件系统在运行期间数据是由哪些運行时单元如何产生的数据又如何被使用、如何被存储,哪些数据需要跨网络复制和共享等方面的设计决策

由于人们对组成软件系统嘚“物理元素”存在不同看法(如图3所示),所以在实践中物理业务架构与逻辑架构的用法比较宽泛不同的人认为的物理业务架构与逻輯架构也可能不尽相同。因此我们在交流和实践的过程中,应注意区分物理业务架构与逻辑架构所指为何(也正是因为这个原因,实踐中所采用的基于多视图的业务架构与逻辑架构设计方法往往包含更多的视图从而使每个业务架构与逻辑架构视图的职责更加明确。)

從逻辑业务架构与逻辑架构和物理业务架构与逻辑架构到设计实现

逻辑业务架构与逻辑架构和物理业务架构与逻辑架构是软件业务架构与邏辑架构设计的重要方面逻辑业务架构与逻辑架构致力于将软件系统分解成不同的逻辑单元,并规定这些逻辑单元之间的交互接口和交互机制物理业务架构与逻辑架构则更重视软件系统运行时的动态结构,以及组成软件系统的目标程序如何部署到硬件上

在后续的详细設计和编程实现中,将贯彻和利用逻辑业务架构与逻辑架构和物理业务架构与逻辑架构设计中制定的业务架构与逻辑架构决策如图4所示。

逻辑业务架构与逻辑架构中关于职责划分的决策体现为层、子系统、模块等的划分决定,从静态视角为详细设计和编程实现提供切实嘚指导;有了分解就必然产生协作逻辑业务架构与逻辑架构还规定了不同逻辑单元之间的交互接口和交互机制,而编程工作必须实现这些接口和机制 所谓交互机制,是指不同软件单元之间交互的手段交互机制的例子有:方法调用、基于RMI的远程方法调用、发送消息等。

臸于物理业务架构与逻辑架构它关注的是软件系统在计算机中运行期间的情况。物理业务架构与逻辑架构设计方案中规定了软件系统如哬使用进程和线程完成期望的并发处理、进程线程这些主动对象(Active Object)会调用哪些被动对象(Passive Object)参与处理、交互机制(如消息)为何等等问題从而为详细设计和编程实现提供了工作目标的动态视图。

下面通过一个实际案例的分析来帮助领会逻辑业务架构与逻辑架构和物理業务架构与逻辑架构这两种业务架构与逻辑架构视图对业务架构与逻辑架构设计的指导作用。

该案例是某型号设备调试系统设备调试员通过使用该系统,可以察看设备状态(设备的状态信息由专用的数据采集器实时采集)、发送调试命令该系统的用例图如图5所示。

首先根据功能需求进行初步设计进行大粒度的职责划分。如图6所示

之后,还有很多与逻辑业务架构与逻辑架构设计相关的工作要做例如,图7所示的CRC卡描述了上面的三层业务架构与逻辑架构每一层的职责与协作者:

应用层负责设备状态的显示并提供模拟控制台供用户发送調试命令。

应用层使用通讯层和设备控制层进行交互但应用层不知道通讯的细节。

通讯层负责在RS232协议之上实现一套专用的“应用协议”

当应用层发送来包含调试指令的协议包,由通讯层负责按RS232协议将之传递给设备控制层

当设备控制层发送来原始数据,由通讯层将之解釋成应用协议包发送给应用层

设备控制层负责对调试设备的具体控制,以及高频度地从数据采集器读取设备状态数据

设备控制指令的粅理规格被封装在设备控制层内部,读取数采器的具体细节也被封装在设备控制层内部

软件最终要驻留、安装或部署到硬件才能运行。軟件的物理业务架构与逻辑架构关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器以及如何部署机器和网絡来配合软件系统的可靠性、可伸缩性等要求。

多个逻辑层(Layer)可以映射到一个物理层(Tier)这是很多从事分布式开发的读者都了解的。茬进行设备调试系统的物理业务架构与逻辑架构设计之时也体现了这一点。如图8所示设备调试系统共包含2个物理层:桌面部分和嵌入蔀分。作为逻辑层的应用层和通讯层最终将成为桌面部分而设备控制层最终成为嵌入部分。

物理层作为组成软件系统的物理单元最终叒要映射到具体的硬件,这也是物理业务架构与逻辑架构设计要考虑的对于分布式软件系统的设计而言尤其不可或缺。图9展示了这一点可以看出,设备控制部分驻留在调试机中(调试机是专用单板机)而桌面部分以常见的“Windows可执行程序”的形式运用于PC机之上。

我们还鈳能根据具体情况的需要通过物理业务架构与逻辑架构视图更明确地表达具体目标模块及其通讯结构,如图10所示

图10 设备调试系统的物悝业务架构与逻辑架构

从简单系统到复杂系统的变化,对业务架构与逻辑架构设计的冲击决不仅仅是量变的问题通过引入了软件业务架構与逻辑架构视图的概念,有助于软件业务架构与逻辑架构师控制业务架构与逻辑架构设计的复杂性

软件业务架构与逻辑架构视图的概念和软件业务架构与逻辑架构基本概念是完全相容的,后者针对软件系统的整体目标而前者针对特定目标子集,这样一来重点突出了,问题明确了软件业务架构与逻辑架构师的经验也就活跃了起来。

逻辑业务架构与逻辑架构和物理业务架构与逻辑架构相分离的设计方法在软件实践中比较常用逻辑业务架构与逻辑架构和物理业务架构与逻辑架构是软件业务架构与逻辑架构设计的重要方面。逻辑业务架構与逻辑架构致力于将软件系统分解成不同的逻辑单元并规定这些逻辑单元之间的交互接口和交互机制。物理业务架构与逻辑架构则更偅视软件系统运行时的动态结构以及组成软件系统的目标程序如何部署到硬件上。

首先明确应用业务架构与逻辑架構的定义从百度百科上即可了解到何为应用业务架构与逻辑架构:

应用业务架构与逻辑架构(Application Architecture)是描述了IT系统功能和技术实现的内容。應用业务架构与逻辑架构分为以下两个不同的层次:

  • 企业级的应用业务架构与逻辑架构:企业层面的应用业务架构与逻辑架构起到了统一規划、承上启下的作用向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能在企业业务架构与逻辑架构中,应用业务架构与逻辑架构是最重要和工作量最大的部分他包括了企业的应用业务架构与逻辑架构蓝图、业务架构与逻辑架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。
  • 单个系统的应用业务架构与逻辑架构:在开发或设计单一IT系统时设计系統的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑到后台数据是如何业务架构与逻辑架构的。这方面的工作一般属于項目组而不是企业业务架构与逻辑架构的范畴,不过各个系统的业务架构与逻辑架构设计需要遵循企业总体应用业务架构与逻辑架构原則

简而言之,应用业务架构与逻辑架构图分为两类一类为多系统应用业务架构与逻辑架构,用来分层次说明不同系统间的业务逻辑关系、信息流、系统边界等等一类为单系统应用业务架构与逻辑架构,用来分层次说明系统主要组成模块和功能点之间的业务逻辑关系

從应用业务架构与逻辑架构图的描述方式或岗位角度而言,又分为系统功能性业务架构与逻辑架构图(或叫业务业务架构与逻辑架构图)囷系统技术层次业务架构与逻辑架构图(或叫技术业务架构与逻辑架构图)两者的差异如下:

一般而言,由于现互联网公司产品经理越來越聚焦于功能设计和业务决策而技术人员则越来越聚焦于技术设计。所以对于产品经理而言业务架构与逻辑架构图的运用则侧重在業务业务架构与逻辑架构图上,技术业务架构与逻辑架构图则由技术经理负责当然产品经理如果也有技术背景,有能力理解技术业务架構与逻辑架构图则更好

下面分别引用网上大神所做的业务架构与逻辑架构图例子来说明何为业务业务架构与逻辑架构图,何为技术业务架构与逻辑架构图

技术业务架构与逻辑架构图,来源于网络侵删

由上图可见,技术业务架构与逻辑架构图的特点在于用技术语言来描述系统的七个层级

业务业务架构与逻辑架构图可以按多系统业务业务架构与逻辑架构图和单系统业务业务架构与逻辑架构图进行说明。

來源于《深度|从一个故事说起谈谈企业应用业务架构与逻辑架构的演变史》,作者杨堃侵删)

由上图可见,业务业务架构与逻辑架构圖是从业务逻辑的视角出发为产品经理整齐地展现出一个企业各类系统之间的层次和关系。在产品大神杨堃的《深度|从一个故事说起谈谈企业应用业务架构与逻辑架构的演变史》一文中,形象地为我们描述了业务业务架构与逻辑架构图从无到有的过程非常值得各位產品人学习的。下面就根据大神的经验说一下自己对业务业务架构与逻辑架构图的理解

业务业务架构与逻辑架构图按照层次结构可以分為经典的三层结构:展现层、业务逻辑层和数据层,而上图作者在该基础上又分别对展现层和业务逻辑层做了细分在上图的基础上其实還可以加上一层运维层来说明系统所需要的硬件条件。对于单个系统的业务架构与逻辑架构图而言尤其重要

使用多系统应用业务架构与邏辑架构图还有一个好处在于,每当有新增的子系统时可以提前预判是否需要共用哪些单元或者业务逻辑。例如是否用同一套账户体系这对产品前期开发至关重要。

对于一个从0到1的项目而言产品经理除了要了解这个项目在整个企业应用业务架构与逻辑架构中的定位,還要对整个系统的模块和功能有着清晰的分层次设计和了解所以产品经理就不仅需要多系统业务业务架构与逻辑架构图,也需要单系统業务业务架构与逻辑架构图

由上图可以看出,单系统应用业务架构与逻辑架构图分层可以和多系统应用业务架构与逻辑架构图一致但昰每个层次里面的说明单元就变成功能模块,而非子系统

应用业务架构与逻辑架构图看起来和具体功能设计没太大关系,但心中存在这┅张图时可以从整个大局去设计系统,做好提前布局避免后期出现巨坑。

发布了0 篇原创文章 · 获赞 18 · 访问量 4万+

我要回帖

更多关于 业务架构与逻辑架构 的文章

 

随机推荐