基于微软技术的高可扩展性中小企业系统解决方案研究
2016-06-30谢日星
谢日星
摘要:本文根据微软主要技术的特点,结合互联网及移动互联网应用的要求,为中小企业的应用系统规划设计了统一的系统解决技术方案;根据互联网应用与移动互联网应用的不同特点及要求,相应的设计了对应的服务端接口,并考虑模块重用及更新方便的要求,对服务端进行了分层和模块化设计,同时根据系统的可扩展性要求,设计了相应的负载均衡方案。
关键词:中小企业;解决方案;可扩展性;互联网;移动互联网
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)14-0225-02
随着智能设备价格的下降及移动到联网的发展,移动设备已实际得到普及,PC出货量已开始处于下降通道,互联网应用与移动互联网应用在实际系统中的地位开始互相靠近。应用系统中互联网应用与移动互联网应用的开发重要性已基本相同,系统设计时,需要对PC和移动设备提供同样的支持,方案定型时,服务器端需要同时设计两种应用的服务接口,以基于微软主流技术为核心,已能较好地实现这样的完整系统。
1 系统网络结构
1.1 小并发量系统网络图
对于小并发量的系统,不需要特别提供大并发量处理技术。由于系统并发量较小,所以对于数据WEB服务器、数据库服务器发生故障时系统恢复工作量相对较小,因此也不做多台服务器的备份,但需要注意数据库服务器中数据库的备份工作。
1.2 大并发量系统网络图
对于大并发量的系统,首先需要注意的是当并发量大到系统原有服务器已无法满足要求时,在软件不修改、系统正常工作的情况下,系统能够快速添加硬件设备实现系统的可扩展性,同时,还需要在某些(非全部)数据库服务器及WEB服务器出现故障时,整个系统在不停止服务的情况下,仍能快速恢复系统响应性能。因此,大并发量系统网络结构应如图1所示。其中,WEB负载均衡服务器可以采用微软的IIS实现;Session服务器可以采用ASP.NET State Service服务实现;所有WEB服务器都采用IIS,并都使用Session服务器所管理的Session数据;数据库服务器采用Microsoft SQL Server 2012及更高版本,读、写服务器分离,采用AlwaysOn技术实现读操作的负载均衡。
2 系统软件架构
对于需要同时支持PC和APPS的系统,其软件架构的设计,都有一些需要注意的基本原则。对于非必需的情况,PC应用都采用B/S结构,而App则根据不同的移动设备平台有针对性的开发原生App。
2.1 需要注意避免的情况
1)前后端紧密耦合:不论是WEB应用还是App原生应用,都要注意不能和服务器的后端紧密耦合,否则WEB应用或App原生应用导致服务器端的变更,将因为对应的服务器修改而引起另一类型应用的修改。根据软件设计的原则,需要实现系统的松耦合。
2)重复开发:尽可能避免服务器端为适应WEB应用和App的不同而对于同一功能或服务分别进行一次独立的开发,从而导致软件模块的重复开发,不仅在开发时成倍地增加开发工作量,而且也必然地导致系统变更或修补BUG时需要同样地进行重复设计与开发工作,也同时导致项目管理工作量增加、复杂度上升,增加了系统的开发风险。
2.2 系统方案
根据实际开发经验,基于微软技术的中小企业系统解决方案可以采用如图2所示的架构。
系统主要部件都直接采用微软对应技术实现,其中客户端只需要对移动设备开发App,目前可以采用微软跨平台解决方案Xamarin,实现一次开发适应各种主流移动设备。服务器端提供两类WEB服务,一个采用ASP.NET MVC解决方案以支持浏览器,其中各个View仅提供JSON格式的数据给客户端,客户端数据的处理由对应的Knockout.js及Bootstrap进行展示实现;另一个采用ASP.NET WEB API 2解决方案以服务各种移动平台的App。为了防止服务器端的重复开发,两个WEB服务器除了各自的接口外,其余模块都设计成独立的部分,如果并发量大,则可以把各类业务逻辑再独立成WCF形式的WEB服务,否则可以把两个WEB服务器部署在同一系统中,各内部服务模块做成类库,集成在WEB服务器项目中。
3 系统集成
由于系统主要部件都是直接采用微软解决方案,各技术及部件相互配合集成时,一般不会有关键性的对接问题,在有技术疑问需要解决时,也较容易找到解决方法。本解决方案在硬件集成和软件架构设计方面都提供了良好可扩展性,实际开发实现时,可以根据实际系统的可预见要求进行实现,系统实现后,也可以通过直接增加硬件设备实现需要的可扩展性。
参考文献:
[1] https://www.xamarin.com/
[2] 任晓峰.中小企业OA系统的设计与实现[D].厦门大学,2015.
[3] 黄雅萍,马可辛,周余洪,等.面向中小企业的电商平台挖掘系统设计[J].计算机时代, 2015(4):18-20.
[4] 陈进雄,童亮斌.中小企业信息化平台建设研究[J].电信技术, 2014(9):65-67.