Flex开发模型

来源:百度文库 编辑:神马文学网 时间:2024/04/27 16:13:11
Flex平台支持一系列的开发模型:
仅客户端:程序仅运行在客户端而不使用服务器资源。
通过简单的RPC服务访问服务器数据:程序通过Web服务与HTTP服务与远程数据进行交互。
Flex数据服务:程序使用Flex数据服务的加强的数据体系结构来提供高级特性,例如数据同步,安全与消息。
在Flash播放器上布置Flex程序
Flex程序的目标为Flash播放器。Flex支持两种版本的播放器。Flex程序使用安装标准的Flash播放器来运行Flex程 序。Flex也支持Flash播放器的Debug版本,称之为调试播放器。Flex程序开发者在开发过程中使用Flash调试播放器。Flash调试播放 器默认情况下与Flex Builder和Flex数据服务同时安装,对于开发者而言,支持如下的重要特性:
错误报告可以使用我们直接将运行错误与警告信息写入日志文件。Flash调试播放器也会捕捉trace()函数的输出并写入日志文件。
调试支持可以使我们调试我们的Flex程序所使用的ActionScript文件。
仅客户端程序
我们通常将我们的Flex布置为嵌入在HTML,ColdFusion, PHP或是其他类型网页中的SWF文件。用户通过请求相关的网页来运行我们的Flex程序,这是为了Flash播放器的执行而下载到我们的浏览器中的。尽 管大多数的Flex程序提供了一定程度的服务器交互,当运行在客户端时我们可以编写Flex程序来提供独立的功能。
使用HTTPService和WebService进行数据访问
Flex  HTTPService与WebService标签可以让我们从远程服务器获取数据。这些标签与称之为远程过程调用(RPC)组件,使我们的程序与远程 服务器进行交互,从而向我们的程序提供数据,或者是使我们的程序向服务发送数据。使用Flex 2 SDK,我们可以构建从Web程序服务器访问远程数据的程序,例如ColdFusion,或者是PHP,通过SOAP(Web服务)或者是HTTP的 GET或POST请求(HTTP服务)。网络程序取得合适的数据(例如通常是从数据库),格式化(通常为XML),并且返回到客户端程序。
为了安全,在默认情况下Flash播放器并不允许程序从一个域访问远程数据源,除非这个域是程序所服务的域。所以,远程服务器必须是与我们程序所在的服务器在同一个域内,或者是远程的服务器必须定义一个crossdomain.xml文件。
一个crossdomain.xml文件是一个XML文件,为服务器提供了一种方法来表明他的数据或文档对于一定域的SWF文件是可见的,或者是对所有的域。crossdomain.xml文件必须放在Flex程序交互的服务器的根上。
使 用Flex 2 SDK,Flash播放器提供了界面开发的平台,这样客户端与逻辑表示都位于客户机上。在Flash播放器中运行的Flex 2 SDK程序处理用户交互,执行数据验证,执行HTTP和SOAP请求,并且执行以前在这个服务器上执行的操作。因为Flash播放器可以运行在绝大多数的 操作系统与浏览器上,所以我们并不需要为特定的操作系统或是流利器进行编程。
使用Flex数据服务进行数据访问
当我们使用Flex数据服务来开发程序,我们可以利用加强的数据服务体系结构。
使用加强的数据服务体系结构
Flex数据服务提供了一个数据服务体系结构从而极大的加强了Flex 2 SDK服务。这些加强的数据服务为了企业级程序的开发提供如下一些重要的支持:
透明的数据同步可以使得我们使多个客户端保持同步。多个Flex客户端可以向一个单一的服务端数据对象进行预定。Flex数据服务可以向客户端广播更新并发而更改,这意味着我们的客户程序并不需要向服务器请求更新检测。
发布与预定数据服务可以使得多个客户程序彼此之间进行通信。例如,你可以在多个客户端之间实现一个即时通信服务。
JMS消息支持 Java消息服务(JMS)是一个Java API可以使得程序向一个Java程序发送数据,或是从一个Java程序取回数据。
客户端验证可以使得我们通过使用基本的或是自定义的验证来安全化我们的数据服务。
数 据服务体系结构是基于潜在的消息构造的。Flex数据服务使用XML配置文件来管理消息主题并且在服务器上进行排队。作为配置消息的一部分,我们可以设置 最大的消息尺寸。如果一个消息超过了这个最大值,就会使用多个消息分支,而这些分开的消息会在客户端进行重组。这使得通过网络的异步数据高度成为可能。
Flex数据服务的其他RPC服务
Flex数据服务的RPC服务进行了加强来对使用AMF协议访问远程对象提供支持。这可以使得我们访问远程服务器上的Java对象(JavaBean,EJB,POJO)。
Flex 数据服务包含一个代理可以阻止Flex程序到远程服务器的RPC请求,重定向这些请求到特定的服务器,然后向客户端返回响应。因为代理扮演了远程服务器访 问破坏者的角色,我们并不需要像在使用Flex 2 SDK时那样,在远程服务器上定义一个crossdomain.xml文件。然而,如果他们定义了一个crossdomain.xml文件,我们仍然可以 直接访问远程服务器。