Tải bản đầy đủ (.pdf) (54 trang)

Triển khai nhà thông minh với webservice và ngôn ngữ bpel trên thiết bị hỗ trợ UPNP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 54 trang )

BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
_________________

ĐỖ TRẦN ANH

TRIỂN KHAI NHÀ THÔNG MINH VỚI
WEBSERVICE VÀ NGÔN NGỮ BPEL TRÊN THIẾT BỊ
HỖ TRỢ UPNP
Chuyên ngành : CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
1. Phạm Huy Hoàng

Hà Nội – năm 2012


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Mục lục
LỜI CẢM ƠN
2
LỜI CAM ĐOAN
3
DANH SÁCH CÁC TỪ VIẾT TẮT
5
PHẦN MỞ ĐẦU
6


CHƯƠNG 1.NHÀ THÔNG MINH VÀ CÁC CHUẨN DÙNG TRONG THIẾT KẾ NHÀ
THÔNG MINH
7
1. Tổng quan
7
2. Sơ lược một số chuẩn giao thức phổ biến áp dụng trong triển khai nhà thông minh
9
3. Thiết kế nhà thông minh với webservice trên thiết bị hỗ trợ Upnp và ngôn ngữ quy
trình BPEL
10
CHƯƠNG 2. KIẾN TRÚC UPNP TRONG QUÁ TRÌNH TRIỂN KHAI NHÀ THÔNG
MINH
11
1. Tổng quan kiến trúc UPnP
11
2. Khám phá và được cấp IP
14
3. Mô tả thiết bị
16
4. Kiểm soát thiết bị
21
5. Sự kiện trong mạng UPnP
24
6. Trình diễn
27
CHƯƠNG 3. QUY TRÌNH NGHIỆP VỤ BPEL ( BUSSINESS PROCESS EXECUTION
LANGUAGE)
29
1. Tổng quan về BPEL
29

2. Sơ lược và XML và WSDL
29
3. Chi tiết về ngôn ngữ BPEL
31
CHƯƠNG 4. KẾT HỢP GIỮA WEBSERVICE TRONG THIẾT BỊ UPNP VÀ NGÔN
NGỮ QUY TRÌNH BPEL
38
1. Kết hợp giữa Webservice và BPEL
38
2. Quy trình kết hợp giữa Webservice của thiết bị UPnP và PBEL
39
3. Xác định danh sách các Webservice
39
4. Phân tích các chức năng và sự kiện trong thiết bị UPnP
41
5. Xây dựng kịch bản hoạt động cho các thiết bị
43
6. BPEL hóa kịch bản hoạt động của các thiết bị
45
CHƯƠNG 5. XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ VÀ ĐIỀU KHIỂN CÁC THIẾT
BỊ HỖ TRỢ UPNP TRONG NGÔI NHÀ THÔNG MINH
47
1. Yêu cầu chương trình
47
2. Giao diện và hoạt động của chương trình quản lý và điều khiển các thiết bị hỗ trợ
UPNP trong ngôi nhà thông minh
50
26.
Đánh giá chương trình
52

CHƯƠNG 6. KẾT LUẬN VÀ ĐỀ XUẤT
53
TÀI LIỆU THAM KHẢO
54
4
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

LỜI CẢM ƠN
 

Đầu tiên, tôi xin tỏ lòng cảm ơn sâu sắc Tiến sĩ Phạm Huy Hoàng đã hướng
dẫn tôi hoàn thành luận văn.
Tôi xin chân thành cảm ơn các thầy, cô giáo đã tận tình giúp đỡ tôi trong suốt
quá trình học tập.
Cảm ơn toàn bộ tập thể lớp CNTT-NT đã cùng tôi vượt qua khó khăn để
hoàn thành khóa học.
Tác giả

ĐỖ TRẦN ANH

 
 
 
 

 


2
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

LỜI CAM ĐOAN
 

Tôi xin cam đoan, toàn bộ luận văn này là quá trình nghiên cứu độc lập của
chính bản thân. Luận văn được hình thành từ hướng dẫn của Tiến sĩ Phạm Huy
Hoàng. Trong quá trình nghiên cứu tôi có sử dụng một số tài liệu từ các tác giả
khác và đã nêu trong phần tài liệu tham khảo.
Hà Nội, ngày

tháng

năm 2012

ĐỖ TRẦN ANH

3
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP
 

Danh sách các từ viết tắt :
LCD


Liquid Crytal Display

Lan

Local Area Network

Wan

Wide Area Network

IP

Internet Protocol

PDA

Personal digital assistant

EIB

EuroPean Installation Bus

UPnP

Universal Plug and Play

DHCP

Dynamic Host Configuration Protocol


DNS

Domain name system

XML

eXtensible Markup Language

HTTP

Hypertext Trasfer Protocal

SSDP

Simple Service Discovery Protocol

SOAP

Simple Object Access Protocol

TTL

Time to live

WSDL

Web services Description Language

XML


eXtensible Markup Language

 
 
 
 
 
 

5
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

PHẦN MỞ ĐẦU
Ngày nay mô hình nhà thông minh ngày trở nên phổ biến, con người đang
cố gắng tạo ra môi trường sống tiện nghi và thân thiện. Với sự phát triển của công
nghệ thông tin về phần cứng , phần mềm việc xây dựng ngôi nhà thông minh ngày
càng trở nên dễ dàng.
Vậy như thế nào là nhà thông minh ?. Nhà thông minh là ngôi nhà mà những
tiện nghi mang lại cho người dùng được tự động hóa và diễn theo một kịch bản đã
được định nghĩa trước.
Có rất nhiều hãng sản xuất các thiết bị nhà thông minh theo rất nhiều tiêu
chuẩn, tuy nhiên các thiết bị hầu như chưa được mềm hóa. Vì vậy để mềm hóa các
thiết bị trong ngôi nhà thông minh chúng ta phải xây dựng một giải pháp mới theo
hướng phần mềm làm chủ ngôi nhà.
Với sự ưu việt của XML và SOAP,HTTP trong công nghệ Webservice (dịch
vụ web) hơn 966 nhà sản xuất thiết bị điện tử đã cùng phát triển chuẩn kiến trúc

UPnP nhằm đảm bảo việc sử dụng thiết bị thông qua các điểm điều khiển được dễ
dàng.
Thông qua kiến trúc UPnP hàng loạt các sản phẩm như : Tivi, Điện thoại,
máy tính cá nhân, tủ lạnh… đã ra đời.
Từ sự phổ biến của các thiết bị UPnP, tôi đã được tiến sĩ Phạm Huy Hoàng
hướng dẫn nghiên cứu đề tài “Triển khai nhà thông minh với Webservice và BPEL
trên thiết bị hỗ trợ UPnP “
Mục đích nghiên cứu của đề tài này là :
1- Nghiên cứu một số giải pháp nhà thông minh phổ biến
2- Nghiên cứu cách hoạt động của các thiết bị UPnP
3- Nghiên cứu về Webservice trong các thiết bị UPnP
4- Nghiên cứu ngôn ngữ quy trình nghiệp vụ BPEL
5- Nghiên cứu quá trình kết hợp giữa Webservice và quy trình nghiệp vụ
BPEL.
6- Xây dựng chương trình kết nối các thiết bị hỗ trợ UPnP(Webservice) và
điều khiển thiết bị bằng ngôn ngữ quy trình BPEL.
6
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

CHƯƠNG 1.NHÀ THÔNG MINH VÀ CÁC CHUẨN DÙNG TRONG THIẾT
KẾ NHÀ THÔNG MINH
1.

Tổng quan
Nhà thông minh là hệ thống nhà mà trong đó các thành phần cơ bản như
điện, nước, viễn thông, an ninh đều được áp dụng các công nghệ tiên tiến về điều
khiển tự động để điều khiển theo các quy trình định nghĩa trước. Thông qua các hệ

thống điều khiển này, người dùng sẽ cảm thấy thoải mái và gần gũi hơn với ngôi
nhà của mình.
Lợi ích mà nhà thông minh mang lại cho người dùng là tiện lợi, tiết kiệm,
hiện đại và sang trọng
Tùy thuộc vào số thành phần, số lượng thiết bị mà việc thông minh hóa ngôi
nhà sẽ có các mức độ khác nhau. Thông thường một ngôi nhà thông minh thường
gắn liền với việc tự động các hệ thống như :
- Hệ thống điện
- Hệ thống giải trí
- Hệ thống an ninh
- Hệ thống quản lý năng lượng
- Hệ thống kết nối internet
- Hệ thống nước
Nhà thông minh còn được đánh giá mức độ thông minh thông qua các cơ chế
điều khiển như :
Điều khiển trực tiếp (Direct control): Thông qua các công tắc thông minh,
có khả năng tùy biến chức năng thông qua việc lập trình theo ý thích của người sử
dụng.
Điều khiển từ xa qua thiết bị cầm tay (remote control): Việc điều khiển từ
xa sử dụng sóng RF, do vậy cho phép tăng khoảng cách điều khiển mà không bị cản
trở bởi tường hay vật cản.
Điều khiển trung tâm (Center control): Sử dụng các màn hình điều khiển
dạng cảm ứng (touchpanel), dạng LCD, dạng RCD cho phép quản lý tại một vị trí
nhiều thiết bị và chức năng. Thể hiện các trạng thái hoạt động của thiết bị một cách
trực quan. Ngoài ra còn cho phép hiển thị nhiệt độ, độ ẩm, độ sáng … khi kết hợp
với các cảm biến tương ứng trong hệ thống.
Điều khiển theo thời gian (Times control): Được lập trình cho các nhóm
đèn ngoài nhà, đèn cổng…để có thể tự động bật sáng lúc 18h30 và tự tắt lúc 23h.

7

 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Điều khiển theo thời gian trễ (Delay control): Được tích hợp cho phím tắt
trung tâm khi ra khỏi nhà ví dụ các thiết bị sẽ tự động tắt sau 03 phút.
Điều khiển theo sự kiện (Events control): Đây là tính năng điều khiển cao
cấp. Ví dụ : Khi đèn WC sáng trong thời gian > 1phút thì quạt gió sẽ tự động chạy.
Khi đèn tắt sau 30’ thì quạt gió sẽ tự động tắt. Hoặc khi độ ẩm trong đất nhở hơn
mức ngưỡng (lựa chọn trước) thì hệ thống tưới sân vườn sẽ tự động chạy …
Điều khiển theo lịch trình (Schedules control): Hệ thống cho phép định
trước một lịch trình hoạt động cho các thiết bị trong hệ thống theo thời gian biểu
trong ngày hoặc trong một giải ngày khi người chủ đi vắng
Điều khiển theo chuyển động (motion detector), theo sự hiện diện
(presence detector): Các cảm biến chuyển động được bố trí tại khu vực ngoài nhà,
hành lang, cầu thang … để tự động bật/tắt đèn khi có người đi qua. Cảm biến hiện
diện được lắp tại khu vực thư viện. Ngoài ra, các cảm biến này còn là đầu vào cho
hệ thống báo động khi cần thiết.
Điều khiển mành rèm, cửa tự động : Các rèm cửa tự động của lầu trệt, lầu
hai được tích hợp vào hệ thống, cho phép điều khiển từ nhiều vị trí. Ngoài ra nó còn
được tích hợp vào chế độ điều khiển theo cảnh (Scene control).
Trung tâm thời tiết (Weather Station): Là sự kết hợp bởi các bộ cảm biến
về thời tiết như : cảm biến gió, cảm biến ánh sáng, cảm biến bụi … Các tín hiệu của
các cảm biến này đóng vai trò như các tác động đầu vào để điều khiển các thiết bị
khác một cách tự động. Ví dụ : khi gió to, mái hiên tự động sẽ được mở ra, khi ánh
sáng ban ngày đủ lớn, các nhóm đèn không cần thiết sẽ tự động tắt …
Điều khiển qua điện thoại (Telephone control): Bộ điều khiển qua điện
thoại được tích hợp vào hệ thống cho phép lập trình điều khiển hơn 10 thiết bị hoặc
nhóm thiết bị. Ngoài ra, nó còn thực hiện nhiệm vụ cảnh báo cho người sử dụng

qua các số điện thoại (được cài đặt trước) khi trong nhà có sự cố như cháy, trộm …
Điều khiển qua IP (IP control): Bộ điều khiển qua IP cho phép người sử
dụng truy nhập điều khiển hệ thống qua các máy tính trong mạng cục bộ (LAN)
hoặc mạng diện rộng (WAN), qua các điện thoiaj thông minh (PDA) để có thể giám
sát, điều khiển các thiếu bị được lựa chọn trong hệ thống. Thiết bị này có sự phân
cấp bảo mật theo tài khoản truy cập.
Điều khiển qua máy tính PC: Việc dùng máy tính với phần mềm chuyên
dụng làm cho việc điều khiển ngôi nhà thông minh trở nên dễ hơn và gần như
không giới hạn các kịch bản.

8
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Rất nhiều giải pháp để áp dụng cho ngôi nhà thông minh như : mua các thiết
bị tự động rời rạc, áp dụng hệ thống thông mình của từng hãng khác nhau. Tuy
nhiên mỗi các giải pháp đều có ưu nhược điểm.
Giải pháp

Ưu điểm

Nhược điểm

Mua các thiết bị tự động Dễ lắp đặt, dễ thay thế
rời rạc

Việc điều khiển tập
trung là không thể


Mua các thiết bị đồng Toàn bộ ngôi nhà đi Phụ thuộc nhiều vào
bộ của một hãng
theo 1 dòng sản phẩm thiết bị cũa hàng
của một hãng sản xuất Giá thành cao
nên dễ sử dụng. Dễ dàng
trong việc triển khai.
Kết nối các thiết bị rời Dễ dàng bổ sung thiết bị Số lượng sản phẩm của
rạc nhưng có hỗ trợ khi cần.Không bị phụ 1 chuẩn có thể không
thuộc vào 1 hãng sản phong phú
chuẩn
xuất

2.
Sơ lược một số chuẩn giao thức phổ biến áp dụng trong triển khai nhà
thông minh
Chuẩn giao thức X10: là một giao thức cho phép các thiết bị tương thích có thể
trao đổi tín hiệu lẫn nhau thông qua hệ thống dây dẫn điện trong nhà. Phần lớn các
sản phẩm tương thích X10 có giá thành tương đối hợp lý bởi việc các thiết bị trao
đổi tín hiệu lẫn nhau thông qua hệ thống dây dẫn có sẵn không làm phát sinh thêm
chi phí. Việc lắp đặt một hệ thống X10 cũng thật là đơn giản, bộ phát tín hiệu X10
được cắm vào hoặc gắn vào dây dẫn và gửi các tín hiệu điều khiển (bật, tăt, sáng,
tối,…) tới một bộ nhận tín hiệu được lắp ở một vị trí khác trong nhà.
Với X10, việc điều khiển rất đơn giản, sau khi được phát ra từ thiết bị phát
tín hiệu, các tín hiệu điều khiển được chuyển đến thiết bị thu phát tín hiệu.
Bằng việc sử dụng điều khiển từ xa hoăc bằng cách quay số điện thoại bạn có thể
điều khiển 1 đến 256 thiết bị trong hệ thống điện nhà mình.
Chuẩn giao thức EIB(EuroPean Installation Bus): Chuẩn giao thức điều khiển
thiết bị thông minh của Châu Âu, toàn bộ thiết bị điện trong tòa nhà được kết nối
9

 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

với nhau thông qua hệ thống EIB với 1 dây duy nhất chạy đến từng thiết bị. Mỗi
thiết bị sẽ được gán một địa chỉ.Thế mạnh của EIB là tính linh hoạt và sự mềm dẻo
trong việc lập trình phần mềm điều khiển trên máy tính.
Chuẩn giao thức EIB được hơn 200 nhà sản xuất thiết bị điện tại Châu Âu
ủng hộ và có nhiều sản phẩm tuân thủ theo tiêu chuẩn EIB, thành lập nên hiệp hội
các nhà sản xuất các thiết bị điện thông minh theo tiêu chuẩn Châu Âu(KNX).
Chuẩn giao tiếp RS 485: Chuẩn giao thức cho phép tạo kết nối mạng cho 128 thiết
bị trên 1 đôi dây, ứng với mỗi thiết bị sẽ được đánh địa chỉ, chiều dài tối đa của đôi
dây 1200m. Tốc độ truyền của chuẩn RS485 bị phụ thuộc vào chiều dài của toàn hệ
thống mạng. Một số nhà thông minh sử dụng giao thức này cho việc điều khiển các
thiết bị an ninh, hoặc lấy các số liệu nhiệt độ và độ ẩm.
Ngoài việc sử dụng các chuẩn giao thức trên, hiện nay với xu thế áp dụng
việc điều khiển từ máy tính một số hệ thống nhà thông minh còn dùng các giao tiếp
như : Wireless, RF, Bluetooth… sử dụng TCP-IP làm chuẩn giao tiếp.
3.
Thiết kế nhà thông minh với webservice trên thiết bị hỗ trợ Upnp và
ngôn ngữ quy trình BPEL
Chuẩn UpnP(Universal Plug and Play ) ra đời năm 1999 và được 950 công ty
trong lĩnh vực máy tính, thiết bị gia dụng thống nhất sử dụng và ngày áp dụng trên
nhiều thiết bị trong gia đình như : Tivi, máy tính, máy nghe nhac, tủ lạnh, thiết bị di
động, các hệ thống chia sẽ tập tin…
Mục tiêu của chuẩn UpnP là giúp các thiết bị kết nối mạng liền mạch, dễ
dàng trong các hệ thống mạng gia đình và doanh nghiệp. Từ việc được hỗ trợ kết
nối dễ dàng và số lượng thiết bị rất phổ biến với 966 nhà cung cấp thiết bị,
luận văn này nghiên cứu việc kết nối các thiết bị hỗ trợ Upnp và điều khiển

chúng thông qua ngôn ngữ quy trình BPEL.

10
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

CHƯƠNG 2. KIẾN TRÚC UPNP TRONG QUÁ TRÌNH TRIỂN KHAI NHÀ
THÔNG MINH
1.

Tổng quan kiến trúc UPnP
Kiến trúc UPnP là kiến trúc cung cấp các kết nối theo kiểu mạng ngang hàng
(Peer to peer) cho các thiết bị như máy vi tính, điện thoại, thiết bị di dộng, thiết bị
gia dụng dựa trên nền tảng các giao thức về mạng TCP/IP để kết nối liền mạch, dễ
dàng mọi lúc mọi nơi.
Các thiết bị hỗ trợ UPnP sẽ tự động phát hiện, cập nhật, cấu hình, nhận ra
môi trường mà thiết bị phải làm việc, thông báo sự tồn tại của thiết bị và phát hiện
các thiết bị khac trong cùng một mạng. UpnP độc lập với toàn bộ các thiết bị vật lý
khác cũng như hệ điều hành của các thiết bị.
Những ưu điểm nổi bật của Upnp:
- Tính độc lập giữa thông tin và thiết bị: Upnp cho phép triển khai trên bất kì
đường mạng nào như : Wifi, dây điện thoại, đường dây điện, ethenet, 1394.
- Chạy trên mọi nền tảng : Các nhà cung cấp thiết bị còn có thể sử dụng bất
kì hệ điều hành, ngôn ngữ lập trình để xây dựng các sản phẩm Upnp.
- Công nghệ dựa trên Internet : Công nghệ UPnP xây dựng dựa trên
IP,TCP,UDP,HTTP,XML.
- Giao diện người dùng : UPnP cho phép người dùng kiểm soát và điều khiển
thiết bị thông qua giao diện người dùng tích hợp, được hiểu và chạy trên các trình

duyệt web.
- Điều khiển các chương trình : UPnP cho phép điều khiển các chương trình
ứng dụng sử dụng các chức năng của thiết bị UPnP.
- Các giao thức chung : Các nhà sản xuất thiết bị theo chuẩn UPnP đồng ý
cung cấp các giao thức cơ bản cho từng thiết bị.
Mục tiêu của UPnP là triển khai các mạng gia đình, mạng của các tòa nhà,
mạng của doanh nghiệp nhỏ. UPnP cho phép chia sẽ thông tin giữa bất kì hai thiết
bị dưới sự giám sát của bất kì thiết bị điều khiển cùng trong mạng.UPnP độc lập với
hệ điều hành, ngôn ngữ lập trình và công nghệ mạng.
-UPnP tự động dò mạng và kết nối không cần cấu hình :
Kiến trúc UPnP hỗ trợ tự động phát hiện và không cần cấu hình qua đó thiết
bị có thể :
- Tự phát hiện và tham gia vào mạng.
- Tự nhận một địa chỉ IP
- Công bố tên của thiết bị
11
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

- Truyền đạt khả năng của mình theo yêu cầu
- Tìm hiểu sự hiện diện cũng như khả năng của các thiết bị khác
- Ngắt kết nối một các tự động mà không để lại bất kì thông tin
không mong muốn nào của thiết bị sau đó.
- DHCP và DNS chỉ là 1 tùy chọn và chỉ được sử dụng nếu có sẳn
trên mạng.
UPnP dựa trên giao thức :
- Khai báo
- Thể hiện trong XML

- Truyền đạt thông qua HTTP
Một số kịch bản ứng dụng UPnP :
Thế giới giải trí số : Sử dụng các thiết bị hỗ trợ UPnP cho phép truy cấp các
thông tin âm nhạc, video, hình ảnh được chia sẽ từ các thiết bị khác nhau mà không
cần qua tâm đến thiết bị lưu trữ. Bạn có thể nghe nhạc trong khắp ngôi nhà, xem
phim, hình ảnh bằng ti vi, chơi trò chơi internet.
Các thiết bị thông minh : Kết nối và điều khiển các thiết bị hỗ trợ UPnP
thông qua hệ thống mạng, chia sẽ các phương thức điều khiển thông qua World
Wide Web.
UPnP Vendor
UPnP Forum
UPnP Device Architecture
SSDP

Multicast events

UDP

SOAP

GENA

HTTP

HTTP

TCP

IP
Mô hình Các lớp giao thức trên thiết bị UPnP

Lớp đầu tiên UPnP Vendor mang thông tin từ nhà sản xuất thiết bị, lớp tiếp
theo UPnP Forum mang thông tin mô tả của chuẩn UPnP đã được thống nhất có thể
là 1.0 hoặc 1.1. Thông tin từ các lớp trên sẽ được chuyển sử dụng cho các giao thức
của lớp tiếp theo như : giao thức SSDP, Multicast events, SOAP, GENA,HTTP các
giao thức này sử dụng UDP và TCP để làm giao thức chuyển tại trên nền tảng IP.
12
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Cơ chế hoạt động của thiết bị hỗ trợ UPnP thông qua các bước như sau :
Bước 1 : Khám phá và được cấp IP : Khi một thiết bị UPnP thêm vào
mạng giao thức UPnP cho phép thiết bị thông báo các dịch vụ mà mình cung cấp để
kiểm soát các thành phần UPnP trên cùng mạng. Tương tự như vậy các thiết bị đã
có trên mạng cũng khám phá các thông tin từ thiết bị UPnP mới tham gia.
Bước 2 : Mô tả : Mặc dù thiết bị UPnP đã tham gia vào mạng, tuy nhiên các
thiết bị trong cùng một mạng còn biết rất ít thông tin về thiết bị mới tham gia. Đối
với các điểm kiểm soát để tìm hiểu thiết bị mới tham gia mạng, hoặc để tương tác
với thiết bị, các điểm kiểm soát phải lấy mô tả thiết bị từ các đường dẫn được cung
cấp từ thông báo phát hiện thiết bị. Thông tin có thể bao gồm các thiết bị logic, các
hàm hoặc các dịch vụ. Mô tả của các thiết bị UPnP thể hiện trong các tập tin XML
bao gồm thông tin cụ thể nhà cung cấp, nhà sản xuất, số lượng, số serial, tên trang
web nhà sản xuất, các đường dẫn để kiểm soát sự kiện. Đối với các dịch vụ thông
tin mô tả bao gồm các lệnh, các hành động mà các dịch vụ cung cấp, hoặc các đối
số, cú pháp của hành động.
Bước 3 : Điểm kiểm soát : Sau khi một điểm kiểm soát đã lấy được mô tả
của thiết bị từ bước 2, các điểm kiểm soát có thể gửi các điều khiển đến thiết bị.Để
làm điều này một điểm kiểm soát sẽ gửi một thông điệp kiểm soát phù hợp với
đường dẫn điều khiển dịch vụ ( có trong tập tin mô tả thiết bị). Thông điệp điều

khiển cũng được thể hiện trong tập tin XML bằng các sử dụng giao thức truy cập
SOAP.
Bước 4: Sự kiện trong mạng UPnP: Một kịch bản dành cho một dịch vụ
của thiết bị UPnP bao gồm một danh sách các hành động mà dịch vụ đáp ứng, và
một danh sách các biến được gửi trả lại trong quá trình thực thi.Một dịch vụ xuất
bản của có trách nhiệm kiểm tra các giá trị trả lại của các biến trong quá trình thực
thi và bất kì một điểm kiểm soát nào trên hệ thống đều có thể đăng kí nhận thông
tin các biến này. Dịch vụ xuất bản này cập nhật thông tin bằng cách gửi các tin
nhắn tới các dịch vụ của thiêt bị UPnP. Một tin nhắn sự kiện sẽ có thể bao gồm
nhiều biến, hàm … các thông tin này có thể được mô tả trong tập tin XML của thiết
bị.
Bước này đảm bảo cho việc các điểm kiểm soát trong mạng UPnP có thể
lắng nghe trạng thái dịch vụ của các thiết bị mà không cần đăng kí. Có hai phương
thức thông báo sự kiện là : Unicast và Multicast.
Bước 5 : Trình diễn: Ứng với mỗi thiết bị trong mạng UPnP đều có một địa
chỉ trang (URL), từ địa chỉ này các điểm kiểm soát có thể truy cập tải các trang này
13
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

vào các trình duyệt, tùy khả năng của trang mà các điểm kiểm soát có thể hiển thị,
điều khiển các thiết bị từ trình duyệt.
2. Khám phá và được cấp IP(Notification and Search):
Khi một thiết bị tham gia vào mạng UPnP, giao thức khám phá của chuẩn
UPnP cho phép thiết bị gửi các thông tin về mình đến các điểm kiểm soát. Tương tự
như thế khi một điểm kiểm soát tham gia vào mạng UpnP, giao thức khám phá của
chuẩn UPnP cũng cho phép điểm kiểm soát có thể tìm thấy các thiết bị đã kết nối
trong mạng UPnP.

Việc thông báo khi tham gia vào mạng UPnP thông thường bao gồm các
thông báo về các đặc điểm cơ bản của thiết bị như loại thiết bị, dịch vụ mà thiết bị
cung cấp, trạng thái của thiết bị.

14
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Hình 1 : Kiến trúc khám phá của mạng các thiết bị hỗ trợ UPnP
Khi một thiết bị tham gia vào mạng, thiết bị phải tự mình thông báo những
thông tin cơ bản của thiết bị đến với tất cả (Multicast) các thiết bị đang có trong
mạng UPnP . Bất kì các điểm kiểm soát nào quan tâm đến thiết bị đều có thể lắng
nghe các thông tin cơ bản của thiết bị mới tham gia mạng. Một thiết bị thông
thường phải gửi các thông tin cơ bản đến các các thiết bị khác trên mọi giao diện
15
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

UPnP có thể. Khi một điểm kiểm soát tham gia vào mạng UPnP nó có thể tìm kiếm
và khám phá tất cả các thiết bị và điểm kiểm soát đang có trên mạng UPnP. Các
điểm kiểm soát cũng có thể khám phá ra thiết bị mới thông qua các tin nhắn tại
cổng mặc định 1900 của thiết bị (Unicast) hoặc cổng khác do thiết bị chỉ định.
Trong trường hợp một điểm kiểm soát muốn lấy thêm thông tin của một thiết
bị các điểm kiểm soát có thể truy vấn thông tin thiết bị theo cú pháp của thông báo
khám phá ra thiết bị để có thêm thông tin của thiết bị.
Khi một thiết bị không còn tham gia mạng UPnP nó sẽ có thông điệp thông

báo gửi tới các thiết bị khác về việc không tồn tại của thiết bị trên mạng UpnP.
Khi địa chỉ IP được cấp cho thiết bị thay đổi thì thiết bị cũng phải có thông điệp
thông báo sự thay đổi IP của nó đến các điểm kiểm soát và các thiết bị cùng mạng.
Khi một cụm thiết bị UPnP không còn tồn tại trên mạng UPnP nó nên có
thông báo thu hồi các thông báo của thiết thiết bị con đã thông báo trước đó.
Để hạn chế tắt nghẽn mạng, các thông báo của thiết bị UPnP phải được quy
định thời gian còn hiệu lực (TTL) khi TTL > 1 nó sẽ cho thông báo đi qua nhiều bộ
định tuyến.
Quá trình khám phá đóng một vai trò rất quan trọng trong khả năng tương tác
giữa các thiết bị các các điểm kiểm soát mặc dù có thể phiên bản UPnP là khác
nhau. Khi đó tính tương thích của các thiết bị phiên bản sau phải hoàn toàn phù hợp
với các thiết bị phiên bản trước đó (tương thích ngược).
Trong quá trình khám phá các thiết bị trong mạng UPnP sử dụng giao thức
SSDP (Simple Service Discovery Protocol). SSDP sử dụng một phần của các định
dạng tiêu đề của HTTP 1.1 được quy định trong RFC 2616.Tuy nhiên, nó là
không dựa trên đầy đủ HTTP 1.1 là vì SSDP sử dụng UDP thay vì TCP, và SSDP
có những quy tắc riêng. Chi tiết về định dạng của SSDP có thể tham khảo thêm tài
liệu : UPnP arch Device Architecture Ver 1.1.
Trong kiến trúc khám phá của thiết bị hỗ trợ UPnP diễn ra các quá trình như :
Advertise ( Quảng bá )
Search (Tìm kiếm thiết bị hoặc điểm điều khiển)
Quá trình quảng bá (Advertise ) : Khi một thiết bị UPnP được thêm vào
mạng, thiết bị phải quảng bá thông tin dịch vụ của mình đến các điểm kiểm soát.
3. Mô tả thiết bị :
Quá trình tự mô tả thiết bị diễn ra sau khi thiết đã tham gia vào UPnP, lúc
này điểm kiểm soát đã phát hiện ra thiết bị, nhưng thông tin ở giai đoạn khám phá
cung cấp rất ít, chỉ bao gồm tên thiết bị, loại thiết bị, tính duy nhất của thiết bị trong
mạng UPnP. Đối với các điểm kiểm soát để tìm hiểu thêm khả năng của thiết bị
16
 



Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

cũng như tính tương tác của thiết bị các điểm kiểm soát phải lấy thêm mô tả thiết bị
từ các URL do thiết bị cung cấp.

Hình 02 : Kiến trúc quá trình mô tả thiết bị
Mô tả thiết bị chia làm hai phần :
- Mô tả về thiết bị về mặt vật lý và về mặt cơ chế, các thông số.
- Mô tả dịch vụ và khả năng giao tiếp của thiết bị. Riêng phần mô tả
dịch vụ được chia thành các URL :
o URL mô tả.
o URL kiểm soát.
o URL sự kiện.
Ngoài ra trong phần mô tả thiết bị còn có một URL chi tiết các liên quan
giữa các việc mô tả, kiểm soát và sự kiện.
Một số thiết bị trong thực tế bao gồm nhiều thành phần UPnP khác nhau hợp
thành do vậy đôi khi ứng với một thiết bị sẽ có nhiều bản mô tả cho từng thành
phần UPnP hợp thành thiết bị đó.
ột mô tả dịch vụ của một thiết bị UPnP bao gồm các thành phần :
Danh sách các lệnh, danh sách các hành động, danh sách các thông số hoặc
lập luận cho từng hành động. Ngoài ra còn bao gồm mô tả danh sách các biến toàn
cục hoặc địa phương và mô tả về kiểu dữ liệu phạm vi và đặc điểm sự kiện.
Giống như mô tả về thiết bị UPnP một mô tả dịch vụ của thiết bị UPnP được
thiết bởi nhà sản xuất thiết bị UPnP theo đúng những quy định của UPnP Forum
quy định.
17
 



Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Theo hình 02, các yêu cầu của điểm kiểm soát khi tìm hiểu mô tả của thiết bị
đều thực hiện thông qua các URL bằng giao thức HTTP GET và đợi thiết bị trả lời
bằng giao thức HTTP RESP
Thiết bị nhận HTTP RESP sẽ trả lời lại đúng với IP của điểm điều khiển đã
dùng HTTP GET.
Giống như quá trình khám phá, quá trình mô tả thiết bị đóng một vai trò quan
trọng trong quá trình tương tác giữa thiết bị và các điểm điều khiển.
Tất cả các định dạng của phần mô tả thiết bị, nhà sản xuất thiết bị phải tham
khảo theo đúng yêu cầu UPnP forum.
Một mô tả thiết bị nếu viết theo yêu cầu của UPnP Forum thông thường sẽ có
dạng như sau :
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase>base URL for all relative URLs</URLBase>
<device>
<deviceType>urn:schemas-upnp-org:device:deviceType:v</deviceType>
<friendlyName>short user-friendly title</friendlyName>
<manufacturer>manufacturer name</manufacturer>
<manufacturerURL>URL to manufacturer site</manufacturerURL>
<modelDescription>long user-friendly title</modelDescription>
<modelName>model name</modelName>
<modelNumber>model number</modelNumber>
<modelURL>URL to model site</modelURL>

<serialNumber>manufacturer's serial number</serialNumber>
<UDN>uuid:UUID</UDN>
<UPC>Universal Product Code</UPC>
<iconList>
<icon>
<mimetype>image/format</mimetype>
<width>horizontal pixels</width>
<height>vertical pixels</height>
<depth>color depth</depth>
<url>URL to icon</url>
</icon>
XML to declare other icons, if any, go here
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:serviceType:v</serviceType>
<serviceId>urn:upnp-org:serviceId:serviceID</serviceId>
<SCPDURL>URL to service description</SCPDURL>
<controlURL>URL for control</controlURL>
<eventSubURL>URL for eventing</eventSubURL>
</service>
Declarations for other services defined by a UPnP Forum working
committee (if any) go here
Declarations for other services added by UPnP vendor (if any) go here
</serviceList>

18
 



Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP
<deviceList>
Description of embedded devices defined by a UPnP Forum working
committee (if any) go here
Description of embedded devices added by UPnP vendor (if any) go here
</deviceList>
URL for presentation</presentationURL>
</device>

Một tập tin mẫu của thiết bị hỗ trợ UPnP :
<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion> <!-- UPnP version 1.0 -->
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action> <!-- add delta to volume -->
<name>AddVolume</name>
<argumentList>
<argument>
<name>Delta</name>
<relatedStateVariable>A_ARG_TYPE_Delta</relatedStateVariable>
<direction>in</direction>
</argument>
<argument>
<name>NewVolume</name>
<relatedStateVariable>Volume</relatedStateVariable>
<direction>out</direction>
</retval />

</argument>
</argumentList>
</action>
<action> <!-- absolute set -->
<name>SetVolume</name>
<argumentList>
<argument>
<name>NewVolume</name>
<relatedStateVariable>Volume</relatedStateVariable>
<direction>in</direction>
</argument>
</argumentList>
</action>
<action>
<name>SetTreble</name>
<argumentList>
<argument>
<name>NewTreble</name>
<relatedStateVariable>Treble</relatedStateVariable>
<direction>in</direction>
</argument>
</argumentList>
</action>
<action>
<name>SetBass</name>
<argumentList>
<argument>
<name>NewBass</name>
<relatedStateVariable>Bass</relatedStateVariable>
<direction>in</direction>


19
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP
</argument>
</argumentList>
</action>
<action>
<name>SetBalance</name>
<argumentList>
<argument>
<name>NewBalance</name>
<relatedStateVariable>Balance</relatedStateVariable>
<direction>in</direction>
</argument>
</argumentList>
</action>
<action>
<name>SetFade</name>
<argumentList>
<argument>
<name>NewFade</name>
<relatedStateVariable>Fade</relatedStateVariable>
<direction>in</direction>
</argument>
</argumentList>
</action>
<action> <!-- query for state variables -->

<name>GetAudio</name>
<argumentList>
<argument>
<name>CurrentVolume</name>
<relatedStateVariable>Volume</relatedStateVariable>
<direction>out</direction>
</argument>
<argument>
<name>CurrentTreble</name>
<relatedStateVariable>Treble</relatedStateVariable>
<direction>out</direction>
</argument>
<argument>
<name>CurrentBass</name>
<relatedStateVariable>Bass</relatedStateVariable>
<direction>out</direction>
</argument>
<argument>
<name>CurrentBalance</name>
<relatedStateVariable>Balance</relatedStateVariable>
<direction>out</direction>
</argument>
<argument>
<name>CurrentFade</name>
<relatedStateVariable>Fade</relatedStateVariable>
<direction>out</direction>
</argument>
</argumentList>
</action>
<!-- Declarations for other actions implemented by an -->

<!-UPnP vendor (if any) go here. -->
</actionList>
<serviceStateTable>
<stateVariable sendEvents="yes">
<name>Volume</name>
<dataType>ui1</dataType>
<allowedValueRange>

20
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP
<minimum>0</minimum>
<maximum>255</maximum>
</allowedValueRange>
</stateVariable>
<stateVariable sendEvents="no">
<name>Treble</name>
<dataType>i1</dataType>
<allowedValueRange>
<minimum>-127</minimum>
<maximum>127</maximum>
</allowedValueRange>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Bass</name>
<dataType>i1</dataType>
<allowedValueRange>

<minimum>-127</minimum>
<maximum>127</maximum>
</allowedValueRange>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Balance</name>
<dataType>i1</dataType>
<allowedValueRange>
<minimum>-127</minimum>
<maximum>127</maximum>
</allowedValueRange>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>Fade</name>
<dataType>i1</dataType>
<allowedValueRange>
<minimum>-127</minimum>
<maximum>127</maximum>
</allowedValueRange>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_Delta</name>
<dataType>i2</dataType>
<allowedValueRange>
<minimum>-255</minimum>
<maximum>255</maximum>
</allowedValueRange>

</stateVariable>
<!-- Declarations for other state variables implemented by an -->
<!-UPnP vendor (if any) go here. -->
</serviceStateTable>
</scpd>

4. Kiểm soát thiết bị:
Kiểm soát thiết bị là bước thứ 3 trong 5 bước sử dụng của một thiết bị UPnP.
Với những thông tin từ bước mô tả thiết bị, điểm kiểm soát có thể yêu cầu dịch vụ
đối với thiết và nhận được câu trả cho biết kết quả của hành động yêu cầu dịch vụ.
21
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Thiết bị nhận yêu cầu từ điểm kiểm soát có thể trả lời hoàn thành yêu cầu hoặc báo
lỗi không hoàn thành.

Hình 3 : Kiến trúc kiểm soát thiết bị
Để kiểm soát một thiết bị, một điểm kiểm soát sẽ gọi một hành động trên
danh sách mô tả các dịch vụ của thiết bị. Để làm điều này điểm kiểm soát sẽ phải
gửi các tin nhắn URL phù hợp với các URL mà mô tả thiết bị cung cấp.
Các điểm kiểm soát phải luôn phát hiện được sự tồn tại của thiết bị hoặc
không tồn tại của thiết bị. Trong trường hợp một thiết bị hủy bỏ sự tồn tại của một
dịch vụ của thiết bị thì điểm kiểm soát thiết bị phát hủy bỏ sự tồn tại của thiết bị đó.
Các thông điệp gửi đi từ các các điểm kiểm soát luôn phải sử dụng bằng bảng
mã Unicode UTF-8.
Các thông điệp kiểm soát thiết bị thực hiện theo giao thức SOAP trong quá
trình kiểm soát phải gửi đến theo địa chỉ IP của điểm kiểm soát có yêu cầu.

SOAP là gì (Simple Object Access Protocol) :Một tiêu chuẩn của W3C, là giao
thức sử dụng XML để định nghĩa dữ liệu dạng thuần văn bản (plain text) thông qua
HTTP. SOAP là cách mà Web Service sử dụng để truyền tải dữ liệu. Vì dựa trên
XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kì ngôn
ngữ lập trình nào.
Một thông điệp SOAP được chia thành hai phần là header và body. Phần
header chỉ ra địa chỉ Web Service, host, Content-Type, Content-Length tương tự
như một thông điệp HTTP.
Các thông điệp theo tiêu chuẩn SOAP gửi tới thiết bị UPnP và thiết bị phải
trả lời các thông điệp này cũng phải đúng theo tiêu chuẩn SOAP.
22
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Các giao thức được sử dụng trong quá trình kiểm soát thiết bị: Để điểm kiểm
soát điều khiển các thiết bị, phải sử dụng tổng hợp các tầng giao thức như hình sau :

Hình 04 : Các tầng giao thức trong quá trình kiểm soát
Tất cả các thông điệp sử dụng các giao thức này đều phải tuân thủ theo đúng
cú pháp của UPnP Forum quy định.

23
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

5. Sự kiện trong mạng UPnP :

Bước thứ 4 trong quá trình điều khiển thiết bị gọi là bước sự kiện, thông qua
bước này điểm kiểm soát có thể thay đổi trạng thái của thiết bị, kiểm soát các sự
kiện được bổ sung và làm cho bước trình diễn tiếp theo tốt hơn.
Có hai trạng thái sự kiện : Sự kiện cho một điểm kiểm soát ( Unicast Events),
Sự kiện cho nhiều điểm kiểm soát (Multicast Events).

Hình 05: Kiến trúc Unicast Events
Giải thích kiến trúc Unicast Events : Để kiểm soát một sự kiện, điểm kiểm
soát sẽ gửi một thông điệp đăng kí giám sát sự kiện đến thiết bị, cụ thể là đến dịch
vụ mà thiết bị cung cấp. Nếu đăng kí được chấp nhận, thiết bị sẽ có trả lời và cho
thời gian có hiệu lực của sự kiện, nếu muốn có thời gian hiệu lực của một sự kiện
dài thì điểm kiểm soát phải có thông điệp đăng kí gia hạn thời gian giám sát sự
kiện. Khi một điểm kiểm soát không cần giám sát sự kiện từ thiết bị thì điểm kiểm
soát phải có thông báo hủy giám sát sự kiện.
Các lớp giao thức sử dụng trong Unicast Events:

24
 


Thiết kế nhà thông minh với webservice và ngôn ngữ BPEL trên thiết bị UPnP

Hinh 06 : Các lớp giao thức trong việc kiểm soát sự kiện

25
 


×