2022年Flex和Java应用程序的架构 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年Flex和Java应用程序的架构 .pdf》由会员分享,可在线阅读,更多相关《2022年Flex和Java应用程序的架构 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Flex 和 Java 应用程序的架构客户端 /服务器架构Flex 和 Java 应用程序使用一个多层架构,其中的应用程序层是 Flex 应用程序,业务或应用程序层是Java EE 服务器和代码,数据层则是数据库。 您可以像普通Java 应用程序一样编写后端代码、为对象建模、定义数据库、使用Hibernate 或 EJB 3 等对象关系框架、编写用于查询和操作这些对象的业务逻辑。业务层必须可以从Flex 应用程序通过HTTP 进行访问,它将用于移动演示层与数据层之间的数据。典型的HTML 应用程序包含多个页面, 当用户在页面之间导航时,必须传递应用程序数据,这样应用程序本身(它包含的页面和功能
2、集)可以保持状态。相对而言,Flex 应用程序在本质上有状态。 Flex 应用程序嵌入一个HTML 页面,用户不会离开该页面并且页面由Flash Player 渲染。Flex 应用程序可以动态更改视图, 在后台向服务器异步发送和检索数据,更新应用程序界面,但不会离开该界面 (请参阅图1) (与 XMLHttpRequest API 使用 JavaScript 提供的功能相似)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 图
3、 1.客户端 / 服务器架构。客户端 / 服务器通信Flex 应用程序可以使用直接套接字连接或更常见的HTTP 与后端服务器通信。 Flex 框架有三个通过HTTP 与服务器通信的远程过程调用API :HTTPService 、WebService 和RemoteObject 。它们三个包起Flash Player 的 HTTP 连接性,而后者则使用浏览器的HTTP 库。 Flex 应用程序无法直接连接到远程数据库。您使用HTTPService 对 JSP 或 XML 文件、 RESTful Web 服务或通过HTTP 返回文本的其他服务器文件发出HTTP 请求。您为返回的数据指定端点URL
4、、listener 函数(当HTTPService 请求返回成功或失败响应时调用的回调函数)以及数据类型(一旦Flex 应用程序收到后,应当将它转换为哪种数据结构)。您可以将待处理的数据指定为原始数据文本,分配到 String 变量或转换为XML 、E4X 或传统的ActionScript 对象。如果回到JSON,您可以使用Adobe Flex corelib*类包将 JSON 对象反序列化为ActionScript 对象。要对基于名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2
5、页,共 21 页 - - - - - - - - - SOAP 的 Web 服务器发出调用,您可以使用HTTPService API 或更专用的WebService API ,后者会将SOAP 格式的文本自动序列化和反序列化为ActionScript 数据类型或反之。发出远程过程调用的第三个选项是使用RemoteObject API。它对服务器端Java 类的方法发出Flash Remoting 请求,该类通过 HTTP 返回二进制Action Message Format。尽可能使用Flash Remoting , 它的二进制数据传输格式使应用程序载入数据的速度比XML 、JSON 或 SO
6、AP 等更冗长、基于文本的格式快 10 倍(请参阅图2)。有关AMF 与其他基于文本的序列化技术的对比,请参阅James Ward 的 Census RIA Benchmark 应用程序 *。图 2.Flex 和 Java 的连接方法。Flash Remoting Flash Remoting 是客户端和服务器端功能的组合,它们为从Flash Platform 应用程序访问服务器端对象共同提供了一个调用和响应模型, 仿佛它们是本地对象一样。 它在 ActionScript 和名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
7、心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 服务器端数据类型之间提供透明的数据传输、序列化为Action Message Format (AMF)、反序列化以及客户端与服务器之间的数据编组。Flash Remoting 使用 Flash Player 中的内建客户端功能和某些服务器中的内建服务器端功能(如ColdFusion 和 Zend ),但必须安装在其他服务器上(例如,BlazeDS*或 LiveCycle Data Services*安装在Java EE 服务器上, WebORB 或FluorineFX 安装在.NET 服务器上,
8、Zend Framework 或amfphp 安装在PHP 服务器上,等等)。有关BlazeDS 和LiveCycle Data Services 的更多详细信息,请参阅Flex 和Java 应用程序的构建技术一文。BlazeDS 和 LiveCycle Data Services 使用基于消息的框架在客户端和服务器之间来回发送数据。它们提供Remoting 、Proxying 和 Messaging 服务,并为LiveCycle 提供附加的Data Management 服务。Flex 应用程序向服务器发送请求,请求将传递到服务器上的端点。请求从端点传递到MessageBroker ,这是
9、BlazeDS 和 LiveCycle Data Services 引擎,它负责处理所有请求并将它们通过一系列Java 对象传递到目标包含要调用的方法的Java 类(请参阅图3)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 图 3.Flash Remoting 架构。AMF AMF 是一种二进制格式,它用于序列化ActionScript 对象并促进 Flash Platform 应用程序与远程服务之间通过Internet
10、进行的数据交换。 Adobe 发表该协议;最新的是针对ActionScript 3 的 AMF 3 规范 *。此处 包含一些表格,其中列出了从ActionScript 转换为Java 以及从Java 转换为ActionScript 的数据类型映射。对于自定义类型或强类型对象,公共属性(包括使用get 和 set 方法定义的那些属性) 经过序列化,作为一般对象的属性从Flex 应用程序发送到服务器,或从服务器发送到Flex 应用程序。要实现相应的客户端与服务器端对象之间的映射,您在Java 和ActionScript 类中使用相同的属性名,然后在ActionScript 类中, 使用Remote
11、Class 元数据标签创建一个直接映射到Java 对象的 ActionScript 对象。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 以下是一个示例Employee ActionScript 类, 它映射到服务器上的服务包中的服务器端Employee Java DTO 。package valueobjects.Employee Bindable RemoteClass(alias=services.Employee) p
12、ublic class Employee public var id:int; public var firstName:String; public var lastName:String; (.) 安装 BlazeDS 或 LiveCycle Data Services 要将 Flash Remoting 与 BlazeDS 或 LiveCycle Data Services 一起使用,您需要安装和配置必要的服务器端文件。对于BlazeDS, 您可以将它作为一个WAR 文件下载,并部署为Web 应用程序或统包解决方案。统包下载包含一个可随时使用的Tomcat 版本,其中已部署和配置Blaz
13、eDS WAR 文件以及各种范例应用程序。同样,对于LiveCycle Data Services ,安装程序允许您选择与一台集成Tomcat 服务器一起安装LiveCycle 或是作为LiveCycle Data Services Web 应用程序进行安装。无论哪种情况,都会创建一个名为blazeds 或 lcds(通常后跟一个版本号) 的 Web 应用程序。 您可以使用自己的Java 代码修改并构建这个应用程序,或者通过一种更典型的方法,即复制blazeds 或 lcds Web 应用程序包含的JAR 文件和配置文件,名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
14、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 然后将它们添加到服务器上的现有Java Web 应用程序(请参阅图 4)。图 4. 必需的BlazeDS 或 LiveCycle Data Services 文件。修改 web.xml 如果将这些文件复制到其他Web 应用程序,您还需要修改web.xml 文件,为HttpFlexSession 定义一个会话监听器,并为 MessageBroker 定义一个servlet 映射,它会处理所有请求并将它们传递到正确的服务器端Java 端点。您可以从原始b
15、lazeds 或 lcds Web 应用程序web.xml 文件复制粘贴它们。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - flex.messaging.HttpFlexSession MessageBrokerServlet MessageBrokerServlet flex.messaging.MessageBrokerServlet services.configuration.file /WEB-INF/flex/
16、services-config.xml 1 MessageBrokerServlet /messagebroker/* 您也可以复制粘贴RDSDispatchServlet 的映射(并取消注释) ,它与 Flash Builder 4 的数据服务创建功能一起用于RDS 访问,该功能将检查服务器端类并生成相应的客户端代码。有关Adobe 应用程序建模技术的更多详细信息,请参阅文章Flex 和 Java 应用程序构建技术 以及教程 使用 Flash Builder 4 构建连接到BlazeDS Remoting 目标的Flex 应用程序 。 RDSDispatchServlet RDSDispat
17、chServlet flex.rds.server.servlet.FrontEndServlet useAppserverSecurity false 10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - RDSDispatchServlet /CFIDE/main/ide.cfm 查看 services-config.xml 对于 Flash Remoting ,客户端会向服务器发送一个待处理的请求,然后服务器将包含结果的
18、响应返回给客户端。您通过修改Web 应用程序的/WEB-INF/flex/ 文件夹中的services-config.xml 和 remoting-config.xml 文件,配置这些请求。services-config.xml 文件定义了发出请求时可使用的不同通道。每个通道定义指定了请求使用的网络协议和消息格式,以及服务器上消息的交付端点。 基于 Java 的端点以协议特定方式分解消息,然后将消息以Java 形式传递到MessageBroker ,后者将它们发送到相应的服务目标(接下来将说明如何定义它们)。 (.) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Flex和Java应用程序的架构 2022 Flex Java 应用程序 架构
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内