快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

ag8只为非凡试玩:利用JAVA语言实现支持视频点播的WEB服务器



作者:whongzhi 滥觞 emmok

一.项目简介:

JAVA说话是一种可移植的,简单的,壮实的嵌入式说话。并且对收集,数据库有很好的支持,ag8只为非凡试玩基于JAVA说话的这种特点可以十分轻易地建立一个小型INTERNET办事器。

本项目中,作者用JAVA说话编写了一个WEB微型办事器,对简单的HTTP哀求进行相应,并经由过程后端数据库对用户的查询进行处置惩罚,从而动态地返回HTML页面。

二.项目实现:

(一)项目详细功能阐发与开拓对象选择

可以使用一台较高设置设置设备摆设摆设的小我台式机就可以实现社区内的小型办事器,包括网页浏览,基于高速局域网的视频下载和播放,准时新闻组宣布法度榜样,邮件办事器等办事。

本软件实际上是一个HTTP协议的办事器。HTTP(Hyper Text Transfer Protocol),是一个专门为Web办事器和Web浏览器之间互换数据而设计的收集协议。它经由过程规定通用资本定位符(URLs)使客户真个浏览器与办事器的Web资本建立链接关系,从而奠定了用户对Internet透明造访的根基。

在本软件中经由过程传输HTML文件使客户端可以实现网页浏览。HTML是WWW的通用标记说话,它用来创建Web页面和节制Web信息显示款式。HTML不是编程说话,而是一种描述说话。HTML2.0获得了IETF(Internet Engineering Task Force)的支持而成为Internet国际标准。今朝,HTML已经成长到3.0和4.0版,只是新版本的标准尚未完全统一,不合的商家对HTML2.0进行了必然的扩充,引入了更多新的功能。例如,Netscape公司在HTML3.0中增添了页面底图(Background Images)和表(Table)定义等标记,使得Web页面加倍惹人入胜。

CGI是通用网关接口(Common Gateway Interface)的简称,它是Web办事器与外部法度榜样之间的通信接口,办事器并不关心外部利用法度榜样是什么说话(如C、C++、Pascal、Delphi或Perl)编写的,它只是认真接管用户输入的信息,并把CGI法度榜样所孕育发生的结果--HTML文档或其他相符HTTP规定的文件回传给用户。事实上,CGI是动态Web页面制作的第一步,但因为CGI法度榜样实现对照艰苦,而且效率不高,它已经徐徐被新的技巧所取代。

网页浏览支持的网页包括HTML,JAVASCRIPT,APPLET,VBSCRIPT等编写的网页,但不支持PHP,ASP等办事器端动态法度榜样的网页。因为办事器的规模较小,以是办事器端动态法度榜样被集成进办事器中。但可以经由过程编写相符必然规则的JAVA的CGI法度榜样实现办事器真个动态性,不过这种JAVA法度榜样的安然性很难包管。

(二)办事器的实现

1. 处置惩罚连接策略:

对付每一个用户的连接我们采取了每次哀求满意后,将用户与办事器的连接断开,这时用户假如有其他的哀求,则进入哀求行列步队从新进行资本竞争。

平日网页中的每一个图形都邑被当作是一个零丁的连接,也便是说对付一个图形很多的网页基于本办事器的连接策略将会进行多次哀求,这样的好处是防止一个容量很大年夜的网页独有收集资本。

2. 与数据库连接

在与数据库的连接中我们选用的后端数据库是微软的ACCESS数据库,因为本项目是面向小型社区的社区数据中间办事器,以是选用小型的数据库。因为JAVA的可移植性可以将办事器用在LINUX平台ag8只为非凡试玩上,这时可以用本办事器供给的数据库设置设置设备摆设摆设法度榜样连接到MySql等基于LINUX的小型数据库。

我们利用JDBC完成与数据库的连接。Java的一项出色能力是构建与平台无关的客户机/办事器数据库利用。在Java 1.1中,经由过程Java数据库连接(JDBC)实现了与各家公司之间的数据库的互连。数据库最主要的一个问题便是各家公司之间的规格大年夜战。确凿存在一种"标准"数据库说话,即"布局查询说话"(SQL-92),但各公司为了表示自己的与众不合对标准都有一些微小的篡改。以是平日必须确切知道自己要和哪家数据库公司打交道,否则极易出问题,只管存在所谓的"标准"。JDBC是面向"与平台无关"设计的,以是在编程的时刻不必关心自己要应用的是什么数据库产品。和Java中的许多API一样,JDBC也做到了只管即便的简化。我们发出的措施调用对应于从数据库网络数据时想当然的做法:同数据库连接,创建一个语句并履行查询,然后处置惩罚结果集,无论与我们打交道的是哪家数据库厂商的产品。

JDBC的应用:

为实现这一"与平台无关"的特征,JDBC为我们供给了一个"驱动法度榜样治理器",它能动态掩护数据库查询所需的所有驱动法度榜样工具。以是要是要连接由数家公司开拓的不合种类的数据库,就必要每个数据库的零丁的驱动法度榜样工具。驱动法度榜样工具会在装载时由"驱动法度榜样治理器"自动注册,并可用Class.forName()强行装载。

为打开一个数据库,必须创建一个"数据库URL",它要指定下述三方面的内容:

(1) 用"jdbc"指出要应用JDBC。

(2) "子协议":驱动法度榜样的名字或者一种数据库连接机制的名称。因为JDBC的设计从ODBC接受了许多灵感,以是可以选用的第一种子协议便是"jdbc-odbc桥",它用"odbc"关键字即可指定。

(3) 数据库标识符:随应用的数据库驱动法度榜样的不合而变更,但一样平常都供给了一个对拍照符逻辑的名称,由数据库治理软件映射(对应)到保存了数据表的一个物理目录。为使自己的数据库标识符具有任何含义,必须用自己的数据库治理软件为自己爱好的名字注册(注册的详细历程又随运行平台的不合而变更)。

所有这些信息都统一编译到一个字串里,即"数据库URL"。本例中,我们想经由过程ODBC子协议同一个标识为"vod"的数据库连接,响应的数据库URL设为:

String dbUrl = "jdbc:odbc:vod"

同样假如经由过程一个收集连接,数据库URL也必要包孕对远程机械进行标识的信息。

JDBC的连接要领:

首先,JDBC中在DriverManager中对数据库数据库驱动法度榜样进行挂号。

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

装载JDBC- ODBC桥驱动法度榜样,这样做是为了让DriverManag8只为非凡试玩ager可以找到数据库驱动法度榜样。然后使用DriverManager打开与数据库的连接。

Mycon=DriverManager.getConnection(dbUrl);

本语句的感化是,确定与由dbUrl指定的数据库的连接。DriverManager将从此中挂号的驱动法度榜样中探求最适当的驱动法度榜样。返回的Mycon代表了与特定的数据库之间的连接。

Mysta=Mycon.createStatement();

天生可以履行无参数SQL语句的Statement接口。 然后就可以在Mysta顶用executeQuery()函数履行SQL语句从返回的ResultSet获取履行结果。

3. 收集连接:

收集本身的观点并不难。我们想得到位于其他地方某台机械上的信息,并把它们移到这儿;或者相反。这与读写文件异常相似,只是文件存在于远程机械上,而且远程机械有权抉择若何处置惩罚我们哀求或者发送的数据。但大年夜多半编程说话对收集编程都较艰苦,而Java最出色的一个地便利是它的"无苦楚连网"观点。有干系网的基层细节已被尽可能地提掏出去,并暗藏在JVM以及Java的本机安装系统里进行节制。我们应用的编程模型是一个文件的模型;事实上,收集连接(一个"套接字")已被封装到系统工具里,以是可象对其他数据流那样采纳同样的措施调用。除此以外,在我们处置惩罚另一个连网问题--同时节制多个收集连接--的时刻,Java内建的多线程机制也是十分方便的。

办事器的主要义务是侦听建立连接的哀求,这是由我们创建的特定办事器工具完成的。而客户机的义务是试着与一台办事器建立连接,这是由我们创建的特定客户机工具完成的。一旦连接建好,那么无论在办事器端照样客户机端,连接变成了一个IO数据流工具。从这时开始,我们可以象读写一个通俗的文件那样对待连接。以是一旦建好连接,我们只需应用自己认识的IO敕令即可。

首先,server=new ServerSocket(80,acceptamount);

天生一个办事器真个套接字。此中第一个参数是表示办事器的 监听端口,端口是机械内环球无双的场所。有些时刻,一个IP地址并不够以完备标识一个办事器。这是因为在一台物理性的机械中,每每运行着多个办事器(法度榜样)。由IP表达的每台机械也包孕了"端口"(Port)。我们设置一个客户机或者办事器的时刻,必须选择一个无论客户机照样办事器都认可连接的端口。端口并不是机械上一个物理上存在的场所,而是一种软件抽象(主如果为了表述的方便)。客户法度榜样知道若何经由过程机械的IP地址同它连接,但如何才能同自己真正必要的那种办事连接呢(一样平常每个端口都运行着一种办事,一台机械可能供给了多种办事,比如HTTP和FTP等等)?端口编号在这里扮演了紧张的角色,它是必需的一种二级定址步伐。

在HTTP协议中的默认办事端口是80,当然在小型社区中也可以应用其它的端口。本例中应用了默认办事端口。

Socket s=server.accept();

这一句的感化是使办事器 监听本机上的80端口,等待客户机的连接。在没有新的连接的环境下,办事器壅闭自身。当客户机连接到办事器后函数返回一个套接字。然后,经由过程套接字的输入,输出流即可用读取本机文件的措施与客户机进行通信。

(三)客户端设计

在客户端,抱负的装配是电视机,由于当前电视机遍及率高,有线电视线路遍布各地,可重用资本广泛。但今朝的电视机绝大年夜多半是模拟电视机,它们只能接管模拟电视旌旗灯号,无法接管数字电视旌旗灯号,是以这种电视机的彩色图像和伴音质量并不是很高。而数字电视无论从价格,电台改造,线路改装等方面都存在很大年夜的艰苦,短期内难以遍及。那么能否有一种协调规划,纵然今朝的模拟电视机也能接管数字电视旌旗灯号呢?回答是肯定的。但它们必须附加一个被称作机顶盒(STB)的装配。

1.机顶盒观点先容:

机顶盒(STB,Set Top Box)的观点对照广泛。从广义上说,凡是与电视机连接的收集终端设备都可称为机顶盒,主要有有线电视收集的模拟频道补充器、模拟频道解扰器,上网机顶盒、数字卫星的综合接管解码器(IRD,Integrated Receive Decoder)、数字地面机顶盒,以及有线电视数字机顶盒都可称为机顶盒。从狭义上说,我们可以将模拟设备扫除在外,按主要功能将机顶盒分为上网机顶盒、 数字卫星综合接管解码器、数字地面机顶盒,以及有线电视数字机顶盒,这些设备因为具有很好的收集功能,是以也成为信息家电的代表。 机顶盒也是旌旗灯号传输介质与电视机之间的一种接口,并供给附加办事,可见它是一种中心电子设备。机顶盒可以把卫星直播数字电视旌旗灯号、地面数字电视旌旗灯号、有线电视网数字旌旗灯号以致因特网的数字旌旗灯号转换成模拟电视机可以接管的旌旗灯号,使现有的模拟电视机用户也能分享数字化传媒带来的清晰,高效的科技成果。同时,它也可以实现电视广播从模拟旌旗灯号向数字旌旗灯号的平稳过渡,以及因为各种缘故原由暂时不想购买电脑的人们共享因特网的信息资本和今世化的通信手段。机顶盒有模拟和数字之分,但现在人们所说的机顶盒一样平常指的是数字机顶盒。

2.机顶盒设计:

本设计中保举的是上网机顶盒,这种机顶盒实际上是将电视机作为显示器构成了一个多媒体电脑,以是又称为WEB TV。

这种机顶盒主如果经由过程某种传输介质实现internet接入技巧,其传输介质可所以电话线(电话调制解调器),有线电视收集(电缆调制解调器)等。在这种机顶盒中较闻名的有微软公司的维纳斯计划,别的我国有许多企业陆续推出了该类产品,如康佳的"光元"收集机顶盒、海信的"家庭收集快车"DB-200M互联网机顶盒、海尔的"网神"收集机顶盒等。但以上的机顶盒大年夜都采纳电话调制解调器,这样做的后果是占用了用户家中险些所有的收集资本(电话线和电视机),却只能实现上网功能跟着低价位PC机的遍及其市场份额必将进一步下降。同时数字有线电视机顶盒技巧却体现出了很大年夜的成漫空间。因为有线电视收集较好的传输质量以及电缆调制解调器技巧的成熟,使得该类机顶盒可以实现各类交互式利用,从而满意各类用户的要求。事实上,该类机顶盒可以支持险些所有的广播和交互式多媒体利用,如数字电视广播接管、电子节目指南(EPG)、准视频点播(NVOD)、按次付费不雅看(PPV)、软件在线进级、数据广播、Internet接入、电子邮件、IP电话和视频点播等。

3.机顶盒中的操作系统:

利用于数字有线电视机顶盒中的操作系统与大年夜家对照认识的PC的操作系统,如DOS、Windows98、Windows NT、Unix、MacOS不合,机顶盒中的操作系统不是异常的宏大年夜,但却要求可以在实时的情况中事情,并能在较小的内存空间中运行。这种操作系统称为实时操作系统。

今朝盛行的实时操作系统有Wind River System公司的VxWorks、Integrated Systems Incorporated公司的pSOS、Microware公司的DAVID OS-9、ST公司的OS20、Windows CE以及专为机顶盒开拓的PowerTV等。这些操作系统各有千秋,在机顶盒中都有利用。此中VxWorks、pSOS、OS-9、OS20等是通用的实时操作系统,在其他的嵌入式系统中也有广泛的利用。PowerTV是专为机顶盒开拓的,并将中心件集成在一路的操作系统,在美国利用较广。跟着嵌入式Linux的徐徐成熟,不仅为机顶盒厂商供给了一种选择,而且因为Linux的开放性和先辈的布局,会对现有的实时操作系统构成伟大年夜的要挟。

别的,作为UNIX系统的一种变种,LINUX系统在利用软件,系统集成,以及用户开拓,应用习气上都有十分大年夜的上风,以是我们建议应用LINUX系统作为系统平台。

4.中心件

中心件是一种将利用法度榜样与低层的操作系统、硬件细节隔脱离来的软件情况,这种分层的思惟在今世系统设计中十分常见,如大年夜名鼎鼎的TCP/IP协议。中心件平日由各类虚拟机来构成,如HTML虚拟机、JavaScript虚拟机、Java虚拟机等ag8只为非凡试玩。

一个完备的数字机顶盒由硬件平台和软件系统组成,可以将其分为4层,从底向上分手为硬件、底层软件、中心件、利用软件。硬件供给机顶盒的硬件平台;底层软件供给操作系统内核以及各类硬件驱动法度榜样;利用软件包括本机存储的利用和可下载的利用;中心件将利用软件与依附于硬件的底层软件分隔开来,使利用不依附于详细的硬件平台。这样用户可以在任何厂家的硬件平台长进行利用软件开拓,和利用软件下载。不必介意任何低层的有关信息。包管了机顶盒的开拓专业化。今朝成熟的用于机顶盒的商用中心件产品有Opentv的EN2、Liberate的TV Navigator for DTV、Enreach的EnreachTV for DTV、Canel+ 的Mediahighway和Intellibyte的IB EPG、IB SI Manager、IB Browser等,这些产品在市场上都占领一席之地,但彼此并不兼容。

标准组织已经熟识到已有中心件产品兼容性差这个事实,并且开始动手建立开放的中心件标准。DVB提出了基于Java虚拟机的中心件标准DVB-MHP(多媒体家庭平台);ATSC成立了T3/S17技巧专家小组委员会,致力于机顶盒软件情况的定义,该软件情况称为DTV利用软件情况(DASE)。ATVEF(先辈电视成长论坛)也创建了一种称为Advanced Television Enhancement Forum Specification for Interactive Television 的规范。

着实,任何一种分层布局都不是要求完全一丝不差的按照其布局,在中心件中我们觉得JAVA虚拟机较有成长出路。由于首先,JAVA的设计初衷便是为信息家电开拓供给一种简单,壮实的嵌入式说话。恰是基于这样一种设计目标,JAVA具有小型化的能力可以在简单的情况下运行。而价格方面的缘故原由使机顶盒弗成能,也不需要拥有同一期间的标准设置设置设备摆设摆设的台式机的功能,这种相对简单的硬ag8只为非凡试玩件情况是可以运行JAVA虚拟机的。利用JAVA虚拟机的另一个缘故原由是,现在呈现了专门运行JAVA说话的JAVA芯片假如利用这种芯片作为机顶盒的CPU,则可以应用专门的JAVAOS作为操作系统,使用JAVA说话的可移植性在台式机长进行利用层开拓,借鉴台式机的调试开拓履历和对象。

(四)传输压缩要领

在视频点播,网上视频不雅看中弗成避免的要与数据压缩打交道,若何将视频数据,音频数据在必然的掉真范围内用最小的数据量传输是数据压缩要钻研的一个紧张的课题。数字多媒体技巧的成长,冲破了传统的模拟化图象的利用,图象的采集以及存储、处置惩罚、显示等数字化的成长,其使我们设计的可行性大年夜大年夜前进。数据压缩及编码技巧是设计中向数字机顶盒传输数据时的关键技巧。图象压缩编码从开始系统钻研至今已有近50年的历史。1988年,CCITT(现ITU-T)拟订了可视电话/会议电视的H.261建议是极具代表性的标准,后来的MPEG-1、MPEG-2、H.263等图象压缩标准都因此它为根基的。声音压缩编码的标准也很多,如ITU-T拟订的G.711、G.722、G.728、G.723等。限于笔者的水平我们无法对各类压缩技巧进行评价,以是在这里只作简单的先容。

视频压缩技巧中数字图象的压缩是多媒体通信的关键技巧,"压缩比"是评价图象压缩措施机能的紧张参数之一(也可按每象素若干比特反应压缩特点),图象压缩比反映了图象压缩的艰苦性和可能程度,ITU-T制订的各类标准压缩比都不合。一样平常来说,压缩比越大年夜,算法越繁杂,实时压缩解压缩的艰苦程度越大年夜,要求的硬件情况也越高。对付可视电话,若原图象款式采纳QCIF(176144),则原始图象有4.5Mb/s的数据量,若着末用28.8kb/S的MODEM在PSTN上传输,则要供给150多倍的压缩,遵照ITU-T和H.263标准可实现此压缩,别的,H.261和MPEG-1也具有较低的码率,得当于在现有收集上传输视频。MPEG-1广泛用于VIDEO-CD的播放,H.261可利用于N-ISDN可视电话、会议电视、远程医疗、远程教授教化等各个方面。MPEG-2具有可分级性、可扩展性和互操作性,且易于与ATM、谋略机收集联络等一系列高机能,但其码率仍高达4~20Mbps,其主要目标是针对广播电视演播室图象质量和HDTV,现也利用于VOD和DVD的制作。此外,具有高档交互功能、更高图象声音质量和更大年夜机动性的MPEG-4标准,国际上正在钻研制订之中。

三.进一步事情:

新一代数字机顶盒的主要配量CPU将进一步前进主频,此中将具备硬盘和打印节制功能、实时视频解码功能(相符MPEG、Qutik Time标准)和实时音频解码功能(相符MPEG、AC-3和Real Audio标准);以及与电视机遥控器合成一体的遥控键盘,这种键盘可以与现在的键盘接口统一。它还具有硬盘存储、在线打印、画中画、电视与WWW跨接以及电子电视节目指南,电子邮件等功能,除为了实实际时视频解码的硬件解码器外,机顶盒将越来越靠近小我桌面电子谋略机。它的互联网接入功能将近一步使传统的媒体供应商向收集挨近。电视节目制作商将自己选定的节目放入WWW网点地址(URL),用户可以经由过程点击这个标记连接WWW网点,以获取更多的信息,下载视频节目和利用软件。同时用户可以在不雅看电视节目时应用网上资本。例如,一个门生在不雅看一段有关火星探险的电视片时,可以点击屏幕上的NASA(美国宇航局)标记,进入NASA的WWW网点浏览最新的航天科技消息,因为传统媒体供应商在媒系统体例作和贩卖等方面的履历,现阶段的收集供应商将面对更大年夜的寻衅。这种功能对付电视广告商具有极大年夜的吸引力。画中画功能可以应用户一边看电视,一边在因特网上"冲浪",或调阅电子邮件,或进行社区内具有针对性的小范围产品推销。由上可见,Web TV与其说是机顶盒,倒不如说它更像一台具有高速度通信能力的多媒体电脑,只不过它使用现有电视机作显示器,并可将电视机作为因特网终端,而且利用了当前的有线电视技巧将电视与因特网融为一体。

参考书目:

1. 数字图象压缩编码在多媒体通信中的利用 北京邮电大年夜学 张家谋 尹昊晖

2. 多姿多彩的数字机顶盒

3. 广播电视技巧成长瞻望杜百川

4. 基于WEB的数据库技巧钻研 郑成增 陈志锋 陶勇 李思忠

5. Thinking in Java Bruce Eckel

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: