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

推荐订阅源

Last Week in AI
Last Week in AI
D
DataBreaches.Net
腾讯CDC
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
A
About on SuperTechFans
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
罗磊的独立博客
月光博客
月光博客
MyScale Blog
MyScale Blog
U
Unit 42
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
G
Google Developers Blog
博客园 - 【当耐特】
D
Docker
I
InfoQ
雷峰网
雷峰网

博客园 - 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