技术架构说明书

2023-10-29

技术架构说明书
1 前言
一个企业级的商业软件能够满足用户需要、正常运行、易于维护、易于扩展,必须拥有一个良好的软件架构支撑。本文主要是分析和构建一个企业级商业软件架构。

2 架构分析
企业级的商业软件架构在技术层面的要求主要体系在高性能、健壮性和低成本。

 高性能
对于企业级商业软件来说,软件架构需要尽可能地使软件具有最高的性能,支持最大的并发性。
对于企业级应用,传统的最高性能的软件架构是Sun较早提出的J2EE架构方案。他通过可缩放性――一个应用在给定相应硬件的条件下支持增加的负载的潜力。简单的说,利用J2EE的分布式特性,使软件可以通过添加服务器等硬件设备来提高性能,增加负载能力。
J2EE为实现分布式体系结构提供了出色的支持。同一个分布式J2EE应用的构件可以被分布给运行在一台或多台物理服务器上的多个JVM。分布式J2EE应用以使用具有远程接口的EJB作为基础,而远程接口能够让应用服务器隐藏掉分布式构建的访问和管理的大部分复杂性。
不过尽管J2EE很大的降低了分布式应用的复杂性,但是分布式应用还是很复杂,如果通过分布式来为软件提供可缩放性,代价还是很大的。
我们现在的企业级商业软件迫切需要分布式吗?我们需要怎样的分布式?
现在企业级商业软件的性能主要在由Web容器服务器、逻辑处理服务器和数据库服务器来决定。J2EE实现的分布式体系结构主要是针对逻辑处理服务器。
下面我们分析一下逻辑处理服务器的分布式方案。逻辑处理器采用分布式的话,那么服务器的CPU颗数需要大概70颗以上。因为如果需要大概64颗CPU服务器的话,采用一台多CPU服务器就可以解决。而70颗CPU的逻辑处理服务器的硬件成本已经到了远远超出了目前商业需求所能承担的硬件成本,而且这还不包括想匹配的Web容器服务器和数据库服务器成本。所以如果需要使软件具有可缩放性,通过硬件解决方案(多CPU服务器)比软件解决(分布式系统)要有效得多。
所以就目前的商业需求和硬件环境,架构通过缩放性使得软件获得高性能,缩放性主要通过改善硬件配置来解决。


 健壮性
企业级的商业软件要求软件是可靠的和无缺陷的。现在的架构一般是,服务器模式的。软件的可靠和健壮主要依赖与服务器。服务器的稳定通过良好的代码和完备的测试能够解决这个问题。
由于客户需要,现在需要在客户端也具有一定的健壮性。当服务器由于意外出现故障的时候,客户端也能够继续运行,在客户端发生的数据先保存在服务器,待服务器恢复完备后,再把数据上传到服务器。
对于这点要求,Sun提出的J2EE架构已经事先考虑过,Sun认为软件不仅能够响应浏览器的请求,还能够响应应用服务器的请求,比如Swing编写的应用程序,VB编写的应用程序等。
所以对于健壮性要求而言,一是通过加强代码质量,二是在软件架构上采用兼容应用程序客户端的方案。


 低成本
企业级商业软件还有一个很重要的要求:低成本。软件架构要求简单、易掌握,复杂度低,易于维护和扩展,易于测试。
低成本、高效率的研发架构传统思路是采用分层的思路、OO设计原理、强调重用来。
采用分层的思路是通过把复杂的业务分块来实现降低难度,同时通过业务分拆来达到重用的目的。
采用OO设计原理能够使复杂的系统变得简单化、条理化,使开发、维护变得简单。
通过重用,可以减少开发量,减少出错的概率,易于开发和维护。

一般来说,传统的分层思路是把系统分为界面展示层,控制层,逻辑处理层,数据访问层和数据存储层。OO的设计原理主要是为了降低逻辑处理层的复杂度。
分层是为了把复杂度分解,不过多层次本身也带来了一些额外的复杂性。因此本架构设计分为三层:界面展示层、控制层和数据存储层。取消逻辑处理层和数据访问层。这样做的目的是通过降低系统架构层次来降低开发工作量。整个数据架构以XML为核心,通过XML连接所有的组件层,通过XML进行通讯。把逻辑处理放到数据存储层,通过数据库的处理能力来解决商业逻辑,这样做即可以减少开发量,也可以取消逻辑处理层,同时也可以使用OO设计进行业务处理。由于采用XML为数据为接口,所以数据访问层全部可以采用统一的模式,因此可以取消此数据访问层。


3 架构定义
本架构以XML为整个系统的交互接口,包括系统架构内部和外部。整个系统分为界面展示层,流程控制层和数据存储层。系统由架构支撑组件类、独立客户端组件类、AJAX组件类、流程控制组件类、数据存储组件类、消息组件类、邮件组件类、移动组件类、GIS组件类。
架构的核心优势是以AJAX实现最强大的浏览器客户端,以智能客户端实现独立客户端体现最强大的系统健壮性,摒弃O/R Mapping使研发效率得到大幅度提高。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技术架构说明书 的相关文章

随机推荐

  • 使用机器学习来降低噪音

    持续集成 CI 作业会生成大量数据 当一个作业失败时 弄清楚出了什么问题可能是一个繁琐的过程 它涉及到调查日志以发现根本原因 这通常只能在全部的作业输出的一小部分中找到 为了更容易地将最相关的数据与其余数据分开 可以使用先前成功运行的作业结
  • 2022年春招平均薪资曝光,程序员也羡慕了?

    近期拉勾网统计 2022年春招互联网人平均薪资18500元 同比增长7 5 程序员薪资一直都是焦点 每年节后都有涨幅 这使得很多转行人员都纷纷涌入互联网行业 那么问题来了 未来互联网行业薪资还会稳步增长吗 互联网行业的持续发热和程序员的岗位
  • 使用jquery的 uploadify,在谷歌浏览器不支持flash插件的操作步骤

    google下支持flash控件操作步骤 我这边已经测试通过 google版本 67 0 3396 99 1 安装flash插件 https blog csdn net ghj1976 article details 5403588 2 设
  • 关于MybatisPlus使用@TableId(value = “id“, type = IdType.AUTO)注解使主键id自增长无效的问题

    异常 设置 TableId注解后 还是无法做到数据库的主键自增长 原因 不清楚 解决方法也比较玄学 解决 在数据库中将该表删除掉 重新创建表并赋予数据 当然实体类还是要在id字段上添加 TableId注解 还可以参考这位 TableId v
  • 基于Matlab simulink平台搭建IEEE15节点仿真模型,对电力系统进行潮流计算

    IEEE15节点系统Simulink仿真 1 基础功能 基于Matlab simulink平台搭建IEEE15节点仿真模型 对电力系统进行潮流计算 2 拓展功能 可在该IEEE15节系统仿真模型上进行故障分析 短路 断线等 也可以在该模型上
  • 深度学习中几种分类模型(Lene、Alexnet、VGG、Resnet和残差网络)

    LeNet AlexNet VGG GoogLeNet ResNet 是属于图像分类的CNN 网络深度和宽度 卷积核数据 增加 可以提高模型性能 LeNet网络结构 1998年 Yann LeCun Proceedings of the I
  • Linux基础—常用配置文件(七)

    1 网络配置 etc sysconfig network scripts ifcfg eth0 DEVICE eth0 TYPE Ethernet ONBOOT yes 开机启动 BOOTPROTO static IPADDR 10 0 0
  • 项目实战:51单片机超声波水位控制器设计 (源码+PCB+原理图与实物制作)全套资料

    51单片机超声波水位控制器设计 说明 本设计中液晶显示有4个字母 分别为 H 容器的最高水位设定值 不能高于实际高度 L 容器的最低水位设定值 D 容器实际高度 可以设置 C 容器内液体的高度 在实际演示中 障碍物离探头越近 液晶C显示越大
  • 如何在vscode的jupyter中优雅地粘贴图片到markdown单元格

    最近又来学opencv了 回炉重造ing 顺便在写项目 于是打算用jupyter回顾一些知识 顺便做开发log方便自己学习查看 但是jupyter的md单元格并不如obsidain那么舒服地可以直接粘贴图片 而且obsidain还有一个at
  • 服务器之宝塔面板安装

    服务器环境搭建之宝塔面板安装 前文中将阿里云服务器的购买 配置以及Xshell连接过程说明白了 文章链接 https blog csdn net weixin 43155804 article details 122813771 spm 1
  • 外企外贸职场必备神器:用Wordvice AI 轻松写出英文商务邮件!

    写商务电子邮件需要包含哪些内容 电子邮件是最常用的职场沟通方式之一 通过商务邮件 你能够展示专业精神 表达观点 并通过有效的沟通完成工作 商务邮件的基本结构包括以下内容 标题 称呼 正文 收尾部分 结束祝语 Wordvice AI 英文写作
  • 感受野计算公式

    在卷积神经网络中 感受野的定义是 卷积神经网络每一层输出的特征图 feature map 上的像素点在原始图像上映射的区域大小 举例说明 一般第一层的感受野大小就是Con1的卷积核size 参考 https blog csdn net u0
  • 设计模式之(十四)观察者模式Observer

    Java深入到一定程度 就不可避免的碰到设计模式 design pattern 这一概念 了解设计模式 将使自己对java中的接口或抽象类应用有更深的理解 设计模式在java的中型系统中应用广泛 遵循一定的编程模式 才能使自己的代码便于理解
  • 使用 JeecgBoot Maven 依赖包无法下载 异常 The following artifacts could not be resolve

    最近公司接了二次外包项目 项目是使用 JeecgBoot http doc jeecg com 搭建的 第一次导入项目怎么都不成功 报了如下错误 ERROR Failed to execute goal on project xxx bas
  • Application Structure(应用程序的结构)

    根据需求的不同 应用程序有着各种各样的结构 例如 计算器以及相机类的应用 都是围绕着一个主要的控制单屏幕的Activity来建立的 电话类的应用 这种应用的主要目的是在不同的Activity间切换而没有更深层次的导航 Gmail或者Play
  • windows7 常见漏洞整改

    windows7 常见漏洞整改 1 防火墙入栈端口限制 点击控制面板 系统和安全 windows防火墙 高级设置 入栈规则 新建规则 选择端口 TCP端口 特定本地端口 输入限制端口135 137 138 139 445 443 80 80
  • 上班做什么副业好,这五个推荐给你

    你是否也曾经在为每个月的工资发愁 你是否想过做点副业来增加收入 现在很多人开始尝试通过副业来增加收入 那么上班族要如何寻找适合自己的副业呢 下面就给大家分享五个适合上班族的副业赚钱路子 或许会给你带来一些灵感 1 写文章 不论是散文还是小说
  • 零基础学计算机网络《一》

    概述 网络有三大类 电信网络 有线电视网络 计算机网络 Internet英特网最早是美国人用来免费做教育的 后来逐渐发展成了全球使用的商业网络 互联网的两个基本特点 连通性和共享性 网络 互联网基础结构发展的三个阶段 第一阶段 第二阶段 第
  • Visitor:访问者模式

    已经定义了一个元素类 该类有一些成员变量 现在希望增加一个对该类的操作 常规方法是进行派生 然后添加一个成员函数 但是这样意味着每增加一个操作 都要进行一次派生 这样随着操作数量的增加 该元素类的派生类会非常多 于是考虑令该元素类本身固定不
  • 技术架构说明书

    技术架构说明书 1 前言 一个企业级的商业软件能够满足用户需要 正常运行 易于维护 易于扩展 必须拥有一个良好的软件架构支撑 本文主要是分析和构建一个企业级商业软件架构 2 架构分析 企业级的商业软件架构在技术层面的要求主要体系在高性能 健