惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
IT之家
IT之家
J
Java Code Geeks
博客园_首页
Stack Overflow Blog
Stack Overflow Blog
量子位
I
InfoQ
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
V
V2EX
博客园 - Franky
U
Unit 42
S
SegmentFault 最新的问题
美团技术团队
The Register - Security
The Register - Security
Last Week in AI
Last Week in AI
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
M
MIT News - Artificial intelligence
博客园 - 聂微东
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Troy Hunt's Blog
B
Blog
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
K
Kaspersky official blog
The GitHub Blog
The GitHub Blog
C
Cisco Blogs
Microsoft Azure Blog
Microsoft Azure Blog
F
Fortinet All Blogs
S
Schneier on Security
C
CERT Recently Published Vulnerability Notes
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
小众软件
小众软件
T
Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Martin Fowler
Martin Fowler
AWS News Blog
AWS News Blog
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
H
Heimdal Security Blog

博客园 - montaque

xp 与 windows 7 共享收藏夹 Microsoft ILM V2 新特性 云计算 PDC , XAML 2009以及未来 PDC , KeyNote2 个人计算,Windows 7+ Live Service PDC - C#4.0 以及未来 PDC 第一天总结 PDC 2008 WPF/Silverlight 中利用XamlReader /Writer 来处理对象的序列化反序列化 让你的Expression XAML 编辑器支持智能提示 silverlight 测试 Powershell 脚本自动下载 FTP Server上面固定格式的文件 EDI batch Receiving in Biztalk 2006 R2 EDI Party Resolution in Biztalk R2 EDI in Biztalk 2006 R2 Hello,Biztalk 2006 R2 BAM, WCF 集成 what's new in Biztalk 2006 R2 hello biztalk R2 Mix08
Hello, Biztalk 2006 R2 BAM
montaque · 2008-05-24 · via 博客园 - montaque

Biztalk 2006 R2的BAM,允许我们很方便的让既有系统和WCF-based 系统,通过配置或者API的方式。把程序运行过程中的关键数据库push给BAM。 允许业务人员通过BAM的portal 来集中察看,甚至做分析。接下来我们首先Enable Biztalk的BAM,然后定义一个简单的活动模型。然后通过程序APi,把数据喂给他。

首先要Enable BAM。 BAM跟BAS不一样,不依赖Sharepoint,它是基于asp.net 2.0的一个简单web应用。只要有IIS就可以,操作系统vista也可以。另外如果要enable OLAP的分析的话,需要安装SQLServer分析服务,还有集成服务(有几个package来partation大的活动表)。如果使用alert,需要安装Notification服务。

安装的时候,选择BAM Client( Excel add-in 来定义Activity,BAM Event,就是WCF/WF的interceptor模型,Alert 是基于SQL Notification server 的provider)

image

然后配置BAM,如果你需要OLAP聚合的话,选中下面的选项。他会在分析服务中建立数据库

image

安装好之后,你可以访问http://localhost/bam 看bam portal ,初始时空的,什么都没有。这个portal允许你自定义,关键选项都在C:\Program Files\Microsoft Biztalk Server\BAMPortal\web.config 里面。另外portal目录下面有连个访问数据库的web service。portal是对web service 的一个展现。

image

接下来你就可以用Excel 来定义一个模型。如果是2007的话,选择Office按钮->Excel Options->Add-in ->Go enable BAM add-in,然后你就看到add-in 选贤卡。

image

接下来我们创建一个简单的模型。定义一个模型,用户提交订单,到订单处理结束。每个订单有订单的数量,以及来自哪个州。

Activity的属性:BeginOrder, EndOrder,OrderAmount, State

image

新建一个Activity,叫做HelloBamActivity.

image

Ok之后,Activity就好了。相当于表建好了,然后我们顶一个一个视图(KPIview)

image

选中我们的视图

image

然后选中所有的Column

image

下一步,这里我们可以新建一个Alias,或者duration以及分组,跟写SQL语句一样。

我们定义一个duration,叫做订单处理时间。(processedTime),是结束时间-开始时间。统计一下订单处理了多久。

image

然后我们定义一个聚合,定义维度和测量列

image

新建一个维度,我们以州作为一个维度

image

然后定义测量指标

平均处理时间MProcessedTime,这里的聚合只能有这个五种方式。

image

就这样吧,一直Next。

image

然后我们选中我们的维度和测量值。Excel帮你生成了个模拟数据。

image

然后到Add-in, 点击右边的按钮,告诉我我需要一个分析的olap。

然后点击Export Xml,到处一个Activity的定义文件。放到C:\temp\HelloBamActivity.xml

image

至此,activity就定义好了。接下来我们把它部署到BAM的数据库中。bm.exe 是一个命令行工具,来管理BAM的模型。我们先部署一个activity模型。

C:\Program Files\Microsoft Biztalk Server\Tracking>BM.exe

image

如果部署提醒你Star Schema不存在的话,说明你没有配好分析服务。

这时候你打开Portal ,就可以看到你的视图了。只是没有数据而已,

image

这时候在数据库里面,BamPrimaryImport就建立了一些表和视图。主要是这个Activity的元数据,以及存放实例的表。

image

Select * from dbo.bam_Metadata_Activities

返回activity列表。

接下来我们就要用API,往里面写一些关键的业务数据, 比如订单的开始时间,结束时间,以及州和数量。

新建一个Console Application

添加对C:\Program Files\Microsoft Biztalk Server\Tracking\Microsoft.BizTalk.Bam.EventObservation.dll的引用。这个Assembly 包含直接操作BAM的API。

我们无非是begin一个Activity,更新他的一些属性,然后退出。

代码如下

//begin a Astivity
          string dbConn="server=.;database=BamPrimaryImport;trusted_connection=yes";
          DirectEventStream des = new DirectEventStream(dbConn, 5);

          string activityId=Guid.NewGuid().ToString(); //Activity Id, can be any key
          des.BeginActivity("HelloBamActivity",activityId);

          Debugger.Break();
          //update atribute

          des.UpdateActivity("HelloBamActivity", activityId, "BeginOrder",
              DateTime.Now,"Amount",300,"State","CA");

          des.UpdateActivity("HelloBamActivity", activityId, "EndOrder",DateTime.Now.AddSeconds(10));

          des.EndActivity("HelloBamActivity", activityId);
          des.Flush();
          //end activiity

          Console.ReadLine();

如果要查看Trace的话,配置你的app.config,

<system.diagnostics>
    <switches>
      <add name="Microsoft.BizTalk.Bam.EventObservation" value="1"/>
    </switches>
    <trace autoflush="true">     
      <listeners>
        <add name="console" type="System.Diagnostics.ConsoleTraceListener"></add>
      </listeners>
    </trace>
  </system.diagnostics>

打开Portal就会看到数据了,多运行几次数据就可以看到更多的结果

image

Olap 聚合

image

如果看不到数据,检查一下你的集成服务的package是不是不能正常运行。

这样,我们可以通过了程序API的方式,把系统的业务数据push到BAM,下次讲一下怎么用配置的方式,让WCF 拦截数据到BAM