常见架构模式 在实践中,人们总结出了一些常用的软件系统结构高层模式,以供应用系统设计时参考
这些模式包括:单服务两层/多层 C/S;MVC 结构;面向服务的 SOA 与多服务集合;数据交换总线等
单机应用系统(Standalone) 准确地讲,单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序
当然,该应用可以是多进程或多线程的
在信息系统普及之前的时代,大多数软件系统其实都是单机应用系统
这并不意味着它们简单,实际情况是,这样的系统有时更加复杂
这是因为软件技术最初普及时,多数行业只是将软件技术当做辅助手段来解决自己专业领域的问题,其中大多都是较深入的数学问题或图形图像处理算法的实现
有些系统非常庞大:笔者早年曾经参与的一个大型纯软件系统开发,多达160 万行程序
要知道,这些程序当时可都是一行行写出来的
这应该算是一个超大型的软件系统了,共有十多个子系统集成在一个图形界面上执行,并可在多行 UNIX/DOS 平台下运行,其中很多算法的复杂困难程度,可以说,如果讲给今天这些所谓的架构高手与计算机高手听,他们会感觉如听“天书”一般深奥;有些系统则算法非常复杂:我的一个同学,在他们专业领域内编制的软件程序,在当时最高级的专业工作站上(应该要比今天的最快的微机性能还好些),一敲回车键运行,就往往要等待一个星期的时间才能得到结果
而这些软件系统,从今天的软件架构上来讲,却很简单,是标准的单机系统
即便是今天,复杂的单机系统也有很多,它们大多都是专业领域的产品,如CAD/CAM 领域的 CATIA、ProEngineer,Autodesk 的 AutoCAD,还有我们熟悉的 Photoshop、CoralDraw ,等等(这些系统的高级版本可能提供了一些网络化的功能,但改变不了其单机系统的实质)
所以这里笔者要说的是,软件架构复杂并不代表软件系统