版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ExchangeServer的企业应用系统设计和开发(一)潘爱民------------------------------------------------------------------------------------MicrosoftExchangeServer是Microsoft的BackOffice套件产品中面对企业应用的群件系统。在当前的企业应用市场上,主流的群件产品为ExchangeServer和LotusNotes,这两个产品的功能相仿,我们很难说孰优孰劣,但是它们的应用开发模式差异很大,用户运用起来也会有完全不同的感受。本文重点探讨ExchangeServer以及用ExchangeServer作为平台建立起来的企业应用系统设计方案,并涉及了若干相关的技术、相关的软件系统,以及这些系统的协作方案。----为了便于说明,我们把用ExchangeServer作为平台建立起来的企业应用系统简称为ExchangeServer企业系统或者ExchangeServer企业应用。对于小型的企业应用,或许一台服务器就可以满意须要,但是对于规模较大的企业来说,往往须要多台服务器、甚至多套企业应用系统才能保证企业的计算机系统正常运行,而现代的大型企业更要求这些企业系统分布在不同的物理区域,区域之间可能通过慢速网络连接起来。ExchangeServer的基本结构是客户\服务器(Client\Server)模型,但是它所支持的企业系统可以是分布式的,而且这种分布式特性对于系统管理员和用户是透亮的,这使得ExchangeServer的运用更为简洁,而且对于大型企业有更好的适应性。----由于ExchangeServer系统的特殊性,ExchangeServer企业应用的开发与一般的Client\Server应用有所不同。一方面,ExchangeServer已经为企业应用供应了大量的常规服务,例如邮件系统、地址簿管理、任务管理等,Client端应用Outlook是用户的桌面办公系统,几乎不用做任何开发,ExchangeServer和Outlook就已经构成了一个完整的企业应用系统;另一方面,ExchangeServer允许用户在它本身供应功能的基础上进行定制或增加新的应用逻辑,得到功能更为强大、更适合于特定企业的应用系统。这就是ExchangeServer企业应用的基本特点,本文将着重探讨这类企业应用的设计和开发。一、ExchangeServer介绍----MicrosoftExchangeServer既可以作为企业的Internet邮件系统,也可以作为企业内部的消息系统平台。1997年11月Microsoft发布了ExchangeServer5.5版本,该产品在功能和性能方面都特别优秀,为Windows操作系统供应了良好的企业应用基础平台,而随后在1998年发布的ServicePack1使其更趋完善。----ExchangeServer内部建立了一套功能强大的消息传递机制,同时也供应了它与其他很多系统之间的透亮连接。其总体结构框架如图1所示。图1ExchangeServer结构框架----ExchangeServer作为一个消息系统平台,它包含一系列与消息有关的服务,图1给出了基本的结构图。ExchangeServer的核心包括4个系统服务:信息存储服务、书目服务、消息传输代理和系统助理服务,当我们在服务器上安装了ExchangeServer之后,这些服务会自动被启动。以后客户连接到ExchangeServer时,这些服务协同完成客户的恳求。其功能分别如下:----信息存储服务(InformationStore):它供应对消息数据库的存储和读取访问,ExchangeServer的信息存储分为公共信息存储和私有信息存储。公共信息存储包含全部的公共文件夹信息,私有信息存储包含当前服务器上的全部用户的邮箱信息。----ExchangeServer是一个半结构化的信息存储系统,它可以保存各种类型的信息,如各种文档、消息、会议恳求、联系人信息、一般文件、多媒体资料等。信息存储服务是ExchangeServer最基本的服务,其他几乎全部的服务都建立在信息存储服务的基础上。所以ExchangeServer对信息存储服务进行了优化处理。一方面,全部的消息采纳单实例存储机制,以便节约存储空间;另一方面,信息存储服务对最近访问过的消息做了缓存处理,以便提高平均响应速度;最终,信息存储服务对创建消息、删除消息或者修改消息采纳了事务机制,既提高了性能也增加了牢靠性。----2.书目服务(DirectoryService):ExchangeServer的书目机制为我们管理ExchangeServer的内部对象供应了一样的层次结构。其中包括ExchangeServer组织(Organization)、站点(Site)和服务器(Server)的全部配置信息,书目也包含了地址簿信息。利用书目服务,管理员可以查找到全部的邮箱信息。----书目机制是ExchangeServer中信息的组织结构,而书目服务保证了这套机制能够有效地把大量的信息甚至是分布式的信息管理起来。ExchangeServer中的全部信息都通过书目结构呈现在用户或者管理员面前,这为用户查询信息或者管理员管理信息都供应了极大的便利。----当我们在分布式系统中运用ExchangeServer时,书目信息自动复制到全部的服务器上,以便保证全部的ExchangeServer服务器有同样的配置信息。书目信息的一样性是ExchangeServer信息位置透亮性的基础。同一个站点内的服务器上的书目信息总是可以刚好同步,因为同一站点内的服务器往往通过快速网络连接起来,而不同站点之间的服务器必需通过书目桥服务器保证书目信息的复制,系统管理员可以配置复制安排,以便在网络速度和复制效率之间做一折中。----3.消息传输代理(MessageTransferAgent,MTA):MTA是ExchangeServer中消息流淌的基础。它既对站点内部的服务器传输消息,同时也为其他站点的服务器传输消息。MTA作为ExchangeServer的内部消息传递机制,它供应了很强的限制功能,比如管理员可以限制消息的大小、消息传送的路由表等。----4.系统助理(SystemAttendant):系统助理是个协助性的服务,但是ExchangeServer的很多工作由它来完成,列举如下:----(1)当管理员添加新邮箱时,系统助理睬产生与邮箱有关的书目地址和E-mail地址。----(2)MTA传输消息时可能会用到系统助理来解析收件人地址,或者把书目中的分发表(DistributionList)绽开成一组收件人地址。----(3)检查书目复制的一样性。----(4)保存和管理邮箱的数字签名和加密信息。----(5)为MTA创建路由表。----ExchangeServer的核心服务是系统正常运转的基础,当我们在一台服务器上安装了ExchangeServer之后,这些服务都会自动启动。以后我们就可以运用ExchangeServer作为我们的消息平台了。但是在实际运用时,状况往往要困难得多,ExchangeServer还须要与其他的系统交换信息,比如我们要通过ExchangeServer收发Internet邮件,或者利用ExchangeServer作为企业的探讨公告区,这时我们就须要其他一些可选服务。ExchangeServer支持大多数标准的或者常见的消息系统,从图1我们也可以看到这一点。----常用的可选服务有以下一些:邮件服务:利用此服务,ExchangeServer的用户可以收发Internet邮件。新闻服务:供应基本的新闻服务,企业可以利用新闻服务建立内部探讨组或公告牌。事务服务:事务服务是运行在ExchangeServer服务器上的代理系统,它可以监测到对一个书目中消息的操作状况,比如新建消息、删除消息、修改消息或者定时消息。我们可以利用ExchangeServer的事务服务实现困难的业务逻辑。钥匙管理服务:管理组织中用户的数字签名和加密消息的平安信息。一组连接器服务:包括X.400连接器、CCMail连接器、MSMail连接器、LotusNotes连接器、IBMSNADS连接器等,通过这些连接器,ExchangeServer组织中的用户可以与其他系统中的用户相互交换信息。----从ExchangeServer的框架结构我们可以看出,ExchangeServer本身是一个功能强大的分布式消息系统,同时它也可以与其他的消息系统互操作,外挂式的连接器保证了一个企业中可以有多个消息系统存在。----下面我们来看看ExchangeServer客户端的状况。ExchangeServer的标准客户软件为Outlook,Outlook不仅是ExchangeServer的基本客户软件,同时也是ExchangeServer企业应用的开发环境,管理员的某些日常管理工作也可以通过Outlook来完成。Outlook和ExchangeServer构成了标准的客户\服务器模型,它们之间干脆通过RPC进行通信。ExchangeServer的用户也可以运用其他的通用客户软件,因为ExchangeServer支持常见的Internet协议,如LDAP(书目服务访问协议)、SMTP(简洁消息传输协议)、POP3和IMAP4(收取邮件协议)、NNTP(新闻传输协议)。利用这些协议我们可以访问ExchangeServer上相应的服务,但是ExchangeServer上有些功能只能运用Outlook才能实现,比如日历功能、任务管理等专用于企业内部的、Internet标准协议不能实现的特性。图2ExchangeServer系统服务示意图----ExchangeServer的全部服务均以系统服务的形式存在,所以我们可以通过WindowsNT的"服务管理器"检查ExchangeServer的服务活动状况,如图2所示。管理员通过ExchangeServer的管理程序配置组织和站点,也可以用它来管理邮箱,事实上我们可以用ExchangeServer管理程序管理组织中的整个书目。管理程序的用户界面如图3所示,左边的树状窗格就是整个组织的书目结构,在组织中的任何一台ExchangeServer服务器上都会看到同样的树状书目结构,右边的窗格对应于左边被选中项的具体信息。图3ExchangeServer管理程序用户界面----以上是ExchangeServer的基本结构和服务,最终我们来看一下ExchangeServer的几个与企业应用相关的特性:分布式特性:分布式特性是实现大型困难企业应用的保证,ExchangeServer中书目对象的位置透亮性简化了系统的管理。与操作系统的紧密结合:这可能是ExchangeServer的最大优势。一方面,ExchangeServer的服务都以系统服务的形式实现,提高了系统的处理效率;另一方面,ExchangeServer中的全部用户都与NT的域用户绑定,干脆利用了操作系统的平安机制。与操作系统供应的很多工具紧密结合:比照实时备份、错误日志、性能监测等等,除此之外,ExchangeServer也供应了其他一些管理工具。可伸缩性:ExchangeServer的信息存储服务支持16TB的存储容量,我们几乎可以认为这是一个无限的数据容器。而单实例存储又节约了大量的存储空间。在性能方面,ExchangeServer内置了SMP支持。高牢靠性:一方面,ExchangeServer支持群集特性,保证了系统可以不间断工作;另一方面,MTA采纳了事务机制保证操作的可复原性,而且,ExchangeServer中的邮件总是牢靠递交的。----在介绍了ExchangeServer的功能和特性之后,下一部分我们将探讨如何以ExchangeServer作为平台建立企业应用,以及建立什么样的企业应用。----(未完待续)----(作者地址:北京高校计算机科学技术探讨所,100871)基于ExchangeServer的企业应用系统设计和开发(二)潘爱民------------------------------------------------------------------------------------二、用ExchangeServer建立企业应用方案----企业应用不同于一般的应用系统,它不仅要满意企业的基本应用须要,也要满意企业发展的须要,所以我们在选择企业应用平台时要充分考虑平台系统的开放性和可扩展性。ExchangeServer作为Windows平台上的群件系统,它不仅供应了基本的企业应用特性,也具有很好的可扩展性。----首先我们来看一看现代企业应用的一般性要求。大致来说,可以分成以下5类:----1.消息传递系统:消息系统是企业运作的基础。现代企业中员工的行为往往是相互关联的,随着社会信息化的不断深化,员工之间的协作越来越重要。消息系统是保证协作的基础,任何其他的通信系统(比如电话系统)都比不上消息系统的敏捷和高效。ExchangeServer的核心就是一个消息系统,它为企业员工之间的通信供应了平安、牢靠、快速的途径,而且通过Internet邮件服务连接器,企业的消息系统可以扩展为Internet邮件系统。----2.流程管理系统:流程管理是现代企业的办公业务须要,它往往建立在企业的消息系统基础之上,同时也要涉及到企业的业务规则,例如企业的选购 流程、报账流程、报文审批等。----3.学问库管理系统:学问库是现代企业快速发展的阅历宝库,企业应用中的学问库系统可以有效地提高企业对现有学问和阅历的利用水平。ExchangeServer供应的公共信息存储可以作为学问库管理系统的基础,协作Outlook供应的表单定制和消息检索功能,我们可以快速实现一个学问库管理系统。----4.企业的地址簿管理:企业的地址簿系统也是企业协作系统的基础。地址簿包括企业内部员工的个人信息,包括家庭地址、电话、电子邮件地址、职衔等信息。地址簿的结构往往反映了企业的组织结构形式。地址簿也可以包括企业的外部联系信息,例如客户信息、合作部门信息等等。ExchangeServer的书目结构可以有效地把企业组织的地址簿建立起来,而且ExchangeServer书目的全局一样性和位置透亮性使企业用户运用和管理地址信息都特别便利。----5.企业的实时应用系统:我们知道,基于网络的应用分为同步和异步两种方式。异步方式使得应用特别敏捷,用户可以不受时间、地点限制;而同步方式限定通信双方必需同时进入现场操作。虽然同步方式的敏捷性要差一点,但对于一个企业应用系统来说,同步的、实时的部分也是必不行少的,例如,网络会议、对话服务等。----ExchangeServer较好地满意了这些须要,而且在运用便利性和系统扩展实力方面还有所增加。在运用ExchangeServer平台建立的企业应用中,管理员日常管理工作的多数操作可以在客户端软件Outlook中完成;而且开发人员大量的开发工作也可以在客户端软件Outlook中完成,比如表单制作,甚至连服务器端的脚本代码也要在Outlook程序中导入。所以我们在提起ExchangeServer企业应用时,总是离不开Outlook。尽管我们在ExchangeServer企业应用中看到的大多数特性都是在Outlook中体现的,但这些特性的本质仍旧在于ExchangeServer,这就犹如客户/服务器模型的数据库系统的服务器程序确定了数据库的基本功能和特性,数据库客户程序只是操作数据库中的数据而已。图1ExchangeServer企业应用框架结构----首先我们看一看ExchangeServer企业应用的基本框架结构,如图1所示。----企业应用往往须要管理大量的数据,从应用逻辑来讲,这些数据可以分成两种:一种是结构规则的永久数据,通常是我们存放在关系型数据库中的记录数据;另一种则是结构不很规则甚至常常可能发生变更的数据,这些数据在企业应用的运行过程中往往短程有效,比如流程活动过程中的消息。在图1给出的企业应用框架中,前一种数据往往保存在后台数据库系统中,比如SQLServer或者Oracle等特地的数据库系统,这样做的好处是,应用系统可以充分发挥数据库系统的索引检索功能、高效率批量访问等优势;后一种数据往往干脆存放在ExchangeServer的信息存储中,因为不但ExchangeServer特别适合于处理这种半结构化的数据,而且ExchangeServer中的很多业务处理也须要干脆访问这些数据,尤其是流程信息,更是离不开这些短程数据。----ExchangeServer可以通过两种不同的途径访问后台数据库,可以干脆通过ADO(ActiveDataObject)访问数据库中的记录,或者通过Active对象访问数据库中的记录。ExchangeServer作为企业应用的基础平台,大量的业务处理工作是由各个子系统自动完成的,一般状况下我们并不须要对这些子系统进行扩展,比如MTA子系统会自动为我们传递消息,但是,在某些状况下我们也可能会要求加入自己的业务处理操作,比如在事务服务子系统中加入对某个公共文件夹的事务处理。ExchangeServer的扩展支持Script语言,VBScript或者JavaScript均可,只要服务器上安装有相应的脚本引擎。在这些脚本代码中,我们可以通过自动化(Automation)技术访问ADO对象或者Active自动化对象,从而达到访问数据库的目的。因此,ExchangeServer企业应用中的数据库支持技术并不困难,对开发人员的技术要求并不高。----然后我们再看一看客户端如何与ExchangeServer协同工作。首先,Outlook是ExchangeServer企业应用的标准客户端程序,也是这种应用的开发环境。Outlook中困难的功能体现了ExchangeServer的强大协作实力,这些功能可以分为两类:基于邮件的功能和信息管理功能。分别列举如下:----邮件功能:邮箱别名解析、邮件重要性级别支持、邮件跟踪、HTML邮件、邮件附件支持、多种协议的支持(POP3,IMAP4,LDAP,NNTP,MAPI)等。----信息管理功能:日历、全球地址簿、任务管理、日记、服务器端和客户端的规则、邮件检索等。图2在InternetExplorer中访问ExchangeServer示意图----运用Outlook作为ExchangeServer企业应用的客户端软件可以全面发挥ExchangeServer的功能,而且软件厂商对其所作的开发与ExchangeServer几乎完全融合在一起,用户在运用时感觉不到二次开发的痕迹,这是ExchangeServer企业应用的特殊性。概括起来说,ExchangeServer为企业应用供应了一种通用的模式,软件商可以依据应用的特点对ExchangeServer进行扩展,配置或者添加业务规则,为企业用户供应通用或者专用的功能。----当然用户也可以不运用Outlook作为客户端软件,特殊是当用户通过慢速网络访问Exchange服务器的状况下,用户可以运用通用的邮件客户软件,比如OutlookExpress或者NetscapeMessenger等,通过POP3或者IMAP协议访问用户的邮箱,通过LDAP协议访问书目服务。受到这些标准协议功能的限制,这时ExchangeServer供应的功能并不能完全发挥出来,但用户可以完成一些基本的邮件操作。----访问ExchangeServer的另外一条途径是运用ExchangeServer供应的OWA(OutlookWebAccess)模块。OWA是一个IIS(MicrosoftInternetInformationServer)书目,它与ExchangeServer可以运行在不同的服务器上。事实上,OWA也是一个ASP工程,它把Web客户的访问恳求转移给ExchangeServer,再把ExchangeServer的响应结果返回给Web客户。由于OWA返回给客户的是包含JavaScript的HTTP页面,所以大多数的阅读器都可以通过OWA访问ExchangeServer。但是由于HTTP描述数据实力的限制以及阅读器中页面交互操作的局限性,OWA并不能实现Outlook的全部功能。图2是在InternetExplorer中访问ExchangeServer的界面示意图。(未完待续)基于ExchangeServer的企业应用系统设计和开发(三)潘爱民------------------------------------------------------------------------------------ExchangeServer不仅供应了强大的协作功能,而且也供应了访问这些功能的编程接口--CDO(CollaborationDataObject)。与ADO类似,CDO也是一套自动化对象库,它完全暴露了ExchangeServer的功能。我们可以用脚本语言访问CDO对象,OWA就是利用CDO来访问ExchangeServer的。CDO的底层是MAPI(MessagingApplicationProgrammingInterface),MAPI是一组供低级语言(如C/C++语言)调用的接口和函数以及相关的常数和数据结构等,它涵盖了ExchangeServer的全部功能。因为CDO和MAPI是公共的编程接口,有具体的文档和众多例程,假如软件商觉得Outlook不能满意应用的须要,或者须要在其他的系统中访问ExchangeServer的功能,可以干脆利用CDO或者MAPI进行客户端程序的开发。----最终,我们总结ExchangeServer企业应用的一些特点:----1.ExchangeServer和Outlook奠定应用的基本框架,并且ExchangeServer和Outlook又供应了特别敏捷的扩展机制,所以最终的企业应用将是ExchangeServer+Outlook与扩展部分的紧密结合。----2.ExchangeServer的书目结构不仅简化了企业中地址簿的管理,也简化了企业中全部信息的管理。远程客户可以通过LDAP访问书目信息,应用程序也可以通过ADSI(ActiveDirectoryServiceInterface)访问书目信息。----3.供应强大的信息处理机制。ExchangeServer内置的邮件功能以及公共文件夹功能可为企业应用供应足够敏捷的信息处理实力,ExchangeServer与关系型数据库的有机结合是企业应用的最佳存储体系。----4.供应多协议的支持。----5.干脆建立在WindowsNT的平安机制基础上。----6.可建立分布式企业应用系统。位置透亮的特性使得管理更加简便,利用站点建立起来的数据复制体制能很好地适应困难的网络环境。----7.供应客户端的敏捷选择。用户除了选择Outlook作为客户端软件之外,也可以选择Internet阅读器或者邮件客户软件作为客户软件,还可以开发自己的客户软件。三、用Outlook开发ExchangeServer企业系统中的协作应用----在客户/服务器结构的企业应用系统中,业务逻辑既可以在客户方完成,也可以在服务器方完成。ExchangeServer企业应用的大量业务逻辑位于服务器方,因为基础消息平台是ExchangeServer的主要功能特征。尽管如此,客户程序是企业应用的关键,因为最终用户面对的只是客户程序,应用的效率和功能都通过客户程序体现出来。Outlook不仅是ExchangeServer的标准客户软件,也是ExchangeServer企业应用的开发环境,所以,这一部分我们探讨运用Outlook(本文统一运用Outlook98)开发企业系统中协作应用的全过程。----在探讨Outlook开发之前,我们先简洁看一下协作应用的基本模型,如图1所示。图1协作应用基本模型----随意一个有相应权限的用户都可以给指定的公共文件夹发送恳求消息,公共文件夹是服务器上的消息处理器,它接收到用户的恳求后,依据消息中的内容执行有关的处理。对应于不同的业务规则,消息的处理过程有所不同,典型状况有:消息处理器依据肯定的规则干脆把消息转送到指定角色的用户邮箱中;消息处理器对接收到的消息进行预处理,并生成新的消息提交给其他用户;消息处理器依据原始消息中的指定名单或者内置的流程名单使消息依次流淌。把公共文件夹当作消息中心处理器,我们几乎可以实现各种形式的协作应用,其不同仅在于用户发送给公共文件夹的消息种类和公共文件夹的业务逻辑规则。----协作应用可以有两种不同的运用模式:----1.群组工作模式用户干脆把消息发送(POST)到公共文件夹中,消息可以采纳自定义表单,也可以运用系统的标准表单。这种模式与新闻组的张贴工作方式类似。比如,投票选举就可以采纳这种工作模式。----2.工作流模式用户利用一个自定义的表单,把消息发送(SEND)到一个公共文件夹中,自定义表单可以把发送的目标文件夹路径隐藏起来,用户不必关切公共文件夹的位置。公共文件夹会依据指定的业务规则处理用户的恳求。从而实现工作流模式的协作应用。----协作应用的开发包括两部分内容:----1.表单的设计表单的设计完全在Outlook中完成,在设计过程中允许为消息添加自定义的域,也允许把域与界面上的限制元素绑定在一起。读表单和写表单分别设计。在表单设计时可能也须要编写一些脚本代码。----2.文件夹的设计文件夹的设计包括视图设计、业务规则定义和访问限制。视图设计比较简洁,通过对话框操作就可以完成;业务规则要困难一些,涉及到服务器端的脚本代码;访问限制比较简洁实现,只要指定相关的访问权限即可。----下面我们分别探讨表单的设计和文件夹的设计。在进入表单设计模式之前,我们先打开或者新建一个消息,Outlook已经为我们供应了一组标准表单,通常我们创建的新表单以某一个标准表单为基础,究竟以哪个表单为基础取决于协作应用的类型。比如我们选择邮件表单作为基础,那么我们可以新建一个邮件。在邮件的表单窗口中,我们选择菜单吩咐"工具"*"窗体"*"进入该窗体",于是进入表单的设计状态。如图2所示。图2进入设计状态的表单窗口----在设计表单过程中,我们必需清晰两个概念--域和限制,它们分别与消息和表单相对应。表单的作用是表达消息,是短暂存在的,而消息是永久的,它存在于某个公共或者私有文件夹之中。域是消息的数据属性,有如数据库中的域与数据表的关系一样,每个标准表单所对应的消息都有一套标准域。比如,邮件消息包含收件人、发件人等域;而限制则是表单的组成元素,一个不包含任何限制的表单是没有意义的,限制与域不肯定要有对应关系,但表单中总有一些限制是反映域的,比如,邮件表单中的收件人编辑框反映了邮件消息的收件人域,正文编辑框反映了邮件消息的内容。----当我们从一个邮件表单进入到设计状态之后,我们事实上继承了邮件消息的全部域。现在我们可以添加新的域、删除原有的域,每一个域都有一个字符串域名作为域的标识,域的类型可以是字符串、整数、布尔型等。在表单设计过程中,对域的增、删、改操作比较简洁实现,干脆利用域工具箱(如图2所示)即可,也可以创建自定义域。----在设计表单过程中,我们往往须要在标准表单的基础上新增加一些自定义域,这些域可以在消息的流淌过程中传递信息。一条基本原则是,我们应当尽量运用标准表单供应的域,既可以是当前表单所继承的标准表单,也可以是其他标准表单。----然后我们设计表单的界面布局,这个过程与VisualBasic的表单设计或VisualC++中对话框的设计特别类似,利用限制工具条上供应的各种工具,在表单中增加限制,并调整限制的位置,使表单的总体布局尽可能美观、合理。值得留意的几点是:----1.在限制的属性对话框(如图3)中,我们可以为限制设置初始值,也可以使限制与某个域绑定。限制与域的绑定功能对表单设计特别有意义,一旦绑定之后,限制就代表了域的值,限制的初值就是域的初值,表单执行了"保存"吩咐之后,限制的值自动会保存到域中。图3表单设计过程中限制的属性对话框----2.表单是针对消息而设计的,但是由于消息是流淌的,同样的消息可能会面对不同的用户,用户对消息的操作也会不同。典型状况下,发送邮件的用户运用的表单与阅读邮件的用户运用的表单是不同的,所以,在Outlook中设计的表单允许读操作运用的表单与写操作运用的表单分别开,相当于设计两个不同的表单供同一个消息运用。菜单吩咐"窗体"*"分别读写版面"可以帮助我们实现这一点,工具条上的"编辑撰写页"和"编辑阅读页"按钮可让我们在两个表单之间进行切换。----3.表单可以是多页的,利用菜单吩咐"工具"*"显示该页"我们可以确定是否显示当前页。页标签带有圆括号表示该页不显示。在表单窗口中,我们除了可以看到表单中指定的限制之外,在工具条上我们还可以看到一些按钮,这些按钮代表各种不同的动作,比如"发送"、"答复"、"转发"等。我们在设计表单时,有一页名为"动作",可对每个动作的属性进行定义。(未完待续)基于ExchangeServer的企业应用系统设计和开发(四)潘爱民------------------------------------------------------------------------------------对于简洁的表单,按上期讲座中所述的步骤就可以完成设计工作。但是对于困难的表单,或者有特殊要求的表单,我们还须要编写一些脚本代码,以便实施更为精细的限制。利用表单的脚本支持,我们可以在某些限制点上加入脚本代码,比如,在消息被"发送"之前检查各个域的数据有效性,或者当打开表单时显示或者隐藏某些特殊的限制。脚本代码的编写犹如我们在VisualBasic中编写事务处理函数类似。----Outlook供应了一套对象库,如图1所示。我们在表单的事务处理函数中,可以通过这套对象库访问到表单、视图对象,乃至Outlook当前应用实例中任何一个可通过对象库到达的对象。图1Outlook对象库----当我们设计完成表单之后,最终须要做的工作是将表单发布到合适的地方,对于以公共文件夹为消息处理中心的协作应用来说,我们既可以把表单发布到公共文件夹中,也可以把表单发布到团体表单库中。假如我们把表单发布到某个公共文件夹中,那么以后当我们在文件夹视图窗口中选中该文件夹时,Outlook的"动作"菜单中会出现新建此类消息的菜单项。假如我们把表单发布到团体表单库中,那么全部的用户都可以通过团体表单库新建此类消息。表单的发布对话框如图2所示。图2表单发布对话框----上面我们介绍了表单的设计和发布,现在我们来探讨协作应用的表单应当如何设计。首先,协作应用的原始表单应当由用户发送到公共文件夹中,所以我们在表单的"收件人"域中指定为目标文件夹的名称,而且这个域所对应的限制不行编辑,用户不能变更域的值。其次,用户可能会依据须要添加新的动作,比如"递交"或者"同意"等面对应用本身的动作,而其他一些邮件标准动作如"答复"、"转发"等可能并不须要,我们可以删除这些动作,或者禁止这些动作。再次,协作应用的表单最终发布到团体表单库中,全部的用户不必关切消息的中心文件夹究竟在哪里。当然,这要求表单设计者拥有对团体表单库的操作权限。----表单设计完成以后,我们再进一步考虑Outlook的视图设计。视图设计比表单设计要简洁得多,首先我们从菜单"视图"*"当前视图"中选择"自定义当前视图"或者"定义视图"吩咐。自定义当前视图更为简捷的操作是,在当前视图的列上右键点击,从弹出的菜单中选择各种操作即可。如图3所示。图3自定义当前视图----当我们选择了菜单吩咐"定义视图"后,我们就可以利用视图定义对话框定义各个视图,或者增加、删除视图。----视图定义完成之后,我们就可以变更当前文件夹的视图了。我们也可以为该公共文件夹指定初始视图,操作特别简洁,打开公共文件夹的属性对话框,在"管理"页面上选择文件夹的初始查看方式即可,如图4所示。图4在公共文件夹的属性对话框中选择初始视图----以上我们介绍了Outlook协作应用的表单设计和视图设计,限于篇幅,我们仅仅介绍了设计过程的基本要点。由于Outlook供应的开发环境并不要求设计人员必需具有专业的开发技术,只要有一些基本的Windows应用设计概念就可以胜任这项工作。当然,假如设计人员有肯定的VisualBasic开发阅历,那是再好不过的了。----到现在为止,我们还只是完成了协作应用的客户端部分,客户端部分是消息的表现形式,要想使消息流淌起来还须要服务器端的协作。下一部分探讨协作应用在服务器端的开发。四、ExchangeServer企业系统中协作应用的服务器部分----协作应用的服务器部分并没有涉及到用户界面,ExchangeServer也没有供应特地的开发工具,但是ExchangeServer仍旧供应了很好的扩展机制,允许开发人员把自己的代码插入到ExchangeServer的消息处理逻辑中。----ExchangeServer的服务器逻辑扩展也是以文件夹为基础,它所供应的事务服务与MTA紧密联系起来。MTA在传输消息的过程中,依据文件夹的属性设置,有选择地激发某些事务,包括新建消息事务、删除消息事务、修改消息事务和定时事务。ExchangeServer处理事务的机制如图5所示。图5ExchangeServer事务机制结构图----所以,我们要在ExchangeServer服务器端添加业务逻辑,事实上就是添加针对文件夹的事务处理函数。在添加事务处理函数之前,我们首先要保证设计人员或者管理人员具有添加事务的权限,这可以通过ExchangeServer的管理程序来完成,如图6,我们在管理程序的左边窗格的书目中选择"PublicFolders\EventsRoot"书目下对应于某台服务器的EventConfig_XXX书目,然后在书目的属性对话框中,利用"ClientPermissions"按钮添加适当的权限。图6ExchangeServer管理程序中"EventsRoot"书目----我们再回到Outlook中来。为了在Outlook中看到公共文件夹的事务属性,要求在Outlook中安装"服务器脚本运行"加载项(可通过Outlook的"选项"对话框的"高级选项"中的"加载项管理器"添加得到)。一旦我们安装了"服务器脚本运行"加载项,并且具有脚本添加权限之后,我们在Outlook的文件夹列表中选择待添加事务的文件夹。打开其属性对话框,就可以看到,在属性对话框上,新增加了"代理"页,如图7所示。图7公共文件夹的"代理"属性页----利用文件夹的属性对话框"代理"页,我们可以为文件夹增加相应的事务脚本代码。当然为了保证事务的确能够被激发起来,ExchangeServer服务器上的系统服务"MicrosoftExchangeEventService"必需被启动。----ExchangeServer的事务机制特别简洁,它只是为我们供应了几个入口点限制而已。我们可以特别敏捷地应用这些入口点函数,在文件夹的事务处理函数中,虽然我们只能编写一些脚本代码,但事实上通过脚本代码我们几乎可以完成任何一件在权限许可范围内的事情。一方面,在事务函数中,利用EventDetails对象,我们可以访问到ExchangeServer当前环境下的数据和操作。比如,EventDetails.Session代表了ExchangeServer事务服务预先建立起来的会话对象,它代表了脚本作者的邮箱标识;EventDetails.FolderID是事务发生所在的文件夹的内部ID;EventDetails.MessageID是事务所对应的消息的内部ID。另一方面,假如我们要在事务函数中实现更为困难的业务逻辑,那么最好把这些逻辑封装到自动化对象中,然后在脚本代码中调用这些自动化对象。这种模式使我们可以敏捷选择编程语言,而不必拘泥于脚本代码。在低级编程语言如C++中,我们可以实现一些底层的功能,这是脚本语言所不能代替的。----因此,通常状况下,事务脚本代码比较简洁。事实上,调试这些脚本代码并不便利,越是短小、简洁的代码,其出错的可能性也越小。但是调试自动化对象则要简洁得多,我们可以把这些自动化对象放到MTS进程中去运行,这样做可以带来三方面的好处:便于调试。要调试ExchangeServer的事务服务进程并不简洁,但调试单独的MTS进程则要简洁得多。爱护ExchangeServer的事务服务进程不会受到错误代码的危害。假如对象的代码发生严峻错误,那么MTS进程终止后不会影响到ExchangeServer的事务服务进程。对象代码可以运行在另一个用户的平安身份下。假如我们要在事务业务逻辑中访问特殊的受爱护资源,这一条可能会特别重要。----我们在编写服务器端的脚本代码时,必需清晰地相识到,这些代码将会在服务器上被执行,而不是在客户端。假如脚本代码调用到了自动化对象,那么我们必需保证服务器上已经注册了这些自动化对象。假如要调试自动化对象,则必需在服务器上进行。----虽然服务器端的脚本代码为我们供应了很大的敏捷性,但是,由于这些脚本代码运行在服务器上,所以肯定要避开滥用ExchangeServer的事务服务,以便减轻服务器的负担。这是我们在设计协作应用时应当留意的问题。五、ExchangeServer企业应用的扩展----以上我们介绍了ExchangeServer企业系统中协作应用的设计过程。协作应用是一个企业的业务核心,它构成了企业的基本运作方案。但是对于一个大型的或者分布式的企业,仅仅这些协作应用还不够,我们在设计企业系统时还应当考虑到企业系统的可扩展性和开放性,依据本文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青岛房地产交易税收优惠政策合同
- 2024年金融科技产品研发与测试合同
- 2025年度城市基础设施建设与运营管理服务合同3篇
- 2024年网络剧拍摄联合协议:场地、技术与创意共享2篇
- 2024年新能源汽车租赁与充电设施运营维护合同3篇
- 2024年项目部木工班组安全施工及现场安全管理协议3篇
- 2024年车辆交易综合服务协议模板一
- 2024门窗行业技术升级改造项目合同3篇
- 2025年度文化产业项目投资合作协议书6篇
- 2025年度材料回收利用合同修订版模板3篇
- 国际学校项目可行性研究报告
- 2025届江苏省丹阳市丹阳高级中学高一数学第一学期期末统考试题含解析
- 汽车保险与理赔课件 3.4认识新能源汽车车上人员责任保险
- 2025届皖豫联盟体高二上数学期末统考试题含解析
- 城市垃圾分类处理服务合同
- 2023年广东湛江海关所属事业单位招聘事业编制人员笔试真题
- 期末检测试卷(试题)-2024-2025学年四年级上册数学青岛版
- 雏鹰计划培训方案
- 精装修施工图的深化设计管理办法
- 2024智慧水厂建设标准化规范
- 2024年(全国教材培训专题系列)素养导向初中地理大单元教学课件
评论
0/150
提交评论