Các nghiên cứu sử dụng giao thức UPnP

Một phần của tài liệu Web service tích hợp tự động (Trang 25)

1.5.1 AutoHAN (University of Cambridge)

Nhóm Home Area Networking (HAN) được thành lập tháng 9 năm 1995 tại phòng thí nghiệm máy tính, đại học Cambridge, chuyên nghiên cứu từ kiến trúc mạng tới tương tác giữa con người – máy tính cho các ứng dụng sử dụng trong nhà. Dự án AutoHAN là nền tảng cho việc giao tiếp giữa các thiết bị sử dụng HTTP, XML và GENA. Cũng tương tự như UPnP nhưng AutoHan thực hiện một hình thức điều khiển truy cập thông qua việc sử dụng dịch vụ đăng ký và có thể giao tiếp thông qua HomePNA (Home Phoneline Networking Alliance) và HomeRF (Home Radio Frequency), đây chính là sự khác biệt so với UPnP.

AutoHAN bao gồm các thiết bị tương thích, AutoHAN server cung cấp các dịch vụ nhưđăng ký, mã hóa, lưu trữ Video và mục đích chung là các nguồn thực hiện cho các thiết bị di động và AutoHAN hoạt động như máy chủ trong hệ thống máy chủ. Bất kỳ máy chủ AutoHAN nào cũng có thể hoạt động như máy chủ tổng thể cung cấp các khả năng mà nó có. Tính năng chính của máy chủ tổng thể là nó nhận thức được sự phân bổ nguồn tài nguyên trong tất cả các phần của mạng và có thể phân bổ các yêu cầu mới tới các nguồn tài nguyên sẵn có.

Khi các thiết bị AutoHAN phù hợp được kết nối với mạng AutoHAN nó có thể phát hiện các dịch vụ sẵn có trên mạng và cung cấp các dịch vụ của của nó. Ví dụ, một cặp khuyếch đại âm thanh có thể phát hiện thiết bị khác và cho phép âm thanh được chuyển từ một cái đến cái khác.

26

1.5.2 H thng iDorm

Hệ thống iDorm của đại học Essex có mục đích là xây dựng một môi trường cho việc nghiên cứu môi trường tương tác thông minh dựa trên nơi ở của sinh viên. Hệ thống bao gồm các cảm biến và các bộ chấp hành sử dụng một loạt các mạng khác nhau. Mỗi mạng được kết nối tới máy chủ trung tâm, sau đó cung cấp thông tin về trạng thái và điều khiển thông qua các giao thức thông thường.

Không cảm biến nào được kết nối dây tới các thiết bị chấp hành trong hệ thống iDorm, khi công tắc được ấn thì một bản tin thông báo thay đổi trạng thái được gửi đi và hành động liên quan đến sự kiện này được thiết lập để bật hoặc tắt đèn.

27

Các thiết bị trên nhiều mạng được UPnP kích hoạt. Hình bên trên cho thấy cách UPnP được thêm vào các thiết bị và mạng lưới. UPnP cho phép phát hiện tựđộng và sử dụng các thiết bị khác trên mạng.

iDorm sử dụng công nghệ nhúng nhằm tương thích với môi trường tùy chọn. Hệ thống bắt đầu với bộ các quy tắc được xác định trước để cho phép điều khiển đèn, rèm,.. Khi người dùng thực hiện các hành động trong môi trường, tác nhân lưu nhanh trạng thái của môi trường khi sự kiện đã được thực hiện. Sau đó tác nhân sẽ sử dụng các kỹ thuật khác nhau để thử và làm rõ việc tại sao người dùng thực hiện các hành động đó. Qua thời gian, tác nhân học được sở thích của người dùng và cuối cùng là khả năng thích ứng môi trường cho sở thích của người dùng. Ví dụ, iDorm có khả năng học hỏi rằng khi người dùng ngồi vào bàn, họ thích đèn trên bàn sáng, nhưng khi họ ngồi trên giường thì họ thích ánh sáng đèn ngủ hơn. Tác nhân học các hành vi bằng cách giám sát người dùng, nhưng một khi đã học thì nó có thể thực hiện các hành động mà không cần sự tương tác của người dùng, mặc dù người dùng luôn luôn có thể thay thế tác nhân. Như sự tương tác trực tiếp với môi trường, iDorm cung cấp một số giao diện cho phép người dùng cấu hình và theo dõi, bao gồm giao diện web, giao diện trên điện thoại, điều khiển bằng giọng nói.

28

1.5.3 UPnP-based context-aware framework for ubiquitous mesh home network

Trong nghiên cứu này, họ cung cấp một các tiếp cận để sử dụng UPnP như một trung gian trong mạng lưới nội bộ. Cơ chế phát hiện dịch vụ và truy cập dịch vụ được điều khiển thông qua một nút trung gian với hồ sơ người dùng và ngữ cảnh, theo một cách hoàn toàn trong suốt với cả khách và người cung cấp dịch vụ. Trong trường hợp di động, khi khách hàng di chuyển đến từ điểm gắn lưới không dây tới một nơi khác, ngữ cảnh người dùng phải thiết lập lại để duy trì ngữ cảnh phát hiện dịch vụ. Nó có thể tác động đáng kể đến hiệu năng của mỗi tầng giao thức. Chuyển đổi ngữ cảnh sau đó được đưa ra để cung cấp dịch vụ phát hiện liên tục và nó có thể làm giảm sự chậm trễ chuyển giao. Các nhà nghiên cứu đã đưa ra một nền tảng cơ sở cho phép phát hiện dịch vụ dựa trên ngữ cảnh trong mạng lưới phổ biến. Điều khiển mạng lưới không dây (Mesh Controller) là một thành phần chính trong mạng nội bộ, đây là công nghệ xây dựng hạ tầng mạng gia đình và giải pháp UPnP được sử dụng để quản lý các thiết bị trong mạng. Tuy nhiên UPnP tiêu chuẩn lại không xem xét đến thuộc tính ngữ cảnh cho cơ chế phát hiện dịch vụ. Để khắc phục nhược điểm này, một mở rộng giao thức SSDP được thực hiện cho phép thiết bị Mesh Controller UPnP đáp ứng các truy vấn phát hiện dịch vụ dựa trên ngữ cảnh người dùng. Thông tin ngữ cảnh người dùng được cung cấp và được sử dụng bởi các thành phần khác nhau của nền tảng. Nền tảng này cho phép cá nhân hóa phát hiện dịch vụ và chuyển đến người dùng muốn ràng buộc môi trường sử dụng của họ và ngữ cảnh.

29

CHƯƠNG 2 : NG DNG NGÔN NG XML TRONG VIC TÍCH HP CÁC THIT B

2.1 Tng quan v ngôn ng XML 2.1.1 Gii thiu chung 2.1.1 Gii thiu chung

XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến trúc gần giống với HTML nhưng XML nhanh chóng trở thành một chuẩn phổ biến trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP. Trong khi HTML là ngôn ngữ chủ yếu về hiển thị dữ liệu thì XML lại đang phát triển mạnh về việc chuyển tải, trao đổi và thao tác dữ liệu bằng XML. XML đưa ra một định dạng chuẩn cho cấu trúc của dữ liệu hoặc thông tin bằng việc tựđịnh nghĩa định dạng của tài liệu. Bằng cách này, dữ liệu được lưu trữ bằng XML sẽđộc lập với việc xử lý. Vì vậy XML ra đời sẽđáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong vấn đề trao đổi và xử lý thông tin.

2.1.2 Ưu đim ca vic s dng XML

XML đang trở thành một chuẩn chung cho việc trao đổi dữ liệu cho những ứng dụng chạy trên môi trường Internet. Vì XML cho phép người dùng có thể tựđịnh nghĩa các thẻ - những thẻ này làm cho tài liệu XML đa dạng hơn những ngôn ngữ thông thường như HTML. Sự ra đời XML tương thích với ngôn ngữđánh dấu tổng quát tiêu chuẩn (Standardized Generalized Markup Language – SGML), và dễ dàng viết những chương trình để xử lý cho những tài liệu XML. Kế tiếp, những tài liệu XML rõ ràng, dễ đọc, dễ dàng tạo lập. Và điều quan trọng là nó được hỗ trợ trong nhiều ứng dụng. Nói tóm lại, XML dễ dàng chia sẻ thông tin qua những định dạng khác nhau thông qua môi trường web. XML được thiết kế dành cho mọi người, được mọi người sử dụng.

30

Trong quá trình trưởng thành và phát triển, XML đã đối mặt và đương đầu với nhiều thử thách trong việc thuyết phục các nhà lập trình rằng XML là sự lựa chọn hàng đầu vì nó dễ dàng để hiểu, dễ dàng để đọc, và dễ dàng thực hiện. Sau đây là một số lợi ích khi sử dụng XML

- XML có thể tách rời dữ liệu. Sử dụng XML, dữ liệu được chứa trong các tập tin XML riêng biệt.

- XML có thể mô tả thông tin của những đối tượng phức tạp mà cơ sở dữ liệu quan hệ không thể giải quyết được.

- XML có thể dùng để chuyển đổi dữ liệu giữa các hệ thống không tương thích. - XML dùng để chia sẻ dữ liệu với những tập tin văn bản đơn giản dễ hiểu.

- XML cũng được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu của chúng ta hữu ích hơn.

Như vậy, chúng ta đã biết được lợi ích và vai trò của XML trong vấn đề lưu trữ và trao đổi thông tin.

2.2 Cu trúc tp tin XML 2.2.1 Mô t tp tin XML 2.2.1 Mô t tp tin XML

Mục đích của việc tổ chức thông tin là để con người có thểđọc và hiểu được những gì mà nó muốn truyền tải. Chúng ta xem một tập tin văn bản sau đây về cách tổ chức tập tin trên theo định dạng một tài liệu XML một cách đơn giản nhất :

<?xml version="1.0" encoding="utf-8" ?> <Persons>

<Person>

< Person ID>1</ PersonID>

< PersonName>Tran Cong Dai </ PersonName > <Age>27</ Age >

31

</ Person > <Person>

< Person ID>2</ PersonID>

< PersonName>Tran Dai Nghia </ PersonName > <Age>2</ Age >

</ Person > </ Persons>

Như vậy, bằng cách sử dụng định dạng XML, người dùng có thể hiểu và biết được tập tin trên đang muốn truyền tải nội dung gì.

2.2.2 To lp mt tp tin XML

Chúng ta có thể sử dụng trình soạn thảo đơn giản để soạn thảo tài liệu XML, nhưng phải tuân thủ theo qui tắc sau:

<root> <child>

<subchild>…..</subchild> </child>

</root>

Theo định dạng trên, chúng ta thấy tuy tài liệu XML rất đơn giản nhưng qui định cũng rất nghiêm ngặt, có nghĩa là các tài liệu XML đều xuất phát từ nút gốc (root), và mỗi phần tử phải có thẻđóng và thẻ mở “< …/>”.

32

2.2.3 Nhng thành phn ca mt tp tin XML

- Khai báo : Mỗi một tài liệu XML có một chỉ thị khai báo

<? xml version="1.0"? encoding="utf-8" >

Định nghĩa tài liệu XML tuân theo chuẩn của W3C và đây là phiên bản “1.0” và được mã hóa theo tiêu chuẩn UTF-8.

- Chú thích: được khai báo như sau:

<!-- note-- >

- Phần tử (Elements) : Một tài liệu XML được cấu thành từ những phần tử. Một phần tử có thẻ mở và thẻ đóng. Giữa thẻ mở và thẻ đóng là nội dung của phần tử đó. Phần tử có thể chứa dữ liệu hoặc có thể lồng vào một phần tử khác.

- Phần tử gốc (root): Trong tài liệu XML, chỉ có một phần tử gốc, và phần tử này sẽ chứa tất cả những phần tử của tài liệu XML do chúng ta tạo ra.

Theo ví dụ trên, ta thấy chỉ có một phần tử “Person” .

- Thuộc tính (Attributes) : Nhưđã trình bày ở trên, một phần tử có thể chứa dữ liệu hoặc chứa phần tử khác hoặc cả hai. Bên cạnh đó, phần tử có thể rỗng, khi đó nó có thể chứa thuộc tính. Một thuộc tính chỉ là một sự lựa chọn để gắn dữ liệu đến phần tử. Một thuộc tính đặt trong thẻ mở của phần tử và chỉ ra giá trị của nó bằng cách sử dụng cặp “name=value”.

<?xml version="1.0" encoding="utf-8" ?> <Persons>

<Person ID=”1”>

< City>Bac ninh</ City>

< PersonName>Tran Cong Dai </ PersonName > <Age>27</ Age >

33

<Person ID=”2”>

< City>Bac ninh</ City>

< PersonName>Tran Dai Nghia </ PersonName > <Age>2</ Age >

</ Person > </ Persons>

Tp tin Persons.xml 2.3 Truy vn d liu tp tin XML

Như vậy để xử lý một tài liệu XML, chương trình ứng dụng phải có cách di chuyển bên trong tài liệu để lấy ra giá trị của các phần tử hay thuộc tính. Do đó ngôn ngữ XML Path được ra đời, mà chúng ta gọi tắt là XPath. XPath đóng một vai trò quan trọng trong việc truy vấn dữ liệu cho các chương trình ứng dụng vì nó cho phép ta lựa chọn hay sàng lọc ra những phần tử nào mình muốn để trao đổi hay hiển thị.

Nếu khi làm việc với cơ sở dữ liệu ta dùng các phát biểu SQL như SELECT .. FROM table_name WHERE ... để trích ra một số mẩu tin từ một bảng, thì khi làm việc với tập tin XML, XPath cho ta những biểu thức về điều kiện giống như mệnh đề WHERE trong SQL. XPath là một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML, cũng giống như SQL là một chuẩn để làm việc với cơ sở dữ liệu. Một biểu thức XPath có thể chỉ ra vị trí và mẫu nào để kết hợp. Chúng ta có thể áp dụng toán tử boolean, hàm string, và toán tử số học trong biếu thức XPath để xây dựng câu truy vấn phức tạp trên tài liệu XML. XPath cũng cung cấp một số hàm về số như tính tổng, hàm làm tròn (round).

34

XPath cho ta cú pháp để diễn tả cách đi lại trong XML. Ta coi một tài liệu XML như được đại diện bằng một cây có nhiều nút. Mỗi phần tử hay thuộc tính là một nút. Ta có thể biểu diễn tập tin “Person.xml” ở trên bằng một cây như dưới đây, trong đó nút phần tử màu nâu, nút thuộc tính màu xanh:

Hình 2.1: Biu din hình cây ca tp tin XML

Ta có thể dùng biểu thức XPath để chỉ định Location Path (lối đi đến vị trí) đến nút nào hay trích ra một hay nhiều nút thỏa đúng điều kiện yêu cầu. Biểu thức XPath có thể là tuyệt đối, tức là lấy nút gốc làm chuẩn hay tương đối, tức là khởi đầu từ nút vừa mới được chọn. Có hai cách viết để diễn tả XPath Location, viết nguyên và viết tắt. Trong cả hai cách ta đều dùng dấu (/) để nói đến phần tử tài liệu, tức là nút gốc. Ta cũng sẽ dùng những ký hiệu như (/), một chấm (.) và hai chấm (..) cho cách viết tắt trong

35

XPath Location đểđi xuống các nút con, chỉ định nút được chọn, hay đi ngược lên các nút tổ tiên.

Chúng ta hãy tìm vài đường đi trong cây của tài liệu XML nói trên. Muốn chọn nút của phần tử Person (nó cũng là phần tử gốc) bằng cú pháp nguyên, ta sẽ dùng biểu thức XPath sau đây:

/child::Person

Dịch ra cú pháp tắt, biểu thức này như sau : /Person

Đi ra nhánh của cây, ta sẽ tìm được nút PersonName bằng cách dùng biểu thức sau: /child::Person/child:PersonName

Sau đây là biểu thức viết tắt tương đương: /Person/PersonName

Nếu muốn lấy ra một nút thuộc tính, ta phải nói rõ điều này bằng cách dùng từ khóa

attribute trong cách viết nguyên hay dùng ký tự @ trong cú pháp tắt. Do đó để lấy thuộc tính ID của phần tửPerson, ta sẽ dùng biểu thức XPath sau:

/child::Person/attribute::ID Cú pháp viết tắt tương đương :

/Person/@ID

Ta có thể giới hạn số nút lấy về bằng cách gắn thêm điều kiện sàng lọc vào đường đi. Điều kiện giới hạn một hay nhiều nút được chèn vào biểu thức bên trong một cặp ngoặc vuông ([]).

- Ví dụ 1 : để lấy ra mọi phần tửPerson có thuộc tính ID lớn hơn 1, bạn có thể dùng biểu thức sau đây:

/child::Person[attribute::ID > 1] Trong cú pháp tắt :

36 /child::Person[@ID > 1]

- Ví dụ 2 : Truy vấn tất cả phần tử trong tập tin. Biểu thức XPath như sau: /Person

- Ví dụ 3 : Truy vấn các phần tử có địa chỉở Bac Ninh. Biểu thức được viết như sau: /Person/[child::City = “Bac Ninh”]

37

2.4ng dng ngôn ng XML trong vic tích hp các thiết b

2.4.1 Lưu tr thông tin v trí thiết b

Các phòng là một cách tự nhiên để phân vùng hành vi và hoạt động của con người, sử dụng trải nghiệm người dùng để tạo ra và cấu hình các thiết bị một cách đơn giản nhất, một vài thiết bị sẽ cần có khả năng thông báo vị trí của chúng. Vấn đềđáng quan tâm ở đây là làm thế nào để quảng bá thông tin đó. Ngoài ra, không phải thiết bị nào cũng luôn được đặt ở một vị trí cố định, một vài thiết bị có thể được dịch chuyển đến những chỗ khác. Do đó, vị trí của các thiết bị và các dịch vụ tương ứng có khả năng

Một phần của tài liệu Web service tích hợp tự động (Trang 25)