BlazeDS概述
BlazeDS是一组服务器端的通讯服务,它能够使得运行在浏览器的 Adobe Flex 应用程序服与服务器端的 Java 应用程序相互通信。 整个体系主要包括通道、端点、消息、服务、目的地、适配器等,把这 些搞懂也就差不多了。通道使得组件能够 和Blazeds服务端的端点通信,将请求送到目的地。端点和通道是相互映射的。
???????? Blazeds使用基于消息的框架在客户端和服务端之 间发送和返回数据。 ???????? Blazeds在它们之间使用了两个交换模式。 ??????? 第一个模式是请求—响应模式,客户端发送请求给服务端处理。服务端返回处理结果给客户端。RPC Service就是使用这个模式。 ? BlazeDS提供了三种关键的服务: ??????? Remoting Service。提供一种客户端直接调用服务器端java方法的方式。 ????????Message Service 。提供一种基于发布/订阅模式的消息服务,可以用于实现实时的数据推送或协作的flex应用。 ????????Proxy Service。通过proxy service,使得flex应用可以实现安全的,受限的跨域访问, 也 就是说它让您的Flex应用程序访问的服务可以处于不同的 域,而不需要在目标域里配置crossdomain.xml权 限文件。 ? BlazeDS 客户端使用BlazeDS提供的基于消息的框架与服务器通讯。消息框架的客户端部分是Channels,Channels封装了flex客户端与BlazeDS服务器的连接。 ? Flex 通讯组件 ??????? Flex提供了RemoteObject,HTTPService,WebService,Producer,Consumer ??????? 等可以与BlazeDS通讯的组件,这些组件都包含在了Flex SDK中,是Flex组件库的一部分。 ??? Channels Set ????????? Channels封装了Flex组件与BlazeDS服务之间的连接,是处于Flex组件之下的一个通讯层。 ????????? BlazeDS提供了AMFChannel和HTTPChannel。Flex客户端可以使用不同类型的Channel与 服务器通讯。 ????????? Channel是在services-config.xml中配置,下面是一个AMFChannel的配置: ?????????????? <channels> ????????????????????? … ???????????????????? <channel-definition id=”samples-amf”?type=”mx.messaging.channels.AMFChannel”> ?????????????????????????? <endpoint url=”http://localhost:8400/myapp/messagebroker/amf”? type=”flex.messaging.endpoints.AMFEndpoint”/> ??????????????????????</channel-definition> ?????????????? </channels> ???? amf协议。Amt全称是action message format,它是一种二进制格式,专用于as和服务 器端通讯,比http通讯要快很多,支持多种数据类型,如java,.net,php等。
????????? BlazeDS服务是一个J2EE的web容器,Flex客户端通过channel发送一个请求,请求在BlazeDS服务端会到达一个endpoint,从endpoint开始,请求会通过一条Java对象处理链,包括:MessageBroker,service,destination,adapter。 ? ?MessageBroker ???? MessageBroker负责转发消息到service,接收到消息时,MessageBroker查看消息消息的destination,并把消息转发给目标service。如果destination有安全限制保护,在转发之前,MessageBroker会执行身份认证和授权检查。?????????MessageBroker的配置在BlazeDS应用的WEB-INF/flex/services-config.xml文件中 ? Services 和 destinations ???? Services 和 destinations在BlazeDS 服务中,是消息处理链的下一环节。 ???? BlazeDS 包括四种一一对应的services 和 destinations: ????????? RemotingService和RemotingDestination ????????? HTPProxyService和HTTPProxyDestination ?????????? MessageService和MessageDestination ???? 不同的Flex组件的请求是由不同的Services和destinations进行 处理的,对应关系如下: ????????? HTTPService 和WebService与HTTPProxyService/HTTPProxyDestination ????????? RemoteObject 和RemotingService/RemotingDestination ????????? Producer /Consumerhe和MessageService/MessageDestination ?????services 和 destinations 可以在services-config.xml配置,但是最好的做法是分别在下面的文件中进行配置: ????????? RemotingService 在remoting-config.xml 中配置 ????????? HTTPProxyService 在the proxy-config.xml中配置 ????????? MessageService 在messaging-config.xml 中配置 ?Adapters 当 一个消息到达正确的destination时,destination会把消息发到相应的一个Adapter。Destination与Adapter的对应关系如下: ???? RemotingDestination使用JavaAdapter ???? HTTPProxyDestination使用HTTPProxyAdapter或SOAPAdapter ???? MessageDestination使用ActionScriptAdapter或JMSAdapter
??? 下载Blazedshttp://www.alisdn.com/wordpress/?paged=2 ??? 解压到tomcat的webapps目录下 ??? 启动tomcat ??? 访问http://127.0.0.1:8080/ds-console/
加入blazedsWEB-INFlib下的jar包 复制blazedsWEB-INFflex下的文件到项目的WEB-INF/flex目录下,包括: ??????? messaging-config.xml ??????? proxy-config.xml ??????? remoting-config.xml ??????? services-config.xml 在web.xml文件中定义MessageBrokerServlet 和 session listener (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |