APP下载

Flex下的RIA开发

2009-04-09王正容

中小学信息技术教育 2009年3期
关键词:开发技术服务器端浏览器

王正容

目前的网络教育应用多集中于Web开发,由于Html语言本身的局限性,数据和数据的显示往往捆绑在一起,特别是在基于表格的布局方式中,无法在Web中使用面向对象的程序设计思想,一个细小的改动往往会导致程序大部分代码的重新编写,程序的可扩展性和可维护性较低。同时,由于Html是一种描述性语言,要实现良好的用户体验,往往涉及大量繁琐的Html和Script程序的编写。本文对校园网络应用开发中涉及的开发模式进行分析,并对RIA的开发技术Flex进行介绍。

一、C/S结构

C/S结构是出现较早的网络应用开发技术。客户端和服务器端之间通过套接字进行通信,根据传输层使用的协议,可分为UDP套接字和TCP套接字。其中UDP是不可靠的通信,常用于多媒体通信,而TCP提供可靠的传输,通常用于数据的传输。在该模式中,服务器和客户端的软件都由用户自己编写,包括套接字的建立、程序的内存管理、异常处理等,开发技术上要求较高,投入较大,且在程序的健壮性上难以保障。C/S模式相对而言是较底层的开发,因此在开发上,有较高的开发灵活性,可自定义应用层的协议、各种安全技术,为开发人员提供了较大的空间。因此C/S模式往往应用在安全性较高的复杂应用系统中。

二、B/S结构

浏览器/服务器模式是目前使用率最高的开发模式。其客户端由浏览器(如IE)提供,服务器端通常为动态网页技术,如PHP、Jsp、Asp.Net,服务器端对编写的脚本语句进行解释,形成Html文件发送给客户端的浏览器,浏览器对Html进行解释和显示。

其结构如下图:

由于HTML为解释性语言,浏览器中所有的Html脚本及Script都以明文的方式存在,因此用户可以查看到相关的脚本,应用程序的安全性较低。比如在网络考试系统中,对考试时间、用户的操作限制等,在实现上具有较大的难度。目前常见的解决方法是编写COM组件通过浏览器调用,但由于COM的编写又提高了程序编写的复杂度。

另外,由于Http协议是一种“拉”的协议,并且是无连接的,用户的更新以页面为单位,并且两次请求之间是独立的,页面之间的数据传输虽然可以通过Session和Cookie技术实现,但在程序的结构上容易造成混乱,因此在开发大型的应用程序时,B/S结构并不是好的选择。

三、RIA及Flex技术

富网络应用系统是针对B/S和C/S结构的不足提出的下一代开发模式,目标在于提高客户端的用户体验。

由以上可知,在C/S模式中,客户端应用程序不依赖于其他软件,可以任意访问客户端主机的任何资源,对网络的通信可以任意控制,因此可以提供较好的用户体验。但由于C/S开发模式的门槛相对较高,影响了C/S模式的使用。B/S模式的应用依赖于浏览器的功能和Html的局限性,往往难以提供好的用户体验。用户任何一次网络通信,都是对整个页面的重新请求,即便是相同的内容,仍然需要重新传输一次,因而会导致较长的等待时间。其次,由于Html为标记语言,在动态效果的演示上存在较大的难度。比如,在电子白板的制作中,要求各个客户端同步显示白板的内容,这对服务器端和客户端的程序编写都是一个相当繁杂的劳动。

RIA的目标为使用一种开发技术,使客户端的开发具有B/S结构的快捷和简单,同时具有C/S结构的用户体验。

目前RIA存在多种开发技术,如java applet、Flex、Avalon。由于java applet开发较烦琐,在Flash出现后,java applet已使用得较少。下面仅对Flex进行介绍。

Flex文件最终被编译成一个.swf文件,也就是Flash文件,该文件以插件的方式运行在浏览器中,所有的数据通讯和显示都在该Flash文件中完成,因此在表示层开发和数据通信上较传统的Web开发有了较大的改进。

1.数据通信

RIA首先要解决的是网络的通信问题。Http传输的单位是整个页面,也就是整个页面的刷新。在Flex中,为了减少数据的通信量,将刷新限制在局部,而不是整个页面。通信方式有如下三种。

Socket:在服务器端可通过其他编程语言实现监听套接字,在客户端通过建立套接字和服务器建立连接。套接字属于相对底层的网络通信开发,适合于实时通信领域,比如聊天室等。

Web Service:它是一个向外界暴露出能够通过web进行调用的API集合,在客户端可以通过调用这些API实现某些功能。

Http Service:使用最为广泛的通信方式。通过其可以发送Http的Get和Post方法。服务器以XML的形式将数据文件发送给客户端。这种通信方式和传统的B/S开发模式接近,不同的是,服务器只负责XML数据提供,而具体的数据显示则由Flex完成。

2.用户界面层

为了程序的可扩展性和可维护性,通常的应用系统在开发模式上都采用三层的结构:用户界面层,商业逻辑层,数据库层。在该模型中,由于Flex的actionscript提供了面向对象的程序设计编写方法,可以很容易地实现逻辑层的功能,而数据层则可以通过相关的数据库来提供支持,比如通过Http Service请求PHP文件获取XML数据。

在用户界面层上,Flex以Mxml的方式提供了一组类似于VB的控件,并使用了事件驱动的程序编写方法。

通过以上两点,Flex编写的网络应用极大地提高了用户体验。由于Flex对数据和脚本经过编译形成.swf文件,在一定程度上提高了程序的安全性。

C/S模式提供了一种灵活的开发模式,开发人员发挥的空间较大,但开发难度高。B/S模式则是一种快速的开发方法,提供便捷的开发模式和发布方式,但由于浏览器和Html的种种限制,限制了其应用范畴。RIA则是二者的折中,在保持开发灵活性的同时提供开发的便捷性。虽然Flash player出于安全性考虑,无法访问系统的所有资源,导致Flex在用户体验方面仍然存在极限性,但其实现了Web功能的极大扩展,为网络的教育应用开发提供了新的开发技术。

(作者单位:重庆市渝北区电化教育中心)

猜你喜欢

开发技术服务器端浏览器
Linux环境下基于Socket的数据传输软件设计
反浏览器指纹追踪
浅析异步通信层的架构在ASP.NET 程序中的应用
计算机应用软件开发技术的几点探讨
防散脱纬编无痕弹力面料开发技术国际领先
基于Qt的安全即时通讯软件服务器端设计
环球浏览器
中国煤层气开发技术的现状与未来
复杂产品设计知识应用开发技术研究
网页防篡改中分布式文件同步复制系统