论混合软件架构的设计
- 论混合软件架构的设计
论混合软件架构的设计
摘要:
2007年3月,我所在的公司组织开发了一套完整的变电综合信息管理系统,在这个项目中,我担任系统架构设计师职务,主要负责软件架构和网络安全体系架构设计的工作。该系统包括变电运行所需的运行记录、图形开票、安全生产管理、生产技术管理、行政管理、总体信息管理、技术台帐管理、班组建设、学习培训、系统维护等各个业务层次模块。
本文首先简单地分析了C/S架构和B/S架构各自的优缺点,然后说明了混合C/S架构和B/S架构的必要性,分析了“内外有别”和“查改有别”两种混合模型,并以变电综合信息管理系统为例,结合实际情况,讨论了C/S和B/S混合架构的应用。实践证明,在软件项目的开发中,使用C/S与B/S混合软件架构,能节省开发和维护成本,使系统具有良好的开放性,易扩展性,便于移植等优点。
正文:
典型的软件架构风格有很多。例如,设计图形用户界面常用的事件驱动风格、设计操作系统常用的层次化设计风格、设计编译程序常用的管道与过滤器风格、设计分布式应用程序常用的客户机/服务器风格等。一个实用的软件系统通常是几种典型架构风格的组合。
1、项目概述
当前,我国电力系统正在进行精简机构的改革,变电站也在朝无人、少人和一点带面的方向发展(如:一个有人值班220KV变电站带若干个无人值班220KV和110KV变电站),“减人增效”是必然的趋势,而要很好地达到这个目的,使用一套完善的变电综合信息管理系统(TSMIS)显得很有必要。2007年3月,笔者所在的公司组织有关力量,针对电力系统变电运行管理工作的需要,结合变电站运行工作经验,开发了一套完整的变电综合信息管理系统,在这个项目中,我担任系统架构设计师职务,主要负责软件架构和网络安全体系架构设计的工作。
TSMIS系统包括变电运行所带的运行记录、图形开票、安全生产管理、生产技术管理、行政管理、总体信息管理、技术台帐管理、班组建设、学习培训、系统维护等各个业务层次模块。实际使用时,用户可以根据实际情况的需要选择模块进行自由组合,以达到充分利用变电站资源和充分发挥系统作用的目的。限于篇幅,在此,我们不详细介绍各模块的功能。
系统的实现采用Visual C++、Visual Basic、Visual InterDev和Java语言和开发平台进行混合编程。服务器操作系统使用Windows 2003 Advanced Server,后台数据库采用SQLServer2005。系统的实现充分考虑到我国变电站所电压等级的分布,可以适用于大、中、小电压等级的变电站所。
2、C/S与B/S的比较分析
C/S架构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,C/S架构逐渐暴露了以下缺点:
(1)开发成本较高。C/S架构对客户端软硬件配置要求较高,增加了整个系统的成本。
(2)客户端程序设计复杂。采用C/S架构进行软件开发,大部分工作量放在客户端的程序设计上,客户端显得十分庞大。
(3)软件移植困难。采用不同开发工具或平台开发的软件,一般互不兼容,不能或很难移植到其它平台上运行。
(4)软件维护和升级困难。采用C/S架构的软件要升级,开发人员必须到现场为客户机升级,每个客户机上的软件都需维护。对软件的一个小小改动(例如,只改动一个变量),每一个客户端都必须更新。
B/S架构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了层来需要复杂的专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件架构。基于B/S架构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端"的功能,很容易在运行时自动升级。B/S架构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
与C/S架构相比,B/S架构也有许多不足之处,例如:
(1)B/S架构缺乏对动态页面的支待能力,没有集成有效的数据库处理功能。
(2)B/S架构的系统扩展能力差,安全性难以控制。
(3)采用B/S架构的应用系统,在数据查询等响应速度上,要远远地低于C/S架构。
(4)B/S架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、C/S与B/S混合软件架构
传统的C/S架构并非一无是处,而新兴的B/S架构也并非十全十美。由于C/S架构根深蒂固,技术成熟,原来的很多软件系统都是建立在C/S架构基础上的,因此,B/S架构要想在软件开发中起主导作用,要走的路还很长。我们认为,C/S架构与B/S架构还将长期共存,其结合方式主要有两种。下面,我们分别介绍C/S与B/S混合架构的两个模型。
(1)“内外有别”模型
在C/S与B/S混合架构的“内外有别”模型中,企业内部用户通过局域网直接访问数据库服务器,软件系统采用C/S架构,企业外部用户通过Internet询问Web服务器,通过Web服务器再访间数据库服务器,软件系统采用B/S架构。
“内外有别”模型的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。
“内外有别”模型的缺点是企业外部用户修改和维护数据时,速度较慢,较烦琐,数据的动态交互性不强。
(2)“查改有别”模型
在C/S与B/S混合软件架构的“查改有别”模型中,不管用户是通过什么方式(局域网或Internet)连接到系统,凡是需执行维护和修改数据操作的,就使用C/S架构;如果只是执行一般的查询和浏览操作,则使用B/S架构。“查改有别”模型体现了B/S架构和C/S架构的共同优点。但因为外部用户能直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。
4、应用实例
在设计TSMIS系统时,我们充分考虑到变电站分布管理的需要,采用C/S与B/S混合架构的“内外有别”模型,如下图所示。
在TSMIS系统中,变电站内部用户通过局域网直接访问数据库服务器,外部用户(包括县调、地调和省局的用户及晋通Internet用户)通过Internet访问Web服务器,再通过Web服务器访问数据库服务器。外部用户只需一台接入Internet的计算机,就可以通过Internet查询运行生产管理情况,无须做太大的投入和复杂的设置。这样也方便所属电业局及时了解各变电站所的运行生产情况,对各变电站的运行生产进行宏观调控。此设计能很好地满足用户的需求,符合可持续发展的层则,使系统有较好的开放性和易扩展性。
该系统已经在全国的多个变电站使用,用户反映良好。真正满足了变电管理朝无人、少人和一点带面发展趋势的需要,提高工作效率、增强准确性,对工作过程中的各种记录都能详实、准确地记载,减少大量手工重复录入,达到变电站无人、少人值班的目的。
实践证明,在软件项目的开发中,使用C/S与B/S混合架构,能节省开发和维护成本,使系统具有良好的开放性,易扩展性,便于移植等优点。
http://www.taodudu.cc/news/show-6140008.html
相关文章:
- Minecraft 1.12.2 彩色渐变字体0.3 掉落物光束
- Shader玉石效果
- 怪物掉落金币随想
- BugKu -- AWD --S1排位赛-4
- WZOI-237猜猜谁是冠军
- Facebook 是神经制封号 还是有规则的封号?
- instagram封号的原因解析
- 抖音荣誉等级与粉丝等级的消费对照表
- ChatGPT大规模封号...
- INS防封号技巧,这些注意事项如果你不知道容易被封号停用
- tiktok也会像Facebook一样封号吗?哪些行为会封号?
- 被封号了,再见!
- 变色龙C++
- 当 Rainbond 遇上龙蜥!小龙带你玩转一站式云原生,点击开启
- 炫酷的变色龙
- 变色龙是一种智慧
- 基于变色龙认证树的云边端协同流式数据完整性验证模型
- 【开发日志】2022.09.25 Unity变色龙跑酷自制游戏详解
- 云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏
- 一位想看落日的女孩
- 落日余晖 共克时艰
- 故乡的落日
- 落日余晖江面
- 落日的想法
- 微信小程序太阳落日效果
- 最全的《落日故人情》经典句子大全
- 落日时分
- 黄河楼落日
- 使用openSSL制作SSL证书
- 利用js制作动态小时钟
论混合软件架构的设计相关推荐
- 嵌入式软件开发工程师谈软件架构的设计
嵌入式软件开发工程师谈软件架构的设计 注:此处嵌入式特指基于linux平台,单片机和其他rtos不在讨论范围 笔者从事嵌入式软件开发有6,7个年头,bsp,驱动,应用软件,android hall,f ...
- 软件架构--架构设计的整体介绍
软件架构--架构设计的整体介绍 1 介绍 1.1 概述 1.2 复杂系统 1.3 架构目标 1.4 架构过程(引用<系统架构:复杂系统的产品设计与开发>) 1.5 系统预测方式 经验 实验 ...
- 2021-2022软件架构与设计趋势报告
本文属译文,原文来源如下. 作者:Thomas Betts.Holly Cummins 原文链接: Software Architecture and Design Trends Report Key ...
- 无线系列 - 5G大规模MIMO阵列仿真及混合波束成形设计
前言: 5G 宽带速度的飞跃将通过毫米波 (mmWave) 频率范围内的大规模MIMO 通信以及更高效地利用频谱的新无线电算法实现.新的设计架构和算法将影响 5G 系统的各个方面:从天线到 RF 电子 ...
- 混合波束成形| 基于深度学习的大规模天线阵列混合波束成形设计
文章目录 背景 系统模型 文章贡献 NN(Neural Network)设计 一些挑战 两阶段设计方法 仿真性能 结论 相关阅读 该论文是实验室师兄最新发表于WCL(IEEE Wireless Com ...
- 成功进行射频与模拟混合信号PCB设计需要考虑的因素
转载自 吴川斌的博客 http://www.mr-wu.cn/ 今天,老wu打算再次分享Optimum Design Associates的大神Scott Nance关于<RF & An ...
- 计算机图文混合排版教学设计,图文表混合排版教学设计.doc
图文表混合排版教学设计 教学设计基本信息名称<图文表混合排版>执教者XXX课时1课时所属教材目录高等教育出版社出版,周南岳主编的<计算机应用基础>第四章第五节的内容.教材分析& ...
- 西门子s7-1200 PLC的物料自动称量控制系统,称重配料 物料混合 触摸屏组态设计
西门子s7-1200 PLC的物料自动称量控制系统,称重配料 物料混合 触摸屏组态设计编号:86100658833497970东兰梨花
- 计算机图文混合排版教学设计,新排版教学设计.doc
文档介绍: 图文表混合排版教学设计班级:高一专业:计算机软件学生数:43 人授课时间:40分钟授课使用的教材:<计算机应用基础(WindowsXP+Office2003)>各位评委大家好! ...
最新文章
- git解决“failed to push some refs to“问题
- 杭电 汉诺塔问题总结
- JS性能分析(测试代码运行时间)
- C语言申请内存时堆栈大小限制
- 39个工具,120种组合深度评估 (转录组分析工具哪家强)
- MsSql.RestApi - 构建ASP.NET REST API的最简单方法
- axios.post请求出错:Request header field content-type is not allowed by Access-Control-Allow-Headers in……
- SQL对某个字段分组并加序号
- win11任务栏某些情况下不能自动隐藏问题初探
- 百度网盘目录搜索引擎上线了 百度网盘目录搭建系统
- leetcode1776. 车队 II
- 一位资深开发的个人经历 【转自百度贴吧 java吧 原标题 4年java 3年产品 现在又开始做android了】...
- 手机电子邮件设置exchange方式登录163邮箱
- python中主函数循环_python入门(三):分支、循环、函数详解
- 聪明的人脸识别3——Pytorch 搭建自己的Facenet人脸识别平台
- 苹果发布会:未来代替电脑的产品诞生了?
- MicroService
- HTML常用标签之列表标签
- 练习编程的过程中,运行时出现黑框一闪而过的解决方法
- 关于PMIC上CHG_LED_SINK引脚控制
热门文章
- [脚本]用windows批处理文件自动化Python(虚拟)环境的配置
- linux shell 未找到命令,未找到linux问题setenv命令(linux issue setenv command not found)
- 解决“ 故障模块名称: clr.dll ”
- CentOS7 aarch64 arm平台sysbench安装及CPU、内存、IO测试
- 2019.07.01-2019.08.01 软件测试实习生月报
- CSDN20181218博客黑板报
- 【操作系统】一起了解操作系统咯 | 原码,反码,补码,你理解到位了吗?
- php-5.3.3.tat.gz,GitHub - phpcws/WeChatDeveloper: 【新】微信服务号+微信小程序+微信支付+支付宝支付...
- PPOJ1100: 诡异的楼梯
- 余承东:华为技术走在产业前列,别人想超越很难;理想销量夺冠后,员工不满年终奖打折;黑客窃取GitHub代码签名证书|极客头条