1。先了解下什么是RPC
Remote Procedure Call(远程过程调用),
RPC最早指的是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。RPC跨越了OSI网络分层模型中的传输层和应用层,使得开发包括网络分布式程序在内的应用程序更加容易。RPC采用客户机/服务器模式,请求程序就是一个客户机,服务提供程序就是一个服务器。调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息;在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达时,服务器获得进程参数,计算结果,发送应答信息,然后等待下一个调用信息;最后,客户端调用过程接受应答信息,调用执行继续进行。RPC服务会在注册表中给自己注册一个UUID,即通用唯一标识符,这个UUID针对每一项服务都是唯一的,在所有平台上通用。当一项RPC服务启动的时候,会获得一个端口,并且以UUID对端口进行注册,当客户机要与特定的RPC服务进行通讯的时候,它无法事先知道该服务在哪一个端口上运行,因此该客户会先建立一个到服务器端口映射的服务(135端口),并使用其请求的服务的UUID向服务器端口映射器服务查询该端口号,端口映射器会将相应的端口号返回给客户端,然后关闭连接。最后,客户端利用端口映射器提供的端口号,新建一个到该服务的连接。
2。flex应用RPC与服务器端交互
Flex中的RPC实际上是抽象的RPC,也就是说,隐藏了真正的RPC实现细节,仅仅是将3种可用的RPC服务方式暴露给开发人员,开发人员可以利用HTTPService组件、WebService组件和RemoteObject组件非常容易地实现RPC,而不用关注其底层的技术细节。