JAVA語言是一種可移植的,簡單的,健壯的嵌入式語言。并且對網(wǎng)絡(luò),數(shù)據(jù)庫有很好的支持,基于JAVA語言的這種特性可以十分容易地建立一個(gè)小型INTERNET服務(wù)器。
一.項(xiàng)目簡介:
本項(xiàng)目中,作者用JAVA語言編寫了一個(gè)WEB微型服務(wù)器,對簡單的HTTP請求進(jìn)行響應(yīng),并通過后端數(shù)據(jù)庫對用戶的查詢進(jìn)行處理,從而動(dòng)態(tài)地返回HTML頁面。
二.項(xiàng)目實(shí)現(xiàn):
(一)項(xiàng)目具體功能分析與開發(fā)工具選擇
可以利用一臺(tái)較高配置的個(gè)人臺(tái)式機(jī)就可以實(shí)現(xiàn)社區(qū)內(nèi)的小型服務(wù)器,包括網(wǎng)頁瀏覽,基于高速局域網(wǎng)的視頻下載和播放,定時(shí)新聞組發(fā)布程序,郵件服務(wù)器等服務(wù)。
本軟件實(shí)際上是一個(gè)HTTP協(xié)議的服務(wù)器。HTTP(Hyper Text Transfer Protocol),是一個(gè)專門為Web服務(wù)器和Web瀏覽器之間交換數(shù)據(jù)而設(shè)計(jì)的網(wǎng)絡(luò)協(xié)議。它通過規(guī)定通用資源定位符(URLs)使客戶端的瀏覽器與服務(wù)器的Web資源建立鏈接關(guān)系,從而奠定了用戶對Internet透明訪問的基礎(chǔ)。
在本軟件中通過傳輸HTML文件使客戶端可以實(shí)現(xiàn)網(wǎng)頁瀏覽。HTML是WWW的通用標(biāo)記語言,它用來創(chuàng)建Web頁面和控制Web信息顯示格式。HTML不是編程語言,而是一種描述語言。HTML2.0得到了IETF(Internet Engineering Task Force)的支持而成為Internet國際標(biāo)準(zhǔn)。目前,HTML已經(jīng)發(fā)展到3.0和4.0版,只是新版本的標(biāo)準(zhǔn)尚未完全統(tǒng)一,不同的商家對HTML2.0進(jìn)行了一定的擴(kuò)充,引入了更多新的功能。例如,Netscape公司在HTML3.0中增加了頁面底圖(Background Images)和表(Table)定義等標(biāo)記,使得Web頁面更加引人入勝。
CGI是通用網(wǎng)關(guān)接口(Common Gateway Interface)的簡稱,它是Web服務(wù)器與外部程序之間的通信接口,服務(wù)器并不關(guān)心外部應(yīng)用程序是什么語言(如C、C++、Pascal、Delphi或Perl)編寫的,它只是負(fù)責(zé)接收用戶輸入的信息,并把CGI程序所產(chǎn)生的結(jié)果--HTML文檔或其他符合HTTP規(guī)定的文件回傳給用戶。事實(shí)上,CGI是動(dòng)態(tài)Web頁面制作的步,但由于CGI程序?qū)崿F(xiàn)比較困難,而且效率不高,它已經(jīng)逐漸被新的技術(shù)所取代。
網(wǎng)頁瀏覽支持的網(wǎng)頁包括HTML,JAVASCRIPT,APPLET,VBSCRIPT等編寫的網(wǎng)頁,但不支持PHP,ASP等服務(wù)器端動(dòng)態(tài)程序的網(wǎng)頁。由于服務(wù)器的規(guī)模較小,所以服務(wù)器端動(dòng)態(tài)程序被集成進(jìn)服務(wù)器中。但可以通過編寫符合一定規(guī)則的JAVA的CGI程序?qū)崿F(xiàn)服務(wù)器端的動(dòng)態(tài)性,不過這種JAVA程序的安全性很難保證。
(二)服務(wù)器的實(shí)現(xiàn)
1. 處理連接策略:
對于每一個(gè)用戶的連接我們采取了每次請求滿足后,將用戶與服務(wù)器的連接斷開,這時(shí)用戶如果有其他的請求,則進(jìn)入請求隊(duì)列重新進(jìn)行資源競爭。
通常網(wǎng)頁中的每一個(gè)圖形都會(huì)被看成是一個(gè)單獨(dú)的連接,也就是說對于一個(gè)圖形很多的網(wǎng)頁基于本服務(wù)器的連接策略將會(huì)進(jìn)行多次請求,這樣的好處是防止一個(gè)容量很大的網(wǎng)頁獨(dú)占網(wǎng)絡(luò)資源。
2. 與數(shù)據(jù)庫連接
在與數(shù)據(jù)庫的連接中我們選用的后端數(shù)據(jù)庫是微軟的ACCESS數(shù)據(jù)庫,由于本項(xiàng)目是面向小型社區(qū)的社區(qū)數(shù)據(jù)中心服務(wù)器,所以選用小型的數(shù)據(jù)庫。由于JAVA的可移植性可以將服務(wù)器用在LINUX平臺(tái)上,這時(shí)可以用本服務(wù)器提供的數(shù)據(jù)庫配置程序連接到MySql等基于LINUX的小型數(shù)據(jù)庫。
我們應(yīng)用JDBC完成與數(shù)據(jù)庫的連接。Java的一項(xiàng)出色能力是構(gòu)建與平臺(tái)無關(guān)的客戶機(jī)/服務(wù)器數(shù)據(jù)庫應(yīng)用。在Java 1.1中,通過Java數(shù)據(jù)庫連接(JDBC)實(shí)現(xiàn)了與各家公司之間的數(shù)據(jù)庫的互連。數(shù)據(jù)庫主要的一個(gè)問題就是各家公司之間的規(guī)格大戰(zhàn)。確實(shí)存在一種"標(biāo)準(zhǔn)"數(shù)據(jù)庫語言,即"結(jié)構(gòu)查詢語言"(SQL-92),但各公司為了表示自己的與眾不同對標(biāo)準(zhǔn)都有一些微小的改動(dòng)。所以通常必須確切知道自己要和哪家數(shù)據(jù)庫公司打交道,否則極易出問題,盡管存在所謂的"標(biāo)準(zhǔn)"。JDBC是面向"與平臺(tái)無關(guān)"設(shè)計(jì)的,所以在編程的時(shí)候不必關(guān)心自己要使用的是什么數(shù)據(jù)庫產(chǎn)品。和Java中的許多API一樣,JDBC也做到了盡量的簡化。我們發(fā)出的方法調(diào)用對應(yīng)于從數(shù)據(jù)庫收集數(shù)據(jù)時(shí)想當(dāng)然的做法:同數(shù)據(jù)庫連接,創(chuàng)建一個(gè)語句并執(zhí)行查詢,然后處理結(jié)果集,無論與我們打交道的是哪家數(shù)據(jù)庫廠商的產(chǎn)品。
JDBC的使用:
為實(shí)現(xiàn)這一"與平臺(tái)無關(guān)"的特點(diǎn),JDBC為我們提供了一個(gè)"驅(qū)動(dòng)程序管理器",它能動(dòng)態(tài)維護(hù)數(shù)據(jù)庫查詢所需的所有驅(qū)動(dòng)程序?qū)ο蟆K约偃缫B接由數(shù)家公司開發(fā)的不同種類的數(shù)據(jù)庫,就需要每個(gè)數(shù)據(jù)庫的單獨(dú)的驅(qū)動(dòng)程序?qū)ο蟆r?qū)動(dòng)程序?qū)ο髸?huì)在裝載時(shí)由"驅(qū)動(dòng)程序管理器"自動(dòng)注冊,并可用Class.forName()強(qiáng)行裝載。
為打開一個(gè)數(shù)據(jù)庫,必須創(chuàng)建一個(gè)"數(shù)據(jù)庫URL",它要指定下述三方面的內(nèi)容:
(1) 用"jdbc"指出要使用JDBC。
(2) "子協(xié)議":驅(qū)動(dòng)程序的名字或者一種數(shù)據(jù)庫連接機(jī)制的名稱。由于JDBC的設(shè)計(jì)從ODBC吸收了許多靈感,所以可以選用的種子協(xié)議就是"jdbc-odbc橋",它用"odbc"關(guān)鍵字即可指定。
(3) 數(shù)據(jù)庫標(biāo)識(shí)符:隨使用的數(shù)據(jù)庫驅(qū)動(dòng)程序的不同而變化,但一般都提供了一個(gè)比較符合邏輯的名稱,由數(shù)據(jù)庫管理軟件映射(對應(yīng))到保存了數(shù)據(jù)表的一個(gè)物理目錄。為使自己的數(shù)據(jù)庫標(biāo)識(shí)符具有任何含義,必須用自己的數(shù)據(jù)庫管理軟件為自己喜歡的名字注冊(注冊的具體過程又隨運(yùn)行平臺(tái)的不同而變化)。
所有這些信息都統(tǒng)一編譯到一個(gè)字串里,即"數(shù)據(jù)庫URL"。本例中,我們想通過ODBC子協(xié)議同一個(gè)標(biāo)識(shí)為"vod"的數(shù)據(jù)庫連接,相應(yīng)的數(shù)據(jù)庫URL設(shè)為:
String dbUrl = "jdbc:odbc:vod"
同樣如果通過一個(gè)網(wǎng)絡(luò)連接,數(shù)據(jù)庫URL也需要包含對遠(yuǎn)程機(jī)器進(jìn)行標(biāo)識(shí)的信息。
JDBC的連接方式:
首先,JDBC中在DriverManager中對數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動(dòng)程序進(jìn)行登記。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
裝載JDBC- ODBC橋驅(qū)動(dòng)程序,這樣做是為了讓DriverManager可以找到數(shù)據(jù)庫驅(qū)動(dòng)程序。然后利用DriverManager打開與數(shù)據(jù)庫的連接。
Mycon=DriverManager.getConnection(dbUrl);
本語句的作用是,確定與由dbUrl指定的數(shù)據(jù)庫的連接。DriverManager將從其中登記的驅(qū)動(dòng)程序中尋找適當(dāng)?shù)尿?qū)動(dòng)程序。返回的Mycon代表了與特定的數(shù)據(jù)庫之間的連接。
Mysta=Mycon.createStatement();
生成可以執(zhí)行無參數(shù)SQL語句的Statement接口。 然后就可以在Mysta中用executeQuery()函數(shù)執(zhí)行SQL語句從返回的ResultSet獲取執(zhí)行結(jié)果。
3. 網(wǎng)絡(luò)連接:
網(wǎng)絡(luò)本身的概念并不難。我們想獲得位于其他地方某臺(tái)機(jī)器上的信息,并把它們移到這兒;或者相反。這與讀寫文件非常相似,只是文件存在于遠(yuǎn)程機(jī)器上,而且遠(yuǎn)程機(jī)器有權(quán)決定如何處理我們請求或者發(fā)送的數(shù)據(jù)。但大多數(shù)編程語言對網(wǎng)絡(luò)編程都較困難,而Java出色的一個(gè)地方就是它的"無痛苦連網(wǎng)"概念。有關(guān)連網(wǎng)的基層細(xì)節(jié)已被盡可能地提取出去,并隱藏在JVM以及Java的本機(jī)安裝系統(tǒng)里進(jìn)行控制。我們使用的編程模型是一個(gè)文件的模型;事實(shí)上,網(wǎng)絡(luò)連接(一個(gè)"套接字")已被封裝到系統(tǒng)對象里,所以可象對其他數(shù)據(jù)流那樣采用同樣的方法調(diào)用。除此以外,在我們處理另一個(gè)連網(wǎng)問題--同時(shí)控制多個(gè)網(wǎng)絡(luò)連接--的時(shí)候,Java內(nèi)建的多線程機(jī)制也是十分方便的。
服務(wù)器的主要任務(wù)是偵聽建立連接的請求,這是由我們創(chuàng)建的特定服務(wù)器對象完成的。而客戶機(jī)的任務(wù)是試著與一臺(tái)服務(wù)器建立連接,這是由我們創(chuàng)建的特定客戶機(jī)對象完成的。一旦連接建好,那么無論在服務(wù)器端還是客戶機(jī)端,連接變成了一個(gè)IO數(shù)據(jù)流對象。從這時(shí)開始,我們可以象讀寫一個(gè)普通的文件那樣對待連接。所以一旦建好連接,我們只需使用自己熟悉的IO命令即可。
首先,server=new ServerSocket(80,acceptamount);
生成一個(gè)服務(wù)器端的套接字。其中個(gè)參數(shù)是表示服務(wù)器的監(jiān)聽端口,端口是機(jī)器內(nèi)的場所。有些時(shí)候,一個(gè)IP地址并不足以完整標(biāo)識(shí)一個(gè)服務(wù)器。這是由于在一臺(tái)物理性的機(jī)器中,往往運(yùn)行著多個(gè)服務(wù)器(程序)。由IP表達(dá)的每臺(tái)機(jī)器也包含了"端口"(Port)。我們設(shè)置一個(gè)客戶機(jī)或者服務(wù)器的時(shí)候,必須選擇一個(gè)無論客戶機(jī)還是服務(wù)器都認(rèn)可連接的端口。端口并不是機(jī)器上一個(gè)物理上存在的場所,而是一種軟件抽象(主要是為了表述的方便)。客戶程序知道如何通過機(jī)器的IP地址同它連接,但怎樣才能同自己真正需要的那種服務(wù)連接呢(一般每個(gè)端口都運(yùn)行著一種服務(wù),一臺(tái)機(jī)器可能提供了多種服務(wù),比如HTTP和FTP等等)?端口編號在這里扮演了重要的角色,它是必需的一種二級定址措施。
在HTTP協(xié)議中的默認(rèn)服務(wù)端口是80,當(dāng)然在小型社區(qū)中也可以使用其它的端口。本例中使用了默認(rèn)服務(wù)端口。
Socket s=server.accept();
這一句的作用是使服務(wù)器監(jiān)聽本機(jī)上的80端口,等待客戶機(jī)的連接。在沒有新的連接的情況下,服務(wù)器阻塞自身。當(dāng)客戶機(jī)連接到服務(wù)器后函數(shù)返回一個(gè)套接字。然后,通過套接字的輸入,輸出流即可用讀取本機(jī)文件的方法與客戶機(jī)進(jìn)行通信。
(三)客戶端設(shè)計(jì)
在客戶端,理想的裝置是電視機(jī),因?yàn)楫?dāng)前電視機(jī)普及率高,有線電視線路遍布各地,可重用資源廣泛。但目前的電視機(jī)絕大多數(shù)是模擬電視機(jī),它們只能接收模擬電視信號,無法接收數(shù)字電視信號,因此這種電視機(jī)的彩色圖像和伴音質(zhì)量并不是很高。而數(shù)字電視無論從價(jià)格,電臺(tái)改造,線路改裝等方面都存在很大的困難,短期內(nèi)難以普及。那么能否有一種折衷方案,即使目前的模擬電視機(jī)也能接收數(shù)字電視信號呢?回答是肯定的。但它們必須附加一個(gè)被稱作機(jī)頂盒(STB)的裝置。
1.機(jī)頂盒概念介紹:
機(jī)頂盒(STB,Set Top Box)的概念比較廣泛。從廣義上說,凡是與電視機(jī)連接的網(wǎng)絡(luò)終端設(shè)備都可稱為機(jī)頂盒,主要有有線電視網(wǎng)絡(luò)的模擬頻道增補(bǔ)器、模擬頻道解擾器,上網(wǎng)機(jī)頂盒、數(shù)字衛(wèi)星的綜合接收解碼器(IRD,Integrated Receive Decoder)、數(shù)字地面機(jī)頂盒,以及有線電視數(shù)字機(jī)頂盒都可稱為機(jī)頂盒。從狹義上說,我們可以將模擬設(shè)備排除在外,按主要功能將機(jī)頂盒分為上網(wǎng)機(jī)頂盒、 數(shù)字衛(wèi)星綜合接收解碼器、數(shù)字地面機(jī)頂盒,以及有線電視數(shù)字機(jī)頂盒,這些設(shè)備由于具有很好的網(wǎng)絡(luò)功能,因此也成為信息家電的代表。 機(jī)頂盒也是信號傳輸介質(zhì)與電視機(jī)之間的一種接口,并提供附加服務(wù),可見它是一種中間電子設(shè)備。機(jī)頂盒可以把衛(wèi)星直播數(shù)字電視信號、地面數(shù)字電視信號、有線電視網(wǎng)數(shù)字信號甚至因特網(wǎng)的數(shù)字信號轉(zhuǎn)換成模擬電視機(jī)可以接收的信號,使現(xiàn)有的模擬電視機(jī)用戶也能分享數(shù)字化傳媒帶來的清晰,高效的科技成果。同時(shí),它也可以實(shí)現(xiàn)電視廣播從模擬信號向數(shù)字信號的平穩(wěn)過渡,以及由于種種原因暫時(shí)不想購買電腦的人們共享因特網(wǎng)的信息資源和現(xiàn)代化的通信手段。機(jī)頂盒有模擬和數(shù)字之分,但現(xiàn)在人們所說的機(jī)頂盒一般指的是數(shù)字機(jī)頂盒。
2.機(jī)頂盒設(shè)計(jì):
本設(shè)計(jì)中推薦的是上網(wǎng)機(jī)頂盒,這種機(jī)頂盒實(shí)際上是將電視機(jī)作為顯示器構(gòu)成了一個(gè)多媒體電腦,所以又稱為WEB TV。
這種機(jī)頂盒主要是通過某種傳輸介質(zhì)實(shí)現(xiàn)internet接入技術(shù),其傳輸介質(zhì)可以是電話線(電話調(diào)制解調(diào)器),有線電視網(wǎng)絡(luò)(電纜調(diào)制解調(diào)器)等。在這種機(jī)頂盒中較的有微軟公司的維納斯計(jì)劃,另外我國有許多企業(yè)陸續(xù)推出了該類產(chǎn)品,如康佳的"光元"網(wǎng)絡(luò)機(jī)頂盒、海信的"家庭網(wǎng)絡(luò)快車"DB-200M互聯(lián)網(wǎng)機(jī)頂盒、海爾的"網(wǎng)神"網(wǎng)絡(luò)機(jī)頂盒等。但以上的機(jī)頂盒大都采用電話調(diào)制解調(diào)器,這樣做的后果是占用了用戶家中幾乎所有的網(wǎng)絡(luò)資源(電話線和電視機(jī)),卻只能實(shí)現(xiàn)上網(wǎng)功能隨著低價(jià)位PC機(jī)的普及其市場份額必將進(jìn)一步下降。同時(shí)數(shù)字有線電視機(jī)頂盒技術(shù)卻表現(xiàn)出了很大的發(fā)展空間。由于有線電視網(wǎng)絡(luò)較好的傳輸質(zhì)量以及電纜調(diào)制解調(diào)器技術(shù)的成熟,使得該類機(jī)頂盒可以實(shí)現(xiàn)各種交互式應(yīng)用,從而滿足各種用戶的要求。事實(shí)上,該類機(jī)頂盒可以支持幾乎所有的廣播和交互式多媒體應(yīng)用,如數(shù)字電視廣播接收、電子節(jié)目指南(EPG)、準(zhǔn)視頻點(diǎn)播(NVOD)、按次付費(fèi)觀看(PPV)、軟件在線升級、數(shù)據(jù)廣播、Internet接入、電子郵件、IP電話和視頻點(diǎn)播等。
3.機(jī)頂盒中的操作系統(tǒng):
應(yīng)用于數(shù)字有線電視機(jī)頂盒中的操作系統(tǒng)與大家比較熟悉的PC的操作系統(tǒng),如DOS、Windows98、Windows NT、Unix、MacOS不同,機(jī)頂盒中的操作系統(tǒng)不是非常的龐大,但卻要求可以在實(shí)時(shí)的環(huán)境中工作,并能在較小的內(nèi)存空間中運(yùn)行。這種操作系統(tǒng)稱為實(shí)時(shí)操作系統(tǒng)。
目前流行的實(shí)時(shí)操作系統(tǒng)有Wind River System公司的VxWorks、Integrated Systems Incorporated公司的pSOS、Microware公司的DAVID OS-9、ST公司的OS20、Windows CE以及專為機(jī)頂盒開發(fā)的PowerTV等。這些操作系統(tǒng)各有所長,在機(jī)頂盒中都有應(yīng)用。其中VxWorks、pSOS、OS-9、OS20等是通用的實(shí)時(shí)操作系統(tǒng),在其他的嵌入式系統(tǒng)中也有廣泛的應(yīng)用。PowerTV是專為機(jī)頂盒開發(fā)的,并將中間件集成在一起的操作系統(tǒng),在美國應(yīng)用較廣。隨著嵌入式Linux的逐漸成熟,不僅為機(jī)頂盒廠商提供了一種選擇,而且由于Linux的開放性和先進(jìn)的結(jié)構(gòu),會(huì)對現(xiàn)有的實(shí)時(shí)操作系統(tǒng)構(gòu)成巨大的威脅。
另外,作為UNIX系統(tǒng)的一種變種,LINUX系統(tǒng)在應(yīng)用軟件,系統(tǒng)集成,以及用戶開發(fā),使用習(xí)慣上都有十分大的優(yōu)勢,所以我們建議使用LINUX系統(tǒng)作為系統(tǒng)平臺(tái)。
4.中間件
中間件是一種將應(yīng)用程序與低層的操作系統(tǒng)、硬件細(xì)節(jié)隔離開來的軟件環(huán)境,這種分層的思想在現(xiàn)代系統(tǒng)設(shè)計(jì)中十分常見,如大名鼎鼎的TCP/IP協(xié)議。中間件通常由各種虛擬機(jī)來構(gòu)成,如HTML虛擬機(jī)、JavaScript虛擬機(jī)、Java虛擬機(jī)等。
一個(gè)完整的數(shù)字機(jī)頂盒由硬件平臺(tái)和軟件系統(tǒng)組成,可以將其分為4層,從底向上分別為硬件、底層軟件、中間件、應(yīng)用軟件。硬件提供機(jī)頂盒的硬件平臺(tái);底層軟件提供操作系統(tǒng)內(nèi)核以及各種硬件驅(qū)動(dòng)程序;應(yīng)用軟件包括本機(jī)存儲(chǔ)的應(yīng)用和可下載的應(yīng)用;中間件將應(yīng)用軟件與依賴于硬件的底層軟件分隔開來,使應(yīng)用不依賴于具體的硬件平臺(tái)。這樣用戶可以在任何廠家的硬件平臺(tái)上進(jìn)行應(yīng)用軟件開發(fā),和應(yīng)用軟件下載。不必介意任何低層的有關(guān)信息。保證了機(jī)頂盒的開發(fā)專業(yè)化。目前成熟的用于機(jī)頂盒的商用中間件產(chǎn)品有Opentv的EN2、Liberate的TV Navigator for DTV、Enreach的EnreachTV for DTV、Canel+ 的Mediahighway和Intellibyte的IB EPG、IB SI Manager、IB Browser等,這些產(chǎn)品在市場上都占有一席之地,但彼此并不兼容。
標(biāo)準(zhǔn)組織已經(jīng)認(rèn)識(shí)到已有中間件產(chǎn)品兼容性差這個(gè)事實(shí),并且開始著手建立開放的中間件標(biāo)準(zhǔn)。DVB提出了基于Java虛擬機(jī)的中間件標(biāo)準(zhǔn)DVB-MHP(多媒體家庭平臺(tái));ATSC成立了T3/S17技術(shù)專家小組委員會(huì),致力于機(jī)頂盒軟件環(huán)境的定義,該軟件環(huán)境稱為DTV應(yīng)用軟件環(huán)境(DASE)。ATVEF(先進(jìn)電視發(fā)展論壇)也創(chuàng)建了一種稱為Advanced Television Enhancement Forum Specification for Interactive Television 的規(guī)范。
其實(shí),任何一種分層結(jié)構(gòu)都不是要求完全一絲不差的按照其結(jié)構(gòu),在中間件中我們認(rèn)為JAVA虛擬機(jī)較有發(fā)展前途。因?yàn)槭紫龋琂AVA的設(shè)計(jì)初衷就是為信息家電開發(fā)提供一種簡單,健壯的嵌入式語言。正是基于這樣一種設(shè)計(jì)目標(biāo),JAVA具有小型化的能力可以在簡單的環(huán)境下運(yùn)行。而價(jià)格方面的原因使機(jī)頂盒不可能,也不必要擁有同一時(shí)代的標(biāo)準(zhǔn)配置的臺(tái)式機(jī)的功能,這種相對簡單的硬件環(huán)境是可以運(yùn)行JAVA虛擬機(jī)的。應(yīng)用JAVA虛擬機(jī)的另一個(gè)原因是,現(xiàn)在出現(xiàn)了專門運(yùn)行JAVA語言的JAVA芯片如果應(yīng)用這種芯片作為機(jī)頂盒的CPU,則可以使用專門的JAVAOS作為操作系統(tǒng),利用JAVA語言的可移植性在臺(tái)式機(jī)上進(jìn)行應(yīng)用層開發(fā),借鑒臺(tái)式機(jī)的調(diào)試開發(fā)經(jīng)驗(yàn)和工具。
(四)傳輸壓縮方式
在視頻點(diǎn)播,網(wǎng)上視頻觀看中不可避免的要與數(shù)據(jù)壓縮打交道,如何將視頻數(shù)據(jù),音頻數(shù)據(jù)在一定的失真范圍內(nèi)用小的數(shù)據(jù)量傳輸是數(shù)據(jù)壓縮要研究的一個(gè)重要的課題。數(shù)字多媒體技術(shù)的發(fā)展,突破了傳統(tǒng)的模擬化圖象的應(yīng)用,圖象的采集以及存儲(chǔ)、處理、顯示等數(shù)字化的發(fā)展,其使我們設(shè)計(jì)的可行性大大提高。數(shù)據(jù)壓縮及編碼技術(shù)是設(shè)計(jì)中向數(shù)字機(jī)頂盒傳輸數(shù)據(jù)時(shí)的關(guān)鍵技術(shù)。圖象壓縮編碼從開始系統(tǒng)研究至今已有近50年的歷史。1988年,CCITT(現(xiàn)ITU-T)制定了可視電話/會(huì)議電視的H.261建議是極具代表性的標(biāo)準(zhǔn),后來的MPEG-1、MPEG-2、H.263等圖象壓縮標(biāo)準(zhǔn)都是以它為基礎(chǔ)的。聲音壓縮編碼的標(biāo)準(zhǔn)也很多,如ITU-T制定的G.711、G.722、G.728、G.723等。限于筆者的水平我們無法對各種壓縮技術(shù)進(jìn)行評價(jià),所以在這里只作簡單的介紹。
視頻壓縮技術(shù)中數(shù)字圖象的壓縮是多媒體通信的關(guān)鍵技術(shù),"壓縮比"是評價(jià)圖象壓縮方法性能的重要參數(shù)之一(也可按每象素多少比特反映壓縮特性),圖象壓縮比反應(yīng)了圖象壓縮的困難性和可能程度,ITU-T制訂的各種標(biāo)準(zhǔn)壓縮比都不同。一般來說,壓縮比越大,算法越復(fù)雜,實(shí)時(shí)壓縮解壓縮的困難程度越大,要求的硬件環(huán)境也越高。對于可視電話,若原圖象格式采用QCIF(176×144),則原始圖象有4.5Mb/s的數(shù)據(jù)量,若用28.8kb/S的MODEM在PSTN上傳輸,則要提供150多倍的壓縮,遵循ITU-T和H.263標(biāo)準(zhǔn)可實(shí)現(xiàn)此壓縮,另外,H.261和MPEG-1也具有較低的碼率,適合于在現(xiàn)有網(wǎng)絡(luò)上傳輸視頻。MPEG-1廣泛用于VIDEO-CD的播放,H.261可應(yīng)用于N-ISDN可視電話、會(huì)議電視、遠(yuǎn)程醫(yī)療、遠(yuǎn)程教學(xué)等各個(gè)方面。MPEG-2具有可分級性、可擴(kuò)展性和互操作性,且易于與ATM、計(jì)算機(jī)網(wǎng)絡(luò)聯(lián)結(jié)等一系列高性能,但其碼率仍高達(dá)4~20Mbps,其主要目標(biāo)是針對廣播電視演播室圖象質(zhì)量和HDTV,現(xiàn)也應(yīng)用于VOD和DVD的制作。此外,具有交互功能、更高圖象聲音質(zhì)量和更大靈活性的MPEG-4標(biāo)準(zhǔn),國際上正在研究制訂之中。
三.進(jìn)一步工作:
新一代數(shù)字機(jī)頂盒的主要配量CPU將進(jìn)一步提高主頻,其中將具備硬盤和打印控制功能、實(shí)時(shí)視頻解碼功能(符合MPEG、Qutik Time標(biāo)準(zhǔn))和實(shí)時(shí)音頻解碼功能(符合MPEG、AC-3和Real Audio標(biāo)準(zhǔn));以及與電視機(jī)遙控器合成一體的遙控鍵盤,這種鍵盤可以與現(xiàn)在的鍵盤接口統(tǒng)一。它還具有硬盤存儲(chǔ)、在線打印、畫中畫、電視與WWW跨接以及電子電視節(jié)目指南,電子郵件等功能,除為了實(shí)現(xiàn)實(shí)時(shí)視頻解碼的硬件解碼器外,機(jī)頂盒將越來越接近個(gè)人桌面電子計(jì)算機(jī)。它的互聯(lián)網(wǎng)接入功能將近一步使傳統(tǒng)的媒體供應(yīng)商向網(wǎng)絡(luò)靠攏。電視節(jié)目制作商將自己選定的節(jié)目放入WWW網(wǎng)點(diǎn)地址(URL),用戶可以通過點(diǎn)擊這個(gè)標(biāo)記連接WWW網(wǎng)點(diǎn),以獲取更多的信息,下載視頻節(jié)目和應(yīng)用軟件。同時(shí)用戶可以在觀看電視節(jié)目時(shí)使用網(wǎng)上資源。
例如,一個(gè)學(xué)生在觀看一段有關(guān)火星探險(xiǎn)的電視片時(shí),可以點(diǎn)擊屏幕上的NASA(美國宇航局)標(biāo)記,進(jìn)入NASA的WWW網(wǎng)點(diǎn)瀏覽的航天科技消息,由于傳統(tǒng)媒體供應(yīng)商在媒體制作和銷售等方面的經(jīng)驗(yàn),現(xiàn)階段的網(wǎng)絡(luò)供應(yīng)商將面對更大的挑戰(zhàn)。這種功能對于電視廣告商具有極大的吸引力。畫中畫功能可以使用戶一邊看電視,一邊在因特網(wǎng)上"沖浪",或調(diào)閱電子郵件,或進(jìn)行社區(qū)內(nèi)具有針對性的小范圍產(chǎn)品推銷。由上可見,Web TV與其說是機(jī)頂盒,倒不如說它更像一臺(tái)具有高速率通信能力的多媒體電腦,只不過它利用現(xiàn)有電視機(jī)作顯示器,并可將電視機(jī)作為因特網(wǎng)終端,而且應(yīng)用了當(dāng)前的有線電視技術(shù)將電視與因特網(wǎng)融為一體。
Java語言實(shí)現(xiàn)支持視頻點(diǎn)播的WEB服務(wù)器
更新時(shí)間: 2007-09-12 10:17:42來源: 粵嵌教育瀏覽量:802
粵嵌動(dòng)態(tài)
推薦閱讀
- ·廣州粵嵌通信科技股份有限公司關(guān)于虛假返還款項(xiàng)通知的嚴(yán)正聲明
- ·佛山市冠宇達(dá)電源有限公司專場招聘會(huì)(長沙校區(qū))
- ·北京朝歌數(shù)碼科技股份有限公司專場招聘
- ·深圳研賽自動(dòng)化設(shè)備公司專場招聘(長沙校區(qū))
- ·深圳市興禾自動(dòng)化股份有限公司專場招聘(長沙校區(qū))
- ·中山市弘億實(shí)業(yè)有限公司專場招聘會(huì)
- ·東莞市德聲實(shí)業(yè)有限公司專場招聘
- ·深圳華創(chuàng)智聯(lián)電子有限公司專場招聘
- ·廣州2512全網(wǎng)運(yùn)營就業(yè)班
- ·廣州2511嵌入式開發(fā)就業(yè)班