最近,闲的无聊,研究一些开源组件的源代码提高的自己的水平!!
以下时你必须知道的原理知识??
仅供参考使用,如有问题请联系我??
Burlap也是有caucho提供,它和hessian的不同在于,它是基于XML-RPC协议的。
◆是基于什么协议实现的?
基于XML-RPC协议实现。
◆怎么发起请求?
根据Burlap提供的API。
◆怎么将请求转化为符合协议的格式的?
将请求信息转化为符合协议的XML格式,转化为流进行传输。
◆使用什么传输协议传输?
Http协议。
◆响应端基于什么机制来接收请求?
监听Http请求。
◆怎么将流还原为传输格式的?
根据XML-RPC协议进行还原。
◆处理完毕后怎么回应?
返回结果写入XML中,由Burlap返回至调用端。
关于Burlap的请求信息的DTD文件如下:
DTD文件描述:
burlap协议定义格式
tag-list ::= (S tag)* S |
|
|
关于Burlap请求的信息格式
如下:
Burlap的格式类似如下:
burlap内容如下:
<burlap:call>
<method>setAdDetail</method>
<map>
<type>com.netease.bid.client.model.Ad</type>
<string>id</string><long>-888</long>
<string>title</string><string>888</string>
<string>desc1</string><string>888</string>
<string>desc2</string><string>888</string>
<string>url</string><string>http://www.888.com</string>
<string>dispUrl</string><string>http://www.888.com</string>
<string>area</string><string>1</string>
<string>areas</string><list><length>2</length><int>16</int><int>27</int></list>
<string>appearTime</string><int>1</int>
<string>disappTime</string><int>12</int>
<string>dayBudget</string><string>16</string>
<string>keywords</string><map><type></type>
<long>-58810201</long>
<map>
<type>com.netease.bid.client.model.Keyword</type>
<string>id</string><long>-58810201</long>
<string>name</string><string>原始关键词8</string>
<string>status</string><int>0</int>
<string>mode</string><int>0</int>
<string>clickCost</string>
<map>
<type>java.math.BigDecimal</type><string>value</string><string>10</string>
</map>
<string>topPrice</string><string>0.3</string>
</map>
<long>-52610072</long>
<map>
<type>com.netease.bid.client.model.Keyword</type>
<string>id</string><long>-52610072</long>
<string>name</string><string>原始关键词88</string>
<string>status</string><int>0</int>
<string>mode</string><int>0</int>
<string>clickCost</string>
<map>
<type>java.math.BigDecimal</type><string>value</string><string>11</string>
</map>
<string>topPrice</string><string>0.3</string>
</map>
<long>-79731473</long>
<map>
<type>com.netease.bid.client.model.Keyword</type>
<string>id</string><long>-79731473</long>
<string>name</string><string>原始关键词888</string><string>status</string><int>0</int>
<string>mode</string><int>0</int>
<string>clickCost</string>
<map>
<type>java.math.BigDecimal</type><string>value</string><string>12</string>
</map><string>topPrice</string><string>0.3</string>
</map></map>
<string>status</string><int>1</int>
</map>
</burlap:call>
生成此xml的类为MicroBurlapInputStream类
请看源代码如下:
请看下一节??
\(^o^)/\(^o^)/
相关推荐
Burlap是一个轻量级的XML RPC协议 这使得他可以移植到任何可以解析XML的语言中 比起Hessian 它的可读性更强 和其他基于Xml的远程技术(如SOAP和XML RPC)不同 它的消息结构尽可能简单 不需要额外的外部定义语言 如...
从压缩包子文件的文件名称“BurlapWS”来看,这可能是与Burlap相关的,Burlap是Hessian的一个变种,也是一个轻量级的RPC协议。它使用XML而非Hessian的二进制格式进行序列化,可能在某些场景下更便于跨平台交互。...
"HessianDemo"可能是整个示例的主程序或者测试用例,包含了Hessian协议的完整流程,包括服务器启动、客户端连接、数据交换等步骤。 总之,Hessian为Java和C#之间的跨平台通信提供了便利,通过高效的数据序列化和反...
Hessian是一种小型的二进制协议,它专注于数据的高效传输,而Burlap则是一种匹配的XML协议,提供了一种相对更易于阅读和解析的格式。 在Java和Python之间实现接口时,Hessian起着关键作用。通过使用Hessian,开发者...
远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的...试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。
本文主要探讨了Java领域中常见的几种远程通讯技术,包括RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。这些技术各有特点,适用于不同的场景。 **RMI(Remote Method Invocation)** RMI是Java平台特有的一种...
Hessian和Burlap是二进制和文本的RPC协议,它们提供了轻量级的远程调用解决方案,适合对性能要求较高的场景。 JMS(Java Message Service)是Java平台的消息队列标准,它允许应用程序之间异步发送和接收消息,适用...
Spring通过`HessianProxyFactoryBean`和`HessianServiceExporter`提供对Hessian的支持,允许服务以Hessian协议暴露,并能被其他Hessian客户端调用。 ### 4. Burlap Burlap是另一种轻量级的RPC协议,与Hessian类似...
4. **Hessian和Burlap**:是Apache的Caucho项目提供的二进制RPC协议,它们提供了一种轻量级的序列化方式,适合于内部服务间的通信,尤其是跨语言通信。 在Netty中实现序列化,通常需要自定义`MessageToByteEncoder`...
2. ** Burlap**:与Hessian类似,Burlap也是一种RPC协议,但它使用XML进行序列化,因此具有更好的可读性,但可能会牺牲一些性能。 3. **Web Services (SOAP/WSDL)**:这种基于标准的远程调用方式提供了高度的互操作...
Java领域中有多种实现远程通讯的技术,如RMI(Remote Method Invocation)、MINA(Multi-purpose Infrastructure for Network Applications)、ESB(Enterprise Service Bus)、Burlap、Hessian、SOAP(Simple ...
Caucho的Burlap和Hessian库(burlap-2.1.12.jar和hessian-2.1.12.jar)提供了两种轻量级的远程调用协议,Spring支持它们以实现跨网络通信。 CGLIB(cglib-full-2.0.2.jar)是另一个重要的依赖,它用于生成动态代理...
- Hessian和Burlap:基于HTTP协议的远程通信技术,用于序列化Java对象。 - EJB(Enterprise JavaBeans):一种用于开发企业级应用的Java组件架构,支持远程通信。 6. 网络协议与Java远程通信的关系: - TCP/UDP...
2. **Caucho Hessian/Burlap**:DWR可以使用Hessian或Burlap作为传输协议,它们是轻量级的二进制/文本序列化协议,提高了数据传输效率。 三、DWR的工作流程 1. **配置**:在Web应用程序的配置文件中,如web.xml,...
1. **Spring Remoting**: Spring Remoting是Spring框架的一部分,它提供了一种声明式的远程调用方式,支持RMI、HTTP、Hessian、 Burlap等多种协议。Spring Remoting-AMQP扩展了这一功能,增加了对AMQP的支持。 2. *...
- **Caucho Hessian/Burlap**:DWR使用Caucho的Hessian和Burlap协议来序列化和反序列化Java对象,使得它们可以在网络上传输。 - **AutoComplete**和**Echo**:这两个是DWR提供的一些特殊服务,AutoComplete用于实现...
3. Hessian和Burlap:这两种协议是基于HTTP的轻量级二进制协议,它们提供了更高效的序列化机制。Hessian是二进制的,而Burlap是基于XML的,两者都提供了自动类型转换的能力,使得跨语言调用成为可能。 4. JMS(Java...