• Redis内存数据库在Exchange会议室的整体应用架构


    注:本文是别人写的,感觉写得很好就转过来,版权归原作者所有哦,谁知道出处可以告诉我,谢谢。

      根据以上的会议室应用现状分析,该架构的核心是把历史发生的会议室申请数据定时同步到Redis内存数据库中,对于现在和未来时间的会议室数据(目前可以提前7天申请数据)则通过专用接口在Exchange会议室数据库实时查询,根据用户选择查询时间,系统自动判断访问哪个数据库或进行数据合并(历史数据与现在或未来时间的数据),通过减少访问Exchange会议室数据库以提高查询性能,从而大大改善用户体验,通过与Windows活动目录的用户的集成,为会议室分析和考核提供数据支持。

    (二)关键技术简介

      1、ServiceStack.Redis驱动

      ServiceStack.Redis是最受欢迎的开源C#驱动之一,用于访问和读取Redis,它封装了大量方法和对象,这样使二次开发相当容易,如提供了基本KEY/VALUE键值对操作、存储对象、存储表格对象、使用客户端链接池模式提升链接速度等。

      本文采用了ServiceStack.Redis进行二次开发,通过二次开发的接口把Exchange的会议室和Windows活动目录的所有在职用户数据同步Redis中,同时对于历史会议室数据提供查询接口。

      2、Microsoft.Exchange.WebServices类库

      Microsoft.Exchange.WebServices类库是微软官方提供的专门访问Exchange邮件服务器的API,如可以根据此类库编程实现读取会议室数据、邮件、联系人、日程等,可以根据需要进行定制开发以满足不同的应用需求。

      本文主要使用此类库读取会议室的数据,并结合SystemComponent.ADHelper类库读取会议申请人和参与人的部门信息。

      3、SystemComponent.ADHelper类库

     SystemComponent.ADHelper类库是本人为BPM项目开发的操作windows活动目录(组织单位、组、用户)的通用类库,可以进行复用,目前在BPM项目中已有广泛应用。

    本文主要使用此类库根据电子邮箱获得会议申请人和参与人的所属部门信息。

      4、Quartz.NET作业框架

      Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

       本文主要使用此作业框架进行定制开发同步程序,实现定时同步Exchange会议室数据到Redis中,并在Windows服务中运行(实现自动化作业,无需人工干预)。

  • 相关阅读:
    excel2007灵活计算2个日期之间的工作日
    bat
    eclipse Maven操作出现No compiler is provided in this environment.Perhaps you are running on a JRE rather than a JDK?
    将BeyondCompare设置为TortoiseSVN的扩展比较工具
    python_Excel_xlwt
    Pyqt5_实例1
    Word使用技巧——持续更新
    python_serial
    Pyqt5_Python运用过程中一些问题和技巧
    Pyqt5_QfileDialog
  • 原文地址:https://www.cnblogs.com/phploser/p/4322893.html
Copyright © 2020-2023  润新知