`
summeryhrb
  • 浏览: 20300 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

H2P倡议——一种新的互联网应用模式

阅读更多
From: "javaei" <javaei@163.com>
To: "webmaster" <webmaster@iteye.com>; "admin" <admin@csdn.net>; "contact" <contact@cnblogs.com>; "banq" <banq@163.com>; "jackliu.aws" <jackliu.aws@gmai.com>; "oschina.net" <oschina.net@gmail.com>; "jrwebmaster" <jrwebmaster@javaresearch.org>; "support" <support@cjsdn.net>; "chris" <chris@matrix.org.cn>; "admin2" <admin2@staff.chinaunix.net>; "admin" <admin@oracle.com.cn>; "sangernten" <sangernten@gmail.com>; "software" <software@it168.com>; "admin" <admin@chinajavaworld.com>; "service" <service@360doc.com>; "sinamedia" <sinamedia@vip.sina.com>; "thomastang" <thomastang@tencent.com>; "ir" <ir@service.netease.com>; "webmaster" <webmaster@java-cn.com>; "webmaster" <webmaster@pfan.cn>; "yaoz" <yaoz@163.com>; "Webmaster" <Webmaster@contact.sohu.com>; "java2000_net" <java2000_net@hotmail.com>; "webmaster" <webmaster@staff.ccidnet.com>; "justin" <justin@chinaitlab.com>; "david" <david@kingofcoders.com>; "yanger1997" <yanger1997@yahoo.com.cn>; "admin" <admin@javatx.cn>; "eatfishlin" <eatfishlin@hotmail.com>; "eygle" <eygle@hotmail.com>; "fondofbeyond" <fondofbeyond@163.com>
Sent: Friday, August 07, 2009 10:44 AM
Subject: H2P倡议——一种新的互联网应用模式
各网站管理员:
       我是javaei网站的管理员,近段时间,我站提出h2p概念,并推出h2p应用。h2p是html to pdf的意思,具体地说是根据批量URL生成一个有书签的pdf文档的解决方案,该方案是一个完整的解决方案。我觉得h2p是互联网应用的一种创新,值得推广,经过调查,得到不少人的认可。但是javaei网站的影响力有限,推广力度不够,为了能让h2p被大家认可并得到推广,特向各位发起倡议,一起来完善并推广这种应用,当然首先要得到各位的认可。H2p在技术上微不足道,重要意义体现在应用模式上。就像Rss一样,rss本身技术上没什么可说的,但应用模式上意义重大,rss从提出到被接受,也是经过了曲折的历程。我私下里希望,h2p也能像rss那样,被广为接受,最终成为一种大家接受的应用模式而确立下来,更重要的是,这是中国的程序员发起并推广的,这绝对是零的突破。
       下面从三个方面来展开:h2p具体介绍,为什么要推广h2p,h2p完善和推广

一、H2P具体介绍

       H2Pjavaei网站发展的结果。H2P包括两个部分:h2p-fileh2p-toolh2p-file其实是xml文件,用来描述批量的URL,主要描述两个信息,url的先后顺序和层次结构(用于处理书签)。h2p-tool是一个客户端工具,用途目前主要有三个,根据dtd校验h2p-file的合法性、编辑h2p-file和根据h2p-file生成有书签的pdf文档。

1h2p-file

在目前的方案中h2p-file包括两个xml文件,href.h2p.xmloutline.h2p.xml

href.h2p.xml示例如下

<href-info>
	<href id="KxgYaRxG">
		<value><![CDATA[http;//www.163.com]]></value>
	</href>
	<href id="53Bw5A32">
		<value><![CDATA[http://www.sohu.com]]></value>
	</href>
	<href id="eyEis6ra">
		<value><![CDATA[http;//news.163.com]]></value>
	</href>
	<href id="DMQoSN2t">
		<value><![CDATA[http;//sports.163.com]]></value>
	</href>
	<href id="5vaf3LN7">
		<value><![CDATA[http://news.sohu.com]]></value>
	</href>
</href-info>

 

这个xml很简单,之所以这样描述,是因为URL通常会有&而这个符号不能出现在xml里,而且作为属性的值,还不能用<![CDATA[]]>,所以就作为一个节点了。

h2p-tool根据这个xml生成的每个pdf文件,pdf文件的名字取id的值,后缀为pdf

 

outline.h2p.xml示例如下

<book name="我的PDF书">
	<chapter name="163" href="KxgYaRxG">
		<chapter name="163新闻" href="eyEis6ra" />
		<chapter name="163体育" href="DMQoSN2t" />
	</chapter>
	<chapter name="sohu" href="53Bw5A32">
		<chapter name="sohu新闻" href="5vaf3LN7" />
	</chapter>
</book>

 

这个xml描述了每个pdf合并的顺序,href的值和上一个xmlid值对应,chapter标签嵌套的层次就是书签的层次,name的值就是书签的名称。H2p-tool根据这个xml把每个pdf合并成一个pdf,并生成书签。

 

考虑到h2p的发展,完全有理由把这两个xml文件合并成一个xml文件,可以定义成如下格式:

<book name="我的PDF书">
	<chapter name="163">
		<href><![CDATA[http://www.163.com]]></href>
		<chapter name="163新闻">
			<href><![CDATA[http://news.163.com]]></href>
		</chapter>
		<chapter name="163体育">
			<href><![CDATA[http://sports.163.com]]></href>
		</chapter>
	</chapter>
	<chapter name="sohu">
		<href><![CDATA[http://www.sohu.com]]></href>
		<chapter name="sohu新闻">
			<href><![CDATA[http://news.sohu.com]]></href>
		</chapter>
	</chapter>
</book>

 

对应的dtd可以定义如下

<!ELEMENT book (chapter+)>
<!ATTLIST book      name   CDATA #REQUIRED>
<!ELEMENT chapter (chapter*)>
<!ATTLIST chapter      name  CDATA  #REQUIRED>
<!ATTLIST chapter      href  CDATA  #IMPLIED>

 

在这个方案当中,h2p-file具有十分重要的意义,它作为一种资源被提供下载,也可以在线使用,h2p-file的格式作为一种协议,可以被各大网站支持,

 

2h2p-tool

h2p-tool是处理h2p-file的客户端工具,目前h2p-tool的功能主要有以下三个方面

根据dtd校验h2p-file的合法性,

编辑h2p-file编辑功能包括新建、修改、保存,

根据h2p-file生成有书签的pdf文档,先根据。

目前h2p-tool一部分是用C#开发的,一部分是用Java开发的。不管h2p-tool用什么开发,通过什么方式使用(在线或离线的),只要能处理h2p-file即可。

h2p-tool的功能还可以有如下扩充:

合并h2p-file,解析h2p-file在线阅读(这一点类似于google reader),也可以不需要h2p-tool,直接用xsl展示h2p-file

下图是h2p生成pdf的一个示例。



 

二、为什么要推广H2P

其实就是要回答h2p有什么价值。自从有了h2p构想以来,我一直在思考这个问题。

从以下几个方面说明我的思考:

(1)各大网站已经积累了丰富的资料,随着pdf的风行,导出pdf是很多用户的需求,提供pdf导出功能的网站还不多,实际上技术已很成熟,原因在于没有很好的模式。导出pdf是个性需求,网站无法知道用户需要把哪些导出成pdf,而且在服务器端生成pdf,不仅会增加服务器端压力。而且会增加管理员工作量。而如果网站只是提供h2p-file下载,由用户利用第三方工具(也即h2p-tool)自行编辑h2p-file,自行生成pdf,上面的问题就解决了,服务器端压力没有了,只需生成h2p-file,用户可以根据自己的需要对h2p-file进行编辑,生成pdf既满足了个性需求,同时把生成pdf的压力转移了用户,这点小压力对单个用户是可以接受的。

2如果网站想支持pdf导出的话,那么只需提供h2p-file,就像rss一样,网站要提供订阅功能,只需提供rss就行

3)网站可以根据用户的请求动态的生成h2p-file,从而间接的实现根据请求动态生成pdf的功能,这一点意义非凡。

4)网站提供h2p-file,会导致对网站内容的整理和挖掘,从而促进站内智能搜索的应用。

5)满足了用户的便捷,就是赢利的开始。关于盈利,在网站广告投放这方面一点都不会受影响,pdf超强的表现力足可以完美的表现广告效果,在h2p-file里可以适当放一些广告链接,同时,h2p-tool上也可以投放广告,h2p-tool在生成pdf的时候也能再适当位置加入广告。把广告固化到pdf文件里,这种方式比在浏览器里显示的广告生命周期要长得多,因为pdf是只读的。

6)最后一点,是意义上的而非价值上的,那就是如果h2p推广开了,被人们接受了,那么这将是第一个由中国的程序员发起并推广的一个协议,一个互联网应用模式Bbsblogwikitwitterrss等等,耳熟能详的东西,有技术含量吗?真正有价值的是这些应用模式,正是这些应用模式推动着互联网的飞速发展。而搜索引擎却集优秀的应用模式和先进的理论思想与技术于一身。

7)有可能带来其他方面的影响,比如网站内容的提炼和聚合。

三、H2P完善和推广

H2P刚刚产生,是个雏儿,尽管核心思想已经体现出来了,但在形式上和应用上还有需要大幅度的完善。可从以下几个方面展开:

1)齐心协力共同制定和完善h2p-file的格式,使h2p应用更加便捷和丰富。h2p-file可以分成两个文件独立描述,也可以合为一个,前面已经阐述了。

2)确定了h2p-file的格式,进一步完善和重新开发h2p-toolh2p-tool可以有三个方向,一个方向就是目前的方向,开发一个客户端工具,并且使用浏览器的内核,把浏览器的功能集成进来,在java开发方面已经有了JDIC这么一个框架了;第二个方向就是类似google reader的方向,在线解析h2p-file,以树形结构显示连接,提供在线的便捷阅读;第三个方向采取最简单的方式,直接用xsl显示h2p-file

3)博克文章、论坛帖子一般至少有三分之一的内容是广告或图片,直接根据URL生成的pdf就显得很臃肿,这是这个方案的缺陷,解决这个问题最简单的思路就是网站针对h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,之所以说它简单,是因为现在的界面的输出大多采用的模板技术,在模板上稍作变动,就可以输出没有太多广告和图片的内容。但考虑到网站需要投放广告,可以允许有少量广告,从而就产生了h2p-file质量这个概念,图片越少广告越少,那么生成的pdf就越干净体积就越小,h2p-file质量就越高;反之,生成的pdf就像现在的报纸一样,实质内容淹没在广告里而且体积还很大,h2p-file质量就越低。

4)如果上面的思路得到了采纳,那么根据一条URL生成单个pdf 的技术就能很好的解决。目前的h2p-tool在这一部分的开发用的是一个C#组件(生成的pdf有水印,我估计这个组件是调用了IE浏览器的功能)。之所以采用这个组件,是因为要保证生成的pdf展现效果和浏览器里的效果完全相同,这无异于做一个浏览器,难度可想而知。如果专门为h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,没有复杂的标签和样式,这种情况下,使用iText等框架生成pdf是可行的。Javaeye网站提供的pdf下载和电字书制作得到的pdf就是这种情况,提取博克文章的主体内容生成pdf

5)各网站对h2p的支持很简单,只需发布网站内容的h2p-file即可,h2p-file从此就以协议或资源的身份出现在互联网中。

 

以上三方面的内容分别阐述了h2p应用模式、h2p的意义和价值和h2p完善和发展的方向,回答了为什么要发起这个h2p倡议。敬请各网站管理员考虑我的意见,推动这个新的h2p应用,不仅会各网站带来新的赢利,而且这将是我们这些中国程序员的集体荣耀。

 

 

 2009-8-7

Javaei网站

 

 

 

相关介绍:

投票:你认为h2p实用吗

H2P介绍

根据批量URL生成有书签的PDF文档的解方案

pdf生成的解决方案(H2p)之H2P技术细节

pdf生成的解决方案(H2p)之H2P展望

 

  • 大小: 91.2 KB
0
0
分享到:
评论
1 楼 javer 2009-10-30  

相关推荐

    超级经典的小数据库——h2

    H2可以被嵌入到应用程序中,作为应用程序的一部分运行,这种模式下数据库和应用程序紧密集成,便于管理和部署。 9. **连接池支持** 支持常见的Java连接池如C3P0、DBCP、HikariCP等,可以提高数据库连接的复用率,...

    H2Database.rar_H2Database高级特性

    H2Database是一款轻量级、开源的嵌入式和服务器模式的Java数据库,适用于测试、开发和嵌入式系统中的数据存储。它以其高性能、易用性和灵活性而受到开发者的欢迎。本文将深入探讨H2Database的高级特性,帮助你更好地...

    H2数据库最新稳定版本,平台无关包

    - **嵌入式使用**:由于其小巧的体积和简单的API,H2常被嵌入到其他Java应用程序中,作为应用程序的一部分运行。 总之,H2数据库是一个强大而灵活的解决方案,尤其适合于对性能有要求但又不需要大型数据库系统的...

    使用JAVA内存数据库h2database性能优化

    控制台模式则允许独立于应用程序运行,提供了一个Web客户端管理工具,可以通过执行SQL语句和查看模式、表来进行数据库管理。 启动h2database嵌入模式通常涉及将h2database的jar文件添加到项目的类路径中,然后通过...

    行业数据-2005H2-2018H2中国城镇地区互联网普及率.rar

    标题中的“行业数据-2005H2-2018H2中国城镇地区互联网普及率.rar”指的是一个压缩文件,其中包含了有关中国城镇地区从2005年下半年到2018年下半年互联网普及率的数据。这个压缩文件可能是由统计机构或研究团队收集和...

    h2数据库 jar包 下载 资料

    3. **多种模式**: H2支持多种数据库模式,包括单用户模式、多用户模式(TCP服务器)、内存模式(所有数据都存储在内存中)以及混合模式,这使得它能够适应不同的应用场景。 4. **兼容性**: H2数据库设计时充分考虑...

    H2 Database(H2内存数据库)

    H2就不做很多介绍了。资源包内容列表是我进行H2预研是收集的H2资料,应该是最全面的的了: 1、h2.pdf (H2 API) 2、h2-1.3.173.jar (截止2013-8-15最新的H2.jar) 3、h2-2013-07-28.zip (截止2013-8-15最新的H2服务...

    2005H2-2018H2中国农村地区互联网普及率.xls

    2005H2-2018H2中国农村地区互联网普及率.xls

    h2database,h2是一个用java编写的可嵌入rdbms。.zip

    H2数据库是一个由Java编写的高性能、轻量级的关系型数据库管理系统(RDBMS),它在许多场景下作为开发和测试的理想选择。由于其开源性质,H2数据库得到了全球开发者社区的支持,允许自由使用、修改和分发。下面将...

    2005H2-2018H2中国城镇地区互联网普及率.xls

    2005H2-2018H2中国城镇地区互联网普及率.xls

    h2数据库及h2数据库驱动

    在内嵌模式下,H2数据库直接作为应用程序的一部分运行,无需额外的服务器进程。这对于开发和测试环境特别方便,因为数据库可以直接与应用一起启动和关闭。而服务器模式则允许远程客户端连接到数据库,提供了一种多...

    springboot整合h2数据库实战

    在写的单元测试时,我们往往会遇到一个问题,测试用例所依赖的数据库数据被修改或删除了,或者在一个新的环境下所依赖的数据库不存在,或者数据库服务器挂了,导致单元测试无法通过,进而构建失败。在这种情况下,...

    H2 Database 教程

    H2 Database是一款基于Java开发的开源内存数据库系统,它同时支持嵌入式模式和服务器模式运行,具备了小型、快速、易于使用的特点,并提供了JDBC接口用于数据库的连接。H2数据库适合嵌入到Java应用程序中,不需要...

    h2数据库批量导出

    H2数据库是一款开源、高性能、轻量级的Java关系型数据库,广泛应用于测试、开发以及嵌入式环境。它支持多种数据库模式,包括MySQL、Oracle等,并且提供了丰富的命令行工具和API,使得数据库的管理与操作变得简单高效...

    h2_Java嵌入式_h2_

    2. **嵌入式模式**:H2可以作为一个嵌入式数据库运行,这意味着它可以直接作为应用程序的一部分,无需额外的服务器进程。这对于单用户或客户端应用来说非常方便,因为它简化了部署和管理。 3. **独立服务器模式**:...

    H2数据库内容打包,包含最新的官方文档和H2官方包,源码等

    1. **内存数据库**:H2数据库的一大特色是它的内存模式,这使得数据存储在内存中,读写操作速度非常快。然而,由于数据不持久化到磁盘,一旦数据库关闭,所有数据都会丢失。为了解决这个问题,H2提供了混合模式,...

    H2数据库客户端

    H2数据库是一款轻量级、高性能的开源关系型数据库系统,设计用于嵌入式和服务器模式的应用。它以其简洁的API、高速度和灵活性而受到开发者的欢迎。H2数据库支持SQL标准,可以方便地与Java应用程序集成,尤其适合于...

    H2GIS是H2数据库的一个地理空间扩展

    H2数据库本身是一个轻量级、开源的Java数据库管理系统,广泛用于嵌入式应用和测试环境,而H2GIS则为其添加了对地理信息系统(GIS)功能的支持,使得用户能够存储、查询和分析具有空间特性的数据。 在Java开发中,H2...

    h2数据库.pdf

    **H2**是一种轻量级的开源关系型数据库管理系统,特别适用于嵌入式应用程序。它由Thomas Mueller开发,并且支持多种模式:既可以作为嵌入式数据库运行在应用程序内部,也可以作为一个服务器模式独立运行。 #### 二...

Global site tag (gtag.js) - Google Analytics