整个网络应用系统的设计过程应该具有前瞻性
系统设计过程主要就是确定网络应用系统所采用的主流技术
多个应用系统之间的相关性、无关性是决定系统结构模式的基本因素
随着Internet的普及,已经使计算机网络成为不可或缺的生产、生活工具。也正因如此的普及和快速发展,使得电脑、计算机网络、Internet互联网成为大众容易了解的东西,也就相应降低了它们的安全性,使得它们为了安全性不得不变的更复杂。
那么建立一个实用、相对节省、有长久生命力的网络应用系统,需要注意那些问题呢?我们先看一下建设一个网络应用系统应该注意的特性:
首先,是系统的性能。任何网络应用系统的建立都是为了更有效的完成一定的目标而建立的,而系统的功能、运行效率、使用质量、系统完成任务的复杂度是评价一个系统性能的关键参数。
其次,是系统的稳定性。系统的稳定性也是一个很重要的参数,这是建设一个系统的基本要素。系统的稳定性是全方位的。
最后,是系统的安全性。对于系统的安全性,也是最近几年和未来一段时间IT技术的发展热点,而且是不可避免要考虑和投资的问题。
那么,怎样才能保证这些特性的实现,达到一个较高的水平呢?具体体现在系统的设计、实施阶段。本文仅介绍系统设计部分。
整体的网络应用系统设计
无论网络应用系统中的硬件部分、还是软件部分在系统设计之前,必须作出详细具体的需求分析,不仅仅是用户提出的需求,有时终端使用用户由于水平的限制,提出的需求不一定是真实、确切的,要求有一定层次的系统和应用工程师、甚至是软件开发商的工程师深入其中,了解到最准确的需求。而且要注意,这种需求随着时间等外部因素变化的可能性。
分析阶段,列出各个阶段的需求,推理它们之间的逻辑关系,根据这些需求指标,确定系统的性能目标、稳定性程度、安全级别,以及系统的模块化结构、可延展范围。有了这些,也就可以初步确定一些具体的硬件产品、软件产品的技术选型了。系统需求分析阶段是反复的,甚至可以延续到系统的设计阶段。
其次还需要考虑系统设计的完整、一致性的原则。做过网络工程和系统集成的人都知道,在做以上每一个大步骤的时候肯定是要先进行系统需求分析和系统设计的,但每个步骤不是孤立的,下一个步骤的结果恰恰是上一个步骤的需求,或者制约着上一个步骤的选择。因此整个网络应用系统的设计过程应该是倒序,而且是有前瞻性的。
在网络应用系统的整体系统设计阶段,就应该作出完整的系统设计,而不是走一步,看一步。经常看到一些比较大网络应用系统项目,分步实施、分步招标;甚至由于行政部门的不同,网络布线、网络系统、应用系统各是一组人,而且几个组之间沟通的又不够,在技术上,也没有人统一协调,这样的系统建设到最后,浪费资金到还在其次,能不能达到设计要求是一个大问题。
主要技术选择和主要设备选型
在系统设计的过程中,主要就是确定网络应用系统所采用的主流技术。然后是在此技术路线下,确定主流的技术产品(包括硬件、软件两个方向)。接着是细节的硬件设备选型、软件操作系统平台、数据库平台、应用系统开发平台的确定。如果是大型的软件开发项目在确定软件的开发方法后,可以将应用系统软件的开发作为相对独立的项目实施。
在实际的操作过程中,要坚持现有先进技术与需求分析的结合,注意分析所谓先进技术的生命周期。不要过分的受IT炒做的影响,往往最新、最先进的技术同时也是不稳定的、可能是在一、两年内迅速夭折的技术。有一个方法很好,请一些行业的技术主管、工程师做一下咨询,会得到很多有价值的信息。
至于大家非常关心的有关网络体系结构是采用分布式还是集中式的疑问,从我接触到的应用系统建设,以及十几年实际经验看,比较好的选择是:物理设备的分布式、逻辑结构的独立式,管理的相对分布集中式,(这里针对比较大型的用户而言的)。
多个应用系统存在的时候,在总投资一样的前提下,有两种基于服务器的选型系统配置方法:一套 高档小型机(Clusters)+数据库平台+多个应用系统;多套多台PC(两台PC clusters)+数据库平台+单个应用系统;
前者可以看作是集中式的配置架构,后者是多个应用系统相对独立的分布式架构。真正长期在一线做维护的工程师才知道:后者才是实用的系统。
首先,多个应用系统同时运行在一套Clusters上,由于应用系统之间可能性的冲突,调试难度就远远的高于第二种方案。其次,一个应用系统升级的时候,对其它系统运行就有时间上的影响,对于其他系统就是考验。如果这些应用系统是一家开发商的还好,否则,这种升级的风险已经远远的高于你平时所获得的利益了。对于现场维护工程师,这种压力是难以忍受的。
再看平时的日常维护,如果这几个应用系统在运行,时间是既交错,又并行的,你几乎没有维护时间。最严重的是,万一是硬件或操作系统的问题,你就要同时承受至少3种不同的应用系统使用人员的压力。
所以,多个应用系统之间的相关性、无关性是决定系统结构模式的基本因素。多个应用系统之间如果数据无关,那么应用系统的这种逻辑独立性就应该得到承认,在系统设计时得到体现。大而全的思想事实证明是要不得的,将许多具备无关性应用系统硬性的设计在一起,人为的增加系统的复杂性。片面的追求系统的深度,忽略了系统的实质需求,其结果是浪费人力、物力、财力,给系统以后的维护、升级带来困难。
软件开发的C/S、B/S模式的区别
由于或多或少的炒作的原因,软件开发也在赶时髦。在某些特定的需求下,实现同样的功能,C/S要比B/S方式系统稳定的多。正因为B/S模式的免客户端安装、界面华丽等诱人因素,许多开发商鼓励用户客户端选择使用浏览器。但是要知道,由于互联网的发展,这几年,通过Internet、Web Server传播的病毒大量的增加,对于Web Server的攻击更是黑客、病毒的重点。
如果一个应用系统仅是局域网内部使用的系统,没有必要采用B/S模式。而且,在用户大量增加的前提下,Java、Web Server的响应速度远远的低于同样硬件配置的C/S系统。
安全系统的选择
网络安全系统的选用充分体现了网络应用系统的安全特性的要求。这几年,已经成为热点。但有一个原则要注意:不要为了安全而安全。就目前而言,网络安全系统的投资应该控制在网络应用系统总投资的5%——20%,再高,就没有意义了。
容错备份系统的选择
一个大型的网络应用综合系统的容错考虑是多个方向的。目前,有很多成熟的理论和产品。给大家的结论是:实时容错(硬件+操作系统层)+延迟备份(数据库、应用层)+静态磁光(应用数据层)。
对于前面提到的容错、冗余、备份技术解决不了一类问题:由于病毒、黑客攻击或其他原因造成的应用系统紊乱,导致数据紊乱;由于是数据库或应用层出的问题,Clusters等技术起不到作用。而磁光介质的恢复效率是来不及的,数据损失也过大。因此,提出在Clusters之外,再设立第三台服务器,采用数据库或应用系统提供的应用层面的备份软件进行上层延迟备份,延迟时间(秒级到分钟级),提供快照方式,可进行多时间点的快速恢复。同时,这类应用是一些关键应用,值得投资。




