`
NewTamato
  • 浏览: 103195 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

flex 与远程调用中间转换过程 概念

阅读更多

什么是RPC

 远端程序调用(RPC, Remote Procedure Call) 是一种客户端与服务器端交换数据方式。我们可以调用本地对象带对各种参数方法设置回调并接受调用结果。我们不用关心发送和接收数据的实现细节。实现细节通常是抽象的,就像我们在调用本地方法一样。

AMFPHP的工作原理


  客户端(Flash / Flex)与服务器端(PHP) 使用相同的方式描述方法调用和复杂数据。客户端序列化请求并将它发送到网关AMFPHP。AMFPHP再执行:
  (1) 反序列化请求
  (2) 找到相应的远程服务类
  (3) 实例化类
  (4) 执行安全检查
  (5)(使用指定参数)调用服务器端方法
  (6) 序列化返回的数据
  AMFPHP可以正确地序列化、反序列化复杂类型数据。除了对象和数组,它还支持resources 数据连接资源,这就意味着我们可以通过调用远程方法简单返回mysql_query,amfphp 会处理这一切。如果平台支持 (目前来说,Flash Remoting 和Flex Remoting),AMFPHP还可以处理循环引用和自定义数据它也支持简单的远程调试。还有AMFPHP附带一个浏览器,它可以在创建客户端代码前测试远程服务。AMFPHP 1.0.1还添加了模板,可以自动生成客户端代码。AMFPHP 1.9 beta更是新增了对AMF3的支持

  AMF协议是基于Http协议的


  它的内容处理过程大致是这样:
  1.从客户端获取Http请求(Request)流.
  2.对流进行解串行化(Deserialize),得到服务器端程序能够识别的数据,并建立一个响应(Response)消息
  3.Debug开始
  4. 对流进行各种处理(记录、许可、服务)得到返回值
  5.对响应流进行串行化
  6.发送Http响应给客户端
  Flash ActionScript 数据类型在AMF协议中对应的值是:
  Number 0x00;
  Boolean 0x01;
  String 0x02;
  Object 0x03;
  MovieClip 0x04;
  Null 0x05;
  Undefined 0x06;
  Reference 0x07;
  ECMAArray 0x08;
  ObjectEnd 0x09;
  StrictArray 0x0a;
  Date 0x0b;
  LongString 0x0c;
  Unsupported 0x0d;
  Recordset 0x0e;
  XMLObject 0x0f;
  TypedObject(Class) 0x10;

 

BlazeDS 

 
BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。

分享到:
评论

相关推荐

    flex远程过程调用部署文档

    Flex远程过程调用(RPC)部署涉及多个关键步骤和技术,主要目标是使Flex客户端能够与服务器端的Java代码进行通信。以下是对Flex RPC部署过程的详细说明: 1. **项目结构**: 首先,确保项目是按照Flex的要求组织的...

    flex使用BlazeDS远程调用java例子.

    在本例子中,我们将探讨如何使用Flex与Java后端进行远程调用,借助Adobe的BlazeDS服务。BlazeDS是Flex与Java服务器之间通信的一个中间件,支持AMF(Action Message Format)协议,提供数据推送、拉取和消息代理等...

    flex与java远程传值demo

    Flex与Java远程传值是Web开发中的一个重要技术组合,它允许富互联网应用程序(RIA)如Flex客户端与服务器端的Java应用进行数据交换。本示例是一个综合性的项目,包括两个模块:一个基于Flex的前端应用和一个基于Java...

    felx,jsn远程调用

    在Flex中,远程调用是一项关键功能,它允许Flex客户端与服务器端进行数据交换。这种通信通常通过HTTP或HTTPS协议实现,以避免同源策略的限制。一种常见的远程调用技术是RPC(Remote Procedure Call),Flex支持AMF...

    flex+spring flex整合

    BlazeDS是Adobe的开源项目,它提供了一个中间层,使得基于Flex的前端能够通过远程调用(Remote Procedure Call, RPC)与基于Java的后端应用程序进行通信。Spring BlazeDS Integration则是Adobe和Spring社区合作的...

    flex中actionscript动态调用remoteobject类

    1. **RemoteObject**:Flex中的RemoteObject类是用于远程调用服务器端服务的对象。它可以调用后端提供的服务,并接收返回的结果。 2. **AMFChannel**:AMFChannel是Flex中用于发送和接收数据的通道之一。它支持AMF...

    Flex入门源码 远程java访问 spring集成

    Flex支持多种远程调用协议,如AMF(Action Message Format)和HTTPService。AMF是一种高效的数据交换格式,允许客户端和服务器之间快速传输复杂的数据结构,而HTTPService则利用HTTP协议发送XML或JSON数据。根据描述...

    06 FlexJava通讯-Flex调用AO接口.docx

    - `result`函数是远程调用的结果处理函数,使用JSON解析返回的数据,将解析后的数据转换为地理图形并添加到地图上。 - 使用`Alert.show`进行调试,显示关键步骤的信息。 - `clearGraphic`函数用于清除地图上的...

    flex与java通过BlazeDs进行交互

    这个方法将在Flex客户端被调用,以展示Flex与Java之间的交互。 在Flex客户端,我们使用MXML语言编写用户界面,包括一个文本输入框、一个按钮和一个标签。当用户点击按钮时,`button1_clickHandler`事件处理程序被...

    blazeDs解决flex客户端与Server的远程通讯

    3. **客户端调用**:在Flex界面中调用远程对象的方法,实现与服务器的通信。 4. **处理结果**:服务器返回的结果会被自动反序列化为Flex客户端可以使用的ActionScript对象。 5. **错误处理**:BlazeDS还提供了内置...

    Flex与ASP.net交互

    两者通过Remoting方式通信,即远程过程调用,可以实现在不同环境之间的数据交换。 Remoting是一种允许Flex客户端与ASP.NET服务端进行直接通信的技术。在这种模式下,Flex应用可以通过AMF(ActionScript Messaging ...

    Flex如何连接数据库,通信的详细的教程

    使用`RemoteObject`组件进行远程调用,指定服务名和方法名,处理响应结果。 6. **数据交换** 当Flex向服务器发送请求时,数据会被转换成AMF格式,服务器接收到请求后,将数据解码为Java对象进行处理。反之,服务器...

    flex利用LCDS与java通信

    而LCDS是Flex与后端数据服务之间的桥梁,它通过AMF(Action Message Format)协议,提供了低延迟、高效率的数据交换机制,使得Flex应用能够直接调用Java的远程方法,处理复杂的数据操作。 在J2EE环境中,LCDS通常...

    Flex与java通过BlazeDS实现通信

    - BlazeDS接收到请求后,将ActionScript方法调用转换为Java方法调用,转发给HelloWorldJava。 - Java服务器执行sayHelloWorld方法,返回结果。 - BlazeDS接收到Java返回的结果,将其转换回ActionScript对象,通过...

    Flex连接数据库三种方法

    WebService 是一种基于SOAP协议的远程调用方式,可以跨平台调用服务端的功能。虽然在本描述中没有详细介绍,但WebService允许Flex应用调用服务端的Web服务接口,这些接口可以是数据库操作、业务逻辑处理等。如果你...

    spring整合Flex

    服务端的Spring Bean被配置为可被远程调用,这样Flex可以通过AMF请求这些服务,获取或更新数据。 6. **SSI(Spring Security Integration)**: 提到的"SSI开发框架"可能指的是Spring Security的集成,这是一个强大...

Global site tag (gtag.js) - Google Analytics