• SSAS : XMLA over TCP/IP的实现


    之前提到微软的SSAS首席科学家Mosha Pasumansky曾经写过一篇专门的文章介绍了XMLA over TCP/IP这个协议在SSAS上面的实现。

    http://www.mosha.com/msolap/articles/as2005_protocol.htm

    我从来都觉得,学习东西一定要转换为自己的知识才行。所以我的总结几点如下

    1. 该协议是微软的专利技术,并没有公开具体的接口。

    2. 相对来说,而XMLA over http则是公开的标准,该公开标准直接基于HTTP和SOAP,很好懂,但传递的包体积较大,而且默认都是不加密的,安全性有限。当然,你可以通过Https的方式来提高安全性,但https本身又超级慢。

    3. 但XMLA over TCP/IP并不神秘,微软自己的工具都是基于这个协议访问SSAS的,例如SSMS这个工具。同时,如果我们通过OLEDB for Analysis,或者ADOMD.NET去编程的话,也是自动使用XMLA over TCP/IP的。

    但总是有朋友对此感到好奇,例如我自己也比较好奇。那么,就让我带你来揭开它的盖子,让你看看,如果使用了xmla over TCP/IP,数据是怎么传递的。

    它首先是二进制的内容,然后,它是压缩过的内容,最后,它是加密的内容

    下面我就让你看一下他们的不同。我自己做了一个工具来测试他们

    image

    1. 正常情况下(二进制,压缩,加密)

    image

    这个截图中,首先他们都是看不懂的东西。(好吧,你可能能看懂一点点啦,但大部分看不懂),因为是二进制编码过的,而且加密过。并且注意看它的响应字节体积:15860byte,约为15KB。因为它是压缩过的。

    2. 取消加密(首先必须在服务器设置以下属性)

    image

    然后,通过在连接字符串中指定:Protection Level=CONNECT;告诉SSAS说,我们不需要加密数据,但连接要加密(因为这里面有身份验证的信息)

    【注意】这里是Protection Level=CONNECT,而不是ProtectionLevel=CONNECT。MSDN中文档是有问题的

    image

    我们看到,体积稍微小了一点,因为没有加密了。内容基本也稍微好看一点了。但仍然看不懂。因为压缩过了,而且是二进制

    3. 取消加密和压缩

    设置:"Protection Level=CONNECT;Transport Compression=none"

    image

    此时,你发现那个体积达到了106328,也就是接近100KB。这是因为我们现在没有压缩了。此时,仍然有一些是二进制字符

    4. 转换为XML格式

    设置:Protection Level=CONNECT;Transport Compression=none;Protocol Format=XML

    服务端设置:

    image

    image

    【注意】我发现,第四种情况和第三种情况很多时候都是一样的。

    所以,最后我要说的是,XMLA over TCP/IP并不神秘,它就是微软的一个内部协议。你可以这么理解。其实我们自己写一个比较重要的系统的时候,也会有内部协议的。

    本文由作者:陈希章 于 2009/6/27 9:54:43 发布在:http://www.cnblogs.com/chenxizhang/
    本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
  • 相关阅读:
    栅格系统
    JQuery
    week 4
    week 1
    js嵌套,BOM,DOM,内置对象,数组,自定义对象,正则表达式
    week 2
    case when的两种用法
    获取当前路径
    parse,tryparse区别
    parse ,tryparse 续
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1512118.html
Copyright © 2020-2023  润新知