XMLA请求由多层封包组成,总体结构如下图所示,可对照MSDN了解详情(http://technet.microsoft.com/zh-cn/library/ms186656.aspx):
其中,HTML封包是SOAP所依赖的传输协议,与XMLA之间相隔了SOAP一层,因此HTML封包与XMLA没有任何逻辑关系(实事上如本系列第四篇所述,微软自用的传输协议是TCP/IP之,还进一步的对SOAP封包进行了压缩及加密)。
SOAP封包与XMLA相邻,并被XMLA用来寄存维护会话的SESSION标头命令(四个命令)。没有指定SESSION标头的每一个命令都是一个独立的短暂会话,对于客户端保持原子化的事务特性。
XMLA方法的组成及结构
在XMLA介绍一节我们知道XMLA具有两种方法,分别是Discover、Execute。
其中,Discover方法用于从 SSAS服务器及指定多维数据库实例检索结构性的信息,包括获取服务器的多维数据库Cube列表、Catalog、DataSource、Dimensions、Levels等。DisCover方法的结构如下:
<Discover>
<RequestType>…</RequestType>
<Restrictions>…</Restrictions>
<Properties>…</Properties>
</Discover>
Execute方法则携带Command参数,从指定的多维数据集获取查询数据。最常用Command是执行MDX语句查询的Statement命令(<Statement>MDX Query Clause</Statement>):
<Execute>
<Command>…</Command>
<Properties>…</Properties>
<Parameters>…</Parameters>
</Execute>
XMLA SOAP请求实例(已去掉HTTP封包)
下表是一个完整的获取数据源列表的XMLA Discover请求,表的第一列各行分割了XMLA封包的各部分,第二列对应行说明了各部分的含义。
<?xml version=”1.0″ encoding=”UTF-8″?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<SOAP-ENV:Body>
soap表头
<Discover xmlns=”urn:schemas-microsoft-com:xml-analysis”
SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>
<RequestType>DISCOVER_DATASOURCES</RequestType>
<Restrictions>
<RestrictionList>
</RestrictionList>
</Restrictions>
<Properties>
<PropertyList>
<Content>Data</Content>
</PropertyList>
</Properties>
</Discover>
XMLA方法
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
soap
需要特别注意的是XMLA访问SSAS 2000/2005/2008时存在着细微差异,高版本的SSAS对SOAP封包的属性要求更加严格,而在低版本中却可以做适当忽略。因此,如果在低版本的SSAS下可以运行的XMLA程序在高版本下无法获取结果的话,应该仔细查阅文档并跟踪比较,看看是否由于这个原因导致。
关于返回结果
如果知道完成特定任务的请求序列,关于结果的描述信息可以通过查找MSDN或XMLA SPEC可以轻松的获取。 因此,本系列不打算对XMLA的返回结果进行描述。
相关文章:
2 条评论了已经
Trackbacks/Pingbacks.
发表评论
字体为 粗体 是必填项目,邮箱地址 永远不会 公布。
允许部分 HTML 代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://www.bi-professional.com),所有标签都必须完整的关闭。
超出部分系统将会自动分段及换行。
请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。
I see you are experinced blogger, what is the best method to monetize my first blog ?
Great blog , love the design. Seriously considering migrating to this cms now!