校友信息管理&SNS互动平台之技术框架选择
前言、提纲及说明:
请移步:《校友信息管理&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)
用户需求和框架就简要介绍到这里,后面的文章将逐个剖析。
校友信息管理&SNS互动平台之技术框架选择的更多相关文章
- 校友信息管理&SNS互动平台之前言、目录及说明
开篇 刚刚主持完成了某985大学(为了保密和避免广告嫌疑,此处不指出具体大学的名称)的“校友信息管理系统&SNS互动平台”大型项目,本着总结经验,技术共享的原则,本系列文章将全面介绍该项目的需 ...
- 校友信息管理系统&SNS互动平台之用户需求及概要设计
前言.提纲及说明: 请移步:<校友信息管理&SNS互动平台之前言.目录及说明>(博客园地址:http://www.cnblogs.com/s6cn/p/3516876.html) ...
- 对话 CTO〡用声音在一起,听荔枝 CTO 丁宁聊 UGC 声音互动平台的技术世界 原创 王颖奇 极客公园 2018-12-01
https://mp.weixin.qq.com/s/jfHFXZpzbAEbHKkCMSev6w 对话 CTO〡用声音在一起,听荔枝 CTO 丁宁聊 UGC 声音互动平台的技术世界 原创 王颖奇 极 ...
- 品友互动大数据平台的技术演化 https://www.sohu.com/a/191202836_99982360
品友互动大数据平台的技术演化
- 基于.NET平台常用的框架技术整理
个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...
- App技术框架
一.App技术框架的类型 图1 三种App技术框架之间的关系 目前App的技术框架基本分为三种(图1): (1)Native App:互动型,iOS.Android.WP各一套,而且要维护历史版本,要 ...
- 你得知道这3个最基础的APP技术框架
出处:优设网作者:信籽链接:http://www.uisdc.com/3-basic-app-technical-framework 信籽(手淘设计师):不知道大家有没有遇到过这种情景,当你做好一个设 ...
- 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)
☆ 写在前面 之前答应大家的毕业答辩之后把所有文档贡献出来,现在答辩已过,LZ信守承诺,把所有文档开源到了GitHub(这个地址包含所有的代码和文档以及PPT,外层为简单的代码).还望喜欢的朋友们,不 ...
- p2p平台详细运营框架
市场拓展部1.负责完成公司市场销售.市场拓展.费用控制等年度目标任务,并负责将目标责任制分解落实,确保各项工作目标得以实现.2.对营销政策.市场及同业营销动态等方面进行调研分析,及时调整营销策略和计划 ...
随机推荐
- javascript 写策略模式,商场收银打折优惠策略
[Decode error - output not utf-8] ----------------------------- 购物清单 方便面 : 100 x 50 = 5000 | 4000 菊花 ...
- postgresql info
DROP TYPE IF EXISTS info CASCADE;CREATE TYPE info AS (state int4,operator varchar,time TIMESTAMP(0) ...
- mac 布置 git仓库服务器
创建管理员账户 例如:git 使用git账户登录 开启git账户的远程登陆 创建仓库文件夹 sudo git --bare init 更改配置文件 cd /Users/userName/project ...
- 工作流(worfflow)
-- 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务 ...
- cocos2d-x笔记5: 通过jni实现C++调用Java
Cocos2d-x的跨平台性很强大,但是偶尔也需要平台的原生API结合. C++在Win32平台下简单的很,C++可以直接用MFC或者调用Win32API. Ios在XCode下直接就能C++和OC混 ...
- Servlet+Tomcat制作出第一个运行在Tomcat上的Java应用程序
转载自:http://www.linuxidc.com/Linux/2011-08/41685.htm [日期:2011-08-27] 来源:csdn 作者:Cloudyxuq 1.IDE工 ...
- 写一个TT模板自动生成spring.net下面的配置文件。
这个是目标. 然后想着就怎么开始 1.
- 关于js小数计算的问题
在js浮点运算中 var a=0.2-0.1; var b=0.3-0.2; console.log(a==b); 答案是什么呢,很多人可能认为是true,包括我在内,但是当我写出来运行了一下,我被答 ...
- PBS
赞同,已经试验成功.后来查手册: $man qdel-p 的功能是强制净化队列.这个 "p" 可能是 "purge" 的缩略形式 qsub,qdel,qmgr ...
- Xcode6 Xcode7 Xcode 官方链接 --备用
Xcode 6 官方下载链接: http://adcdownload.apple.com//wwdc_2014/xcode_6_beta_ie8g3n/xcode_6_beta.dmg Xcode ...