• 沒有找到結果。

VoIP互動式多媒體服務平台之設計與服務發現及移動定位服務之應用(I)---子計畫二---支援互動式多媒體服務之資源配置機制與服務發現閘道(I)

N/A
N/A
Protected

Academic year: 2021

Share "VoIP互動式多媒體服務平台之設計與服務發現及移動定位服務之應用(I)---子計畫二---支援互動式多媒體服務之資源配置機制與服務發現閘道(I)"

Copied!
9
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

子計畫二 :支援互動式多媒體服務之資源配置機制與服務 發現閘道(I)

計畫類別: 整合型計畫

計畫編號: NSC93-2219-E-011-009-

執行期間: 93 年 08 月 01 日至 95 年 07 月 31 日 執行單位: 國立臺灣科技大學電機工程系

計畫主持人: 劉馨勤

計畫參與人員: 張谷毓、王良晉、陳勇廷

報告類型: 完整報告

報告附件: 出席國際會議研究心得報告及發表論文

處理方式: 本計畫涉及專利或其他智慧財產權,2 年後可公開查詢

中 華 民 國 95 年 10 月 11 日

(2)

目錄

一、中文摘要 ...1

二、緣由與目的 ...1

三、研究方法 ...4

四、結果與討論 ...6

五、成果自評 ...7

六、參考文獻 ...7

圖目錄 FIG.1JINI服務發現範例... 6

FIG.2WLAN PACKET LOSS RATE WITH BLUETOOTH CCI... 7

FIG.3WLAN MEAN JITTER WITH BLUETOOTH CCI... 7

表目錄 TABLE 1PESQ VERSUS PACKET LOSS RATE... 6

(3)

1

行政院國家科學委員會專題研究計劃報告

VOIP 互動式多媒體服務平台之設計與服務發現及移動定位服務之應 用(I)-子計畫二:支援互動式多媒體服務之資源配置機制與服務發現閘

道 (I)

計劃編號:93-2219-E-011-009

執行期限:93 年 8 月 1 日至 94 年 7 月 31 日 主持人:劉馨勤 助理教授 台灣科技大學電機工程系

計畫參與人員:張谷毓、王良晉、陳勇廷

一、中文摘要

本計畫主要是針對無線網路的服務發 現以及服務品質作一探討。並且透過 Java 程式來實現一無線網路的服務發現例子。此 外,在 VoIP 部分,已於 Linux 平台上架設 一VoIP server,可用 VoIP 軟體來透過網路 通話。透過無線網路,撥打網路電話,此時 若 有 外 界 的 其 他 干 擾 影 響 如 同 通 道 干 擾 (co-channel interference),會對通話品 質產生影響,在此系統的服務品質因素如 packet loss(封包遺失率)、mean jitter(平 均時基誤差)、delay(延遲)等等。我們已透 過實驗來實際觀測此現象。

關鍵詞:無線網路、干擾消除、網路電 話、服務品質、服務發現。

Abstract-

In this project, we studied the service discovery and the quality of Service over Wireless LAN. A service discovery example has been developed using Java programming.

In addition, we set up a VoIP server to service VoIP clients using various VoIP software phones. When a VoIP service is carried over wireless network, the quality of the VoIP service is affected by a variety of interference sources including the

co-channel interference. We examined the factors of quality of services like packet loss, mean jitter, and delay by performing diverse experiments.

Keywords: WLAN, Interference cancellation, VoIP, QoS, Service discovery.

二、緣由與目的

在各種傳輸系統中,不管是有線或無線 的環境下,使用者都會希望能夠擴充功能,

因此在各種通訊協定裡,幾乎都會訂定出服 務發現協定(Service discovery protocol)。有 了service discovery 這項功能,將使得使 用者藉由透過區域網路得到更多的資訊與 服務。

目前可以拿來應用在Service discovery 的protocol主要有Jini、UPnP (Universal Plug and Play)、Bluetooth、Salutation、HAVi (Home Audio Video Interoperability) 以 及 SLP (Service Location Protocol) 這幾種。

以下我們將分別簡介這幾種架構以及 比較之。

SLP (Service Location Protocol) 是 IETF (Internet Engineering Task Force) 所制

(4)

定,但是只定義了找到對方的方法;由IBM 主導的Salutation標準,只針對某些設備如 傳真機、印表機訂出規範,協定架構不夠完 備 ; Bluetooth 的 SDP (Service Discovery Protocol) 有完整的架構,且是針對無線環境 設計,但是因為傳輸距離短,應用受到了限 制。

Jini 和 UPnP 都有很完整的架構,接下 來我們將針對為何使用 Jini 來執行此計 畫作討論。

Jini 是一個分散式的作業系統,其目的 是希望將家庭網路變成一個具有彈性且容 易管理的環境,並讓其中的硬體設備或是軟 體程式可以彼此互相使用。而整個Jini 系統 希望達成的目標是:讓使用者藉由網路分享 資源以及服務、提供使用者隨時隨地簡單地 存取網路資源、簡化網路設備或軟體建置以 及轉換時的工作。Jini 的目的是將一個動態 的分散式系統上所有組成軟體或硬體設備 串連起來,並且使這些組成的軟體或設備能 夠很容易的存取,為了達成這些目標,Jini 做 了許多設計,以下就是Jini 中的一些重要概 念:

(1)服務 (Service) :服務是整個 Jini 架構中最重要的組成要素,通常可 以被某個人或是某個設備甚至是被 其他的服務使用,而服務可以是資 料的儲存、一個數學的計算、一個 硬體設備的使用,或是與其他使用 者溝通等。整個 Jini 系統中的成員 都可以分享其中的服務,因此我們 把 Jini 系統想成是由具備執行不同 任務的服務所共同組成的。因為Jini 是一個動態的系統,常常會有服務 加入或是離開,因此Jini 系統提供了 一個服務建構的機制,包括了查 詢、溝通以及服務使用,並且以Java

技術寫出各種服務介面來組成Jini 的服務協定,讓整個分散式系統中 的服務彼此能夠溝通。

(2)查詢服務 (Lookup Service) :查詢 服務是用來尋找所需的服務,提供 了使用者與系統間接觸的功能,通 常查詢服務接到使用者的服務需求 後,會將目前系統上所有能提供的 相關服務列出,並且描述其現有的 狀態供使用者選擇,此外還會提供 這些服務運作相關介面供使用者使 用。另外在查詢服務中會有目前系 統所有服務的清單,新加入 Jini 系 統中的服務是透過搜尋(Discovery) 和加入(Join) 兩個協定進入查詢服 務清單之中。

(3) Java Remote Method Invocation (RMI) :Jini 系統中不同服務間彼此 溝通是靠一個名為 Java Remote Method Invocation 的機制,它提供了 服務尋找、服務呼叫以及服務資源回 收等功能,此外 RMI 除了資料傳輸 外還能允許整個物件在服務間傳 送,這包括了服務中的程式碼,藉此 可以簡化整個Jini 系統的網路,讓某 個設備只有在需要某項服務時才需 將其相關使用介面下載回來。

(4)系統安全 (Security) :Jini 系統當中 是利用 Principal 以及 Access Control List 兩個程序來確保系統的 安全性,Principal 主要是用來確保 系統使用者以及服務之間相互使用 的安全性,而 Access Control List 則 是處理根據服務需求內容所會引發 的安全性問題。

(5)Leasing:Jini 系統中許多服務的使用 都是透過一個 Leasing 的介面來達 成,它藉由服務使用者與服務提供者 間的溝通,用來確保某段時間內某個

(5)

3

服務的使用權歸屬,因此當 Leasing 介面指定某一個服務在某一段時間 是由某個使用者使用,即使使用者不 再需要這個服務或是網路發生問 題,除非到了Leasing 指定的時間,

否則這個服務將不會被釋放出來。至 於一個服務的使用權可以是相容或 是互斥,當使用權相容時表示可以有 多個使用者共同分享服務資源,相對 的當使用權互斥時表示此服務同時 間只能有一個使用者使用。

(6)應用程式 (Transactions) :不論是單 一服務或是多個服務中的一連串系 統運作,都可以包裹在同一個應用程 式中來執行,Jini 的應用程式介面中 支援了不同服務狀態協調合作的相 關協定,當有某個應用程式被要求執 行時,可以透過這個應用程式介面直 接處理。

(7)事件 (Events) :Jini 系統架構支援 了分散式的事件觸發,一個物件可以 允許其他物件提出對此物件可能產 生事件的通知要求,當此事件發生時 系統會通知其他曾經提出通知要求 的物件,這使得 Jini 上面可以寫出許 多以事件為基礎的分散式系統程式。

Jini 系統架構可以分為三個部份,分別 是系統基本架構 (Infrastructure)、程式模組 (Programming Model)、以及服務 (Service),

它們分別都是由許多元件在Java的應用環境 中組成。

(1)系統基本架構(Infrastructure):Jini 系統基本架構主要是定義最基本的 Jini技術核心,這些基本架構包括以 下這些功能:整合到RMI 中的分散 式安全系統,可以用來擴充 Java 平 台的安全模組到世界上其他的分散 式系統之中。搜尋 (Discovery) 及加

入 (Join) 協定可以用來發現硬體或 軟體服務資源,並將其提供給 Jini 系統中其他成員使用。查詢服務 (Lookup Service) 紀錄現有服務資 源及相關狀態。

(2)程式模組 (Programming Model):系 統基本架構讓程式模組可以在其上 運作,並且使用相關的功能,由於 服務是由許多的程式介面所組成,

而這些程式介面主要是用來定義不 同服務與系統基本架構的溝通方 式,把這些程式介面集合在一起就 形成了應用在分散式系統上的Java 程式語言模組,也就是Jini 的程式模 組。這些組成Jini 程式模組的介面包 括如下:Leasing 介面用來定義服務 的使用權以及使用期間。事件觸發 (Events) 介面是從 JavaBean 的事 件觸發模組擴充到分散式系統上,

提供 Jini 服務間事件觸發時的溝 通。應用程式介面 (Transaction) 讓 不同服務中的各項運作可以在同一 個應用程式中相互合作。

(3)服務 (Service):Jini 系統基本架構 以及程式模組都是為了讓服務可以 在整個 Jini 系統網路中被使用,這 些服務透過系統基本架構彼此呼叫 使用,一般的 Jini 服務包括以下:

列印服務提供各種 Java 應用或是 由其他系統衍生的應用列印的功 能。JavaSpace 服務可以用來做簡易 的服務溝通,或是用 Java 程式語言 寫出的相關物件儲存功能。應用程 式管理服務 (Transaction Manager) 讓一群物件可以使用由 Jini 程式模 組定義的應用程式協定。

由於Jini的安全性比UPnP好,且一樣有 Plug and Play的功能,且Jini是使用Java

(6)

程式來執行,因此編譯成byte codes後,也 沒有使用平台上的問題。基於以上的好處,

我們使用Jini這項protocol來執行此計畫。

接下來,我們針對服務品質作一探討。

服務品質在網路以及無線技術當中,是很重 要的。在此,我們先對網路方面的服務品質 作一整理介紹。此外,關於無線方面的服務 品 質 , 如 IEEE 802.11 、 Bluetooth 、 IEEE 802.16、HyperLAN2等,可參考[3]。

我們可先從網路方面的服務品質作一 探討。從來源端傳往目的端的一連串封包 稱為資料流(flow)。在連結導向網路中,屬 於同一資料流的所有封包都流經相同路 徑;在無連結網路中,則可能各走不同的 路徑。每個資料流的需求可根據四個主要 參數予以歸類:可靠性、延遲、時基誤差、

以及頻寬。這些參數合起來便決定了該資 料流要求的服務品質。要達到良好服務品 質有許多種技術,如過度供給、漏水桶演 算法、記號桶演算法、資源預留…等等。

接下來,我們對無線方面的服務品質作 一介紹。服務品質(QoS)對於增強基於時間 的數據在無線區域網路中傳輸的可靠性、減 少資源爭奪因而提高頻帶利用率具有重要 意義。無線通訊系統已大體上形成了無線廣 域網路(WWAN)、無線區域網路(WLAN)和無線 個人網路(WPAN)的格局,而且分別具有了在 相應領域中的通訊標準:GPRS/3G(WCDMA、

CDMA2000和TD-SCDMA)、WLAN 802.11系列和 藍芽/Zigbee。

藉由無線電波取代傳統網路線,由焦 點、支援802.11x協定(包括Wi-Fi)的客戶端 裝置組合起來的WLAN環境,的確將使用戶從 複雜的網路線中解放出來。最初人們是希望 用無線接取的方式獲得有線乙太網路的數

據通訊速率,但目前其最高數據傳輸率已達 到54Mbps,是可提供最大無線接取頻寬的標 準。並且業界從安全、服務品質控制、漫遊、

相容性和與其他網路的融合等方面制訂一 系列標準,而且還在改進和發展。無線區域 網路正成為或已經成為人們最經常使用無 線接取網際網路的方式,以其低成本、高速 率、易於部署等特點成為近年來迅速成長的 領域。

三、研究方法

我們針對服務發現這個主題,參考 [1],建立一個 Jini 的列印服務應用範例。

首先,我們從 [2] 下載了 Jini 2.1。而此 範例包括了 16 個子程式,分別建立了 RMI-based services、使用者和服務的介 面、定義了列印服務的 API、列印服務的 Proxy 和遠端列印的介面、主控端列印的 API 和 UI、Client 端和 Service 端的連結。

16個子程式所執行的功能概述如下:

(1) BasicUnicastService.java:A class to use as a superclass for RMI-based services.

(2) RemoteUnicastAdmin.java:A remote interface that groups together all of the administrative interfaces supported by BasicUnicastAdmin.

(3) BasicUnicastAdmin.java:A class for handling common administrative chores.

(4) Printer.java:This is the interface that the proxy implements.

(5) PrintServiceEvent.java:A remote event that signals printer completion/failure.

(6) RemotePrinter.java:This is the interface that the proxy uses to communicate with the service’s back end.

(7) PrintProxy.java:This is the proxy object that will be sent to clients.

(8) PrintAdmin.java:A simple interface for

(7)

5

printer administration.

(9) PrintAdminPanel.java:A user interface for PrintAdmin objects.

(10) PrintService.java:This is the print service back end.

(11) PrintServiceData.java:Print service-specific persistent data.

(12) PrintRecord.java:internal bookkeeping for recording print jobs.

(13) RemotePrintAdmin.java:This is the union of the administrative interfaces that the print service implements.

(14) PrintAdminImpl.java:An implementation of RemotePrintAdmin, using the

administration toolkit.

(15) JobRecord.java:client-visible representation of a job.

(16) Client.java:A client of the print service.

在此,我們是以windows為平台來執行 此範例。首先,分別對service端和client端 compile:

javac -classpath C:\files;

C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\service;

-d C:\service

C:\files\corejini\chapter15\PrintService.java

javac -classpath C:\files;

C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\client;

-d C:\client

C:\files\corejini\chapter15\Client.java

接著分別於service端和client端run rmic

使遠端的介面可以使用。

rmic -classpath C:\files;

C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\client -d C:\client

corejini.chapter15.Client.Listener

rmic -classpath C:\files;

C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\service -d C:\service

corejini.chapter15.PrintService

corejini.chapter15.PrintService.PrintAdminIm pl corejini.chapter15.BasicUnicastAdmin

接著我們把service和client download時 會使用的class分別從stub複製到client-dl和 service-dl路徑中。

mkdir C:\client-dl\corejini\chapter15 cd C:\client\corejini\chapter15 copy Client$Listener_Stub.class C:\client-dl\corejini\chapter15 copy Client$PrintableString.class C:\client-dl\corejini\chapter15

mkdir C:\service-dl\corejini\chapter15 cd C:\service\corejini\chapter15 copy PrintService_Stub.class C:\service-dl\corejini\chapter15

copy PrintService$PrintAdminImpl_Stub.class C:\service-dl\corejini\chapter15

copy BasicUnicastAdmin_Stub.class C:\service-dl\corejini\chapter15 copy PrintProxy.class

C:\service-dl\corejini\chapter15

(8)

copy PrintService$PrintAdminImpl.class C:\service-dl\corejini\chapter15

copy PrintAdmin.class

C:\service-dl\corejini\chapter15 copy RemotePrintAdmin.class C:\service-dl\corejini\chapter15 copy RemotePrinter.class C:\service-dl\corejini\chapter15

在此範例中,我們是利用 HTTP 在同一 台電腦上使用不同的port 來模擬service端和 client端。

java -cp C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\service

-Djava.rmi.server.codebase=http://myhost:808 5/ -Djava.security.policy=C:\policy

corejini.chapter15.PrintService C:\storage

java -cp C:\jini2_1\lib\jini-core.jar;

C:\jini2_1\lib\jini-ext.jar;

C:\jini2_1\lib\sun-util.jar;

C:\client

-Djava.rmi.server.codebase=http://myhost:8

086/ -Djava.security.policy=C:\policy corejini.chapter15.Client

於 VoIP 應用方面,我們使用 SIP 協 定,架設了一部伺服器;並針對無線 VoIP 之應用進行不同環境影響之實驗。

四、結果與討論

Jini 服務發現範例執行畫面如下:

Fig. 1 Jini 服務發現範例

此範例是在 windows 平台下,在同一 台電腦上利用 HTTP 協定,使用不同 port,

來分別代表 client 端和 service 端,

service 端提供了列印的服務。

VoIP 部分,我們介紹一語音品質的規 範,稱為 Perceptual Evaluation of Speech Quality (PESQ)。此演算法把聲音品質以數 值來代表,數值範圍為 1 到 4.5,數字愈 大代表聲音品質愈好。

我們可把 PESQ 的值和封包遺失率的 關係以下表表示之。此表列出一些常用的 語音規範。

Table 1 PESQ versus packet loss rate

我們於無反射實驗室實記量測VoIP受到 同頻道干擾的結果,是以IEEE 802.11b 為 VoIP的傳輸協定,而同頻道干擾是藍芽訊 號,IEEE 802.11b 與藍芽訊號皆是操作在 2.4GHz。

我們調整同頻道干擾的功率,當功率愈

(9)

大的時候,可以觀察得知封包遺失率以及平 均時基誤差也愈大,可以下面二圖表示之。

7 Fig. 2 WLAN packet loss rate with Bluetooth CCI

Fig. 3 WLAN mean jitter with Bluetooth CCI

五、成果自評

在此計畫中,我們首先對無線網路的 服務發現作簡介,並透過ㄧ個 Jini 的程式 實現一印表機的服務發現例子。而服務品 質方面,我們分別對有線以及無線來作一 介紹。

對於目前無線方面的服務品質,IEEE 802.11e 標準協議對於如何在無線網路 MAC 層提供 QoS 保障的問題做出了有益的 探索並推動了標準化工作和相關產業的迅 速發展。儘管在 QoS 性能上表現還存在不 足,但該標準的最終通過必將進一步促進 無線區域網路的發展,並為用戶提供更好 的服務品質。

囿於計劃時程限制,我們進行了服務 發現及無線 VoIP 研究,而未能進行資源配 置機制研究。對無線 VoIP 研究,本計劃發 表了一篇國際會議論文。

六、參考文獻

[1] W. Keith Edwards, Core Jini , 2nd edition, Prentice Hall, 2001.

[2] http://www.sun.com/

[3] A. Ganz, Z. Ganz, and K. Wongthavarawat, Multimedia Wireless Networks,

Technologies, Standards, and QoS, Prentice Hall, 2004.

[4] http://www.jini.org/

[5] http://www.upnp.org/

[6] Andrew A. Tanenbaum, Computer

Networks, 4th edition, Prentice Hall, 2003.

數據

Table 1 PESQ versus packet loss rate
Fig. 3 WLAN mean jitter with Bluetooth CCI

參考文獻

相關文件

、牧業生產人員」25,250元最低;屏東縣政府勞動暨青年發展處就業服務台所服務 之求職者平均希望待遇以「4 事務支援人員」、「5 服務及銷售工作人員」、「8 機

潮州就業中心、屏東縣政府勞動暨青年發展處就業服務台所服務之求職者平均希

本刊“98 年第 3 季(7~9 月)就業服務統計資訊"主要資料來源為「行政院

本刊“99年第3季(7~9月)就業服務統計資訊"主要資料來源為「行政院勞

流程(包括中央/縣市政府/民間機 構的各種職業重建服務,如:就業 資訊與諮詢、居家就業、創業補 助、職務再設計、各種就業服務方

三、 桃園縣政府-「身心障礙者職業重建窗口購買服務計畫」 :以促進 就業為導向,由職業重建個案管理員依身心障礙礙者屬性及提供服

四、 廠商應於服務決標後 3

依身障者個別需求及職能,109 年截至 6 月底止提供一般性就業服務計推介就業 9,956 人、支持性就業服務計推介就業 1,249 人及推動辦理身心障礙者職務再