BlazeDS架构分析

2024-04-08 08:08
文章标签 分析 架构 blazeds

本文主要是介绍BlazeDS架构分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BlazeDS架构分析

BlazeDS应用程序包括客户端应用程序和服务端应用程序两部分。客户端应用程序通过特定的通道(channels)与服务端应用程序进行通信。其基本 原理图如下所示:

 一、客户端架构

1. (Flex Components )
           RemoteObject : 远程对象
           HTTPService :HTTPService
           WebService :WebService
           Producer :生产消息
           Consumer :消费消息
  2.(Channel Set)
           通道封装了客户端与服务端沟通的细节。关于通道的定义请参考附件中的services-config.xml文件。
  3.   (Messages)
  客户端与服务端交互的数据都是以一定格式的Message来封装的。常用的Message有: RemotingMessage, AcknowledgeMessage, CommandMessage, AsyncMessage等。例如客户端的 RemoteObject将客户端数据序列化封装成RemotingMessage通过合适的通道发送给服务器,服务器通过终端(Endpoint)反序 列化RemotingMessage中的数据进行业务处理,然后序列化数据为AcknowledgeMessage,并封装到客户端组件的 ResultEvent中。

二、服务端架构

BlazeDS应用的服务端包含在一定的 JavaEE WEB应用中。客户端产生一个请求(Request)

并能过合适的通道(channel)路由到服务 端合适的终端(endpoint);到达终端以后,请求再通过包含了 MessageBroker,Service,Destination,Adapter 这些类的处理链处理,最后请求转化为合适的Adapter类,而这些类可以被服务端Java应用程序处理。响应结果在服务端被封装序列化成客户端能够识别 的数据格式。

 1.(Endpoint)
  Endpoint包含在 JavaEE Servlet容器中,并由MessageBrokerServlet引导管理。客户端应用通过channel与服务端的endpoint通信。所以 channel和endpoint必须使用同样的消息格式。例如AMFChannel必须与AMFEndpoint映射。
 2.  (MessageBroker)
  MessageBroker检查 endpoint的目标并路由到正确的服务类。
 3.(Service And Destinations)
        RemotingService and RemotingDestination
        HTPProxyService and HTTPProxyDestination
        MessageService and MessageDestination
 Destination 是Service的实例,客户端组件通过指定destination 来调用对应的 Server实例。

 4.(Adapters and assemblers)
        RemotingDestination uses JavaAdapter
        HTTPProxyDestination uses HTTPProxyAdapter or SOAPAdapter
        MessageDestination uses ActionScriptAdapter or JMSAdapter
 适配器类主要是将客 户端请求转换为正确定的对象,以方便服务端处理。 

这篇关于BlazeDS架构分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885029

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛