前言、提纲及说明:
请移步:《校友信息管理&SNS互动平台之前言、目录及说明》(博客园地址:http://www.cnblogs.com/s6cn/p/3516876.html)
一、系统的要求
分析《校友信息管理&SNS互动平台之用户需求及总体设计》,客户对该平台有如下要求:
- 考虑整个校园资源计划的接口特性,与其它系统如毕业生就业信息管理系统、校园一卡通等系统进行连接。
- 在系统功能上,要实现校友信息的网络化、智能化、系统化。
- 采用“框架+组件”的分层系统架构,预留WebServer标准接口。系统兼容性和可持续扩展性强,既可整合目前已投入使用的系统,又能满足不断变化的需求,节约成本。
- 后台系统支持大数据量(百万级)的查询,报表生成,导入,导出操作,响应时间不超过2秒。
- 前台支持多用户(万级)并发访问互动系统,响应时间不超过1秒。
- 百万级校友重复信息的自动筛选、合并。
- 百万级校友电子邮件和手机短信的个性化发送。
首先介绍一下该系统的几个特别要求。
1、百万级校友重复信息的自动筛选、合并。
该校校友信息基本数据的来源较多,分别来自于原有信息系统数据、校友工作部门收集的数据、院系提供的校友信息、各地方校友会收集的校友信息、教务管理部门提供的学生注册信息、学生就业部门提供的学生就业信息,这些信息出现重复的概率是100%,而每个渠道得到的信息都有部分利用价值并且没有一个关键的能统一识别的字段。
该系统要求能全部导入所有来源基础数据,系统中设置一个功能——一键去重(类似于QQ通讯录的一键去重),最初接触到这个功能有点摸不着头脑。我们经过大量的数据分析,以及校友工作同志与程序员、系统构架师的反复沟通,这一个重要的功能得以实现,但该功能对数据库的处理能力以及系统业务逻辑的处理能力要求很高。
该功能的实现思路和技术路线将在后续文章《校友信息管理&SNS互动平台之百万级重复用户信息的整理与合并》中详细阐述。
2、百万级校友电子邮件和手机短信的个性化发送
校友工作部门将定期和不定期的向全体校友或部分校友发放电子杂志,在校友生日等纪念日自动发放祝福邮件和手机短信,在重大节假日或重要活动前向全体或特定校友发放祝福邮件或手机短信。要求每一封电子邮件、每一条手机短信都是个性化的,如包含收信人称谓等特定信息。
该功能对系统批量处理数据能力也是一个挑战,实现思路和技术路线将在后续文章《校友信息管理&SNS互动平台之个性化邮件群发》和《校友信息管理&SNS互动平台之个性化手机短信群发》中详细阐述。
二、系统是C/S,还是B/S?
关于这两种模式的优缺点大家都很清楚,我在这里就省略了。
校友信息管理系统对数据处理能力要求特别高,可能经常性出现百万级数据的导入、到处和整理。
国内目前校友信息管理系统,大部分系统采用的是SNS前台(截止发文日暂未发现完全使用第三方API接入的SNS互动社区)采用B/S,校友信息管理采用C/S——也就是校友数据库管理软件(即便如此,截止发文日暂未发现类似于客户提出的一键去重功能)。也有部分系统完全采用B/S模式开发,但阉割了校友信息整理等对数据处理能力要求较高的功能。
在与客户沟通后,为了系统部署、维护和使用的便利,该系统采用“B/S+win系统服务组件”模式开发。也就是系统所有用户(包括管理员和校友)全部采取B/S接入,满足用户使用、维护升级的便利;对于需要特大数据处理的功能,开发win系统服务组件,保障系统性能。
三、编程语言是Java,PHP,还是ASP.NET?
基于三种平台的优劣我也不讨论了,仅从客户使用环境以及系统特点做选择。
由于该系统业务逻辑处理较多,集合几种开发语言的特点,我们给出了几种方案的组合:
- 前台PHP+后台JAVA
- 前台PHP+后台ASP.NET
- 全部JAVA
- 全部ASP.NET
由于客户所在单位目前服务器都是windows2008,信息化管理人员对于Java又不熟悉,又希望采取同一种开发语言,所以选择了全站采用ASP.NET开发。
该系统前台网站主要是SNS互动平台,生成静态页面就不太可能,如果采用WebForm,为了友好的URL,需要做伪静态处理,所以最后直接选择了ASP.NET MVC。
四、系统框架及简要介绍
1、S6CN公共组件(S6CN.Components),包括缓存管理、函数扩展、配置管理、多数据库支持组件、富编辑器封装组件、多语言支持组件、基于Log4net的日志扩展、邮件发送组件(支持HTML格式和附件)、 MVC相关扩展(如自定义皮肤等)。
2、业务无关的公共框架(S6CN.Framework),基于依赖注入(Unity)的公共框架,实现“框架+组件”的“魔方”分层系统架构。
3、权限控制组件(S6CN.Passport)。
4、校友信息管理及SNS互动社区应用程序(S6CN.AIMS),分为前台SNS应用、后台校友信息数据库应用、后台SNS管理应用(包括第三方API接入)。
5、微信公众平台应用(S6CN.Weixin)。
6、校友总会网站以及校友分会网站集群应用(S6CN.CMS、S6CN.SiteHub)
用户需求和框架就简要介绍到这里,后面的文章将逐个剖析。