You are on page 1of 11

俩癸我去墨子项目 解决方案

解决方案一:

按原来的方案继续开发,完成网站,播放器使用原来的版本,文档转换只转换

前 1-20 页文档内容,转换速度快,播放速度快。缓兵之计。

分析:

1. 根据豆丁网文档上传和在线浏览的人数其实并不多,分析用户的目的:

现在文档网分为两类群体:一类是上传文档想获得利益的群体,一类是在找

寻文档愿意付出资金或自己的资源的群体。当然这两类群体都是在相互转换 ,

最终这些人都是想获得利益,不管是 free 还是分享,其实最终用户的目的都

是想从中获益,世界上没有真正的免费,就像网游免费其实挖掉了用户更多

的钱。

只要是上传的文档,其目的都是想有收益,免费的浏览文档的目的也就是让

用户多关注文档,但是当一个用户看完一个文档之后,用户就没必要购买这

个文档,但是上传者的初衷是希望每个文档都能收费。

只转换前 20 页文档有一下几个好处,当然这是一个缓兵之计:

1. 用户如果觉得这个文档有用看了书的目录,和前二十页,就会付费下载,

减少在线浏览持续下载文档带来的服务器负担。增加上传者收益,产生

用户积极性。

2. 所以文档提供付费下载,产生流通,企业出版社最想看到就是能赚到钱,

他们想的资金的每一页纸都能换到相应的价值,哪怕这是一页废纸,现
在是是市场经济,从淘宝看所有的国民,至少是网民都想能从网络赚钱,

所有文档收费,就像肯德基我可以提供免费的座位给你,但是吃东总得

给钱吧,你坐在我的餐厅里,看了一会 80%会掏钱买吃的,所以提供少

量页的转换,能提供付费量,增加企业出版商对我们网站的兴趣。

3. 对于 swftools 这个开源代码和 flash 播放器开发,二次开发我们公司并没

经验,研发的时间周期不确定性很强。最后会研发出来,可能会有一些

延期。所以先提供转换少量的页,这也是一种策略。现在中国人的想法

就是,赚钱,赚钱,赚钱,赚钱。在线阅读不是这些人的目的,下载到自

己的硬盘里才是目的。DOC88,DOCIND 阅读的人很少,有些基本是打开

一下就关掉走了,当他打一个文件浏览,播放器继续下载,用户关掉浏

览器,断开网络连接,可是用户缓存里还有播放器的缓冲,会继续下载

这个文件,所以慢。不必要的资源浪费,转换 20 页为 swf 格式的文件播

放文档,

当用户断开网络时,计算机会释放内存,不继续下载。

4. 由于转换页少,下载速度快,提供高性能的下载转换速率。

这样有一些不足:

1. 无法提供免费全文共享的文档浏览,这是一个缺陷,当然其实就算免

费文档,用户也想下载到自己的硬盘,为什么?因为这是中国人的本

性造成的,也可以说是人类的本性,他们都想拥有更多的资源,更多

人更乐意下载到本地慢慢的读,因为不受网络限制。
2. 我们无法让在线流量增大,因为用户阅读过程会让在线流量增大,而

如果只是阅读几页开始下载,会让在线流量丢失,但是可以用一些策

略弥补,例如在线增加积分,在线下载。

现在我们这个墨子文档网站系统结构如此图:

文件服务 更多面向服务
MOZI 文档网

数据转换系统
SNS 即时信息服务系统 播放器
用户基础数据服务

逻辑组件 / 应用组件 / 算法组件

特殊用户支持系统
文件存储系统
现在的系统运用了一下软件复用:组件,COTS 系统,面向服务,遗留系统包装,

提高延伸系统的扩展性和可维护性。

解决方案 2:

网站先开发出来,然后边测试网站功能,边研发 swftools 的转换功能和 flash 播

放器。

根据网站现在目前开发状况:

现在网站的系统增量开发完成了,用户注册,修改,上传文档,管理文档,消

息管理发送,发起寻求,交换的代码已经写好。

研发计划如下:

网站开发:

功能描述 完成速率 开发者 风险预测 最后完成日期

页面功能代码 一天两个页面 朱敏,曾春鹏 1.分 布 式 系 2009.9.15 完

植入 逻辑嵌套,一 统 调 试 复 成测试版,开
共 40 个页面 杂 发及集成测试

2. 代码逻辑错

网站管理后台 三天完成一个 郑森林 1. ajax 实 现 2009.9.15 完

开 模块,总共三 完全后台 成测试版,开

个模块。 代 码 复 杂 发及集成测试

度高。

2. 分 布 式 取

数据测试

不可预测

错误

1.swftools 播放器研发计划:

数据流程结构图:

os.h
Mem.h
gfxpoly.h

rfxswf.h swf 格式

Md5.h gfxtools.h

args.h 参数 bitio.h
gfxdevice.h
config.h 配置 PNG.h
LIb types.h

Log.h
输入文件
Pdf2swf.c 转换 gfxdevice.h"
Devices gfxtools.h"
types.h
swf.h bitio.h"
og.h"
Gfxdevice_t gfxsource_t
rescale.h

record.h
gfxdevice.h
gfxtools.h
swf polyops.h
gfxpoly.h
log.h
PDF mem.h

pdf.h
gfxsource.h

InfoOutputDev.h FullBitmapOutputDev.h
#include "stdafx.h" BitmapOutputDev.h
#include "config.h" #include "BitmapOutputDev.h" #include "config.h"
#include "Object.h" #include "GFXOutputDev.h" #include "FullBitmapOutputDev.h"
#include "InfoOutputDev.h" #include "SplashBitmap.h" #include "GFXOutputDev.h"
#include "SplashOutputDev.h"
#ifdef HAVE_POPPLER
#include "SplashPattern.h" #include "SplashBitmap.h"
#include <splash/SplashTypes.h>
#include "Splash.h" #include "SplashPattern.h"
#include <splash/SplashPath.h> #include "../log.h" #include "Splash.h"
#include <splash/SplashFont.h> #include "../png.h" #include "../log.h"
#include <splash/SplashFontFile.h> #include "../devices/record.h" #include "../png.h"
#else #include "../types.h" #include "../devices/record.h"
#include "SplashTypes.h"
#include "SplashPath.h"
#include "SplashFont.h"
#include "SplashFontFile.h"
#endif
#include "GfxState.h"
#include "../log.h"
#include <math.h>

GlobalParams.h
GFXOutputDev.h
<stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <string.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "../../config.h"
#include "../os.h"
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
#ifdef HAVE_FONTCONFIG
#include <fontconfig.h>
#endif
//xpdf header files
#include "config.h"
#ifdef HAVE_POPPLER
#include <goo/GooString.h>
#include <goo/gfile.h>
#else
#include "gfile.h"
#include "GString.h"
#endif
#include "Object.h"
#include "Stream.h"
#include "Array.h"
#include "Dict.h"
#include "XRef.h"
#include "Catalog.h"
#include "Page.h"
#include "PDFDoc.h"
#include "Error.h"
#include "Link.h"
#include "OutputDev.h"
#include "GfxFont.h"
#include "GfxState.h"
//#include "NameToUnicodeTable.h"
#include "GlobalParams.h"
#include "GFXOutputDev.h"

// swftools header files


#include "../log.h"
#include "../gfxdevice.h"
#include "../gfxtools.h"
#include "../gfxfont.h"
#include "../gfxpoly.h"
#include "../devices/record.h"
#include "../devices/ops.h"
#include "../devices/polyops.h"
#include "../devices/render.h"

#include "../png.h"
#include "fonts.h"
Ya

Swftools 研发计划:

研发目标 研发过程 研发者 研发周期 研发结果


swftools 结 "../lib/args.h" 郑森林 40 天 清 晰 整 个

构流程体系 "../lib/os.h" 朱敏 swftools 数

"../lib/rfxswf.h" 曾春鹏 据转换格式

"../lib/devices/swf.h" 思路,所以

"../lib/devices/polyo 函数库的作

ps.h" 用,及其算

"../lib/devices/record 法。

.h"

"../lib/devices/rescal

e.h"

"../lib/pdf/pdf.h"

"../lib/log.h"

Swftools 二 自定义数据格式开发 郑森林 5天

次开发 接口实现数据转换 朱敏

曾春鹏

播 放 器 反 向 等转换格式研发出来,再开发此播放器。根据数据格式需要开发
工程

You might also like