基于B/S架构的电子书阅读发布系统的实现及关键技术研究

2011-12-21 10:14朱岸青高河福
韩山师范学院学报 2011年6期
关键词:翻页电子书调用

朱岸青,高河福

(1.广东工贸职业技术学院计算机系,广东广州 510510;2.广州市森锐电子科技有限公司,广东广州 510664)

基于B/S架构的电子书阅读发布系统的实现及关键技术研究

朱岸青1,高河福2

(1.广东工贸职业技术学院计算机系,广东广州 510510;2.广州市森锐电子科技有限公司,广东广州 510664)

本文采用基于AMF协议的BlazeDS框架进行数据交换、反射和工厂模式结合的动态切换皮肤技术、as hack强制内存回收技术,设计了一个电子阅读发布系统,并对其关键技术进行了研究和阐述.

RealReader;BlazeDS框架;As Hack

1 引言

本文所设计和研究的电子阅读发布系统—RealReader,是以互联网为流通渠道、以数字内容为流通介质的一种崭新的信息传播和阅读系统[1].相对于传统出版,在资源利用上,它不需要纸张、不需要油墨,是环保、绿色的阅读方式;在发行和传播上,它不需要运输、不需要库存,可以大家共享资源;RealReader生成电子读物,不需要打样、装订;各种电子资源的保存、保留的方式更实用、可行;个性化的阅读、良好的阅读体验、支持PC、手机等终端阅读,改变了传统的阅读方式、习惯,具有实用性、合理性.

RealReader采用了基于AMF(Action Message Format)协议的BlazeDS框架进行数据交换、反射和工厂模式结合的动态切换皮肤技术、as hack强制内存回收技术、新的加载策略、提供转换文本图书为JAR文件的功能.本文研究和阐述了RealReader的设计与实现,并对其难点和创新点进行了分析.

2 技术架构概述

RealReader采用RIA概念,使用Java+Flex 3.0+MySql的B/S架构开发.在本研究中该系统的关键通信技术采用了AMF协议中的BlazeDS框架进行通信.在实现关键的翻页效果技术中,采用Flex作为实现翻页阅读的技术.

2.1 基于AMF协议的BlazeDS框架

BlazeDS是一种服务端使用java进行web通信的技术,其可以使开发人员方便地连接到后端分布式数据,推送数据到Flex或AIR应用,为RIA(Rich Internet Application)提供更好的体验.很多的RIA应用需要更好的数据连接、通信模式.BlazeDS中的远程调用,可以重用服务端已有的java代码,通过配置实现Flash客户端和服务端的Java方法通信,并且使用AMF(Active Message Format)二进制通信格式,提高了执行效率,比以往的基于文本格式传输的快了10倍.

2.2 Flex RIA技术

Flex使用基于XML的MXML语言.Flex具有多种组件,可实现Web Services、远程对象、drag and drop、列排序,图表等功能;另外,Flex还内建动画效果和其它简单互动界面等.由于用户使用FlashPlayer进行浏览,所以不必担心浏览器兼容性问题.

3 系统功能

系统主要功能由系统登陆、管理员管理、图书导入、个人操作管理等模块组成.功能框架如图1所示.

系统登陆包括读者登陆与注册、管理员登陆模块;图书导入包括导入PDF和图片集模块;个人操作管理是核心模块,包括下载即时转换的手机版电子书,对图书共享、查找等操作,以及对个人用户书架操作.管理员管理模块包括管理用户、管理公共书库、更换皮肤.

图1 系统功能结构图

图2 系统功能流程

4 系统设计与实现

4.1 系统设计

该系统主要目标是通过浏览器发送请求,如转换自己的图书,对图书进行共享,导出MIDlet手机版等,然后系统服务端根据流程返回用户信息.该系统的功能流程说明,如图2所示.

接下来,对几个主要的功能和接口的设计进行描述和说明.

4.2 导入资源转换为电子书

本系统支持pdf格式和已经压缩的图片集作为电子书资源,然后将其编辑为XML文件,供系统阅读模块调用.其中关键核心技术是通过swftools工具对上传资源进行转换,通过后台的Runtime对其进行命令行调用,转换为系统所需要的资源[2].

4.3 翻页组件设计与调用

本系统采用Flex开源翻页效果组件flexbook,flexbook是开源组件,由Flex 2编写.本系统通过解析XML,对其进行填充资源达到翻页效果,如图3所示.

图3 翻页调用流程

2.分析PDF还是IMAGES为图书制作源,运用工厂模式动态分配生成BIMAP[]数组对象

为了日后增加功能和维护,系统采用外观模式定义了一个外观类fliper,其拥有高层次的接口对系统进行管理,聚合了管理书本放大类zoomer,书本皮肤切换类styler等,使系统代码清晰,方便维护.具体类图如图4所示.

4.4 后台交互通信设计

系统与后台采用BlazeDs框架,通过其Remoting-service.xml进行映射调用后台的javabean.考虑到个调用模块大同小异,下面以用户操作模块配置列出核心代码:

4.5 手机端设计与整合TXT资源

因为在手机端,阅读电子书其实是读取TXT文件,系统在完成阅读功能后,在编译时通过替换JAR中的TXT文件就可以实现生成电子书的功能.系统通过Runtime调用jar命令对资源进行打包.我们考虑到阅读的便携性,所以增加了把文本电子图书转换为JAR电子书功能.

因为电子书其实是读取TXT文件,所以只要做好阅读功能,然后生成的时候替换JAR中的TXT文件就可以实现生成电子书功能.

图4 fliper类图

5 核心创新点

5.1 使用反射与工厂模式动态切换与调用皮肤

系统拥有多种皮肤切资源切换,可以提供个性化体验.主要实现方式是利用反射和工厂模式创建皮肤实例,与CSS结合,具有以下特点:

1.加快加载程序速度.Flex开发后的RIA应用生成的将是swf文件,将多个皮肤集成到同一个swf上面,用户开启该应用必须一次性加载.如果资源的皮肤较多,下载速度就会变慢,这样就会影响用户的阅读.如果采用反射动态切换皮肤,用户要加载时候才使用,这样即使皮肤资源多,也是逐个逐个加载,下载达到分流效果.

2.维护性好,高内聚,低偶合.如果皮肤资源需要变化,如增加逐渐变淡效果,而皮肤资源和RIA是耦合在一起的,必须将RIA应用重新编译一次,这样使维护程度加大.如果使用反射动态切换皮肤,就不需要改变代码,只需要把所有的皮肤固定在一个xml文件,用反射创建皮肤资源,既减少藕荷度,又提高了皮肤切换功能内聚效果.

3.高机动性.CSS的切换可以达到切换皮肤的效果,但是它不能对镶嵌的资源修改,而且不能镶嵌MP3等音乐文件,而该设计可以把所有资源封装到一个类里面,然后通过反射进行调用.

主要实现如下.

(1)首先将资源封装在类里面.

5.2 As Hack强制内存回收优化

由于开源组件flexbook存在内存泄露的问题,运行的时间越长越占内存,每次电子书翻动一页,其内存占用就增加一个页面的大小.尤其当翻页的页面越来越大时,翻动动作越来缓慢.其中bitmapData随着画面大小而变化,而每翻动一页虽然清空了变量,但是没有用户翻动速度快,内存回收的速度十分缓慢,所以会有“卡”的效果.

因为AS3的虚拟机上有自带垃圾回收机[3],但是具体何时进行垃圾回收,理论上非人为所能控制,因此使用AS HACK强制回收.核心代码如下:

因为localconnection只可以有一个同名的连接,声明两个同名的连接就一定会产生异常,引起虚拟机混乱,从而使得虚拟机执行回收.加快了内存回收效率,减少常驻的内存大小[4].然后通过修改翻页组件接口,增加强制回收代码,在运行commitProperties前运行一次回收代码,达到更快的回收资源,改善用户翻页体验.

6 结束语

本文阐述了电子书阅读器的基本设计和创新点,将来期望继续从功能的扩展性、阅读个性化、语音阅读、丰富的阅读内容、更强大的发布、管理功能等方面来继续完善该系统.同时,也希望在该系统的商业应用上有所突破.

[1]HAN JUN,ZHANG BAO JING,LIU JING.The comparative study of mainstream e-book readers[C].Proc.2010 3rd IEEE International Conference on Computer Science and Information Technology,ICCSIT 2010.v 8,461-464.

[2]曾天慧,於时才,董荣辉.Java垃圾收集机制及性能调节[J].计算机工程与设计.2006,27(17):3242-3245.

[3]何巍,何建忠.开源RTOS内存管理机制分析和改进[J].计算机工程.2010,36(10):67-69.

[4]常铁原,刘娜,陈文军.μC/OSII内存管理技术的研究[J].计算机工程,2007,33(9):82-83.

The Realization of E-book Reading and Publishing System Based on B/S Structure and Its Key Technical Research

ZHU An-qing,GAO He-fu
(1.Department of Computer Science,Guangdong Vocational College of Industry&Commerce,Guangzhou 510510,China;2.Guangzhou Sunrise Electronic Technology Co.,Ltd,Guangzhou 510664,China)

This paper uses BlazeDS AMF framework of protocol-based for data exchange,dynamic switching skin technology of combination by reflection and the factory model,force garbage collection technology of as hack to desigh a read and electronic publishing system,and researches and presents its key technologies.

RealReader;BlazeDS framework;As Hack

TP311

A

1007-6883(2011)06-0054-06

2011-10-17

广东省省部产学研结合项目(2010B090400149).

朱岸青(1976-),女,海南文昌人,广东工贸职业技术学院计算机系副教授.

责任编辑 尔 迟 杨培奎

猜你喜欢
翻页电子书调用
打字机
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
让“翻页”成为艺术
会翻页的书
打造自己的电子书架
基于系统调用的恶意软件检测技术研究
自动翻页乐谱架
基于电子书包的学习分析探究
电子书 等