快捷搜索:

浅谈企业应用架构(一)

一、什么是架构

在牛津高阶词典(第7版)中,架构(architecture)一词的解释是:the design an structure of a computer system,而架构师(architect)一词的解释是:a person who is responsible for planning or creating an idea, an event or a situation.

针对付企业利用,依据不合的关注点,架构可以分为如下几类:

营业架构(Business Architecture):关注于营业及其流程;

利用架构(Application Architecture):关注于利用系统设计;

根基架构(Infrastructure Architecture):关注于根基技巧;

数据架构(Data Architecture):关注于数据存储及其筹划;

这里所说的企业利用架构,即属于利用架构,包括如下几个部分:

1.目标和愿景。即利用系统所面临的问题域。

2.评价指标。从哪些纬度和指标来评价和度量办理规划。

3.原则和措施论。为办理这些问题,所采纳的原则及其措施论。

4.技巧架构。架构的技巧层面,给出响应的设计以及布局,描述利用系统。

5.组织身分。架构的组织层面,组织的各个部分若何介入。

二、架构的目标和愿景

1. 架构的问题滥觞

1.外部,客户要求包括了营业和技巧上。

2.内部,组织治理、项目治理和技巧成长上。

特其余,架构必要办理的非营业问题包括如下:

A.系统目标:系统机能,稳定性等。

B.项目目标:开拓资源,项目质量等

C.项目历程:需求的不确定性和开拓历程的团队协作性,即所谓的开拓治理。

2. 架构的核心问题

问题可分化为两种类型,营业上和技巧上。

1. 营业上。问题域分化为,逻辑的纵向抽象层次,以及逻辑的横向模块分化和集成。

2. 技巧上。问题域分化为,纵向的技巧主题,以及横向的技巧职责的分化和集成。

A.领域化

传统的架构模式是三层或者四层模式,虽然从技巧上有效的横向分化系统布局,但对营业模型若何建立,若何进行层次间通报,模型间关联关系,以及与办事逻辑耦合等问题没有给出进一步的细化,也带来了很多问题。

此外,在传统设计措施下,阐发模型和设计模型的转换也是一个大年夜的问题。

B.组件化

实施组件化或者说模块化,其需求分为两个层面。

1.内部治理,可以赞助开拓历程中进行营业切分,赞助节制进度,低落风险,以及财务阐发;对付大年夜型繁杂的项目,也有利于常识的通报和积累。

2.贩卖必要,All in one的系统因不相符成长趋势而晦气于贩卖;组件化有助于产品贩卖,可以针对客户,将多少组件打包贩卖,同时削减集成的风险。

C.产品化

C.1 定制化问题

定制化问题的由来:1.面向行业的利用平日没有标准,或者完整的标准;2.平日产品的开拓是针对付通用或者公共需求,不针对付特定客户;3.而一个确定的客户,其自身的营业差异和治理差异导致需求的差异性。

这种征象尤其在短缺标准的行业利用中,以及系统的产品化历程中。

传统的简单的办理要领是为每个客户零丁掩护一个系统分支,在此环境下供给掩护和进级,则掩护资源伟大年夜;是以若何办理领域的定制化就成为一个重大年夜问题。

C.2 进级问题

领域需求每次进一步的掘客和实现,都意味着领域的进级。但进级面临的诸多问题:数据迁移,旧版本的兼容问题,依附关联等等,在组件化和定制化环境下,还面临定制化兼容和冲突检测。

C.3 国际化问题

1.文本消息国际化

国际化消息没有直接出现,而是中心存储后出现;

2.结构国际化

阿拉伯人是从右到左;

3.营业光阴,跨时区;

4.计量单位,多币种;

D.平台化

利用系统可以分为两个内容:利用法度榜样和根基举措措施。利用法度榜样处置惩罚营业问题,而根基举措措施处置惩罚技巧问题。

来自客户的要求是包孕营业和技巧两个方面。此中技巧上包括两种“定型和定性”,其所需的常识和技能是不合于营业上的;

此外,内部治理也提出响应的要求。因为技巧的成长和营业成长之间的不合步,对付一个产品而言,同时存在技巧进级和营业进级两个需求。而同时进级存在较大年夜的资源和风险。

同时对付一个产品来说,技巧方面必要较强的适应性,能够低资源上的适应客户的分外要求。

是以有效解藕技巧和营业两个部分成为一定。

3. 架构的利用问题

A.事务治理

数据同等性问题呈现的缘故原由平日是开拓历程中,因为差错的并发和事务节制导致的;而在营业历程中也存在差错的营业操作环境。

B.并发处置惩罚

不合的营业利用存在不合的并发场景(并发度以及存在的营业依附),是以营业上必要明确原则和规划;而不合平台所支持的并发要领和能力也不相同,则采纳必然框架支持有助于简化问题。

C.集成能力

营业利用所面临的集成问题不合,包括不合的集成情况:外部系统,内部系统,遗留系统等;不合的集成模式:基于文件,基于数据库表,基于消息等,导致所需的集成措施及其能力也不合。

4. 架构的设计问题

阐发设计和开拓实现存在着必然的差异性:阐发设计属于常识级,而开拓实现属于操作级的。

阐发设计是需乞降实现的中心桥梁,因而设计必须办理系统界限的合法性,内部逻辑解藕的合理性和实现的可达性(设计的类措施为实现的30%-70%)。而开拓实现需赓续重构代码,采纳约定和框架能力等技巧手段办理开拓的实际问题,办理法度榜样级其余壮实性,可读性,可掩护性以及可测试性。

传统的要领,阐发设计存在于文档中,而开拓实现存在于代码中。两者的割裂导致沟通的艰苦,也导致了开拓工程中具大年夜的风险——阐发设计和终极开拓实现的不同等性。

您可能还会对下面的文章感兴趣: