Web服务器架构

2024-08-01

Web服务器架构(精选11篇)

Web服务器架构 篇1

摘要:本文通过LAMP的组成, 工作原理及简单的安装配置来简要说明LAMP平台的WEB服务器的架构。

关键词:LAMP,PHPWEB服务器,PHP

1 LAMP组成

LAMP是linux+Apache+Mysql+PHP的标注缩写。Linux操作系统, 网站服务器Apache, 数据库Mysql和PHP程序模块的链接, 形成一个网站数据库的开发平台, 都是开源的免费软件, 它与J2EE, ASP.NET架构是目前最流行的网站开发平台, LAMP组合简单且成本低, 高安全性, 开发速度和执行灵活等特点, 使其发展速度较快, 应用也较广。

1.1 linux操作系统

Linux是一种开放源代码的操作系统, 符合POSIX (Portable Operating System Interface of U-nix, 可移植操作系统接口) 标准操作系统。自诞生后, 其性能不断完善, 具有稳定, 安全, 网络负载力强, 占用硬件资源少。

1.2 高性能的网页服务器Apache

Apache源自美国NCSA (National Center for Supercomputer Applications, 国家超级计算机应用中心) 所开发的httpd。根据Net Craft的最新数据显示, 在互联网上的213, 458, 815个网站中, Apache依然是全球最受欢迎的Web服务器, 数量高达670万台, 占据了市场70%的份额。

1.3 高性能数据库My Sql

Mysql是一个关系型数据库管理系统, 是linux系统上用的最多的数据库系统, 可以非常方便的与Apache等其他服务器集成在一起。Mysql体积小, 速度快, 开放源代码, 可移植性强, 支持多种操作系统, 为多种语言提供API, 支持多线程, 具有优化的SQL查询算法。对于一般个人用户和中小型企业来说, My Sql提供的功能完全可以能够满足应用需求。

1.4 高效编程语言PHP

PHP (Hypertext Preprocessor, 超级文本预处理语言) 是一种在服务器端执行的脚本语。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。它可以比CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比, PHP是将程序嵌入到HTML文档中去执行, 执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码, 编译可以达到加密和优化代码运行, 使代码运行更快。PHP具有非常强大的功能, 所有的CGI的功能PHP都能实现, 而且支持几乎所有流行的数据库以及操作系统。

2 LAMP平台工作原理

所有http请求都将有linux操作系统接受后转发给Apache服务器处理, 如果请求静态的页面, 直接将页面返回给客户端电脑浏览器。如果客户端请求的是php脚本文件, 在apache服务器中配置了来自客户端的PHP文件请求, 就可以在服务器端使用PHP应用服务器来处理PHP程序。PHP的应用服务器会理解并解释PHP代码的含义, 并根据用户的不同请求操作。解释成不同的HTML静态网页, 返回给客户端浏览器。如果客户需要对My Sql数据可中的数据操作, apache服务器可以委托PHP应用程序服务器, 通过解释PHP程序去连接或者操作数据库。

3 LAMP平台的安装配置

本文以Cent OS5, .5为例安装, 所需软件包为:httpd-2.2.9.tar.gz, mysql-5.0.41.tar.gz, php-5.2.6.tar.gz, 将软件包放到/usr/local目录下面, 将.tar.gz包用命令tar-zxvf解压到当前目录。在linux操作系统中, 安装软件一般分位配置 (configure) , 编译 (make) , 安装 (make install) 。

3.1 安装apache服务器

如果没有出现任何错误已经将apache服务器安装在/usr/local/apache2目录中, 启动apache服务器/usr/local/apache2/bin/apachectl start.设置服务器的开机自启动命令:

3.2 安装mysql服务器

3.2.1 增加mysql用户和用户组:groupadd mysql

3.2.2 编译安装

make instll;

3.2.3 创建数据可授权表

mysql;

3.2.4 启动mysql数据库

3.2.5 登录mysql数据库

3.3 安装PHP

3.4 基本配置

3.4.1 Apache的配置

Apache的配置文件是/etc/local/httpd/conf/httpd.conf, 编辑httpd.conf文件, 在文件末尾加上一下两行:

Apache的配置内容比较多, 具体配置可以参考Apache的官方文档。

结语

Apache+PHP+Mysql被认为是Linux平台上最佳组合之一, 其所有软件都是源代码开发的, 其代码的核心部分可以被免费使用, 所有源码, 文档都可以在相应的官方网站上获得。LAMP的WEB服务器架构方案, 可以保证Web服务器的安全性, 可靠性, 和低成本性。完全可以满足普通高校和中小型企业对

服务器的要求

参考文献

[1]Evi Nemeth, Garth Snyder, Trent.Hein Linuxz系统管理技术手册.人民邮电出版社, 2011.2

[2]朱涛江.PHP与MySQL程序设计.人民邮电出版社, 2009.6

[3]高洛锋.细说PHP.电子工业出版社.2009.10

Web服务器架构 篇2

1. 前端开发框架的搭建和持续完善优化;

2. 理解产品需求,参与需求评审确认;

3. 完成产品前端功能的技术设计,按项目要求出具技术文档;

4. 编码,自行单元测试确保代码质量,按规范提交代码,按要求做好版本管理。

5. 参与前端技术规范和软件过程持续改进。

任职资格:

1、计算机相关专业全日制一本及以上学历,英语CET4或以上;5年以上开发经验。

2、熟练使用HTML5、CSS、原生JavaScript等Web页面开发技术。

3、熟练使用mint-ui、jquery-ui、bootstrap、echarts基本使用。

4、熟悉使用JQuery、Ajax、vue.js等各种Web前端开发技术,完成页面的动画效果。

5、熟练使用HTML5新标签,使内容更具有语义化,对于HTML5+CSS3新特性:audio,video,canvas,本地存储,语义化标签。

6、熟练使用DIV+CSS布局,rem移动端布局,百分比,flex,媒体查询等,可进行响应式布局以及屏幕的自适应。

7、熟悉使用W3C标准,响应式布局、弹性盒布局、rem布局,基于HTML5的webApp开发以及各种手机移动端适配。

浅谈Web系统架构之性能优化 篇3

关键词:Web;系统架构;静态页面;性能优化

中图分类号:TP393 文献标识码:A 文章编号:1009-2374(2013)17-0074-02

1 静态页面

大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以要尽可能使系统上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于内容多且频繁更新的系统,无法全部手动去逐个实现,也许可以采用信息发布系统CMS来管理和实现。尽可能的静态化也是提高性能的必要手段,同时页面静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但内容更新很小的应用,可以考虑使用页面静态化来实现,这些信息都可以进行后台管理并且存储在数据库中,这些信息其实大量被前台程序调用,我们可以采用Ajax的方式来处理相关的请求操作,针对于查询数据来说这样就可以根据所需来获取相应的数据,而不必要刷新整个页面。其实我们是不是可以考虑一下,像开发游戏那样把相关的都放到客户端来做处理呢,这样就大大减少了服务器的负载,服务器可以更好地提供服务,而不必要去做太多的处理。面向对象化的脚本编程,更好地解决了难于维护的问题。

注:不建议使用Ext、Dwr等Ajax框架,这些框架都很繁琐不利于维护,可以使用相对比较简单的Json、JQuery等。

2 程序代码

程序是构成系统的核心,是系统的灵魂。良好的命名规则与编程规范可以减少程序代码之间的冗余,程序编写的好与坏、性能的高与低都决定了系统是否可以高效率的运行。基于现在都是面向接口化编程,就更好地解决了程序的耦合性。分层架构与插件化架构已成为Web系统架构的趋势,它可以不依赖其他接口或程序使系统也可以运行,大大减少系统代码的重构,更有效地降低了维护成本。

3 影像服务器分离

大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,影像是最消耗资源的,于是我们有必要将影像与页面进行分离,独立的影像服务器,甚至很多台影像服务器,这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为影像问题而崩溃。在应用服务器和影像服务器上,可以进行不同的配置优化,比如Apache在配置ContentType的时候可以尽量少支持LoadModule,以保证更高的系统消耗和执行效率。京北方也采用了影像服务器架构上的分离,并且还提供了高效率的影像图片压缩技术,这样更好地节约了影像服务器的空间,还可以针对不同要求提取相关影像。另外在处理静态页面或者图片、JS等访问方面,可以考虑使用lighttpd代替Apache,它提供了更轻量级和更高效的处理能力。

4 数据库集群和库表散列

金融行业系统都有复杂的应用,这些应用必须使用数据库,那么在面对大量数据处理的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或库表散列。在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案。对于使用了什么样的DB,就参考相应的解决方案来实施即可。数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列。比如影像表,按照影像ID进行表散列,这样就能够低成本地提升系统的性能并且有很好的扩展性。最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。

5 缓存机制

缓存一词搞技术的都接触过,很多地方用到缓存。这里先讲述最基本的两种缓存。架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的modproxy缓存模块,也可以使用外加的Squid进行缓存,这两种方式均可以有效地提高Apache的访问响应能力。系统程序开发方面的缓存,Linux上提供的Memcached是常用的缓存方案,可以在Web开发中使用,可以实时或者Cron地把数据、对象等内容进行缓存。另外在使用Web语言开发的时候,各种语言基本都有自己的缓存模块和方法,Java就更多了。

6 负载均衡

负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价、有效、透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性负载均衡,是系统解决高负荷访问和大量并发请求采用的终极解决办法。

(1)硬件负载均衡。硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略、智能化的流量管理,可达到最佳的负载均衡需求。硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵,如果可以的话还是比较好的选择。

(2)软件负载均衡。软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,Connect Control等,它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足一般的负载均衡需求。

参考文献

[1] 王琰.对采用软件技术手段提高网站性能的一些思考[J].北京教育学院学报(自然科学版),2008,(6).

[2] 邓小善,龙艳军.高访问量网站性能监测与优化的设计与实现[J].现代计算机(专业版),2009,

(2).

作者简介:黄秋燕(1976—),女,广西南宁人,广西钦州商贸学校学生科干事,讲师,研究方向:计算机

Web服务器架构 篇4

1.1 高性能的操作系统Linux

Linux是一个符合POSIX(Portable Operating System Interface of Unix,可移植操作系统接口)标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。同时还包括带有多个窗口管理器的X-Windows图形用户界面,允许用户象使用Windows一样使用窗口、图标和菜单对系统进行操作。

1.2 高性能的网页服务器Apache

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上应用最广泛的Web服务器。其优点是源代码开放、有一支开放的开发队伍、支持跨平台的应用以及可移植性等。

1.3 高性能的数据库My SQL

My SQL是一个关系型数据库管理系统,虽然My SQL规模小、功能有限。但是My SQL体积小、速度快、开放源代码、可移植性强、支持多种操作系统、为多种编程语言提供API、支持多线程、具有优化的SQL查询算法。既能单独应用也能嵌入到其他的软件中,对于一般的个人用户和中小型企业来说,My SQL提供的功能完全能够满足应用需求。

1.4 高效率的编程语言PHP

PHP(Hypertext Preprocessor,超级文本预处理语言)是一种在服务器端执行的脚本语言,可以嵌入到HTML文档中。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。

2 LAMP平台架构

LAMP平台是关注于Web应用程序的,因此LAMP架构十分简单如图1所示。

所有的HTTP连接请求将被Linux操作系统转发给A-pache处理,其中静态内容的请求将直接被Apache服务器处理,而相关的动态页面请求将被Apache服务器交由相应的动态语言模块处理,比如PHP、Perl或者Python。如果动态页面中涉及到数据库查询,相应的数据查询会被转交给My SQL数据库服务器。

3 LAMP的发展与演化

随着LAMP的不断发展和流行,结合不同的操作系统、Web应用服务器、数据库服务器及开发语言,AMP(Apache、My SQL、PHP/Perl/Python)演化出越来越多的组合,例如:

XAMPP(XAMPP是一个易于安装且包含My SQL、PHP和Perl的Apache发行版)。

WAMP(以 Microsoft Windows 替代 Linux)。

BAMP(以 BSD 替代 Linux)。

WIMP(指以Microsoft Windows替代Linux,用Microsoft IIS替代Apache)。

LAMJ(以 JSP/servlet 作为开发语言)。

LAPP(以 Postgre SQL 替代 My SQL)。

4 Web服务器搭建

4.1 Linux主机配置

(1)使用vi/etc/sysconfig/network-scripts/ifcfg-eth0命令进行网卡的配置。

(2)使用/etc/init.d/network restart或service network restart命令重启网卡。

(3)使用vi/etc/sysconfig/iptables命令对iptables进行配置,以对相应网段开放相应的端口。

(4)使用service iptables restart命令重启iptables。

(5)使用vi/etc/hosts命令修改hosts文件,以指定IP地址和域名的对应关系,提高解析速度。

(6)为Web用户建立专门的用户和组。

4.2 xampp的安装和配置

4.2.1 安装xampp

(1)从Apache Friends Web站点上下载xampp的最新版本到蛐root根目录下。

(2)进入Linux shell并以系统管理员身份登录。

(3)使用tar xvfz xampp-linux-1.4.7.tar.gz-C/opt命令将其解压到/opt目录中,这样XAMPP就被安装到/opt/lampp目录中了,使用浏览器访问http://localhost,浏览器显示XAMPP的welcome页面即表示安装成功。

(4)使用/opt/lampp/lampp start命令启动xampp。

(5)使用/opt/ampp/lampp security命令修改XAMPP p-ages passwort、My SQL/php My Admin user pma passwort、My - SQL root passwort、FTP user 'nobody' password 四个密码。

(6)在/etc/rc.d/rc.local添加/opt/lampp/lampp startapache、/opt/lampp/lamppstartmysql、蛐pt/lampp/lamppstartftp,将xampp加入到开机启动。

(7)在/opt/lampp/htdocs/下新建一个www目录,并使用chown-R hostuser:hostuser/opt/lampp/htdocs/www/命令,将该目录的用户和属组都设为hostuser。

4.2.2 Apache配置

(1)编辑/opt/lampp/etc/httpd.conf文件,尽量只保留必要的模块;确保Apache以nobody运行;只保留常用的index页面名称。

(2)编辑/opt/lampp/etc/extra/httpd-default.conf文件,关闭服务器签名。

(3)编辑/opt/lampp/etc/extra/httpd-xampp.conf文件,注销Perl模块和phpsqliteadmin。

(4)编辑/opt/lampp/etc/extra/httpd-languages.conf文件,设置字符集。

(5)编辑/opt/lampp/etc/extra/httpd-vhosts.conf文件,配置虚拟主机。

(6)编辑/opt/lampp/etc/extra/httpd-ssl.conf文件,修改日志记录的位置。

(7)编辑/opt/lampp/etc/extra/httpd-mpm.conf文件,进行Apache的性能调优。

4.2.3 PHP配置

编辑/opt/lampp/etc/php.ini文件:

(1)关闭display_errors和register_globals。

(2)酌情修改页面执行时间、页面消耗内存、用户提交的数据大小和上传文件的大小。

(3)关闭除zip.so和memcache.so外的所有模块。

4.2.4 Proftpd配置

编辑/opt/lampp/etc/proftpd.conf文件:

(1)确保Proftpd以nobody运行。

(2)适当修改最大子进程数、允许链接的用户数、每个用户允许的连接数和登录次数。

(3)如果开放虚拟主机给其它用户使用,则限制用户在主目录内。

(4)将相关项设置为关闭登陆用户的Shell、禁止从遗留的/etc/ftpusers文件中认证用户、关闭反向查询、连接时显示欢迎信息等。

(5)禁止以被动模式登录。

(6)禁止root登陆,避免使用FTP来猜root口令。

5 配置安全的Web服务器

构建一个有效的Web入侵防御体系,必须从多方面入手。使用硬件/软件防火墙、建立入侵检测系统和入侵防御系统、安装Web应用程序防火墙、遵循程序安全编码规范、记录完备的日志和监控方案,同时网站和数据都要有冗余备份,采用一定的网页防篡改机制等,都是常见的防御方法。

5.1 Apache日志

利用Web服务器日志可以用来进行访问分析、历史安全监察、历史运行状况监控等,因此管理好日志对网站的意义很大。将Apache日志设置为回滚并自动分割,可以避免日志文件过于庞大、便于进行日志检索,同时可以定期删除旧的日志。

5.2 日志分析工具Webalizer

Webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。由于Webalizer是用C语言写的程序,所以其具有很高的运行效率。同时,Webalizer支持标准的一般日志文件格式和几种组合日志格式的变种,比较灵活。

5.3 使用Cacti监控Web服务器

Cacti是一套基于PHP、My SQL、SNMP及RRDTool开发的网络流量监测图形分析工具。通过snmpget来获取数据,使用RRDtool绘画图形。提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善,界面友好。

5.4 使用mod_security

mod_security是一个集入侵检测和防御引擎功能的开源Web应用程序防火墙。以Apache Web服务器的模块方式运行,目标是增强web应用程序的安全性,防止web应用程序受到已知或未知的攻击。

5.5 使用mod_evasive

mod_evasive是Apache服务器的防DDOS的一个模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到降低Apache服务器压力的作用。

6 结束语

所探讨的基于LAMP的Web服务器的架构方案,可以保证Web服务器的安全性、可靠性和低成本。完全可以满足普通高校对Web服务器的要求,也能提高一般网络服务企业的竞争力。

参考文献

[1]黄雁.基于xampp的linux网络环境的配置[J].合肥.电脑知识与技术,2009(11):3025-3026,3033.

[2]冯有文.基于linux构建中小学校园网网络信息安全管理系统[J].北京:中小学信息技术教育,2010(5):87-88.

[3]刘志勇.Linux+PHP+MySQL案例教程[M].北京:中科多媒体电子出版社,2001:105-223.

[4]黄超.Linux高级开发技术[M].北京:机械工业出版社,2002:57-99.

[5]杨先麟,彭小阳.基于RHEL5影视Web服务器的构建[J].杭州:计算机时代,2009(2):47-49.

[6]冯素梅.基于Linux的重负载Web服务器的架构[J].杭州:计算机时代,2010(6):13-14,17.

[7]赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J].北京:计算机工程与设计,2007(4):933-934.

web前端架构师的工作职责 篇5

1、负责公司企业级服务基础平台前端的架构设计和开发;

2、为目前前端架构的优化,重构,能根据各项目差异,制定相关代码规范;

3、和后端工程师一起,实现系统的功能,改进用户体验和设计、优化产品前端兼容性和性能;

4、负责解决公司项目中遇到的核心技术难题,推动统一技术框架建设,提升团队研发效率;

5、规划设计前端开发架构同时实现前端组件库积累;。

任职要求:

1、计算机相关专业本科毕业,3年以上互联网/移动互联网前端架构工作经验,精通前端开发技术(HTML5、JS、Ajax、Json、XHTML、CSS) ,熟练跨浏览器、跨终端的开发;

2、熟练掌握JavaScript、jQuery,对angularJS,vueJS,ReactJS其中至少两种有深入研究并熟练掌握,并且能够独立开发高质量组件;

3、掌握ios,android等平台浏览器的特性,精通各平台浏览器兼容性解决方案,熟练无线端的性能优化;

4、精通node.js, 深刻理解前后端分离的意义,并能推动新技术的实施;

5、熟悉gulp、webpack等,了解前端工程化、模块化,前后端分离设计逻辑思维清晰,良好的架构设计、分析和解决问题的技巧;

6、熟悉面向对象的方式开发,能构建好的开发模式、框架;

7、有大型网站前端架构、前端性能、可访问性、可维护性等方面的实践经验;

8、至少熟练使用一门非前端脚本语言(如:NodeJS /Python/PHP等),并有项目经验;

9、熟悉 ReactNative、Weex 等一种或多种移动开发方案,有 Android 或混合应用开发经验者优先;

Web服务器架构 篇6

关键词:Web;物联网;架构;关键技术

中图分类号:TP391.44

物联网(The Internet of things)是当前信息技术的核心构成部分。从宏观上来看物联网的依然以互联网为基础,在此基础上对网络进行有效延伸与扩展从而实现网络功能全面化并让网络覆盖范围进一步扩充。物联网环境下将用户端与物体进行了有效的关联,通过信息交互实现了“物物相息”[1]。物联网借助智能识别、智能感知等技术使自身融合与网络当中,未来以用户体验为核心的创新2.0将是物联网的重要发展趋势,在此理念的带动下物联网将朝着新的高度发展,并使其成为推动IT 产业链发展的重要助力[2]。

1 物联网概述

图1 物联网与其他泛在网之间的关系

上图清晰地将物联网与其他网络之间的关系描绘了出来,不难看出尽管物联网与其他网络存在着一定的内在联系,但依旧表现了一定的差异性。相对于其他网络而言物联网最大的特性莫过于它的异构性,为了让异构信息之间可有效进行交互,物联网的架构必须满足可开放、可分层以及可扩展等方面的需求。其中USN架构为最典型的物联网架构之一,该架构主要分为三层即感知层(sensing domain),网络层(network domain)以及应用层(application domain),同时该结构依托于NGN(Next Generation Network)架构,因此可在各处构建出网络环境并且该环境为用户提供了各种服务[3]。在上述研究中并未将物联网视作为一个独立性元素,其中还涉及到人与物的通信以及物与物的通信,这种理念为网络功能带来了前所未有的革新。由于NGN强大的功能使网络能力得到了较大程度的提升并且让公众用户服务得到了扩充。总之物联网的出现与发展为全球信息产业带来了新的方向,同时刺激了终端设备、客户端设备以及相关智能设备的发展,这对于互联网而言无疑带来了巨大的促进作用。

2 物联网发展制约因素分析

目前物联网正处于高速发展期,但依然存在着某些因素对其发展产生了制约性影响,具体表现为以下几方面:(1)当前物联网缺少跨异构终端的应用支撑环境这主要是由于物联网的多样性所致。在应用多样性的情况下使得终端处理方式以及相关通信协议等均出现了一定的差异化,同时大部分物联网应用是以终端设备需求为基础进行开发,若要让物联网应用实现跨终端不仅仅需要大量的开发成本,同时也加大了开发难度[4]。(2)物联网应用在协同化以及规模化方面还存在缺陷。从当前现状来看物联网与其他相关技术协同正处于初级阶段,并不存在相关标准对其产生支撑作用,这必然会给物联网应用协同化发展带来阻滞作用并且对产业链的规模化扩充带来影响。(3)物联网应用的开发门槛较高且具备了较长的开发周期,归根结底还是因为物联网相关设备类型差异性较大,并且缺乏统一性接口,制约了应用创新。(4)开发聚合度不高。这主要体现在软件或模块之间具有较高的相依性,这使得软件开发会受到阻碍并且会给软件维护带来一定的困难。在上述过程中开发者需要投入更多的精力于代码解读,在单一性操作时可能会涉及到多个程序间的调用且程序无法复用从而加大开发的复杂度。(5)平台数据无法共享。市场上大多数物联网应用均采取专属平台来进行综合数据管理或开展业务工作,然而这些平台之间无论是架构还是协议均有所差异,使得平台数据无法共享。

3 物联网应用体系架构及关键技術分析

由于Web具有良好的兼容性,可在任何平台上均可运作,同时基于Web可将信息进行有效分离,也就是说可将信息置于不同的站点上,只要浏览器设置指向性连接即可,站点信息看似分离存在,实际上构成了一个信息整体。另外Web具有良好的交互性,通过超链接上,用户浏览完全通过自身行为决定并可凭借Form形式从服务器端获取动态信息,也就是说用户将Form请求向服务传递,服务器可立马依旧客户请求来反馈信息[5]。基于以上特点使Web在物联网开发中有了十分重要的价值,以Web为基础对物联网进行构建将对其兼容性、扩展性等问题带来有效的解决方案。

本研究中以WoTSE 模型为基础对物联网进行构建。WoTSE 模型与传统OSI模型差异较大,其显著特点为下层不无需对上层具体功能细节进行屏蔽。WoTSE 模型主要包括三层:应用层、服务层、资源层以及抽象层。(1)抽象层:该层位于WoTSE 模型的最底层,在抽象层的作用下可以让不同类别的物理设备持续性接入,并利用设备获取有效的数据及相关服务资源。为使互联网设备可有效整合至模型当中,在抽象层以REST架构进行构建,同时构建过程中参考Web标准进行具体实施。通过上述方式可将物联网与互联网服务进行有效关联或者将相关设备功能及服务以REST为导向实现外部服务。抽象层还可进行数据缓存以及数据调度,对架构进行宏观管理。(2)资源聚合层顾名思义是对相关资源进行有效整合。当设备与抽象层相连接时,开发者可利用Web API对于设备节点数据进行调用,这能够从一定程度上让应用门槛得以降低。但在某些情况下业务复杂程度较高,此时就可让资源聚合层发挥出实际效用。在资源层业务引擎的带动下可将业务信息进行有效整合,然后在经过分类以及复用业务让商业活动的覆盖面得以扩充,实现跨领域合作。(3)服务层主要是面向用户提供智能服务。在客户需求水平不断上升的过程中,需要为其制定针对性的智能化以及个性化服务才可让服务综合质量得以提升。尽管抽象层与资源层已经具备了一定的服务能力,但下层服务还不够全面,上层再置入专门服务层便可向开发者提供面向资源的上下文建模及推理基础服务。(4)应用层。该层包括各类应用软件供于用户使用,基于这些软件是物联网与用户之间进行直接交互。以WoTSE 模型为基础让WoT 业务网关、WoT网关注册管理实体以及资源搜索管理实体等均得以实现,同时Web标准使得整个架构开放化、协同化以及自组织化均得到了不同程度的提升,其门槛也有所降低,这对于物联网开发有着积极的意义。

4 结束语

物联网的出现与发展是IT产业链的规模以及涉及面均得到了扩充,未来物联网还将具备更为广阔的发展前景,为让物联网得到深入发展,其应用体系架构构建是关键性的环节,而Web技术为其带来了强有力的支持,以Web为基础使物联网的兼容性以及功能性都得到了完善,应该给予关注。

参考文献:

[1]成静静,廖锋.基于云计算的物联网运营管理体系研究与设计[J].广东通信技术,2011(09).

[2]牛玉霞,任伟.物联网体系结构研究[J].无线互联科技,2011(08).

[3]罗军舟,金嘉晖,宋爱波,东方.云计算:体系架构与关键技术[J].通信学报,2011(07).

[4]洪海亮,金杰.基于电信运营商级物联网运营平台的研究[J].电信工程技术与标准化,2011(04).

[5]孙其博,刘杰,黎羴.物联网:概念?架构与关键技术研究综述[J].北京邮电大学学报,2010(03).

Web服务器架构 篇7

试验是航空产品在研发、生产制造、维修保障等过程中必不可少的重要技术手段, 随着信息技术的不断提高, 试验数据管理系统 (TDM) 在国内外发展和应用非常迅速[1]。试验数据管理系统需解决的关键技术问题是集成, 具体的问题有: (1) 异构子系统间如何集成。 (2) 如何与企业已有系统实现集成。因此, TDM系统需要良好扩展性和灵活性的架构, 对已有测控系统的改动尽量少, 易于和PDM等第三方系统无缝集成, 能提供标准化的接口程序, 方便系统扩展应用。

本文提出一种Web服务的试验数据管理系统集成架构, 使用Web服务作为内部异构子系统间、外部和第三方系统间的交互手段, 测控系统与试验数据管理系统间传输实时数据基于性能考虑辅以Socket方式, 该架构具有良好的易用性以及扩展性。

系统的总体架构

Web服务是一种编程模型[2], 它利用HTTP使数据在Web上传输, 通信协议使用SOAP, 服务的描述通过WSDL, 通过UDDI来发现和获得服务的元数据。Web服务是一个应用程序, 它向外界暴露出一个能够通过Web进行调用的API。本文系统使用Web服务的原因有两点:一方面, 使用Web服务作为TDM系统中各子系统间的交互手段, 能降低子系统间的耦合性。另一方面, 使用Web服务为PDM等第三方系统提供标准的交互接口。

Web服务数据传输的效率较慢, 测控系统采集的实时数据量较大, 某些试验器高速采集时每秒能采集几十次, 每次有上百个传感器数据, 考虑性能问题, 测控系统不能通过调用TDM系统的Web服务接口进行实时数据的传递, 故测控系统使用Socket将实时数据传输到服务器端入库, 其它信息的传递则采用Web服务。TDM系统包括四个主要部分, 分别是Socket服务器端、Web子系统、Web服务接口、客户端子系统。

(1) Socket服务器端的程序部署在TDM Socket服务器上, 用户接收不同试验器上测控系统使用Socket技术TCP协议发送的实时数据, 然后进行过滤等处理后存入Oracle数据库表中。

(2) Web子系统的程序部署在TDM Web服务器上, 系统在中航工业红林公司实施时使用ASP.NET、C#语言实现, 提供了TDM系统的常用功能, 如查看相关、定义数据通道、组织结构、权限等。

(3) Web服务接口是Web服务器上部署了一系列Web服务, 通过WSDL描述了服务的接口, 这些Web服务供TDM系统其它异构子系统调用。

(4) 客户端子系统主要包括历史数据分析挖掘客户端、Flex富客户端等异构等。

3测控系统与试验数据管理系统的集成

测控系统与TDM系统间的交互采用Socket与Web服务混合的方式。测控系统从TDM系统中获取目前能做的试验任务, 性能分析表模板等, 可调用Web服务。同时, 实时数据的传输采用传输效率高的Socket方式。

为了简化对原有测控系统的改动, 使用C++语言封装Socket发送端为动态链接库 (DLL) , Windows操作系统下不同语言实现的测控系统均可调用该DLL向服务器端发送数据。测控系统从传感器采集的实时数据使用“<%时间;传感器1的值;传感器2的值;传感器3的值;传感器4的值;传感器5的值;……%>”的格式编码为文本后调用Socket发送端DLL的函数, Socket发送端DLL使用TCP协议和Socket服务器端建立连接并发送。

Socket服务器端程序接收多个测控系统Socket发送端DLL传输的实时数据, 使用C#语言编写, 多线程编程, 针对每个Socket发送端, 服务器端使用两个线程进行处理。

Socket服务器端启动监听程序后, 一旦客户端连接则启动一个线程不停地从客户端接收实时数据进行处理, 为了避免写Oracle数据库失败等异常情况下实时数据不能及时处理的情况, 系统使用数据缓存, 实时数据先写入缓存队列。另一个线程不停的轮询缓存队列, 如果缓存队列有实时数据项就取出, 然后判断该实时数据是否是有效数据, 有效数据规则在系统实施时能自定义。

基于Web服务的异构子系统集成

Web服务是构建易于集成的、可扩展的试验数据管理系统的核心, 是TDM系统的数据总线。本文系统的Web服务使用ASP.NET构建, 部署在IIS服务器上, Web服务的接口使用WSDL描述。WSDL是Web服务技术的重要组成部分, 分布在Internet环境中服务操作的抽象定义接口与服务的具体实现端口。

Web服务不受传输协议或硬件的限制, 也不受子系统具体实现技术的限制, 使子系统间松耦合, 不同的异构子系统通过Web服务集合成一个整体的试验数据管理系统。本文具体介绍TDM系统的不同异构子系统如何使用Web服务[3]。

(1) 基于Flex和Web服务的实时数据在线显示

FLEX是目前主流的富客户端技术, 使用Flex构建的应用可运行于安装了Flash Player插件的浏览器上。Flex通过ActionScript3.0部分脚本定时调用Web服务getRealData () 获取实时数据。

(2) 基于Web服务的数据分析挖掘客户端

本文系统的数据分析挖掘客户端是使用C#语言编写的WinForm桌面程序, 该子系统调用Web服务从服务器上获取历史数据, 按通常的技术方法, Web服务调用后, 历史数据转换为XML在网络上传输, XML会非常大, 传输和解析的效率会很低, 大数据量如何使用Web服务传输是关键的技术问题。本文的解决方法是Web服务将历史数据转换为二进制流并压缩后传输, 具体实现时历史数据转换为二进制流使用了开源的DataSetSurrogate类, 然后使用GZipStream类压缩历史数据, 最后使用DES加密类加密后传输字符数组。数据分析挖掘客户端调用Web服务后得到历史数据字符数组后进行逆过程, 解密后解压缩, 最后把二进制流反序列化为历史数据。经过实践, 十万条实际的历史数据, 每条历史数据中有130个传感器数据, 压缩前有70多M, 压缩后仅有2M, 企业内联网中调用Web服务后40秒返回结果, 达到性能需求。

从以上两个应用可以看出, 不同的异构子系统将Web服务作为了数据总线, 子系统成了大粒度的组件集成在一起, 耦合性低, 重用性高, 也便于试验数据管理系统今后其他子系统的开发和扩展。

Web服务能够供PDM等其他系统调用, 为试验数据管理系统与其它系统能够的无缝集成打下了坚实的基础。

总结

Web服务器架构 篇8

随着网络化和信息化的不断发展,互联网已经成为人们获取信息的主要渠道。在传统Web服务模式下,用户和服务器之间是一种同步关系,服务器在处理请求的时候,用户多数时间只能等待。这种传统的“请求/响应”方式极大地限制了Web应用的交互性,用户体验较差。Ajax技术在Web服务中的应用较好地解决了上述问题。基于Ajax架构的Web服务为浏览器提供了与服务器端异步通信的能力,可以实现页面的局部刷新而不是重新加载整个页面,减少了用户的等待时间,更好地满足了用户需求,使得Web应用程序更加人性化,并且逐步得到广泛应用。但是,随着Ajax应用技术的普及,其安全问题也越来越引起关注,相对于传统Web应用,新架构下Web应用程序的安全问题更加难以发现和防范,如果这些安全隐患不能得到合理解决,必将影响新技术的进一步推广。

1 Web服务架构

1.1 传统Web服务架构

Web服务是一组自包含、自扫描和模块化的Web应用[1],它存在于Web服务器上,并具有较完整的安全、认证等基本功能。作为一个服务平台,这组应用被封装成一个整体,具有一系列保证其完整性的相关的技术标准,对外提供一个能通过Web进行调用的API接口,其执行结果被回传到客户端。Web服务的体系结构是基于服务提供者(Service Provider)、服务请求者(Service Requestor)和服务代理(Service Agencies)三种不同的角色建立的,其相互关系如图1所示。

服务提供者创建Web服务并通过Web服务代理将其发布到Internet上,响应对其服务调用的请求。服务请求者通过Web服务代理查找所需的服务,并向Web服务提供者发送请求以获得服务。服务代理的作用是把服务请求者与合适的服务提供者绑定在一起,维护已发布服务的信息。

传统Web服务的工作特征如下:

1) 用户每次得到的页面都是全新的;

2) 所有的请求来自用户对页面的操作;

3) 工作流程是“用户操作->服务器响应->用户操作->服务器响应”循序渐进式的,或者说是同步的。具体工作流程如图2所示。

1.2 基于Ajax的Web服务框架

随着用户对应用程序实时性和互动性要求的提高,传统Web服务应用技术的弊端日益显现。Ajax技术的引入,弥补了传统Web服务的不足,更好地适应了用户对实时性和交互性的需求。

Ajax即“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。Ajax技术的应用使Web应用程序能够实现类似桌面应用程序一样丰富的用户界面[2]和响应速度,把用户从传统Web服务中需要不断“提交—等待—刷新”显示页面的漫长等待中解脱出来。Ajax技术实现过程是,Web页面中的JavaScript脚本使用XMLHTTPRequest对象与服务器异步通信,服务器接收请求后返回业务数据;数据通过脚本程序处理后,动态更新显示在Web页面上[3]。这种异步数据读取方法使Ajax可以自主地发起Web请求,与远端服务器完成必要的数据交互,在构建Web页面时,无需中断交互流程即可重新加载和动态更新,既减轻了服务器负载又加快了响应速度,缩短了用户等待时间。

在基于Ajax的Web服务架构中,Ajax相当于用户和服务器之间的中间层,使用户操作与服务器响应异步化。这一中间层的工作是由Ajax引擎(Ajax Engine)来完成,并不是所有的用户请求都提交给服务器,像一些数据验证和数据处理等是由Ajax引擎完成,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。Ajax引擎事实上是一些复杂的Javascript程序,这些程序通过调用XMLHTTPRequest对象的属性和方法来与服务器端进行数据交互,然后通过DOM来解析处理XML文档和部分更新HTML页面的内容[4]。因此基于Ajax架构的Web服务是在传统Web服务基础上结合Ajax技术优势的新型Web应用。它通过Ajax引擎向服务器发送并取回必需的数据,使用SOAP或基于XML的Web服务接口,并在客户端采用JavaScript处理来自服务器的响应,从而可有效减少服务器和浏览器之间的数据交换量。这种新的Web服务架构不但缓解服务器端的压力,而且也发挥了客户端的处理能力。基于Ajax的Web服务体系结构如图3所示。

图3中服务提供者是指提供服务的平台;服务请求者是指查找和调用服务的客户端应用程序;服务代理是指用来存储服务描述信息的信息仓库,负责为服务提供方发布服务,为服务请求方查找服务,并且将获取服务的信息绑定给请求方;Ajax引擎负责将服务请求转发给服务代理,然后根据服务代理传回的信息将用户请求绑定到服务。这样用户对服务请求的一系列处理工作完全交给Ajax引擎,实现了用户和Web 服务的异步交互。

相对传统Web服务框架,由于Ajax引擎的加入,服务器工作流程变成异步交互,在浏览器后台与服务器进行通信的同时,用户可以继续自己的操作而不被刷新打断,当来自服务器的数据经客户端引擎解析完毕,就能随时刷新显示在当前页面上。例如:在浏览GoogleEarth时,用户拖动地图,浏览器便在后台请求新的地图照片,此时用户可以继续拖动地图和浏览先前的地图。新架构下的异步工作流程如图4所示。

总之,基于Ajax的Web服务架构的优势是客户端使用异步方式与服务器通信,数据传输在页面内部完成,不需要打断用户的操作,使Web应用具有更加迅速的响应能力;由于客户端Ajax引擎的存在,可以利用客户端闲置的能力来处理部分事务,可以减轻服务器和带宽的负担,同时由于Ajax引擎是“按需取数据”,可以最大程度地减少冗余请求和响应对服务器造成的负担。

2 Ajax架构的安全问题

Ajax技术的引入提高了网络性能,改变了Web应用的开发方式,但是一项新技术的出现不可避免地会出现安全问题。由于Ajax是基于JavaScript和XML的技术,JavaScript和XML的安全漏洞都会威胁到Ajax架构Web服务的安全性能。根据安全问题产生原因的不同,新架构下Web服务的安全问题可分为以下四类:

2.1 JS脚本类问题

(1) XSS跨站攻击问题

跨站脚本XSS (Cross site scripting)是一种很常见的攻击手段,攻击者在Web页面的html代码中插入恶意代码[6,7],当浏览器下载该页面后,嵌入其中的恶意代码将被解释执行,从而达到恶意用户的特殊目的。

XSS攻击利用了Web应用程序安全性低的弱点,该应用程序在浏览器中显示输入参数而不对其中是否存在活动内容进行检查。如下:

http://trusted.com/search?

keyword=<script>document.images[0].src=″http://evil.com/steal?cookie=″+ document.cookie; </script>

假设trusted.com提供了一个服务,该服务具有一个搜索特性能把搜索结果和输入的关键字一起提交回来。如果搜索应用程序没有过滤URL中的一些特殊字符(如“<”和“>”),则<script>标记也将被插入到用户Web页面中,这样将会把文档的cookie发送给远程服务器evil.com。

对Ajax框架的客户端脚本,由于JavaScript脚本可以自我创建HTTP的请求,而请求的格式又与用户在浏览器中完全一致,因此Web服务端根本无法辨别哪些请求来自用户的真实操作,哪些来自一个恶意JavaScript脚本所创建的XMLHTTPRequest对象的连接。由于XMLHTTPRequest请求是在后台发出的,用户根本无法从浏览器的状态得知是否遭到了XSS的攻击。再者,所有在网页内部被JavaScript创建的HTTP请求都能自动享有浏览器当前的状态(包括被认证状态和被授权状态),恶意脚本可以利用这些特权和Web服务端进行通信。而且在基于Ajax引擎的脚本攻击中,恶意JavaScript脚本可以根据服务端返回内容的不同,动态创建不同的新请求再次与Web服务端进行通信,因而具有交互能力。可见,JavaScript这种可以自我创建HTTP请求的新特性,大大扩大了XSS在Web应用中的危害和影响。

(2) 恶意JavaScript问题

JavaScript是Ajax的关键技术之一,主要用于调用XMLHTTPRequest以及通过DOM访问和修改页面。因此其安全问题直接关系到基于Ajax技术Web应用的安全性。JavaScript在设计之初考虑了其运行的安全性,因此设计了两个原则来保证JavaScript的安全基础,即沙箱原则和同源原则[8]。沙箱原则是指JavaScript代码只能在当前的浏览器中运行,一切试图对本机资源或者跨浏览器资源的访问都是禁止的。同源原则是指JavaScript仅仅允许其脚本对其被下载网址服务进行访问,而不允许对其他网址,或者自己网址的其他服务(比如FTP,甚至是运行于不同端口HTTP服务)进行访问。但是,随着Ajax的技术的开发和广泛应用,由于JavaScript具有动态修改网页的能力,利用其在网页中添加tag的方法,结合Ajax的客户端逻辑特性,新架构下Web服务变得越来越不安全了。主要表现在以下三个方面:

1) 耗尽浏览器资源的JavaScript代码 这种代码往往以死循环或者不断创建新的对象为特征,最终会耗尽浏览器甚至客户端的主机的CPU和内存资源,造成死机,使用户不能继续实用Web服务。

2) JavaScript端口扫描器 虽然曾经被认为是不可能实现的功能,但事实上,只要在JavaScript中给定扫描主机的地址和端口范围,就能在浏览器后台实现一个非常隐蔽的端口扫描器,给Web服务造成潜在威胁。

3) JavaScript能利用动态生成link对象,隐藏iframe标签等特性 创造出主机存活自动探测器、Google链接自动搜索器等一些威胁Web服务的JavaScript恶意代码。

(3) 畸形的JS对象序列

JavaScript支持面向对象编程技术。它有很多不同的内置对象,允许用户创建自己的对象。用户可以用new object()或者编辑如下代码来创建新的对象。

下面一个简单的消息对象,其中有2个字段需要电子邮件地址。可以使用Ajax来将该对象序列化并用JavaScript代码编译,程序员可以将其赋值到变量或者eval()。如果攻击者发送嵌入脚本的恶意“主题”,那么接受者就将成为跨站点脚本攻击的受害者。JS对象既包含数据也包含方法,对JS对象序列的使用不当会产生代码注入安全漏洞。

message = {

from :″john@example.com″,

to :″jerry@victim.com″,

subject :″I am fine″,

body :″Long message here″,

showsubject : function()

{document.write(this.subject)}

}

2.2 注入类问题

(1) SQL注入问题

尽管在Ajax架构中,客户端和服务端通信在后台进行,但是通过分析客户端的源代码,依然可以取得后台发送到服务器的所有请求字符串,只是请求比传统情况复杂。新架构下的Web服务使用XMLHttpRequest对象作为通信发起者,并且使用了XML作为标准的中介数据结构。所以我们很少在大量使用Ajax技术的网站的HTML中看到显性的诸如“/listUser.asp?id=203”这样的URL。我们很可能在<script>标签中看到下面的代码:

xmlRequest.open(‘GET’,’listUser.asp?id=’ +user_id,true);

xmlRequest.SetRequestHeader(‘Content-Type’,”text/xml”);

xmlRequest.send(null);

正是因为请求的URL不直接存在于链接中,于是就被很多人忽略了,但这并不代表那些链接就不存在漏洞。比如某网站的一个注册页面,为了验证回答项和用户名项,程序使用了JavaScript进行异步提交验证并且无刷新更新页面。当用户输入相关信息后,页面中JavaScript代码会自动向服务器动态页面提交若干请求,如“GET http://www.xx.php?inajax=1&action=checkusername&username=putin”是用于验证输入的用户名是否存在的请求。如果服务器没有对username参数进行非法过滤,那么带有非法SQL语句的参数username就会被放到数据库中执行,其效果与传统的SQL注入攻击无异[2]。

(2) JSON注入问题

JSON(JavaScript Object Notation)是一个简单有效的少量数据交换格式,包含对象、数组、Hash表、向量以及列表数据结构。JSON 序列在基于Ajax架构的Web 应用中是个非常有效的交换机制。在Ajax应用开发过程中,经常使用JSON来获取和传送必要的信息给DOM,例如:JSON对象“bookmarks”,具有不同的name值。

{″bookmarks″:[{″Link″:″www.example.com″,″Desc″:″Interesting link″}]}。

可以在Link或者Desc中注入恶意脚本,如果恶意脚本注入DOM并被执行,就可以实现对新架构Web应用的攻击。

(3) XML注入问题

Ajax 应用可以接受多个地址的XML数据,这些数据可能来自非信任域的数据流。如果攻击者篡改了第三方的XML数据文件,并向其中注入了恶意内容,那么浏览器在解析此XML数据文件时会触发脚本执行,可能引发跨站脚本攻击,只要浏览器接收未经认证的XML数据流,就有可能会危及终端客户的安全。再者在Ajax架构的服务中,许多服务器为了减少格式转换的开销,也采用XML格式的数据,加上Ajax框架的高交互性,后台异步交互的特性,导致XML注入的方式自动化程度更高,更为隐蔽。

2.3 跨域类问题

Ajax不能从浏览器跨域访问,XMLHTTPRequest对象只能向包含自身的网页的同域名地址发送请求,这是为防止客户端利用当前网页中保存的Cookie或Session信息向第三方网址发送请求导致用户的信息暴露。但是跨域安全[5]依然存在,一旦被恶意攻击者利用,会导致用户信息泄露,使恶意者获得非法权限。

(1) 利用Flash来发送数据

Flash提供的ActionScript具有强大的功能,允许进行XML的读写,而且还可以内嵌JavaScript代码,实现更强的功能。对于某些允许上传Flash并显示的网站,恶意攻击者可以通过上传恶意Flash来达到和第三方通信的目的。也可以利用Flash插件的Ajax接口,从而用浏览器中的JavaScript发出GET和POST请求,如果Flash插件的crossdomain策略配置不当,可能实现跨域的访问。例如:某网站存在一个配置不当的crossdomain策略文件:

<cross-domain-policy>

<allow-access-from domain=″*.malice.com″/>

</cross- domain-policy>

这种配置使浏览器可以从自身发出跨域调用,访问此网站下的资源。

(2) 利用JavaScript动态生成<script>标签来发送数据

这种发送方式运用了相当多的Ajax特性和JavaScript技巧,对于基于Ajax技术的Web应用,威胁很大。具体步骤是:

1) JavaScript根据Ajax引擎的触发,动态在页面上添加新的<script>标签或者<img>标签;

2) 在<script>或者<img>标签的src属性中添加第三方的网址;

3) 添加标签完毕后,网页触发src属性向第三方网址发送请求。

由于<script>和<img>标签不遵循同域名请求的显示,因此其src属性可以指向任意的域名,从而达到了向第三方发送信息的目的。此方法实现方便,发送隐蔽,并与Ajax框架结合紧密,只要攻击者能顺利将生成script标签的JavaScript代码嵌入网页并设定被调用条件就能完成跨域攻击。

(3) 利用没有受限制的Ajax桥来发送数据

由于XMLHTTPRequest对象只能向包含自身网页的同域名地址发送请求,为了允许客户端向第三方的网址发送请求,Ajax桥技术应运而生。Ajax桥相当于在Web服务器上架设了一个代理,所有客户端发送到第三方网址的请求,经来源Web服务器接收以后,转发给第三方网址。而第三方网址被请求后回送的内容,也通过来源Web服务器转发给客户端,因此客户端并不通过XMLHTTPRequest对象制造的请求直接和第三方网址通信。

如果当前Web域没有限制Ajax桥的请求站点,那么Ajax桥就可以通过SOAP协议(Simple Object Access Protocal)或者REST(Representational State Transfer)和在任何主机上架设的任何Web服务进行通信。Ajax桥也能以一个定制的Web服务用RSS(Rich Site Summary)、HTML、Flash甚至二进制数据进行通信,为攻击者向第三方网址发送请求提供了方便。Ajax桥的跨域访问原理如图5所示。

2.4 拒绝服务类问题

拒绝服务(DoS)问题并不是Ajax框架中突出的安全问题,但由于Ajax的特点,客户端浏览器会比传统Web服务更加频繁地向服务器发起请求,而且可以通过XSS的攻击来触发,一旦被人利用,即使一些短链接,服务器也会面临巨大的挑战,所以新架构下的Web服务更加难以抵御DoS攻击[9]。由于XMLHTTPRequest可以动态创建并向Web服务端发送,因此恶意的JavaScript代码有可能在后台不断地创建XMLHTTPRequest对象向Web服务端发送请求。在Web服务器具有XSS漏洞的情况下,向网页注入能够不断创建XMLHTTPRequest对象的恶意脚本,当同时有很多普通用户打开这个被注入恶意脚本的网页时,Web服务器可能因为无法处理源源不断的Web请求而崩溃,从而达到了DoS攻击的效果。

3 结束语

Ajax技术的引入,克服了传统Web服务的缺点,形成了一种基于Ajax的Web服务新架构,改善了用户感受。当用户与网页交互时,Ajax可以快速地在浏览器中更新信息而又无需重新加载页面。随着用户对界面要求的提高及浏览器可编程性的增强,基于Ajax的Web应用正逐渐成为Web应用开发的主流选择。但是,它在改善用户体验的同时,也给人们带来许多安全问题,在一定程度上阻碍了Ajax的推广。随着Ajax架构的Web服务的广泛应用,其安全性将进一步被开发人员、测试人员和相关的安全研究人员所重视,在进行Web应用开发时只要遵循一定的安全法则,制定相应的安全策略,比如:身份验证请求页,过滤不合法逻辑等,安全问题就可以得到有效避免,基于Ajax技术的Web服务将会得到进一步推广。

参考文献

[1]林宝平.Web服务接口的相容性与调解研究[D].合肥:中国科学技术大学,2009.

[2]Billy Hoffman,Bryan Sullivan.Ajax安全技术[M].张若飞,王铮,译.北京:电子工业出版社,2009.

[3]Twynham S.AjaxSecurity,http://www.it-observer.com/articles/1062/ajaxsecurity.

[4]刘子明.基于Web Service和Ajax技术的Web应用框架及安全性分析[J].计算机时代,2008(12):55-57.

[5]Michael Sonntag.Ajax Security in Groupware[C].Proceedings of the32nd EUROMICRO Conference on Software Engineering and AdvancedApplications,2006.

[6]李骏,陈恭亮.Ajax对Web应用程序安全的影响[J].信息安全与通信保密,2007(3):35-37.

[7]XSS跨站脚本攻击及防范[J].搜狗实验室技术交流文档.

[8]Thomas Powell,Fritz Schneider,JavaScript Security,McGraw-Hill OsborneMedia,2004,06.

Web服务器架构 篇9

在高速运转的当今社会, 制造业企业之间信息的有效沟通, 以及制造业资源和知识服务协同共享显的越来越重要, 伴随着信息化建设的日益深入, 信息技术产品已经成为推进制造业信息化, 提高工作效率和科学化水平的不可或缺的重要工具。然而, 在实际的管理应用过程中, 很多相互独立的信息系统之间缺乏功能联系设计和信息交换, 形成了不断在投入, 同时却又不断形成了一个又一个信息孤岛的资源配置失衡的局面, 企业以及系统之间的信息交互关联被割裂, 违背了信息系统建设和设计的统一性原则, 大大降低了信息交换与共享的效率, 影响了整个管理体系的效能。

因此, 为了提高制造业企业信息技术应用及资源和知识共享服务水平, 需要通过新的信息组织和技术应用设计, 整合现有的资源, 改进信息管理方式。本文设计了一种基于分层Web技术架构的制造业信息协同服务系统, 将进一步提高制造业企业及业务系统间的信息对称性, 进一步加强制造业企业间的协同服务。

1 需求分析

1.1 直接需求

制造业信息协同服务平台的设计以“统一调度、统一交换、数据共享、统一监控”为设计原则, 建立在统一设计的原则下, 构建以各个制造企业及应用系统之间信息交互关联与信息共享, 系统功能的合理设计和科学的信息组织理论来实施设计和部署, 真正实现制造业企业之间的信息统一交换, 数据安全高度共享, 统一应用和监督管理。

制造业企业间在资源服务方面主要体现在制造业机构和产品信息库的信息统一对称性, 如汽车整车和零部件生产企业、研究机构、基本信息、产品服务信息和产品配套等信息。制造业企业间在知识服务方面主要体现在制造工程数据安全有序、高效共享方面, 如制造业企业间相互提供制造业工程数据的导航、检索、浏览和下载等服务, 内容涵盖零件图库、设计和制造工艺、通用技术、基本技术参数、企业管理等领域。主要载体包括文档、数据表、图片、视频等多种形式。

1.2 隐含需求

在客户需求表象的深层, 实际隐含了直接功能部分之间协同处理的需求, 如:用户需实现一次登录, 即在同一登录平台下实现文件使用管理、搜索等功能;审核人审核发布或者下属某部门一次提交信息, 即可实现此提交信息多方位流向;网站内容审核人, 不必再等待登录网站获知来件, 通过个人的IM终端或IM无线终端扩展, 通过手机短信即可获知来件人和稿件的信息, 登录审核发布。诸如此类隐含需求是多样的。

隐形的需求是深层次的需求挖掘基础上建立协同功能应用, 是信息共享的要求, 是信息组织科学技术发展的要求, 是不断上升的管理需求的要求。从技术角度看, 制造业信息协同服务平台的建立其实是在建立制造业企业间的一个“云计算”平台, 我们不需要掌握和了解信息资源的物理引用位置, 不需要明确信息是位于哪一台具体的计算机, 展现在用户面前的只是按照既定设计的功能来提交一个需要被共享的文档。文档提交后, 用户却并不需要知道这个共享后文档同时会被站群引用, 是被内部的文件管理系统搜索引擎收录, 还是被更多的用户通过多种渠道或设计的功能引用等等, 协同服务平台会按照既定的设计来处理信息, 在不同的计算机或者系统内完成查询、计算、综合, 直至输出一个结果给提交的用户一个提示:该文件信息已经出现在哪些位置等等。

2 设计思想

制造业信息协同服务平台按照功能需求统一组织系统内的资源、文件、消息、业务信息接口等基本信息元数据, 负责资源和知识管理、信息发布、数据安全管理、应用系统的整合和接口扩展。

制造业信息协同平台功能组织的表达与交互主要通过企业门户网站来实现。内部用户通过登录用户个人工作平台, 在系统授权模式的干涉和信息元数据安全应用管理下, 在有效的功能组织与穿插设计中实现信息阅读、信息发布、资源和知识的安全使用管理、消息及时通讯、交互及系统横向交联功能等[1]。

3 协同信息平台的逻辑架构设计

基于以上应用思想的设计基础, 本信息协同服务平台在软件结构设计上采用组织功能模块来描述和说明用户所需;在设计实现的层面上, 采用分层Web技术架构设计来实现需求, 主要由表现层、中间层 (应用服务层) 、业务层、逻辑层、数据层以及应用接口这几部分构成。

1) 表现层采用.N E T或J S P与S E R V E R L E T JAVA BEAN来完成与用户信息交互和业务逻辑计算的输出;

2) 中间层狭义指中间件层, 负责表现层与业务层的功能耦合, 以及组件复用和层次内的数据处理与计算等;业务层以OOP设计为主导, 根据业务模式的组织与扩展, 负责与逻辑层、数据层与中间层的交互;

3) 逻辑层设计为抽象层构件, 实现系统组件间的逻辑交互, 应用接口功能的拓展, 采用EJBWEB SERVICE来完成逻辑层构件设计封装以及对象会话接口设计;

4) 底层设计为数据层, 采用应用关系型数据库 (RMDBS) 或对象数据库 (ODBS) 存储设计, 商业化数据库产品实现数据层设计, 完成信息元数据、对象数据存储以及Web XML数据构建处理。

通过以上的多层复用面向对象的结构设计可以轻松实现系统平台内各功能系统的信息协同处理, 也有益于系统功能的扩展, 使得系统具备有良好的伸缩性和延展性[2]。制造业信息协同服务平台的逻辑架构如图1所示。

4 组织架构设计

要达到一个致密的协同功能组织处理设计, 首先要对现实模型中的组织结构与数据逻辑关系以及信息元数据基本要素等信息系统基本构成元素和逻辑功能关系做一个基础性的架构和层次分析。

4.1 用户组织架构

用户组织架构如图2所示, 用户分类为公共用户与内部用户, 内部用户按照部门组织架构又被划分为不同部门的职务角色;系统内还可按照特定用户授权。

4.2 部门组织架构

部门组织架构按照如图3所示的实现模型进行设计, 从上至下为垂直线性, 每一层为相似结构部署, 可以按照垂直树形划分和功能部门两种划分方式实现信息协同的组织结构分层。

5 个人协同工作平台功能设计

组织架构与系统权限设计为整个制造业信息协同服务平台的基础构建之一, 采用OOP设计方法, 以灵活的组织架构树配合“DNA”系统权限附着方式, 对系统内每一功能模块以及每一用户进行分组设定与权限控制。

5.1 组织架构与权限设计管理

1) 组织结构树形管理:多级层组织架构添加删减管理、灵活适用与系统内多级组织架构管理。

2) 用户管理:用户创建、修改、删除, 用户权限管理。

3) DNA权限控制管理:以组织架构树为基础, 在树架构基础上, 按照不同分属的部门、机构划分权限控制;按照不同的系统功能模块以及文件信息的安全属性要求划分权限控制;按照父、组等形式继承结构模式实现权限的控制与划分[3]。

5.2 个人协同应用平台

个人协同应用平台涵盖了系统内所有角色用户的功能入口, 提供给每个角色用户的统一进入的工作平台, 平台是集合文件管理、站群管理、RTX即时通讯、SDK接口部分简单信息提示功能的应用协同平台, 通过平台所集合的功能, 使各个系统间实现按既定功能设计的信息协同处理与信息共享, 从而改变信息利用低下的状况, 实现用户与数据的最大程度的共享和最大透明度的信息资源应用。

1) 文件应用管理:具有多条件组合查询搜索功能;历史查询搜索记录;搜索词条提示;文件提交保存功能;引用与评价 (对系统中某文件可做评价或标识此文件的引用或由来) ;分发标记 (对文件的传播或使用范围勾选标识) ;打印、下载、在线浏览文件、预览。

2) 文件综合管理:编目管理;文件信息维护标识;安全权限管理;搜索管理维护;数据统计与分析;备份、恢复与系统维护。

3) 网站应用管理:站内关注栏目订阅;提交稿件文件、栏目管理;来件审阅审核、提交发布、栏目内容管理。

4) IM消息及时通讯:重要文件送达阅读通知、系统通知消息发布与接收、RTX Web在线简单消息接口功能开发。

5) 个人管理:用户登入UI设定。

6) 组织架构与权限控制管理:组织架构树管理, 用户单位编码管理;用户管理、角色与授权管理;权限控制管理。

6 文件管理系统的设计

文件管理系统设计是协同功能结构的处理和功能组织的处理、索引和存贮的基本功能体, 是协同信息服务平台设计中的一个基础构件。本设计中核心技术采用J2EE技术, 遵循文件管理系统参照系设计和面向对象设计思想, 从以下三个方面进行文件基础性构件的设计和开发。

6.1 信息元数据结构

按照信息组织架构设计的元数据模型, 在信息传递、流转设计功能环节上遵循各元数据模型、指标系、基本系、扩展属性、限制系、维护系等指标要求与实现, 直至构成完备的文件信息元数据的集合, 成为系统的知识管理库。

在信息元数据传递的流程中, 设计了以下七个功能系作为知识管理库的应用。信息元数据的模型结构如图4所示。

1) 文件来源:在用户与安全设计的条件下转录或创建提交产生文件来源, 标识出文件标题、创建日期、关键字、作者、发布者、唯一标识编码、分类编码、分类名称、发布范围。

2) 文件审核:通过获得初始的提交文件, 经过审核策略, 标识出审核人、日期时间、确认通过或退回标注。

3) 安全限制:通过审核标识, 标识安全限制、访问和使用限制、适用性限制、应用范围限制、密级限制等。

4) 发布与应用追踪:公共浏览发布、内部范围适用发布、根据相应的发布模式设计引用和阅览以及下载的次数、用户信息、引用标注等标识。

5) 文件质量:缺少体系化的情况下, 采用简单设计指标和文字标注来完成质量的说明和标识。

6) 文件维护:定期的更新和文件的变更说明标识。

7) 参照系:由产生者标识和文件质量系构成补充写入参照文件或参照出处[4,5]。

6.2 文件管理“引擎”

文件管理引擎是文件管理系统的核心处理组件[6], 按照模型系统设计, 完成如下功能设计。

1) 分类、编目组织:良好的开放性编目结构体系, 可按照用户的需要定义创建文件编目编码, 并可实施增删管理等。

2) 存贮:文件存放、文件数据索引快照、URL路径存储。

3) 文件来源:按照文件类别、编目、属性、附加属性等关联系要求, 创建文件收录于存贮。

4) 管理维护:文档管理员对文件系统编目存储索引结构进行管理;对文档进行单一或批量维护管理。

5) 限制:以访问权限划分和文件安全体系划分, 限制相关用户访问的安全操作设计。如:创建、修改、删除、授权、完全控制、可见、私密等。

6) 搜索:在管理搜索方面, 主要体现在文件系统维护和管理中使用对文件系统进行搜索、统计、汇总的功能;在文件应用搜索方面, 主要体现在用户使用过程中支持多条件组合查询搜索和自动类比功能。

6.3 消息管理器

消息管理器是组件间通讯与协同组织的消息传递和管理单元。消息系统管理中的文件消息器担负着协同各个系统中以用户为传播基础的模块间或系统间的消息传动和消息管理, 消息器设计统一消息编号, 采用XML作为消息格式的载体。下面是一个具体样例:

7 结束语

本文提出了一种基于分层Web技术架构的制造业信息协同服务平台的设计方法, 此种信息协同服务平台可以很好的克服信息孤岛等问题, 形成一个系统化的信息功能体系, 能够有效提高信息交换与共享的效率, 完善整个管理体系的效能, 从而达到推进制造业企业信息化水平, 提高工作效率和信息技术应用水平的目的。

摘要:本文通过分析当前制造业信息协同服务过程中存在的若干缺陷, 从逻辑架构设计、组织架构设计、信息元数据设计、个人协同平台设计、文件管理系统设计几方面提出了基于分层Web技术架构的制造业信息协同服务平台的设计方法, 在制造业信息系统数据共享、高效协同方面提出了比较科学的设计理念, 能够有效提高信息交换与共享的效率, 完善整个管理体系的效能。

关键词:Web,制造业,信息协同,信息元,J2EE

参考文献

[1]冯博.基于协同网络信息的多指标决策方法研究[D].沈阳:东北大学, 2009.

[2]韩娜.内网协同办公系统的设计与实现[D].长春:吉林大学, 2012.

[3]孙洁香, 黎晓东, 杨书评, 王姗.王思斯.制造产业集群信息化协同服务平台设计思想及运行模式分析[J].制造业自动化, 2012, 34 (11) :72-74.

[4]孙忠林, 崔焕庆.面向多类用户的电子政务信息协同模式研究[J].山东科技大学学报 (自然科学版) , 2009, 28 (1) :79-82.

[5]刘世清, 肇洋.网络信息元及其基本形态与组织模式[J].宁波大学学报 (教育科学版) , 2010, 32 (6) :115-117.

Web服务器架构 篇10

五、系统插件

系统框架插件包括配置器和拦截器插件。插件在XML配置文件中配置, 系统会根据配置参数创建插件, 通过调用插件接口方法来实现插件的功能。它是系统提供应用的扩展接口, 系统会在启动的时候创建插件, 并调用其接口方法。

(一) 配置器插件

配置器插件用于往系统中载入参数、组件, 执行计划任务等操作, 实现系统功能扩展。插件接口方法包括初始化方法、配置插件方法以及配置完成后其他相关操作方法。

系统实现的配置器组件有:获取应用参数设置组件, 读properties配置文件, 获取应用配置参数, 将配置参数保存到系统中;配置应用模版组件, 加载应用模板组件到系统中;配置数据域转换器组件, 创建系统数据域转换器组件, 并将这些组件加载到系统中;获取交易错误配置参数组件, 读XML配置文件, 将交易错误码表加载到系统中;配置格式化组件, 创建系统基本格式化组件以及在配置文件中设置的格式化组件, 并保存到系统中;获取IP映射表配置组件;配置流水号组件, 根据配置文件参数设置交易流水号配置参数;数据库配置组件, 创建一个数据库连接组件, 建立数据库连接;计划任务配置组件。

(二) 拦截器插件

拦截器插件用于拦截Action交易, 在系统插件配置文件中配置, 在系统启动的时候被载入系统。系统实现的拦截器组件有:一是基于IP的交易流水号记录拦截器组件, 用于记录交易流水号, 给不同客户端IP的交易设置各自的流水号, 将不同客户端IP的交易流水号各自保存到各自的流水号记录文件中。在交易处理前从流水号配置文件中获取交易流水号, 并在完成交易后将流水号加1回写到文件中, 若流水号大于0xf423f L, 则将流水号清零。二是单机全局交易流水号记录拦截器组件。用于记录交易流水号, 将所有客户端的交易记录设置一个流水号。在交易处理前从流水号配置文件中获取交易流水号, 并在完成交易后将流水号加1回写到文件中, 若流水号大于0xf423f L, 则将流水号清零。

六、交易与应用服务子系统

交易与应用服务子系统是自助业务的核心功能, 主要是进行联机交易 (OLTP) 处理及相关自助应用服务的处理。如储蓄业务:查询余额、查询及打印明细、存折补登、修改密码等;银行卡业务:查询余额、查询及打印明细、汇款、修改密码、卡转账。后续需要实现的功能可能包括银行卡业务:IC卡充值、圈存等;代理缴费业务:联通手机话费、移动手机话费、固定电话话费、燃气费、水费、电费等。基本任务包括余额查询、明细查询、存折补登和修改密码。

(一) 余额查询

余额查询交易代表了一类查询类交易, 其特点为无输入域、查询返回结果为单条数据。类似交易有:借记卡自助循环贷款——客户信息查询、贷记卡——主卡信息查询、副卡信息查询等。处理流程如图4所示。

(二) 查询明细

明细查询交易, 查询客户指定时间段内的交易明细情况。用户在借记卡主界面上点击“明细查询”, 提示客户输入“查询起始日期”和“查询截止日期”, 对起始日期的要求为:起始日期在当前日期与一年前当前日期之间;截止日期大于起始日期, 不超过起始日期3个月且不超过当前日期。当输入日期不正确时, 提示客户“输入日期不正确, 重新输入!”, 然后跳转至输入起始日期处。提交请求之后, 便会返回客户的明细信息, 当明细数据有多页时, 提供翻页按钮, 供客户翻页查看。处理流程如图5所示。

(三) 存折补登

主界面上, 客户直接插折或点击“存折补登”按钮根据提示插折, 系统读取存折磁道数据, 并对存折类型进行判断, 若存折类型不符, 直接退折, 对符合条件的存折, 打印明细数据页面printbook.jsp, 发送页面明细数据查询请求。服务端接受客户端明细查询请求, 建立与通信前置链接, 获取存折补登明细数据和查询结果标志位, 根据各种情形, 分别对客户端作出不同的响应处理, 如无明细数据、提示换折、返回明细正常补登等。客户端根据响应数据, 作出相应处理, 如提示无明细数据、提示换折或补登明细等, 若补登明细完成后, 还须根据查询结果, 判断下一步操作是翻页、换折或补登完成。处理流程如图6所示。

(四) 修改密码

本行卡:在自助交易主界面, 客户点击“卡业务”菜单进入插入磁卡提示页面或者直接插入磁卡。Web服务器判断磁卡类型, 验证正确进入输入密码提示页面。用户输入密码, 点击“确认”按钮提交, 发送密码验证请求。Web服务器接受请求, 向通信前置发送验证密码数据包, 并接收密码验证返回信息。如果验证成功, 进入卡业务主界面;如果验证失败, 进入验证密码失败重新输入密码页面, 验证次数超过3次, 提示密码锁定, 在卡业务主界面点击“返回”进入自助交易主界面。他行卡:对于他行卡来讲, 用户输入密码后, 不进行密码校验, 直接进入他行卡主界面, 对于他行卡密码有效性判断是结合在具体交易中。处理流程如图7所示。

七、结束语

遵循软件工程的原则, 对银行自助服务系统的软件架构、系统功能等进行了分析研究, 并提出了系统网络结构与实现方式。在具体开发过程中, 应该利用编程语言Java, JSP, XML, Java Script, C++, 数据库系统采用Oracle, Informix, My SQL, DB2, SQL server, Sybase等。银行自助服务终端BST可实现缴费、查询、打印、业务办理等多功能业务要求, 并可进行实时的交易监控和终端状态监控。在交易管理、数据管理及远程控制方面应采用先进的金融级别架构来保证设备的安全性。

参考文献

[1]肖丁, 吴建林, 周春燕.软件工程模型与方法[M].北京:北京邮电大学出版社, 2008:110-133.

[2]刘欣怡, 周跃东, 田秀丽.软件工程[M].北京:清华大学出版社, 2007:10-31.

[3]朱伟义, 陈淑琴.自助售电服务终端在银行侧的引进与应用[J].电力安全技术, 2008, 6 (6) :44-47.

动态Web技术架构探析 篇11

1 web技术架构

1.1 web中间件技术

Web数据库当前计算机研究的一个新领域,为符合网络互联需要和Intenent的浏览器界面特征,web数据库的所有操作,包含了信息的查询、修改、增加、删除等,都能够在浏览器界面上进行。在信息、数据存储和访问方面与传统数据库相比,随在很多方面一样,但web数据库仍有自己的特点,这样就使得在web数据库程序开发方面具备了一定的难度和复杂性。为了更好地解决这个问题,web中间件便应运而生。在传统的单机程序开发上,需要将应用软件建立在数据库、操作系统之上。但在动态web程序的开发中,为很好地解决操作系统、数据库与应用程序之间的关系,必须运用到web中间件。中间件是介乎web应用程序和操作系统、数据库之间的软件,是为了实现应用程序对操作系统的管理。由于web应用系统用户与数据库之间的隔阻,以及web中间件的运用较为负责,因而在动态web技术架构中中间件具有十分重要的意义。

1.2 公共网关接口技术(CGI)

公共网关接口简称CGI,是用于HTTP服务器和其它程序进行交流的工具。大部分公共网关接口程序是用来处理表单中的信息,并产生相应的处理办法和措施;或者为完成对数据库的访问活动,而将数据、信息反馈给浏览器。CGI作为一个接口规范协议,主要是为了让web服务器更好地调用外部程序,并且也规定了一定的环境变量与参数。它的作用是可以从数据库中获得的信息、数据转换为页面,并由web服务器传送给浏览器;或是先从浏览器中获取数据,接着存储在相应的数据库里。从某种意义上讲,CGI程序能给完成web服务器不能完成的工作。CGI技术存在的优势在于:一是实现CGI程序的方式多样,可用多种程序语言进行实现;二是大多数的web服务器都能够很好地支持CGI程序;同时,CGI技术也有它自身的一些不足,表现为对程序员的专业素养要求高、移植性差、不易检索等方面,特别值得注意的是,当多个用户同时运行同一CGI程序时,由于会占用大量系统资源,这样便使得服务器性能降低。

1.3 应用程序编程接口技术(web API)

应用程序编程接口(web API)是在CGI程序基础上研发的改进方案。API程序存储在web服务器上,并以动态链接库的形式存在。利用应用程序编程接口不仅很够很好地完成CGI技术所能实现的所用功能,并且能够在完成任务的同时,还能很好地维持好web服务器的良好性能。与CGI技术相比,Web API应用程序具有更好的性能。究其原因主要在于Web API应用程序作为动态链接库的形式存在,是与服务器软件处于同一地址空间,因而在利用系统资源方面,不需要像CGI程序那样需要较长的时间调用。然而,CGI技术也存在一些缺陷,例如编程难度更大,缺乏统一的标准等等。

1.4 动态服务器网页技术(ASP)和面向对象的编程接口(ADO)

动态服务器网页简称ASP,是一种服务器端脚本运行环境。它能够通过自带的对象组件(ADO)与其它能够与开放式的数据库兼容的数据库和数据源进行连接,在此之后,可应用SQL语言对数据库进行访问。面向对象的编程接口(ADO)是由ASP的服务器端的代码进行调用,可进行完成的数据库操作,并将其在服务器上进行运行。正因如此,所用的浏览器都能够访问ADO。当网络用户申请操作*ASP主页时,HTTP请求此时会得到服务器的响应,并迅速调用出ASP引擎,以此来对申请的文件进行解释说明。一旦ASP引擎调用含有访问请求的脚本,它就会利用ODBC或者是OLEDB与数据库进行连接,接着进一步进行访库操作。ASP为响应用户请求,能够根据数据库的访问结果自行生产符合HTML的主页。由于ASP技术可移植性较差,因而通常情况下只能在Windows系统中进行运行,且一般适合用于系统开发要求较低的情形。

2 动态web程序开发

2.1 基于Java的web程序开发

在web程序开发过程中,要充分利用下面四个技术优势进行程序设计。主要有JSP、JavaBean、JDBC、以及JavaServlet等技术。它们的优点各有不同,例如利用JSP可以实现表示层;而为实现控制层,则可以利用Servlet技术优点,这样便可以完成用户信息的传递与数据流的走向控制;利用JDBC则可以实现数据层上的数据库访问。利用JavaBean技术的优点就能够实现应用层上的业务处理。

2.2 JDBC技术

JDBC是基于Java语言的数据库访问包,它的主要用途在于可以为数据库提供统一的访问接口。JDBC技术中包括两部分的API,并且这写API是与数据库相互独立的。一部分API是针对JDPC技术的程序开发人员;一部分是面向底层的Driver API。在应用JAVA应用程序时,先要访问JDBC的驱动管理器,然后才能对不同的驱动程序进行访问;以此实现不同的数据库访问操作。

2.3 JDBC技术的优点与缺点

在应用JDBC技术进行数据库连接时,具有以下一些优点:1)JDBC是一种低层次的接口,这样便导致其具有强大的功能;2JDBC能够与当前存在的数据库系统均能很好的兼容,得到它们的支持。3、JDBC具有很好的高安全性、高效性和平台无关性等等。当然在使用JDBC技术进行数据库连接时,也有不足之处:1)JDBC技术不符合面对对象的要求,主要原因在于JDBC技术考虑的是怎样进行数据库的连接,本质上带有一种过程思想;2)JDBC技术虽具有强大的功能,但在实用性性上却有待提高,主要表现为易用性较差。针对这些缺陷,我们可以采用两种办法来完善Java语言的数据库连接问题,一是对数据库的连接过程进行封装,简化连接步骤;二是为程序开发人员提供统一的编程接口,使得不同的编程人员在进行数据库操作时,可以采用同样的函数方法予以实现。这样一方面保持了JDBC特有的优点,也能改进其存在的不足。

3 结束语

总之,在动态web数据库进行开发的过程中,中间件技术具有十分重要的意义。编程人员要根据用户的实际需要和数据库开发的客观情况,选择合适的中间件技术,这样便能以最小的成本为用户开发出更好的web产品。

摘要:该文首先对web数据库和中间件技术进行了简要的说明,并比较分析了web中间件技术,在此基础上,说明了它们各自的优缺点。接着重点阐述了JDBC技术,并指出了今后在JDBC技术开发过程中的改进建议。

关键词:动态,中间件技术,JDBC

参考文献

[1]覃雄派.动态Web技术架构及其性能分析[J].计算机系统应用,2008(8).

[2]张鹏.数据中心的JAVA中间件的设计[J].科技广场,2007(11).

上一篇:限量要求下一篇:传统文化下初中政治