当前位置:首页 > 作文大全 > 开源软件网站【用开源软件构建64位网站】
 

开源软件网站【用开源软件构建64位网站】

发布时间:2019-03-12 03:48:34 影响了:

  利用64位PC服务器,可以突破4GB物理内存的限制。使用开源软件可以显著降低系统建设成本,而且可以自由使用最新的开源软件技术。   当前,网站技术是企业管理和数据信息发布的重要手段。而笔者在本文中要介绍的“利用开源软件建立64位信息系统网站”的方法可以充分发挥64位计算能力,突破4G物理内存的限制,以低廉价格获得与64位小型机媲美的处理能力。
  
  系统配置
  
  1. 硬件配置
  以前只有小型机使用64位CPU,现在中档PC服务器也可以使用x86_64架构64位CPU,可发挥64位计算的优势。另外,为了进行大数据量处理,还要使用内置带缓存磁盘阵列。
  
  2. 软件配置
  开源64位操作系统采用Fedora Core Linux for x86_64,而数据库则可以采用MySQL5.0,它可支持一般的数据库操作,也可以采用Oracle10G FOR Linux x86_64版本(注意:Oracle正式使用需要购买许可证)。Web服务则利用Apache httpd 2.2.0+Tomcat5.5通过mod_jk整合来实现,其中Apache处理静态页面,Tomcat生成动态页面。
  网站主要内容以数据报表的形式呈现,需要使用报表引擎。开源报表引擎使用纯Java的JasperReport,有图形设计工具iReport的支持,但JasperReport对图形支持较弱,绘制较复杂的动态图形,要使用专门的图形引擎,使用纯Java的JfreeChart。为保证生产系统的安全,不允许Web系统读写生产系统数据库,而必须采取从内部数据库通过安全网关向Web数据库写数据的方式。由于两个数据库用途不同,通常是异构的,导出数据可使用国内开发的DBput数据转换器。
  
  64位计算问题
  
  目前,使用64位Linux系统的实践还比较少,缺乏技术支持,为将各种软件整合为一个系统,需要解决许多技术问题,下面讨论几个主要技术问题点。
  目前32位计算还是主流,各种软件在64位系统上整合,一般需要重新编译,FC4有32位和64位lib文件,编译时缺省使用32位lib,造成编译错误,要设环境变量LD_LIBRARY_PATH=/usr/lib64,强制编译时使用64位lib。在eclipse等工具使用调试编译Java程序时,指定jre VM虚拟机参数-Djava.library.path=/usr/lib64。
  FC4自带的Java1.42的图形界面采用GTK的GUI。而jFreeChart绘图使用Sun java的GUI,编译后出现运行错误。而且最新的Tomcat版本要求Java1.5的支持,故不能使用原系统的Java,而必须从Sun网站下载64位Linux平台的Java1.50。
  FC4自带的MySQL 不支持简体中文(GB2312)编码,要下载MySQL5.0源代码并编译,编译选项加上支持GB2312或GBK简体中文编码。
  Apache+Tomcat(使用mod_jk connector)均需下载源程序并在64位Linux环境下编译,特别是JDBC驱动需要重新编译,否则在64位环境下出现很多莫名其妙问题,例如32位客户端不能正确读写数据库记录,SQL PreparedStatement预编译
  语句不能正确传递参数等,而同样程序在32位环境下运行正常。
  
  中文问题
  
  各种程序可正常运行后,下面很费时间的工作就是解决各种软件简体中文编码问题。
  整个系统主要基于Java的,最新的Java1.50对中文支持比先前版本容易得多,不需要修改复杂的字体属性文件,只须在jre/lib/fonts下建立fallback目录,将简体中文TrueType字体文件拷入即可,作图或制表中出现中文,系统自动使用fallback目录下的中文字体。
  Oracle10G和经过编译支持简体中文编码的MySQL数据库直接支持中文字符存储,无须在编程中进行编码转换。
  Apache2.2.0对多语言支持较好,在html页面的contentType语句中设定charset=GB2312即可。
  Tomcat5.5使用Unicode编码内部处理,输入输出时进行编码转换,对中文支持较好,只需要正确使用编码语句就可解决大部分中文问题。在JSP中需要语句指定页面编码,为了在页面间正确传递中文参数,还需要JSP或Servlet中使用语句指定参数传递使用简体中文编码。
  如果要在程序中直接传递参数,使用“param=中文参数”形式,在读取参数的程序中必须使用代码转换。系统中缺省以UniCode编码存储文件,我们需要以GB2312编码存储,需要在文件存储目录的owner用户脚本中增加“LANG=zh_CN; LC_ALL=zh_CN.GBK;export LANG LC_ALL”命令 。则该目录下文件读写均采用简体中文编码。
  JasperReport报表引擎,以PDF格式输出报表具有便于分页打印,图文并茂,浏览器插件支持广泛等优点。首先需要使用亚洲语言包iTextAsian.jar,在iReport设计报表时,选择报表字体“宋体”,PDF字体“STSong-Light” 勾选“PDF EmBedded”,选择“UniGB-UCS2-H (Chinese Simplified)”字体,则最后生成的PDF报表可正确显示简体中文。
  经过上面这些工作,整个系统可正确显示GB2312编码的简体中文了。
  
  报表引擎的使用
  
  使用报表引擎可以方便地设计报表,绘制动态图形,进行求和、平均值等统计操作。
  报表从设计到最后Web显示需要设计、编译、填充、输出4个步骤,可在PC机安装使用iReport软件,可以用图形界面设计并调试报表,大大简化报表设计。
  为提高效率,实际上设计编译两步在本地完成,iReport设计得到XML源文件*.jrxml编译生成JasperReport文件*.jasper和一些JasperReport类库文件拷入Web服务器,供Web应用调用。运行时,根据报表设计可将数据库结果集或直接将数据库连接传给报表引擎,由报表引擎执行SQL语句获得结果集,fill报表形成jprint文件对象,再由调用export函数输出jrprint文件至网页中。后两步在Tomcat中调用servlet实现,也可利用JasperReport的RunManager将Fill和Export在一个步骤完成。
  报表引擎用于显示数据集合报表。简单的报表可将SQL语句写到报表中,运行时将数据库连接和必要的参数传递给报表引擎输出报表,较为复杂的数据可在JSP页面中生成SQL语句并执行,将得到的结果集传递给报表引擎生成报表。对于无法使用单个结果集的报表,可使用JRDatasourceProvider 接口,将数据形成JRDatasource列表后传递给报表引擎。因为采用Web服务,缺省的输出格式当然是html格式。对于需要支持动态图形的报表,可选择PDF格式输出,对于需要方便地导出数据的报表,可选择Execl格式输出,要求客户端安装Excel软件。
  现在用的iReport1.21支持JasperReport大部分功能:简单报表、绘图、子报表和交叉报表等。较为复杂报表可使用子报表,如企业管理通常是树型多级管理,逐级列出数据需要子报表。而分类数据在数据库中一般以纵表形式记录,而显示时需要以横排表形式显示,将纵表形式的数据集显示横排表,就要利用交叉报表实现。
  
  按区域统计
  
  生产系统数据库记录数据以基本单位进行记录,而管理则是以基本单位为叶的树型分级结构,通常生产系统不记录相关信息。
  以彩票销售为例,数据统计是以投注站记录的,分区域统计是最基本的数据分析工作。区域分管理处、地级市、区县、乡镇四级,对应相应的行政管理体制。因为生产系统数据不含区域信息,为了实现按区域统计,Web数据库中要建立一个投注站区域表,登记每个投注站的所属区域,区域名称和代码可采用国家统计局的最新数据,用SQL联合查询语句实现按区域统计数据。
  多级区域对B/S架构很容易实现,对Web的C/S架构稍显复杂,现在普遍使用无刷新联动技术,即选择各区域时不能读取数据库内容,选择了上级区域后要自动显示下级相关选项,无刷新联动要求选择区域只能在客户端进行,只能采用客端程序,用JavaScript脚本动态生成选择项。
  区域信息属于变动不频繁的数据,所以为了在选择时不读取数据库,可将区域信息保存在文件中。XML文件本身是嵌套结构,适于描述树型结构的区域信息。
  区域数据更新,从服务器读出区域数据,用JavaScript脚本在客户端动态设置区域选项。JSP执行顺序是先服务器端程序,后客户端脚本。所以必须在服务器端JSP程序读出数据库数据之后调用JavaScript函数,利用Java Scriptlet将参数传递给JavaScript函数。
  
  网站安全
  
  根据内容不同,网站内容分公共开、限制、保密三个级别。对外公告、访客留言板等为公开信息。面向内部服务的内容为限制级,使用人工维护的密码访问即可,如彩票的分区域时段报表等。根据情况适时人工更换密码。企业的保密信息也可以放在Web上,如企业的财务运转情况和网站的管理,可以大大方便管理,提高效率,不过这种信息应仅限于特定人员访问。这种情况使用密码是不够安全的,因为密码可能无意中扩散,造成保密信息泄露。
  系统可采用USBKEY电子证书的SSL加密方式,能较好地保证安全性。USBKEY电子证书私钥由USBKEY内部产生,受PIN码保护,不能复制,而且加解密过程也在USBKEY内完成,黑客也不能推测出加解密的密钥。目前的IE浏览器已普遍支持128位加密,结合USBKEY技术,可以建成相当安全的系统,防止一般黑客的攻击。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3