面向互联网开放平台的新闻推送系统设计与实现
杨君蔚1
1.上海东方传媒集团有限公司 技术运营中心,上海市 200041
摘 要: 在互联网开放平台迅猛发展,并聚集大量互联网用户资源的大背景下,为了加快传统媒体新闻内容的传播速度,充分利用互联网开放平台用户资源,本文通过新闻推送系统的设计,实现了传统媒体业务系统新闻内容向互联网开放平台推送得功能。同时为了解决互联网开放系统接口多样性、业务多变的特点,本文通过采用Java 反射机制来解决系统的扩展性和适配性问题。该系统在新闻网站中测试运行后,新闻推广效果取得了明显的改善。
关键词: 新闻推送; 反射机制;互联网开放平台
中图法分类号: TP399
文献标识码: J
The Realization of newsfeed system for the open platform on Internet
Yang Jun-Wei1
1. IT department of Technical Center of Shanghai Media Group, Shanghai 200041, China Abstract: In the open platform for rapid development of the Internet, and gathered a large number of Internet users in the context of resources, in order to speed up the traditional media news content propagation speed, full use of the Internet open platform user resources, this paper newsfeed system design to achieve the traditional media business system news open platform push to get the Internet function. Meanwhile, in order to solve the Internet open system interface diversity, changing the characteristics of the business, this paper uses the Java reflection mechanism to solve the system's scalability and adaptation issues. Key words: newsfeeds; reflection; internet open platform
1 绪论
开放平台,自2007年因Facebook取得瞩目的成功以来,一直刺激着国内互联网界的神经。2008年起,天涯、康盛创想、51、人人网等陆续开放了自己的API。进入2010年后,这股开放平台的潮流突然加速了。1年内开心网、新浪、滕讯、搜狐陆陆续续推出了自己的社区开放平台。在这样一个背景下,国内大量的互联网用户资源被集中到这些开放平台上。 互联网作为一个新媒体,一直以来都是广播电视媒体争相发展的领域。越来越多的广播电视节目内容开始融入互联网互动内容,与新浪、搜狐等知名互联网企业展开合作,通过互联网来推广广播电视节目,提高收视及收听率。特别是对于新闻节目来说,讲究的是时效性,通过互联网来推送新闻内容,大大加快了内容传播速度和效率。 基于互联网社区的开放平台,聚集了国内大量的互联网用户资源。它的发展,犹如“加速器”,能够进一步加快信息在互联网用户群体间的传播。广播电视媒体,可以通过建设基于互联网的新闻推送系统,与这些开放平台互联,来达到提高宣传效率,提升新闻时效性的目的。
2 业务需求
基于互联网开放平台的新闻推送系统最主要的功能就是将指定数据源中的内容按一定要求或格式推送到指定的开放平台中。因此开发基于互联网开放平台的新闻推送系统,最主要解决得技术问题是适配性问题:数据源适配、目标系统适配。 新闻推送系统的数据源一般是企业内部的业务系统,它可以是新闻生产系统、网站,甚至可以是短信平台、Email系统等一系列信息接收处理系统。从业务系统采用的数据访问协议来说,通常包括DB访问协议、web service、pop3、ftp等通用访问协议,当然一些专用业务系统可能提供一些api接口来支持数据访问能力。因此数据源具有多样性。然后从企业发展的角度来说,随着业务的不断发展,可能产生业务系统的升级换代,原本开放的数据源接口会因系统升级而产生变化。因此,数据源具备易变性。综上所述,新闻推送系统必须具备对数据源多样性及易变性的支持,能够尽量通过参数配置,减少开发工作,来实现对多种数据源的适配。 新闻推送的主要目的就是将内容已最快的速度、通过尽可能多地渠道推广到互联网终端用户。这些渠道主要包括微博开放平台、RSS、Email、短信平台等。新闻推送系统为了实现对目标渠道系统的适配,必须支持微博开放平台使用的REST API、RSS协议、SMTP协议、webService协议等。同时需要适应开放平台应技术升级而带来的结构变化,以及应对新渠道的扩展需求。
3 系统实现
3.1 技术选型
解决第2节提出的业务需求,关键是要构建一个开放的、易于扩展的、具有广泛适配性的系统,来应对数据源及目标系统的多协议、多变化的特性。本文从开发语言、开发技术、关键组件三方面来描述实现新闻推送系统需要采用的技术。
3.1.1 开发语言选型
本文实现的新闻推送系统,选择java作为开发语言。主要原因如下: 1) Java一个很重要的特性就是跨平台,一次编写,处处运行。这为系统的移植带来很大的方便。对于当今多样化的服务器操作系统来说,Java解决方案近乎完美。 2) Java是开放的,有着众多的开源框架,针对不同的应用开发人员可以选择使用,也可以自行开发自己应用的框架。没有人限制你。Java中有很多优秀的开源框架是其他语言社区所不具有的随着应用需求的多样化日益复杂,Java在应对复杂和多样化的应用面前则镇定自若,因为Java是灵活的。 根据Java语言的特性,采用该语言开发的新闻推送系统自然而然的具备了移植性和开放性。特别是开放性,现在绝大多数的开放平台都提供java sdk开发包,使得在新闻推送系统上开发集成适配器更加简便、灵活。
3.1.2 关键开发技术选型
除了移植性和开放性,系统还必须具备可配置性,才能迅速应对数据源和目标系统的变化。通过对配置文件的更改来增加或改变适配器,而不是更改系统核心代码。 要提升系统的可配置性,就必须利用到Java语言的另一个特性:反射机制实现IOC。 传统的面向对象的程序开发语言,在创建对象时,必须明确的声明创建的是什么对象,采用什么类来创建。如果按照传统的开发方式,新闻推送系统就必须预先声明好所有的适配器调用接口。一旦接口发生改变,就必须重新修改系统的核心代码。这样限制系统的灵活性,增加了开发的复杂度。 Java的反射机制是Java语言的一个重要特性,通过它可以获取如下信息: 1) 在运行时判断任意一个对象所属的类; 2) 在运行时获取类的对象; 3) 在运行时获得类所具有的成员变量和方法等。 通过Java的反射机制特性,就可以将系统中需要调用的适配器所属类写在配置文件中,通过配置文件来调整数据源和目标系统的适配器信息,从而在系统运行时,动态加载适配器,完成新闻的读取和推送功能。
3.1.3 关键组件选型
可配置性是新闻推送系统的关键特性。通过适配器的配置来提升系统的可扩展性、适配性和灵活性。因此,对配置文件的操作是系统的关键功能之一。如果系统能够将配置文件直接转化成对象,并且能将对象直接序列化成配置文件,这样无疑大大增强了系统的可配置性。而XStream组件提供了这些功能,大大简化了系统的开发工作。 XStream 是一个轻量级的、简单易用的开放源代码 Java组件,用于将 Java 对象序列化为 XML 或者再转换回来。使用 XStream 不用任何映射就能实现多数 Java 对象的序列化。在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中的元素内容。使用 XStream 序列化的类不需要实现 Serializable 接口。XStream 是一种序列化工具而不是数据绑定工具,就是说不能从 XML 或者 XML Schema Definition (XSD) 文件生成类。 和其他序列化工具相比,XStream 有三个突出的特点: 1) XStream 不关心序列化/逆序列化的类的字段的可见性。 2) 序列化/逆序列化类的字段不需要 getter 和 setter 方法。 3) 序列化/逆序列化的类不需要有默认构造函数。不需要修改类,使用 XStream 就能直接序列化/逆序列化任何第三方类。 基于Xstream的特性,新闻推送系统采用该组件完成了所有配置文件的转换过程,只要在系统中对配置对象属性的修改,就能保存到配置文件中;同时用文本编辑器更改配置文件,就能在系统运行时得到相应配置属性的内容。此外,配置文件采用XML,无疑也大大增强了配置文件的可读性、扩展性以及标准化。
3.2 系统框架设计
基于第二节所描述的新闻推送系统所需要实现的功能、特性总结如下: 1) 新闻推送系统从业务系统中获取新闻内容,并根据要求推送到指定的开放平台中。 2) 业务系统及目标开放系统,通过适配器连接新闻推送系统。 3) 新闻推送系统数据源业务系统及目标开放系统的扩展,通过在配置文件中调整适配器配置内容,无需更改新闻推送系统的主体代码。 根据上述需求,基于Java语言开发而成的新闻推送系统框架设计,如图1所示:
图1 系统结构图
新闻推送系统主要分为三个层次:系统主体层、数据源适配层、目标系统适配层。 1) 系统主体层由配置文件管理器、适配器管理、适配器认证、任务管理、内容映射五个模块组成。 l 配置文件管理器主要用于导入并解析配置文件。 l 适配器管理主要同过配置文件,对相应适配器进行生命周期管理。 l 适配器认证主要对接入系统的适配器进行安全认证,防止未认证应用接入。 l 任务管理主要根据配置,定时完成数据源导入,以及目标系统导出任务。 l 内容映射管理主要完成数据源和目标系统之间内容映射任务,根据配置完成内容格式转换和匹配。 2) 数据源适配层主要完成对数据源业务系统内数据的读取工作。 3) 目标系统适配层主要完成将数据内容导出到指定的目标系统。
3.3 系统工作流程
新闻推送系统工作流程,如图2所示:
图2 系统工作流程图
3.4 配置文件设计
3.4.1 主配置文件设计
主配置文件主要用于定义数据源配置文件所在路径。系统根据该路径读取相应的数据源配置文件和目标系统配置文件。 <sysConfig> <cfgFiles> <cfgFile> <path>appConfig.xml</path> </cfgFile> <cfgFile> <path>sourceConfig.xml</path> </cfgFile> </cfgFiles> </sysConfig>
3.4.2 数据源配置文件设计
数据源配置文件主要用于定义数据源类型、连接方式、数据查询方式等。 <sourceConfig> <sources> <source> <guid>数据源Guid,唯一标记</guid> <name>数据源名称</name> <description>数据源简要说明</description> <sourceType>数据源类型可以是DB、webservice、java类等</sourceType> <jdbcDriver>数据源驱动</jdbcDriver> <uri>连接字符串或资源路径</uri> <username>数据源用户名</username> <password>数据源密码</password> <query> <queryName>数据源查询名</queryName> </query> <schedule> <start>数据源访问开始时间</start> <interval>访问时间间隔</interval> </schedule> </source> </sources> </sourceConfig>
3.4.3 目标系统配置文件设计
目标系统配置文件用于定义目标系统的连接方式、目标系统所对应的数据源以及数据字段映射。 <appConfig> <applications> <application> <guid>目标系统Guid,唯一标识</guid> <applicationName>目标系统名</applicationName> <description>目标系统描述</description> <applicationType>目标系统类型,可以是DB、webservice、java类</applicationType> <jdbcDriver>目标系统驱动类</jdbcDriver> <uri>资源路径</uri> <username>目标系统用户名</username> <password>目标系统密码</password> <sourceMappings><!-映射数据源--> <sourceMapping> <sourceGuid>数据源Guid</sourceGuid> <fieldMappings><!-映射字段--> <fieldMapping> <name>字段名</name> <mapping>映射别名</mapping> <convertClass>转换类</convertClass> </fieldMapping> </fieldMappings> </sourceMapping> </sourceMappings> <invoke> <invokeName>推送方法名</invokeName> <params> <param> <paramName>参数1</paramName> <paramValue>定义常量</paramValue> <paramType>参数类型</paramType> <convertClass>转换类</convertClass> </param> </params> </invoke> </application> </applications> </appConfig> 结束语 虽然本文设计的新闻推送系统可以尽量简化系统核心代码的开发工作,但是对于源系统和目标系统适配器的开发工作避免不了。在开发时尽量采用标准化方式,使得适配器也可以一次开发,多场景应用。 基于本文开发的新闻推送系统测试运行,平均每天向新浪微博开放平台推送视频新闻400条,经过一个月左右运行累计加入粉丝超过300位,取得了较好的推广效果。 参考文献: (参考文献示例参见下页) [1] 杨卫华.构建更开放的微博平台[J].程序员, 2011年,3月刊:43. [期刊] [2] XStream知识汇总, http://blog.csdn.net/gaoyusi4964238/archive/2009/07/26/4379325.aspx。[电子文献] [3]利用Java的反射与代理实现IOC模式, http://wenku.baidu.com/view/c03a2629bd64783e09122b9d.html。[电子文献]
--------------------------------- 收稿日期:2006-08-20;修返日期: 基金项目:基金项目1全称(基金项目号);基金项目2全称(基金项目号);…… 作者简介: 杨君蔚(1978-),男(汉),浙江宁波人,工程师,硕士,主要研究领域为软件工程、yangjunwei@stv.sh.cn;
文献类型和标志代码
文献类型 | 标志代码 |
普通图书 | M |
会议录、文集 | C |
报纸 | N |
期刊 | J |
学位论文 | D |
报告 | R |
标准 | S |
专利 | P |
电子公告 | OL |
数据库 | DB |
电子公告 | EB |
计算机程序 | CP |
电子文献载体和标志代码
载体类型 | 标志代码 |
磁盘(Disk) | DK 如CP/DK |
光盘(CD-ROM) | CD |
联机网络(On-line) | OL 如 M/OL,EB/OL, J/OL |
示例如下: A 期刊 [1]卢浩,胡华平,刘波.恶意软件分类方法研究[J].计算机应用研究,2006,23(9):4-7,12.(卷号黑体) [2]VARSHNEY U,VETTER R. Mobile commerce: framework, applications and networking support[J]. Mobile Networks and Applications, 2002, 7(3):185-198. (英文期刊名及卷号黑体) [3]李晓东,张庆红,叶瑾琳.气候学研究的若干理论问题[J].北京大学学报:自然科学版,1999,35(1):101-106. B 专著 [4]昂温 G,等.外国出版史[M].陈生铮,译.北京:中国书籍出版社,1988. [5]ROOD H J. Logic and structured design for computer programmers[M].3rd ed.[S.l.]:Brooks/Cole-Thomson Learning,2001. 无出版地的中文文献标注“出版地不详”,外文文献标注“S.l.”并置于方括号[ ]内;无出版者的中文文献标注“出版者不详”,外文文献标注“s.n.”并置于[ ]内 C 论文集、会议集 [6]YUFIN S A. Geoecology and computer: proceedings of the 3rd International Conference on Advances of Computer Methods in Geotechnical and Geoenvironmental Engineering,Moscow,2000[C].Rotterdam: A A balkerma,2000. [7]辛希孟.信息技术与信息服务国际研讨会论文集:A集[C].北京:中国社会科学出版社,1994. D 专著、论文集中析出的文献 [8]程根伟.1998年长江洪水的成因与减灾对策[M]//许泽厚,赵其国.长江流域洪涝灾害与科技对策.北京:科学出版社,1999:32-36. [9]钟文发.非线性规划在可燃毒物配置中的应用[C]//赵玮.运筹学的理论与应用:中国运筹学会第五届大会论文文集.西安:西安电子科技大学出版社,1996:468-471. [10]FOURNEY M E. Advances in holographic photoelasticity[C]//American Society of Mechanical Engineers. Applied Mechanics Division. Symposium on Applications of Holography in Mechanics,1971,University of Southern California, Los Angeles. New York:ASME,1971:17-38. E 学位论文、科技报告(用户手册)及技术标准 [11]史龙.无线传感器网络自身定位算法研究[D].西安:西北工业大学,2005. [12]World Health Organization. Factors regulating the immune response:report of WHO Science Group[R].Geneva:WHO,1970. [13]MC8100 RSIC Microprocessor User’s manual[R]. 2nd ed. Englewood Cliffs: Prentice Hall,1990. [14]全国文献工作标准化技术委员会第七分委员会.GB/T 5795-1986 中国标准书号[S].北京:中国标准出版社,1986. [15]ISO/IEC 10181-3 Information technology: open system interconnection security frameworks for open system: access control framework[S]. Geneva: ISO/IEC,1996. F 报纸、专利文献 [16]丁文祥.数字革命与竞争国际化[N].中国青年报,2000-11-20(15). [17]刘加林.多功能一次性压舌板:中国,92214985.2[P].1993-04-14. G 电子文献(包括专著或连续出版物中析出的电子文献) [18]黎妹红,张其善.用迭代法求指纹图像中的阈值[EB/OL].(2004-12-18) [2005-05-20]. http://www.21ic.com/news/n1941c72.aspx.. [19]CHRISTINE M. Plant physiology: plant biology in the Genome Era[J/OL]. Science,1998, 281: 331-332[1998-09-23]. http://www.sciencemag.org/cgi/collection/anatmorp. [20]OTT A. The Rule Set Based Access Control(RSBAC) Linux kernel security extension[C/OL]//The 8th international Linux Kongress, Enschede, 2001(2001-11-30). http://www.rsbac.org/linux-kongress/index.html. [21]TURCOTTE D L. Fractals and chaos in geology and geophysics[M/OL].New York:CambridgeUniversity Press,1992[1998-09-23].http://www.seg.org/reviews/mccorm30.html. [22]Scitor Corporation. Project scheduler[CP/DK].Sunnyvale: Scitor Corporation,1983. 部分示例引用自中华人民共和国国家质量监督检验检疫总局和中国国家标准化管理委员会2005-03-23发布的《GB/T 7714-2005 文献参考文献著录规则》
评论 点击评论