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

根据以上的会议室应用现状分析,该架构的核心是把历史发生的会议室申请数据定时同步到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服务中运行(实现自动化作业,无需人工干预)。

Redis内存数据库在Exchange会议室的整体应用架构的更多相关文章

  1. Redis内存数据库在Exchange会议室的应用

    本文论述了现有Exchange会议室应用现状和不足之处,并详细介绍了Redis内存数据库在Exchange会议室的应用,并给出了一种高性能的应用架构及采用关键技术和关键实现过程,最终实现大幅改进系统性 ...

  2. Nginx+Redis+Ehcache大型高并发高可用三层架构总结

    在生产环境中,对于高并发架构,我们知道缓存 是最重要的环节,对于大量的高并发.可以采用三层缓存架构来实现,也就是Nginx+Redis+Ehcache 对于中间件Nginx常来做流量分发,同事ngin ...

  3. 39、生鲜电商平台-redis缓存在商品中的设计与架构

    说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc ...

  4. 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot)

    title: 使用Redis为注册中心的Dubbo微服务架构(基于SpringBoot) date: 2019-07-30 14:06:29 categories: 架构 author: mrzhou ...

  5. Java生鲜电商平台-redis缓存在商品中的设计与架构

    Java生鲜电商平台-redis缓存在商品中的设计与架构 说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而 ...

  6. 基于redis 内存数据库简单使用

    在ecplise中使用内存数据的客端户,前提要准备要下载两个jar包 commons-pool2-2.0.jar jedis-2.4.2.jar 前提准备做好了,那我们就开启redis的服务,打开一个 ...

  7. Redis学习总结(1)——Redis内存数据库详细教程

    1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 – 简介 8.redis数 ...

  8. redis内存数据库C客户端hiredis API 中文说明

    A)编译安装 make make install (/usr/local) make install PREFIX=$HOME/progs(可以自由指定安装路径) B)同步的API接口 redisCo ...

  9. Redis内存数据库快速入门

    Redis简介 Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如 字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的 ...

随机推荐

  1. MVC 入门 自动生成 增删改查所有功能

    MVC现在版本已经是5了   EF现在最新的应该是6.0.2了 开发工具是 Visual Studio2013 数据库是 SQL Server 2012 这些需要.NET Framework4.5 的 ...

  2. Apache + WordPress 从 0 搭建

    引言 又到周末了,周末小编一般不更新系列文章,原因嘛是因为要攒稿子,年底工作比较忙,不攒点稿子是要断更的:( 所以周末一般聊点简单轻松加愉快的东西,小编现在的博客站是由 HEXO 进行搭建的,最近随着 ...

  3. [TimLinux] django 全局变量在WSGI多进程多线程环境中的研究

    场景1: 2个进程,每个进程1个线程,请求函数中设置了10秒sleep,9个请求同一URL: 结果: 1. 全局变量ID值,在每一个进程中相同,不同进程中不相同 2. 并行只能接受2个请求,同时发起多 ...

  4. Local Model Poisoning Attacks to Byzantine-Robust Federated Learning

    In federated learning, multiple client devices jointly learn a machine learning model: each client d ...

  5. Openfiler存储搭建

    说明: Openfiler是一个基于Linux的开源免费网络存储管理操作系统,通过WEB界面对存储磁盘进行管理,支持iSCSI.NFS 等网络存储协议. 目前最新版本:openfileresa-2.9 ...

  6. Python3 常用模块3

    目录 numpy模块 创建numpy数组 numpy数组的属性和用法 matplotlib模块 条形图 直方图 折线图 散点图 + 直线图 pandas模块 numpy模块 numpy模块可以用来做数 ...

  7. CSS去除input和textarea点击选中框

    1.去除chrome等浏览器默认发光边框 input:focus, textarea:focus { outline: none; } 这样textarea在选中的时候,文字会有点移动,解决方法: i ...

  8. Java中的两种异常类型是什么?他们有什么区别?

    一.Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Exception是异常,java.lang.Exception 二.E ...

  9. 新安装mariadb远程登陆配置及相关问题排查

    前言: 安装过程不再赘述,直接说问题,mysql的远程连接需要解决两个问题:1.允许root用户远程连接.2.允许任意ip远程连接数据库.当然,在测试和解决问题之前,得首先保证你的数据库与远程主机之间 ...

  10. SpringMVC生成的验证码图片不显示

    近期用SSM框架写一个项目,登录模块需要生成验证码图片,我把相关的代码写好了之后传到 jsp ,但是图片不显示,查看控制台显示404,反复查询了一下代码并没有发现任何问题,代码如下: @Control ...