CN104468704A - 支持内容中心网络的Web服务器***及处理方法 - Google Patents
支持内容中心网络的Web服务器***及处理方法 Download PDFInfo
- Publication number
- CN104468704A CN104468704A CN201410563488.9A CN201410563488A CN104468704A CN 104468704 A CN104468704 A CN 104468704A CN 201410563488 A CN201410563488 A CN 201410563488A CN 104468704 A CN104468704 A CN 104468704A
- Authority
- CN
- China
- Prior art keywords
- ccn
- module
- request
- interest bag
- servlet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了支持内容中心网络的Web服务器***及处理方法,Web服务器***包括:CCN连接单元,用于接收CCN兴趣包并存储在队列数据结构中,从队列数据结构中读取、解析和聚合CCN兴趣包;CCN处理单元,用于CCN兴趣包后台处理线程的分配及管理,把CCN兴趣包封装成Servlet请求,将与Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;CCN内容管理单元,用于管理静态文件和数据库连接,可以将Web应用程序中静态文件写入CCN文件***。该Web服务器***可以处理客户端推送数据的CCN兴趣包,可以实现在CCN网络中数据从客户端到Web服务器端的推送上传。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种支持内容中心网络的Web服务器***及处理方法。
背景技术
近年来,基于TCP/IP体系结构的互联网已经成为社会的基础网络设施,用户接入互联网获取各类的服务,以满足主机与主机之间的数据通信需求。TCP/IP网络最典型的应用场景是用户在Web浏览器中指定统一资源***(Uniform Resource Locator,简称URL)来访问互联网上的资源,互联网会根据URL定位运行Web服务器的远端主机,在应用层Web浏览器和Web服务器之间通常用超文本传送协议(Hypertext Transfer Protocol,简称HTTP协议)进行交互。而随着云计算、物联网、移动通信技术的飞速发展,传统的基于端的TCP/IP互联网体系结构面临可扩展性、动态性、以及安全性问题。
内容中心网络(Content-Centric Network,简称为CCN)是一种全新的网络架构,CCN与传统的TCP/IP基于地址的网络架构完全不同,CCN基于内容名字进行数据的共享和交互,而不需要关心通信双方的物理地址和主机。无论从经济角度还是从技术角度去分析,TCP/IP网络向CCN的演进需要一个过渡的过程,即在很长的一段时间内,两种网络架构会同时存在,或者CCN以叠加网的方式运行在TCP/IP网络之上。
为了连接TCP/IP与CCN网络,现有技术中至少存在如下问题:
目前普遍采用部署协议网关的方式,分别在接入端和Web服务器端部署此类网关进行协议转换,用户发送请求到接收到数据,需要进行多达四次HTTP与CCNx之间的协议转换,在CCN网络中无法支持各 类Web服务,导致工作效率低下。
发明内容
为了解决CCN网络中各类Web服务的支持问题,一方面,
本发明提供了一种支持内容中心网络的Web服务器***,包括:
内容中心网络CCN连接单元、CCN处理单元和CCN内容管理单元;
所述CCN连接单元用于接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包,所述CCN兴趣包为客户端通过CCN网络发送至Web服务器;
所述CCN处理单元用于所述CCN兴趣包后台处理线程的分配及管理,把所述CCN兴趣包封装成Servlet请求,将与所述Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
所述CCN内容管理单元用于管理静态文件和数据库连接,将Web应用程序中静态文件写入CCN文件***。
可选的,所述CCN连接单元包括CCN路由器、启动模块、队列管理模块、请求解析模块、类型判断模块和请求聚合模块;
所述CCN路由器用于接收所述CCN兴趣包,进行转发;
所述启动模块用于在Web服务器启动时读取配合文件、创建和初始化CCN网络连接的客户端对象;
所述队列管理模块用于接收所述CCN路由器转发的CCN兴趣包,并采用先入先出的管理策略对所述CCN兴趣包进行管理;
所述请求解析模块用于接收所述队列管理模块输出的CCN兴趣包,解析出所述CCN兴趣包的内容和类型信息;
所述类型判断模块用于根据所述类型信息判断所述CCN兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求;
所述请求聚合模块用于根据所述CCN兴趣包的内容是否重复, 并将多个内容相同的CCN兴趣包聚合为一个CCN请求。
可选的,所述CCN连接单元还包括请求生成模块、内容更新模块和静态存储模块;
所述请求生成模块用于根据CCN兴趣包的类型进行处理并获取与所述CCN兴趣包相应的数据包,重构所述数据包格式得到新的数据包;
所述内容更新模块用于根据所述新的数据包进行处理,对数据库或静态文件进行更新;
所述静态存储模块用于接收并响应所述拉模式的静态文件请求。
可选的,所述CCN处理单元包括:线程管理模块、请求封装模块和缓存处理模块;
所述线程管理模块用于接收到所述CCN兴趣包时,为所述CCN兴趣包分配处理线程,以及所述缓存处理模块完成缓存处理之后回收线程;
所述请求封装模块用于对所述CCN兴趣包进行封装,得到Servlet请求;
所述缓存处理模块用于根据所述Servlet请求查询缓存的数据包,进行初始化请求缓存以及初始化请求缓存,并返回数据包,所述数据包中包括与所述Servlet请求相应的Servlet响应数据。
可选的,所述CCN连接单元和所述CCN处理单元之间通过CCN请求适配模块连接。
可选的,所述***还包括:Tomcat Servlet容器,所述Tomcat Servlet容器与所述CCN处理单元之间通过CCN Servlet适配模块连接,所述Tomcat Servlet容器还与所述CCN内容管理单元连接。
可选的,所述***还包括:HTTP连接单元和HTTP处理单元,所述HTTP连接单元和所述HTTP处理单元之间通过HTTP请求适配模块连接,所述HTTP处理单元和所述Tomcat Servlet容器之间还通 过HTTP Servlet适配模块连接。
另一方面,
本发明还提供了一种支持内容中心网络的Web服务器的处理方法,包括:
接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包,所述CCN兴趣包为客户端通过CCN网络发送至Web服务器;
为所述CCN兴趣包分派后台处理线程把所述CCN兴趣包封装成Servlet请求,将与所述Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
回收所述后台处理线程。
可选的,所述接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包的步骤包括:
接收所述CCN兴趣包,并将所述CCN兴趣包加入到队列数据结构中,并逐一进行转发;
采用先入先出的管理策略从所述队列数据结构中读取CCN兴趣包并进行解析,得到所述CCN兴趣包的内容和类型信息;
根据所述CCN兴趣包的内容是否重复,并将多个内容相同的CCN兴趣包聚合为一个CCN请求;
根据所述类型信息判断所述CCN兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求,包括:
如果为拉模式的动态请求,则线程池为所述拉模式的动态请求分配线程,从Tomcat Servlet容器调用Servlet;
如果为推送模式的动态请求,则线程池为所述拉模式的动态请求分配线程,并生成兴趣包;
如果为拉模式的静态文件请求,则回复与所述拉模式的静态文件请求相对应的数据包。
可选的,所述方法还包括:
根据CCN兴趣包的类型获取与所述CCN兴趣包相应的数据包,重构所述数据包格式得到新的数据包;
根据所述新的数据包进行处理,对数据库或静态文件进行更新;
如果所述推送模式的动态请求为数据库更新,则对数据库中的数据进行更新;
如果所述推送模式的动态请求为静态文件更新,则将所述静态文件的内容写入到所述静态存储模块中。
本发明提供的支持内容中心网络的Web服务器***及处理方法,可以处理客户端推送数据的CCN兴趣包,可以实现在CCN网络中数据从客户端到Web服务器端的推送上传。
附图说明
图1为本发明提供的一种支持内容中心网络的Web服务器***的组成示意图;
图2为本发明提供的CCN连接单元100的组成示意图;
图3为本发明提供的CCN处理单元200的组成示意图;
图4为本发明提供的一种支持内容中心网络的Web服务器的处理方法的步骤流程图;
图5为本发明中步骤S10的步骤流程图;
图6为本发明实施例二提供的支持CCNx协议的Web处理方法的时序图;
图7为本发明实施例三提供的CCN连接单元工作的时序图;
图8为本发明实施例四提供的CCN处理单元工作的时序图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
CCN网络协议的原型***为CCNx(CCN协议栈也称为CCNx), CCNx包括CCN路由器,该原型***提供了开发CCN应用程序的接口。CCN路由器具有网内缓存的功能,CCN路由器有三个关键的组件:数据缓存(Content Store,简称为CS),请求待定表(Pending Interest Table,简称为PIT),请求转发表(Forwarding Information Base,简称为FIB)。
本发明提供了一种支持内容中心网络的Web服务器***,组成示意图如图1所示,包括:
内容中心网络CCN连接单元100、CCN处理单元200和CCN内容管理单元300;
CCN连接单元100用于接收CCN兴趣包并存储在队列数据结构中,从队列数据结构中读取、解析以及聚合CCN兴趣包,其中CCN兴趣包为客户端通过CCN网络发送至Web服务器;
CCN处理单元200用于CCN兴趣包后台处理线程的分配及管理,把CCN兴趣包封装成Servlet请求,将与Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
CCN内容管理单元300用于管理静态文件和数据库连接,将Web应用程序中静态文件写入CCN文件***。
可选的,CCN连接单元100的组成示意图如图2所示,包括CCN路由器101、启动模块102、队列管理模块103、请求解析模块104、类型判断模块105和请求聚合模块106;
CCN路由器101用于接收CCN兴趣包,进行转发;
启动模块102用于在Web服务器启动时读取配合文件、创建和初始化CCN网络连接的客户端对象;
队列管理模块103用于接收CCN路由器转发的CCN兴趣包,并采用先入先出的管理策略对CCN兴趣包进行管理;
请求解析模块104用于接收队列管理模块输出的CCN兴趣包,解析出CCN兴趣包的内容和类型信息;
类型判断模块105用于根据类型信息判断CCN兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求;
请求聚合模块106用于根据CCN兴趣包的内容是否重复,并将多个内容相同的CCN兴趣包聚合为一个CCN请求。
可选的,CCN连接单元100还包括请求生成模块107、内容更新模块108和静态存储模块109。
请求生成模块107用于根据CCN兴趣包的类型进行处理获取与CCN兴趣包相应的数据包,重构数据包格式得到新的数据包;
内容更新模块108用于根据新的数据包进行处理,对数据库或静态文件进行更新;
静态存储模块109用于接收并响应拉模式的静态文件请求。
可选的,CCN处理单元200的组成示意图如图3所示,包括:线程管理模块201、请求封装模块202和缓存处理模块203;
线程管理模块201用于接收到CCN兴趣包时,为CCN兴趣包分配处理线程,以及缓存处理模块完成缓存处理之后回收线程;
请求封装模块202用于对CCN兴趣包进行封装,得到Servlet请求;
缓存处理模块203用于根据Servlet请求查询缓存的数据包,进行初始化请求缓存以及初始化请求缓存,并返回数据包,其中数据包中包括与Servlet请求相应的Servlet响应数据。
可选的,CCN连接单元100和CCN处理单元200之间通过CCN请求适配模块110连接。
可选的,***还包括:Tomcat Servlet容器400,Tomcat Servlet容器400与CCN处理单元100之间通过CCN Servlet适配模块111连接,Tomcat Servlet容器400还与CCN内容管理单元300连接。
可选的,***还包括:HTTP连接单元100’和HTTP处理单元200’,HTTP连接单元100’和HTTP处理单元200’之间通过HTTP请求适配 模块连接110’,HTTP处理单元200’和Tomcat Servlet容器400之间还通过HTTP Servlet适配模块111’连接。
基于上述Web服务器***,本发明还提供了一种支持内容中心网络的Web服务器的处理方法,步骤流程图如图4所示,包括:
步骤S10、接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包,所述CCN兴趣包为客户端通过CCN网络发送至Web服务器;
步骤S20、为所述CCN兴趣包分派后台处理线程把所述CCN兴趣包封装成Servlet请求,将与所述Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
步骤S30、回收后台处理线程,以便下次接收到CCN兴趣包时为其分配后台处理线程进行处理。
可选的,步骤S10接收CCN兴趣包并存储在队列数据结构中,从队列数据结构中读取、解析以及聚合CCN兴趣包的步骤流程图如图5所示,包括:
步骤S11、接收CCN兴趣包,并将CCN兴趣包加入到队列数据结构中,并逐一进行转发;
步骤S12、采用先入先出的管理策略从队列数据结构中读取CCN兴趣包并进行解析,得到CCN兴趣包的内容和类型信息;
步骤S13、判断CCN兴趣包的内容是否重复,并将多个内容相同的CCN兴趣包聚合为一个CCN请求;
步骤S14、根据类型信息判断CCN兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求,包括:
如果为拉模式的动态请求,则线程池为拉模式的动态请求分配线程,从Tomcat Servlet容器调用Servlet;
如果为推送模式的动态请求,则线程池为拉模式的动态请求分配线程,并生成兴趣包;
如果为拉模式的静态文件请求,则回复与拉模式的静态文件请求相对应的数据包。
可选的,本发明提供的方法步骤S20之后,步骤S30之前还包括:
步骤S40、根据CCN兴趣包的类型获取与CCN兴趣包相应的数据包,重构数据包格式得到新的数据包;
步骤S50、根据新的数据包进行处理,对数据库或静态文件进行更新;
如果推送模式的动态请求为数据库更新,则对数据库中的数据进行更新;
如果推送模式的动态请求为静态文件更新,则将静态文件的内容写入到静态存储模块中。
另外,步骤S20之前还可以包括:进行初始化请求缓存以及初始化请求缓存。
实施例一
如图1所示,本实施例提供一种同时支持CCNx和HTTP协议的Web服务器,包括CCN连接单元100、CCN处理单元200、CCN内容管理单元300,HTTP协议连接处理单元则完全采用了Apache Tomcat的现有技术。
如图2所示,CCN连接单元100用于接收来和解析来自于CCN网络的CCN兴趣包,包括CCN路由器101、启动模块102、队列管理模块103、请求解析模块104、类型分析模块105、请求聚合模块106、请求生成模块107、内容更新模块108和静态存储模块109。
CCN路由器101为现有的开源实现,包含数据缓存CS,请求待定表PIT,请求转发表FIB,CCN路由器101会将CCN兴趣包转发给队列管理模块103。启动模块102用于Web服务器启动时读取配合文件、创建和初始化CCN对象。队列管理模块103用于缓存CCN请 求,避免当CCN兴趣包太多时,Web服务器无法及时处理而出现丢包现象,队列管理模块采用先进先出(FIFO)的管理策略,队列管理模块将CCN兴趣包传送给请求解析模块104。请求解析模块104用于CCN兴趣包的解析,从CCN兴趣包中解析内容组件、包序号组件。类型判断模块105用于CCN兴趣包类型的判断,为拉模式(pull mode)还是推送模式(push mode)类型。请求聚合模块106用于将同一内容的CCN兴趣包聚合为一个请求发给CCN处理单元,聚合请求模块106维护和管理请求哈希表,用于判断聚合后的请求是否为重复请求。
请求生成模块107用于生成推送模式的请求,发送给客户端获取内容。内容更新模块108用于接收推送模式请求得到的数据包,调用CCN处理单元将内容进行更新。静态存储模块109用于接收和响应CCN静态文件请求,CCN内容管理单元会将静态文件写入静态存储模块109中。
CCN连接单元100与CCN处理单元200通过CCN请求适配模块110连接。
CCN处理单元200用于处理CCN连接单元100发送来的CCN请求,CCN处理单元包括线程管理模块201、请求封装模块202和缓存处理模块303。线程管理模块113用于分配和回收处理线程。
请求封装模块202用于封装CCN请求为Servlet请求,并将请求传递给Servlet容器,完成CCN请求的缓存。
缓存处理模块303根据Servlet请查询缓存的数据包,进行初始化请求缓存以及初始化请求缓存,并返回数据包。同时缓存处理模块303还用于获取和保存Servlet响应。
CCN处理单元200与Tomcat Servlet容器400通过CCN Servlet适配模块111连接。
CCN内容管理单元300用于对特定目录下的静态内容进行监控, 当有静态内容有更新状态时,比如对文件的修改或者新文件的创建,CCN内容管理单元300会将静态内容写入静态存储模块110中,从而实现用户访问的加速。
实施例二
结合Web服务器,说明本实施例提供了一种支持CCNx协议的Web处理方法,为了更加清楚的说明处理方法,图6中将用户的请求分为三类并分别进行了展示,这三类请求分别是拉模式的动态Web请求,推送模式的动态web请求,以及静态web请求。
(1)拉模式的动态请求处理方法包括:
步骤S201、客户端发送CCN兴趣包至Web服务器的CCN连接单元。
步骤S202、Web服务器的CCN连接单元接收、解析、聚合CCN兴趣包,最后将请求发送给CCN处理单元。
步骤S203、Web服务器的CCN处理单元分配线程、封装请求、初始化缓存并将请求发送给Tomcat Servlet容器。
步骤S204、Web服务器的Tomcat Servlet容器解析Servlet,并执行和调用相应的Servlet与内容管理模块进行数据的交互。
S205、Web服务器的内容管理模块进行后台数据的处理,并将结果返回给Servlet。
步骤S206、Web服务器的CCN处理模块将数据封装成CCN数据包,最终由CCN连接模块返回给客户端。
(2)推送模式的动态请求处理方法包括:
步骤S207、完成上述步骤S201及步骤S202后,Web服务器的CCN处理单元从线程池分配处理线程,生成新的CCN兴趣包发送给CCN客户端,其命名格式规范如下:
用户发送CCN兴趣包的名字规范:CCNX://服务器路径//推送模 式的标识符//客户端路由//要推送的文件名;
Web服务器生成请求的名字规范:CCNX://客户端路径//客户上传的文件名。
例如,如果用户希望将image.gif文件从客户端推送到CCN网络中以ccnx:/server命名的web服务器上,则用发送兴趣包的名字为CCNX://server_side/post_notifications/client_side/image.gif,当Web服务器收到请求受,可以解析出该请求为推送模式动态Web请求类型,CCN处理单元会生成CCNX://client_side/image.gif的CCN兴趣包至客户端,从而完成文件image.gif从CCN客户端到CCN服务器的推送。
步骤S208、Web服务器的CCN连接单元接收请求数据包。
步骤S209、Web服务器的CCN处理单元解析CCN数据包,取出这些CCN数据包的载荷重组成完整的文件。
步骤S210、如果上传的是文件,则CCN处理单元调用内容管理模块,将该文件保存在相应的目录下。
步骤S211、如果上传的内容需要数据库更新,则CCN处理单元触发Tomcat Servlet容器调用相应的Servlet。
步骤S212、Server执行数据库更新操作。
(3)拉模式静态web请求处理方法包括:
步骤S213、完成步骤S201后,CCN连接单元解析静态请求,在CCN静态存储在查询数据包,若查询到匹配的CCN数据包,则从CCN静态存储中取出CCN数据包。
步骤S214、CCN静态存储向客户端发送CCN数据包。
实施例三
结合Web服务器,本实施例提供了一种支持CCNx接收与解析方法,在Web服务器的CCN连接单元中实现,如图7所示,包括:
步骤S301、CCN连接单元将CCN兴趣包放在缓存队列中。
步骤S302、内容解析模块解析CCN兴趣包,包括CCN兴趣包的前缀名和类型信息。
步骤S303、类型判断模块判断CCN请求的类型,根据请求映射后台的Servlet程序,如果映射成果,则按动态Web请求处理,如果映射失败,则不会继续处理。
步骤S304、请求聚合模块实现针对同一个Web请求的多个CCN兴趣包的聚合。
步骤S305、若动态Web请求为拉模式的动态请求,则请求聚合模块调用请求适配模块。
步骤S306、请求适配模块连接CCN处理单元、Tomcat Servlet容器并返回CCN数据包。
步骤S307、若动态Web请求为推送模式的动态请求,则请求聚合模块调用请求生成模块。
步骤S308、请求生成模块调用请求适配模块。
步骤S309、请求聚合模块连接CCN处理单元分配处理线程,并生成兴趣包发送给客户端。
步骤S310、CCN连接单元将CCN数据包放入缓存队列中。
步骤S311、内容解析模块将CCN数据包发送给请求生成模块。
步骤S312、请求生成模块重构CCN数据包,并生成完整的内容,然后调用内容更新模块。
步骤S313、若推送模式的动态请求为数据库更新、则内容更新模块通过请求适配模块调用后台数据库。
步骤S314、若推送模式的动态请求为静态文件更新、则内容更新模块将文件存复制在服务器相应的存储路径,同时将该内容写入CCN静态存储CCNRepo中。
步骤S315、CCN静态存储CCNRepo处理并回复静态的CCN兴 趣包。
实施例四
结合Web服务器,本实施例提供了一种支持CCNx协议请求处理方法,如图8所示,包括:
步骤S401、CCN连接单元将CCN兴趣包发送给请求适配模块、请求聚合模块调用线程管理模块。
步骤S402、线程管理模块分配处理线程。
步骤S403、处理线程调用缓存管理模块。
步骤S404、缓存管理模块在动态缓存中根据CCN兴趣包查询CCN数据包,如果CCN数据包存在,则返回该数据包;如果不存在,则初始化请求缓存,并初始化响应缓存。
步骤S405、处理线程调用Servlet适配模块。
步骤S406、Servlet适配模块连接Tomcat Servlet容器,调用Servlet,Servlet连接CCN内容管理单元并回复数据。
步骤S407、响应缓存将Servlet适配模块回复的数据编译成CCN数据包存入动态缓存,同时想请求适配模块回复该CCN数据包。
步骤S408、当Servlet处理完整个请求后,Servlet适配模块会向处理线程发送完成信号。
步骤S409、处理线程会根据请求继续查询动态缓存,当通知线程管理模块收回该线程。
步骤S410、线程管理模块收回该处理线程。
实施例五
结合Web服务器,本实施例提供了该Web服务器在TCP/IP与CCN混合网络上,或者CCN网络之上,或者基于TCP/IP的CCN叠加网络之上的部署方法,该Web服务器在Linux操作***中具体部 署的步骤为:
第一步:将Web服务器编译后的程序包、CCN原型***CCNx的ccn.jar程序包,拷贝到/yourpath/ccntomcat目录下。
第二步:修改配置文件/etc/profile并修改环境变量。
export CATALINA_HOME=/yourpath/ccntomcat
export TOMCAT_HOME=/yourpath/ccntomcat
export
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
export PATH=$PATH:$CATALINA_HOME/bin.
第三步:在"/yourpath/ccntomcat/web.xml"配置文件中配置Servlet映射关系,可以在Web服务器的配
置文件"/yourpath/ccntomcat/conf/server.xml"中修改HTTP及CCN请求的最大处理线程数,监听端口等参数。
第四步:将Web应用程序部署在"/yourpath/ccntomcat/webapps/root"中,包括静态文件、数据库、servlet等文件。
第五步:启动CCN的原型***CCNx的静态文件***Repository的后台运行程序。
第六步:执行Web服务器启动脚本"/yourpath/ccntomcat/bin/startup.sh"。
第七步:执行Web服务器关闭脚本"/yourpath/ccntomcat/bin/shutdown.sh"。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种支持内容中心网络的Web服务器***,其特征在于,包括:内容中心网络CCN连接单元、CCN处理单元和CCN内容管理单元;
所述CCN连接单元用于接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包,所述CCN兴趣包为客户端通过CCN网络发送至Web服务器;
所述CCN处理单元用于所述CCN兴趣包后台处理线程的分配及管理,把所述CCN兴趣包封装成Servlet请求,将与所述Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
所述CCN内容管理单元用于管理静态文件和数据库连接,将Web应用程序中静态文件写入CCN文件***。
2.根据权利要求1所述的Web服务器***,其特征在于,所述CCN连接单元包括CCN路由器、启动模块、队列管理模块、请求解析模块、类型判断模块和请求聚合模块;
所述CCN路由器用于接收所述CCN兴趣包,进行转发;
所述启动模块用于在Web服务器启动时读取配合文件、创建和初始化CCN网络连接的客户端对象;
所述队列管理模块用于接收所述CCN路由器转发的CCN兴趣包,并采用先入先出的管理策略对所述CCN兴趣包进行管理;
所述请求解析模块用于接收所述队列管理模块输出的CCN兴趣包,解析出所述CCN兴趣包的内容和类型信息;
所述类型判断模块用于根据所述类型信息判断所述兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求;
所述请求聚合模块用于根据所述CCN兴趣包的内容是否重复,并将多个内容相同的CCN兴趣包聚合为一个CCN请求。
3.根据权利要求2所述的Web服务器***,其特征在于,所述CCN连接单元还包括请求生成模块、内容更新模块和静态存储模块;
所述请求生成模块用于根据CCN兴趣包的类型进行处理并获取与所述CCN兴趣包相应的数据包,重构所述数据包格式得到新的数据包;
所述内容更新模块用于根据所述新的数据包进行处理,对数据库或静态文件进行更新;
所述静态存储模块用于接收并响应所述拉模式的静态文件请求。
4.根据权利要求1所述的Web服务器***,其特征在于,所述CCN处理单元包括:线程管理模块、请求封装模块和缓存处理模块;
所述线程管理模块用于接收到所述CCN兴趣包时,为所述CCN兴趣包分配处理线程,以及所述缓存处理模块完成缓存处理之后回收线程;
所述请求封装模块用于对所述CCN兴趣包进行封装,得到Servlet请求;
所述缓存处理模块用于根据所述Servlet请求查询缓存的数据包,进行初始化请求缓存以及初始化请求缓存,并返回数据包,所述数据包中包括与所述Servlet请求相应的Servlet响应数据。
5.根据权利要求1所述的Web服务器***,其特征在于,所述CCN连接单元和所述CCN处理单元之间通过CCN请求适配模块连接。
6.根据权利要求1所述的Web服务器***,其特征在于,所述***还包括:Tomcat Servlet容器,所述Tomcat Servlet容器与所述CCN处理单元之间通过CCN Servlet适配模块连接,所述TomcatServlet容器还与所述CCN内容管理单元连接。
7.根据权利要求6所述的Web服务器***,其特征在于,所述***还包括:HTTP连接单元和HTTP处理单元,所述HTTP连接单元和所述HTTP处理单元之间通过HTTP请求适配模块连接,所述HTTP处理单元和所述Tomcat Servlet容器之间还通过HTTP Servlet适配模块连接。
8.一种支持内容中心网络的Web服务器的处理方法,其特征在于,包括:
接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包,所述CCN兴趣包为客户端通过CCN网络发送至Web服务器;
为所述CCN兴趣包分派后台处理线程把所述CCN兴趣包封装成Servlet请求,将与所述Servlet请求相应的Servlet响应数据封装成CCN数据包并回复给客户端;
回收所述后台处理线程。
9.根据权利要求8所述的处理方法,其特征在于,所述接收CCN兴趣包并存储在队列数据结构中,从所述队列数据结构中读取、解析以及聚合所述CCN兴趣包的步骤包括:
接收所述CCN兴趣包,并将所述CCN兴趣包加入到队列数据结构中,并逐一进行转发;
采用先入先出的管理策略从所述队列数据结构中读取CCN兴趣包并进行解析,得到所述CCN兴趣包的内容和类型信息;
判断所述CCN兴趣包的内容是否重复,并将多个内容相同的CCN兴趣包聚合为一个CCN请求;
根据所述类型信息判断所述CCN兴趣包的类型为拉模式的动态请求、推送模式的动态请求或拉模式的静态文件请求,包括:
如果为拉模式的动态请求,则线程池为所述拉模式的动态请求分配线程,从Tomcat Servlet容器调用Servlet;
如果为推送模式的动态请求,则线程池为所述拉模式的动态请求分配线程,并生成兴趣包;
如果为拉模式的静态文件请求,则回复与所述拉模式的静态文件请求相对应的数据包。
10.根据权利要求9所述的处理方法,其特征在于,所述方法还包括:
根据CCN兴趣包的类型获取与所述CCN兴趣包相应的数据包,重构所述数据包格式得到新的数据包;
根据所述新的数据包进行处理,对数据库或静态文件进行更新;
如果所述推送模式的动态请求为数据库更新,则对数据库中的数据进行更新;
如果所述推送模式的动态请求为静态文件更新,则将所述静态文件的内容写入到所述静态存储模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410563488.9A CN104468704B (zh) | 2014-10-21 | 2014-10-21 | 支持内容中心网络的Web服务器***及处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410563488.9A CN104468704B (zh) | 2014-10-21 | 2014-10-21 | 支持内容中心网络的Web服务器***及处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468704A true CN104468704A (zh) | 2015-03-25 |
CN104468704B CN104468704B (zh) | 2017-10-20 |
Family
ID=52914057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410563488.9A Active CN104468704B (zh) | 2014-10-21 | 2014-10-21 | 支持内容中心网络的Web服务器***及处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468704B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636974A (zh) * | 2015-02-13 | 2015-05-20 | 吴凡 | 一种信息单元集合的实时处理***及其方法 |
CN105978946A (zh) * | 2016-04-27 | 2016-09-28 | 浙江万里学院 | 一种基于内容中心网络的物联网体系架构 |
CN106411842A (zh) * | 2015-08-03 | 2017-02-15 | 帕洛阿尔托研究中心公司 | 在内容中心网络堆栈中传输状态 |
WO2017028734A1 (en) * | 2015-08-14 | 2017-02-23 | Huawei Technologies Co., Ltd. | Method and apparatus for pushing data in a content-centric networking (ccn) network |
CN106559256A (zh) * | 2015-09-24 | 2017-04-05 | 帕洛阿尔托研究中心公司 | 用于消除以信息为中心的网络中的未检测兴趣循环的***和方法 |
CN107229623A (zh) * | 2016-03-23 | 2017-10-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN107733946A (zh) * | 2016-08-11 | 2018-02-23 | 中国电子科技集团公司电子科学研究院 | 一种ccn网络中基于主动转发的内容源移动性支持方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136945A1 (en) * | 2010-11-30 | 2012-05-31 | Samsung Electronics Co., Ltd. | Terminal and intermediate node in content oriented networking environment and communication method of terminal and intermediate node |
CN103095724A (zh) * | 2013-02-05 | 2013-05-08 | 西安电子科技大学 | 一种内容中心网络多个兴趣包压缩发送及处理的方法 |
CN103607412A (zh) * | 2013-12-04 | 2014-02-26 | 西安电子科技大学 | 基于树的内容中心网络多个兴趣包处理方法 |
CN103701910A (zh) * | 2013-12-30 | 2014-04-02 | 北京邮电大学 | 支持内容中心网络的资源请求处理方法及Web浏览器 |
-
2014
- 2014-10-21 CN CN201410563488.9A patent/CN104468704B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120136945A1 (en) * | 2010-11-30 | 2012-05-31 | Samsung Electronics Co., Ltd. | Terminal and intermediate node in content oriented networking environment and communication method of terminal and intermediate node |
CN103095724A (zh) * | 2013-02-05 | 2013-05-08 | 西安电子科技大学 | 一种内容中心网络多个兴趣包压缩发送及处理的方法 |
CN103607412A (zh) * | 2013-12-04 | 2014-02-26 | 西安电子科技大学 | 基于树的内容中心网络多个兴趣包处理方法 |
CN103701910A (zh) * | 2013-12-30 | 2014-04-02 | 北京邮电大学 | 支持内容中心网络的资源请求处理方法及Web浏览器 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636974B (zh) * | 2015-02-13 | 2018-01-09 | 吴凡 | 一种信息单元集合的实时处理***及其方法 |
CN104636974A (zh) * | 2015-02-13 | 2015-05-20 | 吴凡 | 一种信息单元集合的实时处理***及其方法 |
CN106411842B (zh) * | 2015-08-03 | 2021-03-16 | 思科技术公司 | 在内容中心网络堆栈中传输状态 |
CN106411842A (zh) * | 2015-08-03 | 2017-02-15 | 帕洛阿尔托研究中心公司 | 在内容中心网络堆栈中传输状态 |
WO2017028734A1 (en) * | 2015-08-14 | 2017-02-23 | Huawei Technologies Co., Ltd. | Method and apparatus for pushing data in a content-centric networking (ccn) network |
CN107925674A (zh) * | 2015-08-14 | 2018-04-17 | 华为技术有限公司 | 在内容为中心的网络(ccn)中推送数据的方法和装置 |
CN107925674B (zh) * | 2015-08-14 | 2020-04-03 | 华为技术有限公司 | 在内容为中心的网络(ccn)中推送数据的方法和装置 |
US10757213B2 (en) | 2015-08-14 | 2020-08-25 | Futurewei Technologies, Inc. | Method and apparatus for pushing data in a content-centric networking (CCN) network |
CN106559256A (zh) * | 2015-09-24 | 2017-04-05 | 帕洛阿尔托研究中心公司 | 用于消除以信息为中心的网络中的未检测兴趣循环的***和方法 |
CN107229623A (zh) * | 2016-03-23 | 2017-10-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN107229623B (zh) * | 2016-03-23 | 2020-11-03 | 泰康保险集团股份有限公司 | 数据查询处理方法及装置 |
CN105978946A (zh) * | 2016-04-27 | 2016-09-28 | 浙江万里学院 | 一种基于内容中心网络的物联网体系架构 |
CN107733946A (zh) * | 2016-08-11 | 2018-02-23 | 中国电子科技集团公司电子科学研究院 | 一种ccn网络中基于主动转发的内容源移动性支持方法 |
CN107733946B (zh) * | 2016-08-11 | 2021-05-07 | 中国电子科技集团公司电子科学研究院 | 一种ccn网络中基于主动转发的内容源移动性支持方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104468704B (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468704A (zh) | 支持内容中心网络的Web服务器***及处理方法 | |
US11729260B2 (en) | Internet-of-things resource access system and method | |
CN103051740B (zh) | 域名解析方法、dns服务器及域名解析*** | |
CN103188574B (zh) | 传输网络视频的方法及*** | |
CN107819802A (zh) | 一种在节点集群中的镜像获取方法、节点设备及服务器 | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
CN113965560A (zh) | 数据传输方法和代理服务器、存储介质及电子装置 | |
CN101262478A (zh) | 穿越网络地址转换nat的方法和设备 | |
CN103188260A (zh) | 在网关使用基于ip的网络实现ccn的方法及网关 | |
CN101183946B (zh) | 一种获取下载文件资源列表的方法及*** | |
CN101877710A (zh) | 代理网关防病毒实现方法、预分类器和代理网关 | |
CN101895520B (zh) | 微技***的数据共享方法、服务器以及数据共享*** | |
CN102055771B (zh) | 面向云服务的多并发业务流控制装置及控制方法 | |
CN108270818A (zh) | 一种微服务架构***及其访问方法 | |
CN102577237A (zh) | 网站托管服务调度方法、应用访问处理方法、装置及*** | |
CN103281394A (zh) | 文件获取方法、节点服务器和*** | |
CN107818268A (zh) | 大数据平台的访问控制方法及服务器 | |
CN107302582B (zh) | 千万级物联网场景的数据采集及弱推送方法 | |
CN110661891B (zh) | 一种基于单向网络的跨网文件即时传输方法及*** | |
CN102984223A (zh) | 一种消息发送方法、网络设备及*** | |
CN102257792B (zh) | 用于包括策略数据库的内容传递的方法 | |
CN114338832B (zh) | 一种容器云平台的网络协议转换方法及*** | |
CN110247926A (zh) | 一种交互方法和*** | |
CN110888329A (zh) | 设备厂家开放式接入的智能家居平台及其数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |