商务人士一直强调的一点是能够做到在任何时间、任何地点高效地访问电子邮件。Exchange Server 2003长期为移动用户提供邮件访问服务,像Always Up-To-Date(简称AUTD)邮件自动同步功能,它主要是允许使用无线网络的移动设备通过Exchange ActiveSync(简称EAS)来与Exchange邮箱实现自动同步。随着Exchange Server 2003 Service Pack 2(SP2)的出现,Exchange Server 2003服务器的移动特性得到了巨大的改善,特别是在基于无缝直接推送技术(Direct Push)而实现的邮件同步以及安全管理。要了解Exchange Server 2003 SP2所带来的另一大移动特性,大家可以打开以下网页来参阅我在《Windows IT Pro Magazine》 上发表的一篇电子版文章:http://www.windowsitpro.com/MicrosoftExchangeOutlook/Article/ArticleID/93107/MicrosoftExchangeOutlook_93107.html。在这篇文章中,我将向大家介绍EAS、AUTD和Direct Push三者是如何把邮件“推”向移动设备的,同时还能节省同步邮件所使用的带宽,最大化节省开支。
EAS:Direct Push的基础
Exchange Server 2003 RTM版本一经公布,EAS已经作为内嵌的组件被包含在其中。实际上,EAS是一种基于HTTP和XML的同步协议,它优化了低配置(low-capacity)移动设备在高延时(high-latency)低带宽(low-bandwidth)的无线网络环境中邮件同步的性能表现(这里的低配置主要是指在内存、存储卡以及芯片方面)。通过使用Exchange Server 2003内置的EAS,用户可以同步四类数据:日历、任务、邮件及联系人。EAS不需要用户在移动设备上安装任何应用程序;同时Exchange管理员也可以通过Exchange系统管理器(Exchange System Manager,简称ESM)简单方便地激活和管理EAS功能。
EAS所提供的其它功能包括邮件过滤、删节、智能回复和转发。考虑到移动设备每次只允许下载一定大小的信息(3k、5k或只是头信息),设计这些功能的出发点都是为了节省邮件同步所消耗的带宽。邮件智能回复和转发功能是指用户可以不用下载整封邮件到手机上而直接回复或者转发一封邮件;这时你只需要写好想要回复的内容,在把它发送到Exchange服务器;系统会自动把原始邮件添加到邮件的末尾,从而达到节省带宽的目的。EAS也提供了阻止附件下载的选项,用户可以通过它来决定是否下载邮件的时候一起下载附件。考虑到下载大容量的附件可能会诸塞移动设备和Exchange服务器的连接,我建议你选择不下载附件。
EAS的结构
我们知道,要使用装有Windows Mobile 2002的移动设备通过ActiveSync来访问存储在Exchange 2000服务器上的邮箱,我们需要安装微软移动信息服务器2002(Microsoft Mobile Information Server,简称MIS 2002)。Exchange Server 2003把Exchange 2000和MIS的功能整合在一起,默认提供EAS的访问,而不需要另外安装任何组件。所以,Exchange Server 2003中EAS的结构和MIS中的结构是一致的。图1就是EAS的结构图。从中你可以看出EAS正是使用了标准的Exchange构架,这意味着EAS能够很容易地被整合到已经存在的邮件系统;它可以使用其中的防火墙来打开或者关闭TCP 80端口,或者是TCP 443端口(如果EAS启用了SSL)。
图1:EAS的结构
现在让我们来看看EAS是如何工作的。当我们在移动设备和Exchange服务器之间建立EAS连接之后,从移动设备上发出的数据流就会到达防火墙。如果我们在标准的防火墙上建立端口地址转发(Port Forwarding),或是直接使用ISA作为防火墙,这部分数据就会到达Exchange前端服务器,并且建立TCP连接。这时候,我们的移动设备将直接和IIS上的Microsoft-Server-ActiveSync虚拟目录进行“对话”。这个虚拟目录实际上是由一个Internet Server API(ISAPI)的编程接口来管理的,它控制了所有通往这个虚拟目录的连接。在经过身份验证之后,系统将会通过DSAccess组件来联系活动目录,以决定是否这个用户被允许进行EAS访问。如果可以,Exchange服务器将会找到哪一台后台服务器存储了这个用户的邮箱。
然后,EAS访问将会被转发到这台后台服务器。但要注意的是,它并不是转发到后台服务器的Microsoft-Server-ActiveSync虚拟目录;而是Exchange虚拟目录。在这个过程中,你可以看出来EAS是如何使用Exchange内置的Outlook Web Access(OWA)结构和WWW Distributed Authoring and Versioning(WebDAV)命令来建立连接的。
但是这样的转发也会带来一些问题。首先,为了保证EAS访问,我们必须正确地配置验证方式:在前台服务器上使用基本验证(Basic Authentication),在后台服务器的Exchange虚拟目录上使用Windows集成验证(Integrated Windows authentication)。其次,考虑到前端服务器使用的是基本验证,我们强烈推荐你使用SSL。需要强调的是,如果你在前端服务器的前面配置了防火墙,那么你的SSL证书应该作为一个正规的网络证书而被安装在前端服务器上。但是如果你使用ISA服务器作为防火墙来发布EAS,你需要确保这个证书被同时安装在前端服务器和ISA服务器上。
要使用SSL来保证移动设备和前端服务器交流的安全性,我们要满足下面几个条件。首先,我们必须使用标有主机名(host name)的SSL证书,EAS不支持通配符证书(wildcard certificates)。更为重要的是,移动设备必须信任颁发SSL证书的机构,否则EAS连接也会失败。所以,你或者使用移动设备默认信任的证书授权机构(Certificate Authority,CA)所颁发的证书,像CyberTrust、Entrust、thawte或VeriSign;或者使用你自己的CA所颁发的证书,然后把它导入到每一台移动设备中。要了解Windows Mobile 5.0以及安装有信息收发与安全功能升级包(Messaging and Security Feature Pack,MSFP)的Windows Mobile 5.0设备所默认信任的CA,你可以参阅以下网址:https://partner.microsoft.com/global/partner/40027352。但是,如果你选择使用自己的CA所颁发的证书,在把根证书导入到手机上的过程中,你可能会碰到一些问题。这是因为很多的移动网络在应用层上阻止用户向移动设备添加软件。在MSFP发布之前,我们可能还可以向移动设备添加根目录。但是在装有MSFP的移动设备上安装根目录将变得更加困难,除非你的移动网络运营商为你提供了专门的授权软件,像英国的Orange公司就提供这种服务。我认为这应该成为你决定是否购买移动设备或者选择移动运营商的一个因素;或者你干脆选择Windows Mobile移动设备默认信任的CA。
Direct Push的工作原理
在Exchange Server 2003 SP2之前,我们有两种方法来使移动设备和邮箱同步:你可以在移动设备上手工配置EAS,从而使它可以在规定的时间内自动向Exchange服务器发送信号来同步邮箱;或者你还可以使用Exchange Server 2003中的AUTD邮件自动同步功能。通过使用AUTD功能,一旦Exchange服务器发现你的邮箱中有新的邮件或日历项等等,它就会通过SMTP发送一条邮件给你的移动设备所使用的网络运营商(Mobile Carrier)专门为AUTD所设立的网关,它可以向你的移动设备发送手机短信(Short Message Service,SMS)来提示有新的项目出现在你的邮箱中。这时你的移动设备就会向服务器发送信号来进行同步。第一种方法的缺点是你所设定进行同步的时间不能少于5分钟,这就意味着你的移动设备不能一直同步最新的信息。第二种方法的缺点是如果你的移动设备所使用的网络运营商不在北美地区,每一次收到短信提示并开始同步都要另行收费了。
尽管设计AUTD邮件自动同步功能的想法非常好,但是在现实生活中这项功能却不太令人满意,至少是在欧洲,那里仅仅有几家移动运营商提供专门为AUTD建立的网关来把SMTP邮件转换成SMS短信。在微软公司内部,IT工作人员希望在全世界范围内启用基于Exchange Server 2003的移动邮件解决方案,但是他们也发现这项功能存在我在前面所提到的问题。这就导致了Exchange Server 2003 SP2中的Direct Push的出现。Direct Push也可以被称作第二代AUTD,它是一种基于IP地址的同步技术,它包含以下优点:
• Direct Push使用基于IP地址的标准的数据传输格式,它在全世界范围内均有效;
• 你不需要为你的Exchange环境部署任何附加的架构;
• Direct Push不需要同步短信提示;
• 为启用Direct Push,用户不需要在移动设备上进行特殊的配置。
要使用Direct Push功能,你的Windows Mobile 5.0的移动设备必须安装有信息收发与安全功能升级包(MSFP)。要了解具体包含Windows Mobile 5.0 MSFP的移动设备,你可以参阅Jason Langridge的博客文章(http://blogs.msdn.com/jasonlan/default.aspx)。有一点你需要知道,尽管Direct Push只能在装有Windows Mobile 5.0 MSFP的移动设备上使用,你仍然可以在那些没有MSFP的移动设备上进行手工同步、指定时间自动同步或者AUTD同步。但是在Exchange Server 2007中,只有Direct Push可以使用,基于短信提示的AUTD功能将不复存在。一旦你升级到Exchange Server 2003 SP2,一个非常便捷的功能将会使原来使用AUTD进行同步的移动设备自动转化为使用Direct Push。
那么Direct Push到底是如何工作的呢?Direct Push会在Exchange服务器和移动设备之间建立起一种加密的HTTP(即HTTPS)连接,通过使用heartbeat技术,Exchange使这个进程一直保持在活跃的状态(active)。这样,Exchange服务器就可以通知移动设备是否有任何变化发生在它所关联的邮箱上。一旦有任何变化,服务器就会开始一次同步。考虑到移动设备和Exchange服务器之间一直建立一种活动的连接,你可能会认为这样的代价太大了。其实不然,移动设备仅仅呆在那儿等待服务器的响应,当处于等待(pending)状态的时候,它不会去传输或者接收任何数据。所以你基本上不用担心它会另外收费。而且正是因为移动设备仅仅在邮箱出现变化之后才进行一次同步,这和手工同步或者指定时间同步完全是一样的,这使得移动设备将会使用更少的电量。这样做既节省了为了同步所带来的开支,还延长了电池的寿命。另外,在邮件服务器和移动设备之间所传输的数据也使用了gzip技术进行了压缩。
从图2中,你可以看出Direct Push同步的基本步骤。首先,移动设备发送一个Ping命令给邮件服务器,初始化一个基本的EAS同步进程(这和手工同步的开始是一致的,具体请参考我在前面的介绍)。这里请注意EAS Ping命令是一个全新的命令,它仅仅在Direct Push中使用;它和Internet Control Message Protocol(ICMP,因特网控制消息协议)中的Ping命令完全不同,所以你不用担心防火墙会阻止EAS Ping命令。在这里,移动设备发送EAS Ping命令到达Exchange前端服务器,在这里超时(timeout)时间被设为15分钟。这意味着在发送完Ping命令之后,HTTP连接可以被保持15分钟的活跃状态。在下面的15分钟之内,如果移动设备所关联的邮箱没有任何变化,Ping命令将会超时;这时Exchange前端服务器将会向移动设备发送一个请求,希望它能够再发送一个Ping命令。如此反复,直到被关联邮箱出现任何变化。这时候,前端服务器将会使用状态为活跃的HTTP连接来提示移动设备它所关联的邮箱出现了变化。移动设备初始化一次同步,但是注意它只同步出现变化的文件夹,而不是整个邮箱,这样也节省了同步数据所消耗的带宽和开销。
图2:Direct Push同步流程
EAS Ping命令
EAS Ping到底是一个什么样的命令?作为一个例子,我们可以来看看图3中的Ping命令,当移动设备建立起新的连接之后,它告诉Exchange服务器希望进行同步的文件夹,还有它所希望的heartbeat的时间(按秒计算,包含在Lifetime标签中),在这段时间内它可以接收到服务器的回应。EAS通过使用WebDAV SUBSCRIBE和UNSUBSCRIBE命令来向后台服务器创建关联关系。就像在前面提到的一样,如果在15分钟内没有新的邮件出现在监控的文件夹内时,移动设备就会再次发送一个EAS Ping命令。请注意在发送完第一次Ping命令之后,以后的Ping命令仅包含最少的数据,这是因为像具体的文件夹的名称等信息已经不需要再次被包含在其中。并且如果在已经建立的连接中发送Ping命令,将不需要再次被验证。
图3:网络跟踪所显示的一个EAS Ping命令的示例
如果在Ping超时之前,有变化发生在移动设备所关联的邮箱(像新邮件进入邮箱,或删除已存在的邮件),后端服务器就会通过UDP端口2883提示前端服务器,然后再由前端服务器发送信号告知移动设备它所监控的文件夹内出现变化。很重要的一点是在后端服务器和前端服务器之间的UDP端口2883必须被打开,或者你也可以修改注册表来使用其它端口。如图4所示,Status标签之间的状态代码说明了同步的成功、失败、超时或者其它错误。如果文件夹的结构发生变化,服务器就会告诉移动设备初始化一个同步,其中在有变化的文件夹列表里需要包括<Folder> 0 <Folder>标签。如果没有具体的状态代码,系统会使用默认的代码1,这也意味着没有任何变化。
图4:Status标签中使用状态代码意味着同步的过程中出现错误
防火墙和Direct Push
如果你希望在你的Exchange环境当中启用Direct Push,那么就需要去考虑一下防火墙的配置了。特别是你需要确保移动设备和前端服务器连接所使用的超时时间参数比EAS Ping命令的超时时间参数要长。如果防火墙上超时时间比Ping命令的值短,那么连接将会不断被中断,移动设备将不得不重新发送Ping命令。
具体如何配置防火墙来使它更好地为Direct Push工作,这还取决于你使用的是何种类型的防火墙。如果你想知道如何为Direct Push配置ISA Server 2004,可以参考以下的文章:
有关ExchangeActiveSync直接强制技术企业防火墙配置
http://support.microsoft.com/?id=905013
这篇文章也提供了一些当你配置其它防火墙时可以参考的信息。
在成功地配置了防火墙之后,在前端服务器上,我们还应当打开Internet 信息服务(IIS)管理器,调整Default Web Site的超时时间参数。我发现在一个小型或者中型的商业网络中,为Direct Push配置15到30分钟(900~1800秒)的超时参数都是可以的。
经济的、实时的访问
自从Exchange Server 2003发布以来,Direct Push是实时访问(AUTD)的最新的技术。正如你所看到的,Direct Push使移动设备向Exchange服务器持续性地发送Ping命令,并且当新的邮件出现在用户的邮箱时,自动地进行同步。Direct Push技术使用Windows Mobile 5.0移动设备的用户可以用最经济的方式来实时访问邮件、日历、联系人等等,就像他们在办公室一样。
关于Direct Push的参考资料
Windows IT Pro电子版文章
提高移动设备群的安全性http://www.windowsitpro.com/MicrosoftExchangeOutlook/Article/ArticleID/49602/49602.html
现实生活中的Direct Push
http://www.windowsitpro.com/Article/ArticleID/50079/50079.html
Exchange Server 2003 SP2中的移动特性
http://www.windowsitpro.com/Article/ArticleID/49000/49000.html
浅谈Exchange Server 2003 SP2
http://www.windowsitpro.com/Article/ArticleID/47792/47792.html
在Exchange Server 2003中配置ActiveSync
http://www.windowsitpro.com/Article/ArticleID/45360/45360.html
微软关于Direct Push的一些资料
微软Windows Mobile 5.0 MSFP官方主页
http://www.microsoft.com/windowsmobile/business/5/default.mspx
有关ExchangeActiveSync直接强制技术企业防火墙配置
http://support.microsoft.com/?kbid=905013
Exchange Server 2003中的移动特性
http://www.microsoft.com/exchange/evaluation/features/mobility/default.mspx
Exchange Server 2003 SP2中的移动特性
http://www.microsoft.com/technet/prodtechnol/exchange/2003/sp2mobility.mspx
为Exchange Server 2003配置基于Windows Mobile系统的移动设备
http://www.microsoft.com/technet/itsolutions/mobile/deploy/msfpdepguide.mspx
TechNet网络广播:管理装有MSFP的移动设备
http://msevents.microsoft.com/cui/webcasteventdetails.aspx?eventid=1032285688&eventcategory=4&culture=en-us&countrycode=us
微软Exchange官方博客
http://msexchangeteam.com/archive/2005/06/20/406586.aspx
附文:
使用移动设备搜索Exchange全球通讯簿
作者/Nathan Winters 译者/李小轲
Exchange Server 2003 Service Pack 2(SP2)提供了一个新的命令Search,它允许用户可以在移动设备上搜索全球通讯簿(Global Address List,GAL)。通过这项功能,你将不再需要为了在移动设备上查看联系人信息而将它们复制到移动设备的个人通讯录上。和其它Exchange Server 2003 SP2提供的移动新特性一样,这项称作GAL Lookup的新功能也需要你的移动设备使用Windows Mobile 5.0设备,并且安装有信息收发与安全功能升级包(Messaging and Security Feature Pack,MSFP)。
GAL Lookup功能是集成在移动设备的使用界面上的,非常易于使用。它作为MSFP的一项组件,被默认安装并且不能被停用。你可以在移动设备的个人通讯录或是写新邮件时使用GAL Lookup功能。你只需要输入想要搜寻的内容,再从菜单中选择“Find Online”即可。考虑到每次搜索最多只能返回100个结果,试着尽可能详细地定义你的搜索条件。
当你使用GAL Lookup功能并且输入搜索语句以后,Exchange服务器会使用模糊名字解析技术(Ambiguous Name Resolution,ANR)对服务器上所有具有Email地址的用户进行搜索。返回的结果包含10种不可以被个性化的属性,分别是:名(first name)、姓(last name)、显示名(display name)、办公室(office location)、职位(title)、公司(company)、办公室电话(office telephone)、移动电话(mobile phone)、别名(alias)和邮件地址(email address)。
如果你仍然在使用基于Windows Mobile 2003的移动设备,并且也希望实现和GAL Look相似的功能,可以参考下载Microsoft Global Contact Access,它是移动设备上的一个插件:http://www.microsoft.com/windowsmobile/downloads/global/default.mspx。