通信服务平台的应用
【正文】
数据通讯是当前十分活跃与热门的计算机与信息技术的应用领域。某大型通信公司开发了其业务的主要支撑平台,在这里,我们简称之为“通信信息服务平台”,用于在全国与全球开展数据业务的需要。该平台是一个典型的Java技术应用于Internet的项目。
作为信息技术公司中的一名技术骨干,我有幸参加了该系统的分析与设计工作,承担了相当多的Java应用开发任务。此系统中的软件部分大多由Java来实现,在全系统中我们是这样来用Java构架系统的:
(1)本系统可分为4层,分别是Browser、表示层、中间件层和数据层。 (2)表示层用Java中的Java Script来实现页面输出。
(3)中间件层用Java来实现CORBA,即实现Component(构件),主要实现业务逻辑的封装与复用。
(4)数据层主要是数据库和存储过程的实现。
我们在应用Java技术时,所采用的技术和策略可大致上归纳为以下5个方面:
(1)使Java Script尽量简单,因为Java Script在我们系统中是放在服务器端执行的,该语言是通过一个解释器解释执行的,相对速度很慢,我们采用了两台HP前置机来运行Java Script,但是其运行速度还是不理想,所以我们在设计中把Java Script仅用来显示从中间件层所得到的数据,生成动态页面。在最初的设计中表示层(Java Script)曾承担了一些业务逻辑处理操作,导致效率不理想,因此,我们不得不尽量地减少Java Script的程序量。 (2)用Java实现CORBA时,应尽量考虑共享和复用。在本系统中,最初的设计是让Java在实现Component时,只是执行一些数据库表的操作,导致表示层的负载较大。后来,我们重新设计时,总结归纳了所有的Use Case,找出了其中可供共享和复用的接口,把相同的业务逻辑操作封装到一个接口中去。因为 Java的执行效率比Java Script要高,因此提高了系统效率。
(3)在别的项目中,我们曾大量地使用过Java中的JSP技术和Servlet技术,一般人可能不能区分这两种Java技术的区别。为了得到系统的一些执行速率的数据,我们采用了一个著名的压力测试软件——Load Runner来测试这两种技术的差别。测试表明:用JSP和Servlet完成同样的一个操作,并且保证是在相同的测试环境中(相同服务器、压力测试工作站与数据库环境),得到的测试数据却有着很大差别,JSP完成一个操作的平均执行时间大致会是Servlet程序的两倍。在一个企业级应用项目中,这可能是一个很关键的瓶颈。因此,我们得出的结论是:在可能的条件下,尽量地多使用Servlet。当然,与Servlet相比,JSP编程快速,修改方便,在访问量不是很大的应用场合下也是可以接受的。
(4)使用Java作为整体解决方案时,应尽量使用相同版本的JDK。在用Java作为编程语言的项目中,几乎大多要遇到“汉字”问题,即Java在没有经过转换的情况下,在输出汉字时,很可能会出现乱码。采用不同版本的JDK,解决的方案是不一样的,比如V1.2.2版本的JDK和V1.3版本的JDK解决方法就会有一些不一样,把V1.2.2的Java程序放在V1.3的JDK中,就不能顺利输出汉字了。其根本原因在于Java使用了Unicode编码,和我们中国的国标编码不一样。所以在这个意义上一些人竭力鼓吹的“一次编写,到处运行”似乎不一定能在所有的场合都行得通。
(5)使用Java时,应尽量遵从软件规范。在Java中有一个JVM的概念,即在Java虚拟机中使用了一个垃圾收集器,专门用来回收内存。但是该垃圾收集器在给编程人员带来方便的同时,也隐埋下了隐患。在程序设计中,并不能强制执行垃圾收集器,所以,开发人员不能确
11
定某对象是否已释放,常常让编程人员养成依赖自动收集的坏习惯,因此我们要求:在Try,Catch之后必须明确要求回收内存(当然,也只能是通知垃圾收集器来回收垃圾),这样可以有效地提高系统稳定性。
以上这些实用性的技术与策略,是我们在实践中的一些实际体会,仅供各位开发人员根据实际情况参考。
当然,在使用Java作为解决方案时,也会遇到很多让我们头疼的问题,这些问题导致同时执行的并发性比较差,系统速度慢等等。归纳起来看,我们曾遇到过的主要具体的问题有:
(1)用Java来实现CORBA中的Component,有时效率会比较低。 (2)用Java来建立数据库连接往往会比较慢。
(3)用JSP编程时容易导致系统信息的扩散。比如,如果有黑客攻击一台运行JSP程序的服务器,他可以故意地输入一些非法字符或异常信息给JSP程序,于是程序执行将出现异常。这时,就会在页面上打印出相应的错误信息。很不幸的是,这些信息极有可能暴露出这台服务器的JDK的版本号与路径信息等内容。这往往容易让黑客们有机可乘,有可能去抓住系统的漏洞。
在发现了这些问题后,我们经过仔细研究,找出了一些解决办法。比如: (1)既然用Java实现Component比较慢,我们就尽量减少Component所执行的业务逻辑量。争取把能够放在存储过程中实现的操作,尽可能在存储过程中加以实现。众所周知,数据库的存储过程操作,比起在Java程序中执行数据库操作要快得多。
(2)既然用Java建立数据库连接比较慢,我们就可以把数据库连接封装成连接池(Connect Pool),从而能非常有效地提高系统效率。我们也曾经用“Load Runner”作过压力测试,使用连接池比不使用连接池的速度要快上3~5倍。
(3)为了对付JSP程序与Servlet程序会打印出异常系统信息的问题。我们曾查阅了很多JSP或Servlet的资料,最终是毫无头绪。但是我们可以换另一种思路,即是不从程序下手,而从Web Server着手,我们可以把Apache配置成为使这类异常信息不再打印出来,而是使之仅出现一个通用的异常说明的页面,这样,就能十分有效地解决这个问题。
在我们使用Java作为编程语言的这么多项目中,绝大多数是比较成功的。Java语言作为一种快捷、稳定的计算机语言,开发基于因特网应用的项目大多是相当稳定和比较适用的。
在我个人看来,Java的应用前景十分光明,大体上可以着眼于以下方面: (1)在因特网上将会有更加广泛的应用。
(2)在嵌入式设备中,Java也大有用武之地。比如,在最新推出的Java技术中,Java已经进入了手机领域。
(3)Java程序大多以线程运行,占用资源少,会逐步代替ASP与CGI程序。根据第三方测试表明:JSP程序比ASP程序要快2倍以上。用JSP代替ASP应是大势所趋。
(4)Java在无线互联网中的应用将会更加广泛。Java支持WAP,可以方便地用Java开发WAP程序,实现WAP应用。
(5)Java与XML的无缝连接使Java在数据传输和异构网络通信方面有着很大的优势。 就我个人而言,我将会在相当长一段时期内致力于Java在无线互联中的应用,为我国的移动通信事业开发出更多的优秀实用的项目。
评注;参与了一个较大的项目后有实践体会。全文都采用1、2、3、4方式,文章的风格显得单调,不大吸引人。但是本文的优点是;(1)写得很有条理。(2)内容的选择合适。(3)所列举的策略、注意事项与发现的问题都很现实可信。
论实时控制系统与企业信息系统的集成
【摘要】
12
本文通过“工控组态软件”项目的开发,着重讨论实时系统与信息系统的集成。近年来,国内外的组态软件取得了很大的发展,已广泛应用于企业生产。组态软件以实时数据库作为核心技术,综合了工控、网络、图形处理与数据库访问接口等技术,是技术含量较高的一类软件产品,具有良好的应用前景和市场潜力,因此,有多家信息技术公司都在开发工业组态软件。 我有幸参与了该项目,在该项目中担当了分析与设计的部分任务,该软件采用Windows 2000操作系统,主要采用VC6.0进行开发。以下本文将从我所开发的组态软件的特征、软件的体系结构设计、实时数据库设计、可扩充性与可维护性设计以及项目实施管理等几方面加以论述。 【正文】
工业控制组态软件在工业界有着相当广泛的应用,此类软件允许用户在图形界面下对控制系统的各种采样点、过程输出点、设备、生产车间、控制回路、文件报警、生产报表、控制策略、网络设备和生产工艺画面进行定义与组态。使用该类软件时,用户甚至可以不写一行程序就能够构成自己的控制系统,有些功能强大的组态软件还可提供与网络、Internet、数据库访问接口等的连接功能,使现场控制系统能相对方便地和企业的信息管理系统加以集成,某信息技术公司决定开发新的具有一定通用性的工业组态软件,作为技术骨干,我在该项目中担当了分析与设计的部分任务,该软件采用了Windows 2000操作系统,主要采用VC6.0进行开发。 本文将从我们所开发的组态软件的基本特征、软件的体系结构设计、实时数据库设计、可扩充性与可维护性设计以及项目实施管理等几方面加以论述。
l. 我所从事开发的组态软件的基本特征
通过分析国内外的组态软件的特点和当前的技术发展情况,我认为我们着手开发的组态软件应当突出下述三个特征:
(1)“实时与可靠”是此类软件赖以生存的应用前提,但是目前还是有很多的组态软件做不到这一点。
(2)具备良好的网络连网能力与分布功能。
(3)有效地采用ODBC(开放的数据库连接),便于和其他信息系统集成。
这个项目在技术上,应着重于组态软件的体系结构设计与实时数据库的设计上需求分析则应着重分析国内外同类软件的功能,通过比较与鉴别,才能产生真正优秀的软件。
2. 组态软件的系统体系结构
本软件采用的是三层体系结构,设计结构时要具有开放性和良好的可扩充性。
(1)软件的底层是硬件访问控制层。这一层所采用的是前几年才推出来的OPC(OLE for Process Control)技术,采用该技术的好处是OPC是微软参与制定的标准接口技术,有众多的硬件厂商支持,所采用的OLE技术使软件具有良好的适应性和扩展能力。
(2)中间层是实时数据库。该层是整个系统的核心,在设计上除了具有一般实时数据库具有的特性之外,应当为应用层提供了两类接口:一是应用编程接口API(比如以DLL的方式实现),二是ODBC接口,该接口使系统具有很好的开放性,便于系统集成。 (3)上层是应用程序层。在该层通过ODBC接口访问实时数据库,可以通过SQL语句查询数据库的数据。
3、本项目涉及到实时数据库设计
在设计时,我们着重考虑了以下的四个方面:
(1)实时数据库的基本功能:实时数据库完成实时数据库的采集、输出、报警文件等的管理,也进行历史数据的管理。
(2)实时性设计:由于本系统所采用的操作系统是Windows 2000.它的实时性较差,因此要求任务管理定时器必须具有良好的实时性,在系统设计时,我们采用了抢占式服务的高精度定时器,在一定程度上保证了系统具有良好的实时性。
(3)任务调度:其目标主要是使系统在各时间段达到较理想的负荷任务的均衡性。
13
(4)ODBC接口设计:即开发相应的驱动程序,实现ODBC功能,使之完全遵守SQL约定,这样能允许应用程序的开发手段和开发工具多样化,允许可以采用VC、VB或Delphi等作为开发语言,也使数据库具有很好的开放性。但SQL语句不能实现数据发生时间方面的选择,影响了实时性,因此,系统自动给每个数据库加上时戳,SQL可以通过时戳进行时间控制来选择(读取)数据,从而满足了实时性方面的基本要求。
4. 本系统的可扩充性与可维护性设计
组态软件综合了多种技术,其体系结构与数据结构都较为复杂,再加上我们又希望能适应的实际应用场景有着复杂多变性,因此要求系统必须具有良好的可扩展性与对维护性,以满足功能与性能上不断变化的要求。在系统的设计技术上,我们大量地采用组件技术,如OPC,COM/DCOM与3D图形控件等,组件技术的采用使系统具有了良好的可扩展性与可维护性,降低了系统的复杂度。而且也使我们较方便地获得第三方支持,例如,请经验丰富的图形处理专家编写图形处理控件,就能加快软件开发的进度。
5. 本项目中软件项目实施和管理
组态软件的需求在当前工业控制领域中是较成熟的,基本能满足一般用户的功能上需求,通过比较多家组态软件,可以发现:在它们之间有80%的功能是相同的或雷同的,由于我们项目开发的起步较晚,在自控领域里,我们处于劣势,因此我们提出了“重技术分析,轻需求分析”的思路,即把重点放在组件设计与体系结构的实现上。
在人员的配备上则根据组态软件的技术组成特点,组织一批在自控、网络、组件、实时系统设计和硬件上各有所长的VC高手组成一支精干高效的队伍。
在开发进度上则反复强调“质量第一,进度第二”的原则。
在我们的项目实施中,可靠性作为设计的首要原则,要求项目组成员养成良好的编程习惯,每天必须完成认真的工作日志,每周要写工作总结,完成一段程序代码之后,即应自己先进行从里到外的测试,只有从基础抓起,才能保证组态软件的质量。
通过本项目的开发成功,我深切地体会到要使组态软件在企业实时控制与信息系统集成中发挥其应有的作用,必须注意以下各点:先进的体系结构;支持ODBC的实时数据库;强大的网络功能;功能日益强大的脚本语言等。我期待着本人通过在这个领域中的辛勤耕耘,将会结出更多更丰硕的IT成果。
评注:
本文抓住了企业实时控制与信息系统集成中的一类关键软件——组态软件项目的开发,进行了较有条理的讨论,思路很清晰。
由于项目在一定程度上的“通用性”,未能结合具体的应用背景论述;但本文的一个缺点是未能给出开发与应用的实际效果例子,也未能对开发中遇到的困难与问题展开深入的探讨。
工业自动化改造的应用
【摘要】
本文以一个信息化改造项目为例讨论了实时系统与信息系统的集成。我曾参加了一个中等规模的现代化生产企业的数字化改造项目,该企业拥有4座自动化连续式工作的窑炉,以及8座自动化间隙式工作的窑炉以及多台半自动的中大型辅助机器。该企业希望能将这些设备实现数字化,并且重点要建立起一个中央监控室,能实现对设备的运行状态参数的监督和记录两大任务,前者用于防止意外事故,后者可用于向该企业的决策人员和技术开发部门提供信息。 通过我们的开发组与该企业相关人员一起努力,分四个步骤共同完成了这一工作。第一步是实现设备状态参数的数字化输出;第二步是建立中央监控室的监督和记录功能;第三步健全监控室的控制功能及相应信号的输出;第四步则是实现生产设备自动化控制的数字信号接入功
14
能。
我在其中的主要工作有三个方面:
(1)作为公司开发组和企业间联络的桥梁;
(2)负责确定该项目中各部分之间的分工,在发生冲突或出现问题时提出相应的具体解决办法;
(3)帮助解决与协调在工作过程中出现的各种困难。 【正文】
现代化企业发展生产与提高效率的根本途径之一是加速信息化的进程。在所从事的专业生产领域中,我参与开发项目的这家企业可以认为已经具有相当程度的现代化的基础了,比如它已拥有4条自动化连续式工作的窑炉、8座自动化间隙式工作的窑炉和多台半自动的中大型辅助机器。但是这些设备的自动化控制在改造前还主要依靠模拟量控制,也不具备信息与数据的记录、汇总与分析功能。该企业一方面出于对今后发展的需要,希望记录下这些设备在工作过程中连续的状态参数的变化情况,有运行的日志与历史记录,以提供给其技术开发部门,作为产品质量改进研究中的参考;进一步还可提供给企业管理部门决策分析时的参考。另一方面,企业希望能够对设备生产状态有全面的监督和一定的紧急控制与应变的能力,能对生产设备的操作意外和设定不当,或者发生突然的未预料到的事件,防止造成事故与损失。
我们根据该企业的要求,结合项目的资金、时间、人员等现实状况,再三考虑了该企业的经营情况、产品的市场和前景、项目开发所面临的风险等诸多因素,经过仔细分析,得出了如下的4条意见:
(l)由于资金的限制,切实地在相应各个环节上节约成本是相当重要的,因此要尽可能地在原有设施与条件的基础上进行改造,而不是进行根本性的替换;
(2)此企业需要的是“实时控制系统和企业信息系统的初步集成”,而不是一个功能相当丰富和完善的系统,该企业现阶段既不具备开发这样一个系统的能力和条件,也不具备管理维护和应用高级集成系统的相关人员,所以,项目的目标应当切合于目前条件下企业的总体要求。这样既有利于控制成本,也有利于减少项目风险;
(3)由于该企业的生产情况和资金、人员的限制,项目必须分阶段地进行。大体上可划分为如下四个阶段:①实现设备状态参数的数字化输出;②建立中央监控室的监督和记录功能;③健全中央监控的控制功能和相应信号的输出;④实现生产设备自动化控制的数字信号接入功能;
(4)参与本项目涉及到的双方的大多数人员都不精通对方的专业领域,因此必须在加强互相沟通的同时,确定明确的分工关系。
上述四条意见在经过双方的磋商与研究后,获得了双方全体项目参与人员的一致认同,成为这个项目开发过程中双方必须理解与遵循的准则。
在第一阶段,我们开展了对半自动的中大型辅助机器的自动化改造。事实上,该企业早有这类打算,并且已做了相应的技术储备,因而这一部分的工作由该企业自身的技术人员全权负责并加以实施。项目中所涉及到的所有自动化生产设备都已具有依据状态参数模拟信号量进行控制的能力,对于所采集到的状态参数模拟量,企业曾计划采用一类以模拟信号远程地传至中央监控室,再进行模数转换的方案。此方案对企业来说实现比较简单,但存在着成本较高、远传过程易受到干扰等不利因素。随着模数转换设备成本的显著下降和可靠性提高,经我们建议和双方讨论,企业有决心在生产设备的控制设备上就地实现现场模数转换,再远传数字信号至监控室,这一工作同样地由熟悉这项技术的企业技术人员实行。
第二阶段的工作主要由我方开发组成员负责。我们将人员大体上分为3组,第一组主要是根据企业长期累积的资料以及公开发表的相关技术,建立起一个合理有效的模型,其中包括诸如数据采样记录的间隔时间,不同生产阶段的数据处理时所采用的数学模型等数据处理的相关内容;第二组负责监控记录软件的输入输出接口,用户图形界面的选定和设计等软件外围功能
15
系统分析师论文案例集PDF



