基于JS的嵌入式信息服务应用研究

2011-08-21 01:24王建涛董珍时
图书馆研究 2011年5期
关键词:服务器端嵌入式文档

王建涛,董珍时

(1.浙江大学宁波理工学院图书馆,浙江 宁波 315100;2.浙江纺织服装职业技术学院图书馆,浙江 宁波 315211)

1 引言

嵌入式信息服务是泛在信息服务的重要形式,根据嵌入的范围可分为嵌入桌面和嵌入Web两种模式。王建涛和胡明玲在《工具条在图书馆信息服务中的应用》[1]中以及乐小虬等在《嵌入式桌面信息服务及其系统实现》[2]中分别对嵌入桌面模式的嵌入式信息服务的系统设计与实现方法进行了研究。比嵌入桌面模式应用范围更广的是嵌入Web的嵌入式信息服务,其中基于JS(JavaScript)的嵌入式信息服务可根据需要随时、多形式、低成本、高效率、无缝融合地嵌入万维网中的用户信息环境提供服务。JS是一种广泛用于客户端Web开发的脚本语言,常用来为HTML网页添加动态功能。这种服务在百度中称为免费代码,在一些门户网站中称为信息定制(如天气预报)、Mashup服务等。作者分别在学术信息资源开放目录网站(以下简称ODP)[3]、服务外包产业信息门户网站[4]实现了基于JS的嵌入式信息服务。因此,探讨基于JS的嵌入式信息服务的特点、信息服务架构和关键技术实现,对图书馆界广泛开展嵌入式信息服务有着重要的借鉴和示范作用。

2 基于JS的嵌入式信息服务的特点

对用户来说,基于JS的嵌入式信息服务技术门槛低、无缝融合、无需维护、零成本、数据同步。对图书馆来说,拓展了其信息服务的范围,为信息服务的开展提供了嵌入用户环境的信息服务平台。归纳起来,基于JS的嵌入式信息服务主要有如下几方面的特点:

(1)嵌入性。基于JS的嵌入式信息服务能实现无缝嵌入,不仅实现网站内翻页,还通过样式设置将信息资源与信息服务融入用户信息环境。

(2)易用性。网站用户只需“选择﹢复制﹢粘贴”就可应用基于JS的嵌入式信息服务,真正实现了零技术门槛的应用。

(3)广泛适应性。客户端基于JS代码,能广泛应用到各类网站环境中。

(4)信息粒度适中。基本元数据配合用户选择的信息展示条数,完全满足用户的需求。

(5)灵活性。信息的展示形式、部署位置均具有相当的灵活性,信息内容、信息模式等都可通过简单的定制页面定制到合适的JS代码,并通过多种参数设置为用户提供了深层次应用的可能。

(6)泛在性。图书馆的信息服务借助JS的广泛嵌入,不仅使信息资源得到广泛的开放利用,还使图书馆的服务平台无处不在成为可能。

3 基于JS的嵌入式信息服务架构

笔者以ODP网站基于JS的嵌入式信息服务为例,阐述基于JS的嵌入式信息服务架构。基于易用性、灵活性和高效率的要求,ODP基于JS的嵌入式信息服务架构如图1所示,其业务流程为:在客户端装载由ODP网站提供的JS代码嵌入HTML;JS通过SRC属性向服务器端发送读取JS文件请求;服务器端的PHP程序根据查询策略读取数据并应用缓存组件创建对应的JS文档,同时在缓存时完成利用统计;再由Web服务器返回对应的JS文档,客户端执行JS代码并装载数据,再由JS修改HTML,最后在客户端页面指定的地方展示并提供利用。

图1 基于JS的嵌入式信息服务架构

4 关键技术实现

4.1 跨域访问

要将图书馆信息服务嵌入用户信息环境,需要在用户环境中读取(或分享)服务提供方的数据或服务内容。基于XML数据的信息资源共享模式和基于Open API的数据封装模式均是服务器—服务器端在数据层面的直接交互,不存在跨域访问的问题,但这种类型的应用技术门槛高,不利于广泛的应用。基于JS的信息资源的利用则无需在JS嵌入的网站服务器进行数据处理,而是直接嵌入到前台HTML通过浏览器获得信息资源,是基于客户端—服务器的信息交互。但出于安全考虑,浏览器不允许客户端与服务器之间的跨域访问,一些服务器也对跨域访问数据进行了限制。因此,解决跨域访问是基于JS的信息服务的关键。目前,解决跨域访问的方式有以下几种:

(1)JSON(JavaScript Object Notation)。JSON是一种轻量级的数据交换格式,以文字为基础,易于阅读和编写,同时也易于机器解析和生成。JSON与XML最大的不同在于XML是一个完整的标记语言,而JSON 不是,它重点在于数据的交换[5]。

(2)Iframe。Iframe是HTML中的元素,即文档中的文档,或者浮动的框架(FRAME)。相当于在网页中开一个窗口,直接通过SRC属性引用外部URI页面。其特点是实现简单,可通过URL形式传递参数,对动态程序进行数据调用。不足之处是形式上的嵌入,可控性相对较差,不是基于内容的完整嵌入。许多网站不愿应用该模式,多数服务平台(如CSDN的博客)也不支持该模式。

(3)JS(JavaScript)文档。浏览器支持作为客户端语言的JS跨域访问JS文档(代码),所以可以利用这一特点在服务器端将数据装入JS文档,再直接通过JS的SRC属性获取外部URL的JS文档,最后在客户端对JS文档中的数据进行分析和展示。Google AJAX Search API是这种应用的典型代表,它通过SRC将编写好的JS控件引入客户端,然后在客户端通过AJAX调用经过服务器端装载的JS文档数据,从而实现搜索与展示搜索结果。

基于以上分析,JS是解决数据跨越访问的较好选择。

4.2 自动编码

在网络环境中,用户网站是多种编码模式中的一种,如UTF-8、GB2312、GBK等。因而,需要对图书馆嵌入用户环境中的信息资源根据客户端网站自动实现对应的编码。可用JS的“document.charset”语句获取客户端编码模式,并通过URL传递到服务器端,服务器端再对查询的数据生成对应的JS编码文件。PHP中有专门的编码转换函数iconv,能较好地完成相关编码的转换。

4.3 展示样式

虽然ODP提供了傻瓜式的JS代码定制页面[6],从这里定制的代码基本能满足大部分网站的需要,链接、字体大小默认与网页中的环境一致,但也提供了相关参数供用户配置,以便高级用户更加灵活利用,如标题字符个数、每页展示信息条数等均可由用户自行设定。

此外,由于数据已经装入JS文档,且因JS文档的开放性,对于熟悉JS编程的客户来说,可自己根据JS文档对数据进行操作,一方面进行展示效果的自由定制,另一方面通过装载数据的操作实现与自己客户端中的内容进行混搭(Mashup)应用。

4.4 动态缓存

当应用JS的嵌入式信息服务的用户较多时,为了减轻服务器的负担,进行动态缓存尤为必要。因此,根据业务流程分析,由PHP程序生成对应的JS文档并以文件的形式存储在服务器Web目录中,由PHP定时动态更新文档。其技术实现流程如下:当客户端通过URL调用PHP程序页面时,首先判断是否超过更新缓存JS文档页面的间隔时间,若超过更新间隔时间,则重新读取数据库并用新数据更新缓存JS文档,供下次访问时使用,同时将缓存的JS文档发送到浏览器;若没超过更新时间间隔,直接将缓存的JS文档发送到浏览器。缓存间隔时间可根据数据变动的频率、用户量、服务器端服务能力和用户对数据同步的要求来设定。

4.5 利用统计

图书馆提供的嵌入式信息服务到底有没有用户利用,谁在用,用的情况如何,这不仅是信息服务效果评价的重要依据,而且对信息资源建设和信息服务策略的调整等均有重要意义。ODP网站对信息资源利用情况进行统计,其JS的统计策略是与动态缓存一起完成的,即在动态缓存组件开始缓存数据时,完成对客户端用户情况的采集,包括用户的域名(IP)、统计时间等信息。这种统计策略避免了频繁统计造成网站服务效能降低,影响用户体验。

4.6 客户端嵌入代码

客户端嵌入的代码首先是用来获取用户端的环境信息,包括客户端的编码方式、显示数据区域等信息(见图2中第一个脚本区域),然后再装置从服务器端得到的信息内容(见图2第二个脚本区域),并以合适的方式在客户端展现(见图2中第三个脚本区域)。

图2 客户端JS脚本代码

5 结束语

本文研究了基于JS的嵌入式信息服务的一种应用,该应用实现了网络导航服务。这种嵌入式服务如同在用户环境中构建了图书馆信息服务的一个拓展平台,通过该平台既可以实现如本文研究的网络导航信息服务,也可以为用户提供通知通告、新闻动态、专题信息、参考资源、学习资料等信息。基于JS的嵌入技术能将图书馆丰富的信息资源完全融入用户信息环境,体现图书馆的泛在服务。

[1]王建涛,胡明玲.工具条在图书馆信息服务中的应用[J].图书情报工作,2007(2):121-124.

[2]乐小虬,等.嵌入式桌面信息服务及其系统实现[J].现代图书情报技术,2008(3):7-11.

[3]学术信息资源开放目录[EB/OL].[2011-1-10].http://odp.nit.net.cn.

[4]服务外包产业信息门户[EB/OL].[2011-1-10].http://soip.nit.net.cn.

[5]JSON[EB/OL].[2011-1-10].http://zh.wikipedia.org/zh-cn/JSON.

[6]数据开放利用之:Mashup服务[EB/OL].[2011-1-10].http://odp.nit.net.cn/opendata/foryou.php.

猜你喜欢
服务器端嵌入式文档
浅谈Matlab与Word文档的应用接口
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
有人一声不吭向你扔了个文档
Linux环境下基于Socket的数据传输软件设计
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat