前言、提纲及说明

请移步:《校友信息管理&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互动平台之技术框架选择的更多相关文章

  1. 校友信息管理&SNS互动平台之前言、目录及说明

    开篇 刚刚主持完成了某985大学(为了保密和避免广告嫌疑,此处不指出具体大学的名称)的“校友信息管理系统&SNS互动平台”大型项目,本着总结经验,技术共享的原则,本系列文章将全面介绍该项目的需 ...

  2. 校友信息管理系统&SNS互动平台之用户需求及概要设计

    前言.提纲及说明: 请移步:<校友信息管理&SNS互动平台之前言.目录及说明>(博客园地址:http://www.cnblogs.com/s6cn/p/3516876.html) ...

  3. 对话 CTO〡用声音在一起,听荔枝 CTO 丁宁聊 UGC 声音互动平台的技术世界 原创 王颖奇 极客公园 2018-12-01

    https://mp.weixin.qq.com/s/jfHFXZpzbAEbHKkCMSev6w 对话 CTO〡用声音在一起,听荔枝 CTO 丁宁聊 UGC 声音互动平台的技术世界 原创 王颖奇 极 ...

  4. 品友互动大数据平台的技术演化 https://www.sohu.com/a/191202836_99982360

    品友互动大数据平台的技术演化

  5. 基于.NET平台常用的框架技术整理

    个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...

  6. App技术框架

    一.App技术框架的类型 图1 三种App技术框架之间的关系 目前App的技术框架基本分为三种(图1): (1)Native App:互动型,iOS.Android.WP各一套,而且要维护历史版本,要 ...

  7. 你得知道这3个最基础的APP技术框架

    出处:优设网作者:信籽链接:http://www.uisdc.com/3-basic-app-technical-framework 信籽(手淘设计师):不知道大家有没有遇到过这种情景,当你做好一个设 ...

  8. 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)

    ☆ 写在前面 之前答应大家的毕业答辩之后把所有文档贡献出来,现在答辩已过,LZ信守承诺,把所有文档开源到了GitHub(这个地址包含所有的代码和文档以及PPT,外层为简单的代码).还望喜欢的朋友们,不 ...

  9. p2p平台详细运营框架

    市场拓展部1.负责完成公司市场销售.市场拓展.费用控制等年度目标任务,并负责将目标责任制分解落实,确保各项工作目标得以实现.2.对营销政策.市场及同业营销动态等方面进行调研分析,及时调整营销策略和计划 ...

随机推荐

  1. PHP小记录

    正的framework(大量使用)      thinkphp(部分使用)      cakephpyii(极少使用) [一]函数    1:函数的声明:每个函数的第一行都是函数开头,有声明函数的关键 ...

  2. MySql 在大数量的统计中具体的使用技巧

    一.CASE WHEN THEN ELSE END 使用用法. 在用sql语句统计某字段的某种状态的出现的次数,可以考虑用到 CASE WHEN THEN ELSE END 使用用法.当数据量过于庞大 ...

  3. html中th 与thead tbody的 使用

    上午工作的时候,遇到一挺纠结的问题,在<th width...> width根本不起作用. 后来才明白<th>标签不能写在<tbody>里,不符合语法. 所以顺便总 ...

  4. aspx页面中, <%= % > 与 <%# % > 的区别

    关于这个问题,在多数的 ASP.NET 的教材中,都提到了一些. <%= % >与 <%# % >的区别在于:绑定时机不同, <%# % >是在控件调用DataBi ...

  5. zend studio 9.0.4 安装破解

    转载于 http://www.geekso.com/ZendStudio9-key 注册破解步骤第一步:如果已经安装过Zend Studio 9.0.4的,请打开Zend Studio 9.0.4,在 ...

  6. 【Python网络爬虫三】 爬去网页新闻

    学弟又一个自然语言处理的项目,需要在网上爬一些文章,然后进行分词,刚好牛客这周的是从一个html中找到正文,就实践了一下.写了一个爬门户网站新闻的程序 需求: 从门户网站爬取新闻,将新闻标题,作者,时 ...

  7. iOS oc 中的闭包

    //闭包 NSString* s =@"123"; void (^block)() = ^() { NSLog(@"%@",s); }; block();// ...

  8. webserver<2>

    #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wai ...

  9. 关于BootStrap下图标的显示问题

    我现在在做自己的毕业设计,用到了bootstrap的这一套css样式,说句心里话,这一套东西确实很好用,但是一个小问题足足浪费了我将近两个小时. 我的问题是:没有办法使用bootstrap下的图标(很 ...

  10. cf 219D

    树形dp; 思想: 把正向边赋值为0:反向边赋值为1:然后求出点到其他点的最小距离: 两次dfs: 第一次是从下往上:记录每个点到所有子树中需要改变的边的条数: 第二次是自上往下:由父节点求子节点到所 ...