[转] 关于 WCF 中数据压缩的几篇文章

原文:http://www.cnblogs.com/jiabao/archive/2007/12/04/982534.html
在.net3.0出现以前我们进行分布式开发式有两个选择一个是webservice,另一个是remoting;

在早期的项目中,比较喜欢remoting,因为remoting可控性好,也好部署,不需要依赖其他的宿主环境。 今年的做的项目大部分都是webservice的,因为在这几年remoting过程中遇到了几个问题,比较典型的就是remoting的宿主程序容易出现异常,并且这个异常很难捕捉,一旦宿主程序的压力过大,就会出现这个情况。比较脸红的是,这个问题到现在也没有发现是怎么产生的,也就无从说解决了

凡是涉及到分布式部署的项目都会有数据的传输问题:要对需要传输的数据进行压缩。较早的项目中,都是将dataset压缩为流对象(经过序列化的)后进行传递的,压缩比1/4的样子。

.net3.0的出现极大的方便了分布式项目的开发部署,在学习wcf时候,一直在寻找在wcf构架下的数据压缩方案,就将搜集到一些文章汇总在这里(这方面的东西少的可怜),供大家参考。个人比较喜欢 WS-Compression for WCF 感觉思路更清晰

ms的文章:Custom Message Encoder: Compression Encoder
http://msdn2.microsoft.com/en-us/library/ms751458.aspx,例子在TechnologySamples、Extensibility、Channels、MessageEncoder、Compression目录中

msdn社区的文章:Serialize Datasets as binary (not XML) in WCF
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1618046&SiteID=1&pageid=0#1648392
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1520385&SiteID=1,这里面Pablo Cibraro 的回复非常清晰,俺就摘录在这里了

There are basically three ways to implement compression in WCF.

1. At transport level using a message encoder which compress all the data throughout the entire channel (From the client to the service). There is a sample of this in the WCF SDK,  [SDK Folder]TechnologySamples/Extensibility/MessageEncoder/Compression

2. At message level, adding some metadata to the soap message (Soap headers) and compressing the soap body. This approach can use a WCF binding or a MessageInspector Behavior to modify the soap messages. You can find an example here, http://weblogs.asp.net/cibrax/archive/2006/03/29/WS_2D00_Compression-for-WCF.aspx

3. Only for the Http transport, you can use the Http Compression capability. I haven't seen any implementation of this technique so far.

I hope this can help you

Regards,

Pablo.

 

WS-Compression for WCF
http://weblogs.asp.net/cibrax/archive/2006/03/29/441398.aspx


继续补充中...



--畅所欲言,随心而谈--
本博客文章全部原创,转载请注明出处,谢谢
版权所有 jiabao.cnblogs.com 转载请联系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊一聊我自己的从业经历和感悟

嵌入式学习,是一个很枯燥的过程,我记得在学习三极管的时候,我真的对这个东西一点感觉都没有,我知道三极管可以放大,然后电子从一个地方去到了另一个地方,然后就触发了某个开关,就发了大水。然后…

gmake与make的区别

gnu make在linux下一般是叫make但是如果是在其他的unix系统下,因为有一个原生的makegnu make就改个名字叫gmake了。就这们简单当port一个老的unix程序,如老的SunOS上的程序时往往需要sed s/gmake/make/ggmake是GNU Make的缩写。Linux系统环境下的make就是…

大数据——sqoop操作mysql和hive导出导入数据

1.sqoop安装 (1)下载CDH版本的sqoop (2)解压并进行环境配置 环境变量为: export SQOOP_HOME/home/sqoop-1.4.6-cdh5.15.1 export PATH$PATH:$SQOOP_HOME/bin 在sqoop安装目录/conf/下: #新建sqoop-en…

LinuxC高级编程——线程

LinuxC高级编程——线程 宗旨:技术的学习是有限的,分享的精神是无限的。 一、线程基础 main函数和信号处理函数是同一个进程地址空间中的多个控制流程,多线程也是如 此,但是比信号处理函数更加灵活,信号处理函数的控制…

来自专业的RIA咨询strechmedia机构提供的Flex组件

具体内容见这里,其中最有用的是chart range selection组件,可以用作历史数据浏览和分析,不光能用slider来选择查看的范围,还能控制范围的大小,而且通过图形也能对range selection进行反向操作,非常酷&#…

年终了,肿一下

也没有没有跟大家好好唠唠,一年时间过得飞快,我还记得那时候从老家开车来深圳,一路狂奔,在广西入境广东的时候,因为疫情排查,我们在那里堵了3个小时,还因为路途颠簸,车子一起一停&am…

大数据——spark安装部署和python环境配置

需要配置多台服务器,实验环境:master和data两台服务器,已安装好hadoop,可参考前文!!! 1.spark安装 master安装 (1)下载scala和spark (2)解压并…

LinuxC高级编程——线程间同步

LinuxC高级编程——线程间同步 宗旨:技术的学习是有限的,分享的精神是无限的。 1、 互斥锁mutex 多个线程同时访问共享数据时可能会冲突。对于多线程的程序,访问冲突的问题是很普遍的,解决的办法是引入互斥锁(Mutex&a…

2021年,这是你们收到的第一份礼物

一、 前言大家好,2020年就要过去了,这一年来,感谢大家对公众号的支持,但是感谢不能停留在嘴上,所以,这次邀请了正点原子赞助。一起给大家送点礼品!作为一名 电子/嵌入式 人,正点原子…

SQL SERVER自定义函数

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: captain -- Create date: 2008.05.05 -- Description: 删除垃圾代码 -- ALTER FUNCTION [fzdongmancn].[fun_deleteLj] ( old varchar(1000) ) RETURNS varchar(1000) AS BEGIN declare ind…

Python参考手册(第4版)pdf

下载地址:网盘下载内容简介 本书是权威的Python语言参考指南,内容涉及核心Python语言和Python库的最重要部分。本书内容简洁扼要、可读性强,书中还包括了一些没有在Python官方文档或其他资料中出现过的一些高级的主题。这一版在内容上进…

大数据学习-python通过Pyhive连接hive数据库

1.hbase和hive结合 (1)hbase建表添加数据 #test是表名,name是列族 #hbase可以一个列族里边多个字段 create test,name#添加数据 put test,1,name:t1,1 put test,1,name:t2,2#查询 scan test#查询 get 表名,row-key,列…

深入理解Linux内核进程上下文切换

在原作者基础上修改了些文字描述,让文章更加通俗易懂作者简介韩传华,就职于南京大鱼半导体有限公司,主要从事linux相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,乐于分享喜欢学习,喜欢专研Linux…

Linux C高级编程——网络编程基础(1)

Linux高级编程——BSD socket的网络编程 宗旨:技术的学习是有限的,分享的精神是无限的。 一网络通信基础 TCP/IP协议簇基础:之所以称TCP/IP是一个协议簇,是因为TCP/IP包含TCP 、IP、UDP、ICMP等多种协议。下图是OSI模型与TCP/IP模…

使用SQLDMO中“接口SQLDMO.Namelist 的 QueryInterface 失败”异常的解决方法

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象),它封装 Microsoft SQL Server 数据库中的对象。它允许我们通过COM对象,对SQLServer进行管理。SQLDMO对象来自SQLDMO.dll。因为SQLDMO.dll是一个COM对象…

GetKeyState(), GetAsyncKeystate(), GetKeyboardSlate()

GetKeyState、GetAsyncKeyState、GetKeyboardState函数的差别: 1、BOOL GetKeyboardState( PBYTE lpKeyState );获得全部的256个键(键盘按键、鼠标按键等等)的状态,lpKeyState是指向一个256bit的数组。存放全部键的状态。 2、SHOR…

你月薪多少?

今天跟一个读友聊天,他刚毕业没多久,在一家方案公司上班,月薪6.5,做的Android 开发,用RK方案,有时候也需要做MCU相关的开发,事情多,压力也不少,而且不是双休,…

cx_Oracle安装出现的问题

1.安装cx_Oracle (1)在线安装 pip install cx_Oracle (2)源码安装 下载源码:https://pypi.org/project/cx-Oracle/ tar -zxvf cx_Oracle-8.1.0.tar.gz cd cx_Oracle-8.1.0 python setup.py install 2.测试 impo…

凡事想开,心情不坏~

制芰荷以为衣兮,集芙蓉以为裳。 不吾知其亦已兮,苟余情其信芳。 高余冠之岌岌兮,长余佩之陆离。 芳与泽其杂糅兮,唯昭质其犹未亏。 忽反顾以游目兮,将往观乎四荒。 佩缤纷其繁饰兮,芳菲菲其弥章。 民生各有…

Linux C高级编程——网络编程之以太网(2)

Linux网络编程——以太网 宗旨:技术的学习是有限的,分享的精神是无限的。 1、以太网帧格式 源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。用ifconfig命令查看&#…