1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android

70 1,8K 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Tác giả Đào Trung Sơn
Người hướng dẫn ThS. Bùi Quy Anh
Trường học Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông
Chuyên ngành Kỹ thuật phần mềm, Công nghệ thông tin
Thể loại Báo cáo tốt nghiệp
Năm xuất bản 2013
Thành phố Thái Nguyên
Định dạng
Số trang 70
Dung lượng 2,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

NGHIÊN CỨU VÀ MÔ PHỎNG ỨNG DỤNG QUẢN LÝ THIẾT BỊ ĐIỆN TRONG TÒA NHÀ BẰNG THIẾT BỊ DI ĐỘNG

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

Giáo viên hướng dẫn: ThS BÙI QUY ANH

Thái Nguyên, tháng 3 năm 2013

0

Trang 2

LỜI CẢM ƠN

Để hoàn thành đợt thực tập tốt nghiệp và viết báo cáo này, em xin chânthành cảm ơn thầy cô trường Đại học Công nghệ thông tin và truyền thông - TháiNguyên, đặc biệt là những thầy cô trong dự án VLIR – Trường ĐH CNTT&TT

đã tận tình giúp đỡ em trong thời gian qua

Em xin gửi lời cảm ơn đến Thạc sĩ Bùi Quy Anh đã dành thời gian hướngdẫn và giúp đỡ em trong quá trình thực tập và hoàn thành báo cáo thực tập tốtnghiệp

Mặc dù em đã có nhiều cố gắng bằng sự nhiệt tình và năng lực của mình,tuy nhiên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đónggóp quý báu của thầy cô và các bạn

Thái Nguyên, tháng 3 năm 2013

Sinh viên

Đào Trung Sơn

Trang 3

LỜI NÓI ĐẦU

Ngày nay, Công nghệ thông tin là một trong những ngành đang phát triểnrất mạnh mẽ và có ảnh hưởng sâu rộng đến mọi mặt đời sống Nó là nền tảng củanền kinh tế tri thức, là thước đo trình độ phát triển của một quốc gia Xã hội vàkinh tế phát triển đòi hỏi công nghệ cũng phải phát triển Công nghệ phát triển,con người ngày càng phát minh ra những thiết bị công nghệ số thông minh giúp

đỡ con người về rất nhiều mặt trong cuộc sống.Cùng với đó là quy mô đô thị hóavới hàng loạt các công trình kiến trúc đồ sộ đã và đang được xây dựng trên mọimiền tổ quốc, góp phần cho sự phát triển kinh tế

Xu hướng và nhu cầu công nghệ hóa ngày càng tăng cao, việc điều khiểncác thiết bị điện và quản lý tòa nhà như ở các nước công nghiệp không còn xa lạ,nhưng việc kiểm soát và điều khiển thiết bị điện trong tòa nhà bằng những thiết

bị di động cầm tay như smartphone hay máy tính bảng thì mới chỉ ở quá trình thửnghiệm hoặc phát triển chưa phổ biến Con người chỉ cần ngồi một chỗ có thểlàm được nhiều việc, điều khiển được các thiết bị điện trong nhà, hoặc đi đâu đó

xa nhà cũng có thể kiểm soát được tình hình trong nhà bằng điện thoại hoặc máytính bảng thông qua mạng Intermet

Xuất phát từ thực tế trên, em chọn đề tài: “Nghiên cứu và mô phỏng ứngdụng quản lý thiết bị điện trong tòa nhà bằng thiết bị di động.” cho báo cáo thựctập tốt nghiệp Đề tài là một phần trong nội dung nghiên cứu của dự án VLIR –Trường ĐH CNTT&TT

Báo cáo được tổ chức thành 3 chương với các nội dung chính như sau:

Chương 1 – Cơ sở lý thuyết: Lý thuyết cơ bản về các giao thức và cơ chế

trong hệ thống, sơ qua về hệ điều hành Android, kiến trúc và hoạt động của ứngdụng Android

Chương 2 – Phân tích thiết kế hệ thống: Giới thiệu về ứng dụng, mô

hình chung của hệ thống và trình bày cụ thể về từng chức năng của ứng dụng quacác biểu đồ UML

Chương 3 – Cài đặt chương trình:Trình bày về cách cài đặt và sử dụng

ứng dụng, mô tả quá trình hoạt động trên giao diện của ứng dụng kèm hình ảnhminh họa

Trang 4

MỤC LỤC

LỜI CẢM ƠN 1

LỜI NÓI ĐẦU 2

MỤC LỤC 3

CHƯƠNG 1 5

CƠ SỞ LÝ THUYẾT 5

1.1 Các giao thức truyền dữ liệu và cơ chế chuyển đổi 5

1.1.1 Giao thức truyền thông HTTP 5

1.1.2 Cơ chế tác tử (agent) 6

1.1.3 Giao thức CoAP trong mạng cảm biến 21

1.1.3.1 Đặc điểm CoAP 22

1.1.3.2 Các thuật ngữ 23

1.1.3.3 Mô hình giao thức CoAP 25

1.2 Hệ điều hành Android 28

1.2.1 Android là gì? 28

1.2.2 Kiến trúc Android (4 tầng) 29

1.2.2.1 Tầng hạt nhân Linux (Linux Kernel layer) 30

1.2.2.2 Tầng Library và android runtime 31

1.2.2.3 Tầng Application Framework 31

1.2.2.4 Tầng Application 33

1.2.3 Vòng đời Android 34

1.2.4 Một số thành phần cơ bản trong Android 37

CHƯƠNG 2 41

PHÂN TÍCH THIẾT KẾ HỆ THỐNG 41

2.1 Mô hình chung của dự án 41

2.2 Giới thiệu về chương trình 43

2.3 Phân tích thiết kế hệ thống 43

2.3.1 Đặc tả các yêu cầu của hệ thống: 43

Trang 5

2.3.1.1 Yêu cầu phi chức năng: 43

2.3.1.2 Yêu cầu môi trường: 44

2.3.2 Xây dựng biểu đồ Use Case cho hệ thống: 44

2.3.3 Xây dựng biểu đồ lớp cho hệ thống: 45

2.3.3.1 Biểu đồ lớp ca sử dụng đăng nhập: 45

2.3.3.2 Biểu đồ lớp ca sử dụng quản lý các phòng trong tòa nhà: 46

2.3.3.3 Biểu đồ lớp ca sử dụng quản lý người dùng: 47

2.3.4 Xây dựng biểu đồ trình tự cho hệ thống: 47

2.3.4.1 Biểu đồ trình tự ca sử dụng đăng nhập: 48

2.3.4.2 Biểu đồ trình tự ca sử dụng cập nhật trạng thái phòng: 49

2.3.4.3 Biểu đồ trình tự ca sử dụng xem thông tin trạng thái phòng: 50

2.3.4.4 Biểu đồ trình tự ca sử dụng xem thông tin người dùng: 51

2.3.4.5 Biều đồ trình tự ca sử dụng cập nhật thông tin người dùng: 52

2.3.5 Xây dựng biểu đồ cộng tác cho hệ thống: 52

2.3.5.1 Biểu đồ cộng tác ca sử dụng đăng nhập: 53

2.3.5.2 Biểu đồ cộng tác ca sử dụng xem thông tin trạng thái phòng: 53

2.3.5.3 Biểu đồ cộng tác ca sử dụng cập nhật trạng thái phòng: 53

2.3.5.4 Biểu đồ cộng tác ca sử dụng xem thông tin người dùng: 53

2.3.5.5 Biều đồ cộng tác ca sử dụng cập nhật thông tin người dùng: 54

2.3.6 Tổng kết: 54

CHƯƠNG 3 55

CÀI ĐẶT CHƯƠNG TRÌNH 55

3.1 Mô tả phần mềm: 55

3.2 Một số hình ảnh khi hoạt động: 55

KẾT LUẬN 62

PHỤ LỤC A 63

Tích hợp Android plugin vào Eclipse IDE 63

TÀI LIỆU THAM KHẢO 67

Trang 6

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

1.1 Các giao thức truyền dữ liệu và cơ chế chuyển đổi

1.1.1 Giao thức truyền thông HTTP

HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tảisiêu văn bản) Đây là giao thức cơ bản mà World Wide Web sử dụng HTTP xácđịnh cách các thông điệp (các file văn bản, hình ảnh đồ họa, âm thanh, video, vàcác file multimedia khác) được định dạng và truyền tải ra sao, và những hànhđộng nào mà các Web server (máy chủ Web) và các trình duyệt Web (browser)phải làm để đáp ứng các lệnh rất đa dạng Chẳng hạn, khi bạn gõ một địa chỉWeb URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ralệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên trìnhduyệt Web Nói nôm na hơn, HTTP là giao thức truyền tải các file từ một Webserver vào một trình duyệt Web để người dùng có thể xem một trang Web đanghiện diện trên Internet

HTTP là một giao thức ứng dụng chạy ở trên cùng của bộ giao thứcTCP/IP (các giao thức nền tảng cho Internet)

Có một tiêu chuẩn chính khác cũng điều khiển cách thức World WideWeb làm việc là HTML (HyperText Markup Language, ngôn ngữ đánh dấu siêuvăn bản), có chức năng quản lý cách thức mà các trang Web được định dạng vàhiển thị

Người ta gọi HTTP là một giao thức “phi trạng thái” (stateless) bởi vì mỗilệnh đều được thực thi một cách độc lập, lệnh sau không biết bất cứ điều gì vềcác lệnh đã đến trước mình Đây chính là một hạn chế, khiếm khuyết của HTTP

Nó là nguyên nhân chính của tình trạng rất khó thực thi các trang Web có khảnăng phản ứng thông minh đối với lệnh mà người dùng nạp vào Và sự hạn chếnày đang được các nhà phát triển khắc phục trong các công nghệ mới nhưActiveX, Java, JavaScript và cookies

Trang 7

Hình 1.1 – Giao thức HTTP giữa thiết bị cá nhân và máy chủ

1.1.2 Cơ chế tác tử (agent)

Định nghĩa tác tử

Có rất nhiều định nghĩa khác nhau, thậm chí khác nhau về tác tử, nhưng

có một định nghĩa thường được sử dụng như sau:

Tác tử (agent) là hệ thống tính toán hoạt động tự chủ trong một môi trường nào đó, có khả năng cảm nhận môi trường và tác động vào môi trường.

Có thể hiểu định nghĩa trên như sau: Hệ thống tính toán có thể là phầncứng, phần mềm, hoặc cả phần cứng lẫn phần mềm Bất cứ tác tử nào cũng tồntại và hoạt động trong một môi trường nhất định Tác tử nhận thông tin từ môitrường qua các cơ quan cảm nhận và tác động vào môi trường bằng các cơ quantác động

Hình 1.2 – Tác tử tương tác với môi trường

Trang 8

Đối với các tác tử phần cứng, cơ quan cảm nhận có thể là các cảm biến,camera, cơ quan tác động có thể là các bộ phận cơ học, quang học hoặc âmthanh Đối với các tác tử là chương trình phần mềm, môi trường hoạt động thôngthường là các máy tính hoặc mạng máy tính Việc cảm nhận môi trường và tácđộng được thực hiện thông qua các lời gọi hệ thống Nói chung, tác tử có thểđược thiết kế để hoạt động để hoạt động trong nhiều dạng môi trường khác nhau.Một điểm cần chú ý là cảm nhận về môi trường của tác tử có thể không đầy đủ

do môi trường quá phức tạp hoặc có chứa các yếu tố không xác định

Một yêu cầu quan trọng đối với tác tử là tính tự chủ Cũng như bản thânđịnh nghĩa về tác tử, cũng có nhiều cách hiểu khác nhau về tính tự chủ Ở đây, tựchủ được hiểu như là khả năng các tác tử hành động không cần đến sự can thiệptrực tiếp của người hay các tác tử khác: tác tử hoàn toàn có khả năng kiểm soáttrạng thái cũng như hành vi của mình trong một thời gian tương đối dài Một sốcác tác giả định nghĩa tính tự chủ rộng hơn, chẳng hạn yêu cầu tác tử phải có khảnăng tự học

Với đặc điểm tồn tại và hành động tự chủ trong môi trường, tác tử có thểthực hiện các mục tiêu cho trước và do vậy có thay thế chủ của mình (người dùnghoặc các tác tử khác) thực hiện một số các nhiệm vụ nào đó

Các đặc điểm của tác tử

Một tác tử thông thường có những đặc điểm sau:

Tính phản xạ: Tác tử có khả năng phản xạ kịp thời với các thay đổi

trong môi trường mà tác tử cảm nhận được

Tính chủ động (hành động có mục đích): không chỉ phản xạ, tác tử còn

phải biết chủ động tìm kiếm khả năng hành động hướng tới thực hiệnmục tiêu được giao

Tính cộng đồng: Tác tử có khả năng tương tác với người dùng hoặc

các tác tử khác để thực hiện nhiệm vụ của riêng mình hoặc để giúp đỡcác đối tác

Trang 9

Khả năng tự học: Tự học hoặc học tự động là khả năng của tác tử thu

thập các kiến thức mới từ kinh nghiệm thu lượm được, chẳng hạn quacác lần thành công và thất bại Kết quả tự học phải làm cho các tác tửhành động tốt hơn, hiệu quả hơn

Tính thích nghi: Thích nghi là khả năng của tác tử tồn tại và hoạt động

hiệu quả khi môi trường thay đổi Mặc dù có nhiều nét liên quan vớitính phản xạ, khả năng thích nghi của tác tử khó thực hiện và đòi hỏinhiều thay đổi trong quá trình suy diễn của tác tử hơn Tính thích nghi

có thể thực hiện nhờ khả năng tự học từ kinh nghiệm của tác tử

Khả năng di chuyển: Là khả năng của tác tử (phần mềm) di chuyển

giữa các máy tính hoặc các nút khác nhau trong mạng đồng thời giữnguyên trạng thái và khả năng hoạt động của mình Các tác tử có đặcđiểm này được gọi là tác tử di động Việc thiết kế và cài đặt tác tử diđộng đặt ra các yêu cầu đặc biệt về vấn đề an ninh hệ thống

Có thể so sánh một tác tử có đầy đủ ba đặc điểm trên cùng với một cầu thủ

đá bóng Mục đích của cầu thủ là cùng toàn đội đưa bóng vào lưới đối phươngđồng thời ngăn không cho đối phương đưa bóng vào lưới mình Để đạt được mụcđích này, cầu thủ phải tìm mọi cơ hội để đưa bóng về gần lưới đối phương và sút.Đây chính là thể hiện của tính tự chủ hành động có mục đích Tuy nhiên, tìnhhuống trên sân có khi cầu thủ phải thay đổi mục tiêu tạm thời, cụ thể là chuyềnngang hoặc thậm chí truyền về Khi đối phương vào bóng thô bạo thì mục tiêutrước mắt có thể chưa phải là sút bóng mà trước hết là giữ an toàn cho mình Đây

là thể hiện rõ ràng của tính phản xạ Cuối cùng, cầu thủ trên sân phải có tínhcộng đồng, thể hiện với việc phối hợp với đồng đội, tuân theo các chỉ dẫn củahuấn luyện viên và trọng tài

Kiến trúc của tác tử

Ở mức độ tổng quát, tác tử có kiến trúc như hình vẽ 1.3:

Từ hình vẽ ta thấy, tác tử nhận thông tin từ môi trường (bao gồm thông tin

từ các tác tử khác) thông qua cơ quan cảm nhận Nhờ có cơ chế ra quyết định, tác

Trang 10

TÁC TỬ

Cơ chế ra quyết

định Trạng thái bên

Thông tin từ tác

tử khác

Thông tin ra (cho người hoặc tác tử khác)

Tác động

ra môi trường

tử lựa chọn hành động cần thực hiện Quá trình ra quyết định có thể sử dụngthông tin về trạng thái bên trong của tác tử Trong trường hợp đó, tác tử lưu trữtrạng thái dưới dạng những cấu trúc dữ liệu riêng Hành động do cơ chế ra quyếtđịnh lựa chọn sau đó được tác tử thực hiện thông qua cơ quan tác động

Hình 1.3 Kiến trúc của tác tử

Cơ chế suy diễn có thể thay đổi cho từng kiểu kiến trúc cụ thể và ảnh hưởngtới những thành phần khác Chẳng hạn có thể có kiến trúc trong đó quá trình suydiễn không sử dụng tới trạng thái bên trong và do vậy tác tử không cần lưu giữcác thông tin này Đối với các tác tử có thêm khả năng khác như học tự động,

kiến trúc tác tử có thể có thêm thành phần riêng để thực hiện các chức năng này

Cảm nhận và tác động

Cảm nhận

Cơ chế cảm nhận cho phép tác tử biết được những gì đang diễn ra xungquanh, từ đó ra quyết định và hành động phù hợp Đối với người và động vật,quá trình cảm nhận được thực hiện qua những giác quan, còn với tác tử phầncứng như robot cơ quan cảm nhận là cảm biến, camera Tác tử phần mềm, quátrình cảm nhận có thể diễn ra một cách chủ động bằng cách trao đổi thông điệpvới các tác tử khác hoặc thụ động thông qua nhận và xử lý các sự kiện hoặcthông điệp do hệ điều hành gửi tới

Trang 11

Tác động

Tác động là quá trình ngược với cảm nhận Tác tử tiến hành tác động vàomôi trường khi cơ chế suy diễn và ra quyết định chọn được hành động cần thiết

Nói chung tác tử tác động vào môi trường thông qua cơ quan tác động (hoặc cơ

quan chấp hành) Đối với tác tử phần mềm, tác động có thể được thực hiện bằng

cách gửi thông điệp tới các tác tử khác, thay đổi giao diện của hệ thống (tạo ratiếng động hoặc các dấu hiệu cảnh báo), gửi thư điện tử hoặc thực hiện một số lờigọi hệ thống (gọi một số hàm của hệ điều hành)

Cơ chế ra quyết định

Mô hình chung

Một cách tổng quát, quá trình ra quyết định của tác tử có thể mô tả nhưsau Giả sử thời gian được phân chia thành những thời điểm rời rạc t0,t1,… Tạimỗi thời điểm, tác tử phải lựa chọn một hành động từ tập hợp hữu hạn các hànhđộng Nhờ cơ quan cảm nhận, tác tử thu được những cảm nhận về môi trường.Giả sử tại thời điểm t 1,t 2,… cảm nhận của tác tử về môi trường lần lượt là p 0,p 1

… với pip, p là tập các cảm nhận có thể có của tác tử Tại mỗi thời điểm ti, tất

cả những gì tác tử cảm nhận về môi trường cho tới thời điểm đó là chuỗi các cảmnhận si=< p0,p1,…p i>

Giả sử tác tử có thể thực hiện một số hành động nhất định Gọi tập hợpcác hành động mà tác tử có thể thực hiện là A={a,a’….}

Tại mỗi thời điểm ti, tác tử có thể lựa chọn hành động aiA để thựchiện Tác tử lựa chọn hành động cụ thể tuỳ thuộc vào chuỗi cảm nhận s i tại thờiđiểm đó Như vậy, mỗi tác tử được đặc trưng bởi một ánh xạ từ chuỗi cảm nhậnsang hành động

Nói cách khác, bằng cách chỉ rõ hành động mà tác tử thực hiện với chuỗicảm nhận, ta có thể xác định cơ chế ra quyết định cho một tác tử cụ thể Ánh xạ

Trang 12

Môi trường

Cảm biến

Cảm nhận

Ra quyết định

Hành động

Tác động

Quy tắc Cảm nhận/tác động Tác tử

S→A có thể cho bằng nhiều cách Cách đơn giản nhất là xây dựng một bảng liệt

kê tất cả những chuỗi cảm nhận có thể cảm nhận và hành động tương ứng Tuynhiên, trong đa số trường hợp, kích thước của bảng rất lớn do số lượng chuỗi cảmnhận là vô hạn trừ khi ta hạn chế độ dài của chuỗi đó, chẳng hạn bằng cách giớihạn vòng đời của tác tử Do vậy, phương pháp liệt kê bảng hành động là khôngthực tế do đòi hỏi quá nhiều bộ nhớ và thời gian tìm kiếm trong bảng

Tác tử phản xạ

Trong một số trường hợp, tác tử có thể hành động dựa trên cảm nhận hiệnthời mà không cần quan tâm đến chuỗi cảm nhận trước đó Bộ điều nhiệt đơngiảnlà một tác tử như vậy Dựa trên nhiệt độ đo được tại mỗi thời điểm, trạng tháimôi trườn được chia thành “nóng” hoặc “bình thường” Bộ điều nhiệt quyết địnhbật lò sưởi nếu nhiệt độ là “nóng” và tắt lò sưởi nếu ngược lại Quyết định nàycăn cứ trên nhiệt độ hiện thời và không phụ thuộc vào những thời điểm trước đó.Hành động của tác tử là phản ứng đối với trạng thái hiện tại của môi trường.Tác

tử có hành động chỉ phụ thuộc vào cảm nhận hiện thời mà không phụ thuộc vào

cảm nhận trong quá khứ gọi là tác tử phản xạ (reactive agent hay reflex agnet).

Đối với tác tử phản xạ, ánh xạ S→A trở thành ánh xạ từ tập cảm nhận vàotập hành động

Tác_tử: P→A ánh xạ này có thể xác định bởi các quy tắc có dạng “cảm

nhận/hành động”, hay thường được viết dưới dạng “nếu cảm nhận P thì hành

động A” Hình 2.3 là kiến trúc của tác tử phản xạ

Hình 1.4 Sơ đồ tác tử phản xạ

Trang 13

Mặc dù tác tử hoạt động hoàn toàn theo cách phản xạ được coi là tươngđối đơn giản, ngay cả các tác tử phức tạp cũng có thể có một phần hành vi xácđịnh bởi cơ chế cảm nhận/hành động như vậy Ví dụ người và động vật đều cónhững phản xạ được hình thành do luyện tập hoặc là phản xạ tập trung Các phản

xạ này cho phép hành động nhanh chóng trong một số trương hợp mà không cầnmất thời gian để cân nhắc kỹ càng Khi một người bình thường chạm tay vào mộtvật nóng, phản xạ tự vệ thông thường là rụt ngay tay lại thì vì suy nghi kỹ càngxem phải làm gì Phản xạ chính là cách ra quyết định nhanh chóng như vậy

Tác tử phản xạ đặc biệt phù hợp với những thay đổi môi trường trong đótrạng thái tại thời điểm ti cung cấp đày đủ thông tin cho các tác tử về toàn bộtrạng thái quá khứ trước thời điểm ti Môi trường như vậy được gọi là môi

trường Markov Môi trường Markov cho phép đơn giản hoá rất nhiều việc ra

quyết định của tác tử

Tác tử có trạng thái

Trong nhiều trường hợp, cảm nhận hiện thời là chưa đủ để tác tử ra quyếtđịnh phải hành động như thế nào Lấy ví dụ một tác tử lái xe Trước khi rẽ, tác tửphải chắc chắn hai điều: thứ nhất, không rẽ vào đường cấm, và thứ hai, đường rẽkhông bị xe hoặc người đi bộ cản trở Như vậy khi quan sát không có người đi bộ(cảm nhận hiện thời) và quyết định rẽ, lái xe đã dựa vào thông tin có được từtrước (thông qua biển báo hoặc kinh nghiệm từ những lần rẽ trước) là đường rẽkhông phải là đường cấm Lý do khiến cảm nhận hiện thời là chưa đủ quyết địnhhành động là do tại mỗi thời điểm cơ quan cảm nhận không thể cung cấp đủ toàn

bộ thông tin về trạng thái môi trường xung quanh Để có thể hình dung được toànthể về môi trường, tác tử phải sử dụng thông tin từ những cảm nhận trước đó.Thông tin này cho phép phân biệt những trạng môi trường khác nhau nhưng lạisinh ra cùng một cảm nhận ở thời điểm hiện tại

Tác tử ghi lại thông tin về môi trường bằng cách lưu lại chuỗi các cảmnhận cho tới thời điểm hiện tại Tuy nhiên, nếu chuỗi cảm nhận dài thì việc lưulại là không hiệu quả Thay vào đó, tác tử duy trì một cấu trúc thông tin gọi là

Trang 14

Cảm nhận

Trạng thái Ra quyết

định

Hành động

trạng thái bên trong Trạng thái bên trong lưu trữ thông tin về môi trường mà tác

tử nhận được và được cập nhật mỗi khi tác tử có cảm nhận mới Việc lựa chọnhành động sẽ dựa trên những thông tin chứa trong trạng thái bên trong của tác tử

Quá trình cảm nhận và ra quyết định sử dụng trạng thái bên trong diễn ra

như sau: Gọi I là tập các trạng thái bên trong của tác tử, P là tập các cảm nhận.

Mỗi khi tác tử có cảm nhận pi p, cảm nhận đó sẽ làm thay đổi trạng thái bêntrong của tác tử Có thể biểu diễn sự thay đổi trạng thái theo cảm nhận qua hàm

cập_nhật như sau: Cập_nhật: I×P→I.

Việc ra quyết định về hành động khi đó được xác định như ánh xạ từ trạngthái sang hành động Hành_động: I→A

Sơ đồ của tác tử với trạng thái bên trong được minh hoạ như hình vẽ dướiđây:

Khởi đầu, trạng thái bên trong của tác tử là i 0 Sau khi quan sát trạng thái

s của môi trường, tác tử có được cảm nhận P về trạng thái đó Trên cơ sở cảm

nhận, trạng thái bên trong được thay đổi và có giá trị mới Cập_nhật( i0,P) Trạngthái mới của tác tử được ánh xạ thành hành động tiếp theo

Hành_động( Cập_nhật ( i0,P )) Chuỗi “cảm nhận”, “cập nhật”, “hành động” tạo

thành một chu kỳ hoạt động của tác tử Chu kỳ này được lặp đi lặp lại cho đếnkhi tác tử chấm dứt hoạt động của mình

Trang 15

Hình 1.5 Tác tử có trạng thái bên trong

Thông thường, tác tử được tạo ra để thực hiện một nhiệm vụ nào đó, và đểtác tử thực hiện đúng nhiệm vụ của mình thì thông tin về trạng thái môi trường làchưa đủ Tác tử cần có thông tin về nhiệm vụ, mục đích hoạt động của mình là

gì Và để tác tử hoạt động có mục đích là xây dựng sẵn chương trình hành động

và yêu cầu tác tử hành động theo các bước ghi trong chương trình đó Tuy nhiên,cách này có một nhược điểm là cứng nhắc theo những gì đã được sắp đặt trước vìnếu môi trường thay đổi không phù hợp với điều kiện được xây dựng trước thìtác tử sẽ không thể thích nghi với thay đổi đó Để đảm bảo tính mềm dẻo, ta chỉthông báo cho tác tử mục đích cần đạt được thay vì cho tác tử biết phải làm thếnào để đạt được mục đích đó

Mục đích thường có hai dạng:

 Đạt được trạng thái nào đó

 Đảm bảo duy trì trạng thái nào đó

Ở dạng thứ nhất, mục đích được cho dưới dạng một số trạng thái cần đạt,tác tử cần hành động sao cho môi trường chuyển sang một trong những trạng thái

đó Ví dụ, đối với tác tử làm nhiệm vụ chơi cờ vua, mục đích cần đạt được là bất

cứ thế cờ nào chiếu hết đối phương

Ở dạng thứ hai, tác tử được yêu cầu tránh một số trạng thái cho trước.Cùng với thông tin mục đích, tác tử cần biết mỗi hành động của mình sẽcho kết quả ra sao Thông tin mục đích được kết hợp với thông tin về kết quảhành động để lựa chọn hành động cho phép đạt được mục đích Việc ra quyếtđịnh trong trường hợp này khác với ra quyết định theo kiểu phản xạ ở chỗ nó đòihỏi thông tin về tương lai: hành động nào sẽ dẫn đến kết quả nào Trong trườnghợp phản xạ, tác tử không cần thông tin loại này vì hành động cho từng tìnhhuống cụ thể đã được tính toán trước Quá trình ra quyết định dựa trên thông tin

về mục đích đòi hỏi khối lượng tính toán lớn hơn so với phản xạ nhưng lại mềmdẻo hơn rất nhiều

Trang 16

Môi trường

Cảm

biến

Cảm nhận

Trạng thái Ra quyết

định

Hành động

Tác động

Hành động-kết quả Mục đích

Hình 1.6 Tác tử có mục đích

Trong những trường hợp đơn giản, mục đích có thể đạt được sau một hànhđộng duy nhất Nhưng thường thì việc đạt được mục đích là phức tạp và đòi hỏimột chuỗi hành động

Mặc dù có tốc độ ra quyết định chậm hơn so với phản xạ thuần tuý do quátrình lập kế hoạch đòi hỏi thời gian, hành động có mục đích cho phép ra quyếtđịnh mềm dẻo hơn nhiều

Tác tử với cơ chế suy diễn logic.

Nhiều nghiên cứu về trí tuệ nhân tạo cho rằng hành vi thông minh có thể

có được bằng cách biến đổi thông tin môi trường và mục đích của tác tử về dạngbiểu tượng (symbolic), sau đó thực hiện các biến đổi cần thiết trên những biểutượng đó Cách tiếp cận này được gọi là trí tuệ nhân tạo biểu tượng (symbolicartificial intelligence) và được sử dụng trong một số nghiên cứu để xây dựng cáctác tử thông minh Hệ thống biểu tượng thông dụng nhất để mô tả môi trường vàcác biểu thức lôgic Phần này sẽ trình bày về tác tử với mô hình môi trường đượccho dưới dạng biểu thức logic và cơ chế sử dụng phép biến đổi trên mô hình đódưới dạng suy diễn logic

Như với mọi hệ thống sử dụng trí tuệ nhân tạo sử dụng biểu tượng khác,

để xây dựng tác tử suy diễn cần giải quyết hai vấn đề:

Trang 17

Biến đổi thông tin về dạng biểu tượng Thông tin về môi trường phải

được biến đổi thành mô hình biểu tượng, ở đây là biểu thức logic, cần thiết choquá trình ra quyết định trong khoảng thời gian đủ ngắn để mô hình đó không bị

cũ Thông thường, một phần mô hình môi trường như các quy luật biến đổi vàmục đích của tác tử được xây dựng từ trước, một phần khác được cập nhật trongquá trình tác tử hoạt động và cảm nhận Lấy ví dụ một robot được trang bịcamera quang học, hình ảnh mà camera thu được cần được biến đổi về dạng biểu

thức logic Phía_trước(vật cản) cho biết phía trước đang có vật cản hay không.

Biểu diễn và suy diễn Thông tin cần được biểu diễn phù hợp bởi biểu

thức logic và có cơ chế biến đổi tự động những biểu thức này (suy diễn tự động)

để sinh ra hành động Kết quả suy diễn phải được tạo ra trong thời gian đủ ngắn

để không bị lac hậu so với sự thay đổi của môi trường

Trên cơ sở sử dụng logic để biểu diễn và suy diễn ta có thể xây dựng tác

tử với các kiểu kiến trúc và độ phức tạp khác nhau, cụ thể, có thể xây dựng tác tửphản xạ, tác tử có trạng thái và tác tử hành động có mục đích Cơ chế suy diễnlogic không hỗ trợ trực tiếp cho việc xây dựng tác tử hành động theo hàm tiệních

Để minh hoạ cho việc sử dụng logic, ta xét một mô hình tác tử suy diễnlogic đơn giản sử dụng logic vị từ bậc một (first-order predicate logic) Logic vị

từ bậc một là một trong những hệ thống logic truyền thống được nghiên cứu và

sử dụng nhiều trong triết học, toán học và trí tuệ nhân tạo Hệ thống logic nàycho phép biểu diễn thông tin về môi trường dưới dạng các đối tượng, mỗi đốitượng có thuộc tính của mình Giữa các đối tượng tồn tại quan hệ được biểu diễnbởi các vị từ và các hàm Việc kết hợp đối tượng và quan hệ giữa đối tượng tạonên sự kiện và được biểu diễn bởi câu logic

Trạng thái bên trong của tác tử được lưu giữ dưới dạng cơ sở dữ liệu baogồm các biểu thức logic vị từ bậc một và theo truyền thống thường được gọi là

cơ sở tri thức của tác tử Trạng thái tác tử gồm hai phần:

Trang 18

- Phần thứ nhất biểu diễn về những sự kiện mà các tác tử nhận được nhờquan sát và cảm nhận môi trường Ví dụ, phần này có thể chứa những biểuthức sau

Mở (cửa)

Vị_trí (50,100)

Do cảm nhận của tác tử về môi trường không thể đầy đủ và không chínhxác nên những biểu thức này có thể không phản ánh chính xác những gì đangdiễn ra trong môi trường và vì vậy thường được gọi là niềm tin – tác tử “tin” rằng

cửa đang mở và vị trí của mình là (50, 100) trong khi thực tế không phải như vậy.

- Phần thứ hai của trạng thái chứa các quy tắc hay các luật suy diễn logiccho phép tác tử tiến hành suy diễn và đưa ra quyết định Ví dụ, các luật cóthể có dạng

Mở (cửa) → Hành_động (tiến_lên)

Vị_trí(1,1) → Gần (cửa)

Một số luật cho phép suy diễn trực tiếp về hành động, một số luật kháccho phép cập nhật thông tin hoặc suy diễn về những sự kiện trong môi trường màtác tử không cảm nhận trực tiếp được

Gọi I là tập các trạng thái có thể có của tác tử, với mỗi trạng thái là tập cácbiểu thức logic như trên Ký hiệu phần tử của I là KB1, KB2,…Quá trình ra quyết

định được quy định bởi tập các luật suy diễn chứa trong cơ sở tri thức của tác tử

Ta sử dụng ký hiệu KB|= nếu biểu thức có thể suy ra từ KB sử dụng sự kiện

và luật chứa trong KB Hoạt động của tác tử bao gồm cập nhật trạng thái theo

cảm nhận và ra quyết định về hành động dựa theo trạng thái mới cập nhật Hai

quá trình này được thực hiện bởi hai hàm Cập_nhật và Hành_động như trình bày

ở trên

Cập_nhật: I × P→ I

Hành_động:I → A

Trang 19

Hình 1.7 Tác tử với cơ chế suy diễn

Hàm Hành_động nhận tham số là trạng thái hiện thời KB và trả về hành động aA hoặc null nếu không tìm được hành động thích hợp Trước tiên, hàm

Hành_động tìm hành động a sao cho biểu thức Thực_hiện(a) có thể suy ra từ sự

kiện và luật suy diễn chứa trong KB Đoạn (3) - (7) lần lượt chọn từng hành động

a trong tập hành động có thể của mình và cố gắng chứng minh KB|= Thực_hiện(a) Nếu chứng minh được, a sẽ được coi là hành động thích hợp nhất

cho tình huống hiện tại, hàm ngừng thực hiện và trả về a Rõ ràng, nếu có nhiều

hành động như vậy thì hàm trả về hành động bất kỳ trong số đó

Trong trường hợp không chứng minh được Thực_hiện(a), hàm sẽ tìm một

hành động nào đó không bị cấm trong tình huống hiện tại Cách xử lý này cónghĩa như sau: nếu tác tử chưa tìm được hành động đã được xác định sẵn chomột tình huống, tác tử sẽ thực hiện một tình huống nào đó không mâu thuẫn với

Trang 20

tình huống này với hy vọng hành động được chọn sẽ dẫn tới tình huống mới, sau

đó có thể tìm hành động định sẵn cho tình huống mới Đoạn (8) - (12) duyệt tậphành động để tìm hành động a sao cho biểu thức Thực_hiện(a) không thể

chứng minh được từ KB hiện thời Nếu không tìm được, hàm trả về giá trị null có

nghĩa không hành động nào được chọn

có nhu cầu thông tin cụ thể, người sử dụng khó tìm được thông tin mìnhcần do lượng thông tin trên mạng quá lớn

 Ứng dụng phục vụ thương mại điện tử: Để giảm thời gian, tăng hiệuquả thương mại, một số khâu có thể tự động hoá bằng cách giao quyền

ra quyết định cho tác tử

 Ứng dụng trong truyền nhận thông tin giải quyết vấn đề trao đổi thôngtin giữa các thiết bị khác nhau được tương tác một cách tức thời, thựchiện công việc và hồi đáp thông tin khi có yêu cầu

Ưu nhược điểm của tác tử

Cũng như nói đến bất kỳ một công nghệ nào khác, những câu hỏi được đặt

ra là vậy công nghệ đó có ưu điểm gì so với những công nghệ khác, tại sao phải

sử dụng công nghệ, khi nào nên và khi nào không nên dùng? Thông thường, mộtcông nghệ mới được coi là hữu dụng nếu công nghệ đó đáp ứng được ít nhất mộttrong hai tiêu chí sau:

 Cho phép giải quyết những vấn đề mà những công nghệ đang tồn tại

Trang 21

không giải quyết được hoặc cho những giải pháp quá tốn kém.

 Cung cấp giải pháp hiệu quả hơn đối với những vấn đề đã được giảiquyết bởi những công nghệ khác

Hệ thống thông tin có thể có mức độ phức tạp khác nhau Từ quan điểmthiết kế và cài đặt, các hệ thống kiểu chức năng là trường hợp đơn giản nhất Tuynhiên, rất nhiều hệ thống thông tin hiện đại không thuộc loại này và có độ phứctạp cao hơn nhiều Sự phức tạp ở đây là kết quả một số yếu tố:

 Tính mở của hệ thống

 Cấu trúc phức tạp

 Yêu cầu hướng người dùng

Trong các hệ thống có tính mở, thành phần và cấu trúc hệ thống khôngđược biết trước và có thể thay đổi trong quá trình hoạt động Ví dụ của hệ thốngloại này là internet Hệ thống có cấu trúc phức tạp là hệ thống bao gồm nhiềuthành phần với nhiều kiểu quan hệ khác nhau giữa các thành phần, đòi hỏi phải

có cách thiết kế và cài đặt cho phép giảm độ phức tạp đó Hướng người dùng làyêu cầu hệ thống thích nghi với người sử dụng, phản xạ kịp thời cũng như chủđộng thỏa mãn yêu cầu cá nhân của từng đối tướng sử dụng

Tác tử và hệ đa tác tử là giải pháp phù hợp cho hệ thống với những đặcđiểm nói trên Cụ thể, tác tử và hệ đa tác tử có thể cho giải pháp đơn giản, hiệuquả trong những trường hợp sau:

 Hệ thống có cấu trúc phức tạp, có thể phân tích thành những thành phần

tự chủ hoặc bán tự chủ tương tác với nhau

 Dữ liệu, thông tin, tri thức có tính phân tán và phí tổn để chuyển đổithành dạng tập trung tương đối lớn hoặc việc chuyển đổi rất khó khăn

 Việc thiết kế hoặc xử lý tập trung làm giảm độ tin cậy hoặc tính ổn địnhcủa hệ thống

 Yêu cầu sử dụng lại và tích hợp vào hệ thống những thành phần mềm

Trang 22

đã có sắn, có thể không tương thích với nhau.

Tuy nhiên, cần xem xét kỹ việc lựa chọn tác tử kể cả cho trường hợp thoảmãn những điều kiện này Đa số các ứng dụng có sử dụng tác tử hiện nay đều cóthể được xây dựng với các công nghệ khác Việc một ứng dụng có bốn đặc điểmnhư vừa nêu trên không có nghĩa tác tử là giải pháp đầu tiên và duy nhất cho ứngdụng đó Giải pháp tác tử chỉ nên xem xét như một trong những giải pháp có thể

sử dụng trong những trường hợp như vậy Bên cạnh đó, khi lựa chọn giải pháp sửdụng tác tử cần chú ý tới những nhược điểm của giải pháp này Cụ thể tác tử và

hệ đa tác tử không thích hợp khi ứng dụng trong các trường hợp sau:

 Trong hệ thống thời gian thực hoặc hệ thống trong đó thời gian đáp ứng

có ý nghĩa quan trọng Nói chung, thời gian đáp ứng của hệ tác tử là rấtkhó xác định

 Trong những trường hợp cần có sự điều khiển tập trung và thống nhất,cũng như yêu cầu thoả mãn những ràng buộc chung và tìm giải pháp tối

ưu tổng thể Do từng tác tử chỉ có cái nhìn không toàn diện về vấn đềcần giải quyết hoặc một phần tri thức, giải pháp của hệ tác tử thườngchỉ là giải pháp tối ưu cục bộ

 Trong những trường hợp yêu cầu mức độ trách nhiệm cao đối với quyếtđịnh và hành động Sử dụng tác tử trong trường hợp này đòi hỏi người(hoặc tổ chức) có độ tin tưởng cao đối với tác tử và dám uỷ thác cho tác

tử hành động tự chủ Để có mức độ tin tưởng cần thiết, người sử dụngcần có thời gian theo dõi và làm việc với tác tử để đảm bảo tác tử khôngvượt quá giới hạn quyền hạn của mình

1.1.3 Giao thức CoAP trong mạng cảm biến

Sự hữu ích của các dịch vụ web trên mạng Internet khiến nó ngày càng trởlên phổ biến trong tất cả các ứng dụng, và nó phụ thuộc vào kiến trúc nền tảngcủa REST (Representational State Transfer – chuyển đổi trạng thái đại diện)

Trang 23

trong web.

Các môi trường RESTful web có tài nguyên hạn chế (ConstrainedRESTful Environments - CoRE) hướng đến kiến trúc REST trong một khuôndạng thích hợp dành cho hầu hết các nút mạng có tài nguyên bị hạn chế (vd : các

vi điều khiển 8-bit với dung lượng RAM & ROM bị hạn chế) và các mạng tàinguyên hạn chế (vd : 6LoWPAN) Các mạng có tài nguyên hạn chế như6LoWPAN hỗ trợ việc phân đoạn (với chi phí đắt) của các gói tin IPv6 packetssang các Frames có kích thước nhỏ của lớp liên kết vật lý (link – layer) Vì thếcác nghiên cứu tập trung vào phát triển giao thức CoAP (Constrained ApplicationProtocol) giúp giữ chi phí các bản tin message overhead nhỏ và hạn chế sự sửdụng của cơ chế phân đoạn

Một trong những mục đích chính của CoAP là thiết kế một giao thức webchung dành cho các yêu cầu đặc biệt trong môi trường mạng bị giới hạn về mặttài nguyên này, đặc biệt tập trung vào vấn đề năng lượng, cấu hình tự động vàcác ứng dụng machine-to-machine (M2M) khác Mục đích của CoAP không phải

để nén HTTP, mà đúng hơn là mang lại một tập con các REST chung với HTTPnhưng được tối ưu dành cho các ứng dụng M2M Mặc dù CoAP có thể được sửdụng cho nén các giao diện HTTP đơn giản, nhưng đóng góp quan trọng của nó

đó là đưa ra các đặc điểm gắn liền với các ứng dụng dành cho M2M như là khámphá (discovery) tài nguyên, hỗ trợ multicast và trao đổi các bản tin không đồngbộ

Hình 1.8 – Giao thức CoAP giữa server với các node trong mạng cảm biến

Trang 24

1.1.3.1 Đặc điểm CoAP

Coap có các đặc điểm chính như sau :

 Giao thức web hạn chế phục vụ đầy đủ các yêu cầu M2M

 Sử dụng UDP với các tùy chọn hỗ trợ truyền tin tin cậy dành cho các yêucầu unicast và multicast

 Trao đổi các bản tin không đồng bộ

 Chi phí header thấp (low header overhead) và chuyển dạng phức tạp

 Hỗ trợ URI và các kiểu nội dung

 Proxy đơn giản và có khả năng nhớ đệm

 Ánh xạ HTTP phi trạng thái, cho phép các proxy được dựng lên và đưa racác truy cập đến nguồn tài nguyên CoAP theo hướng như HTTP trong mộtdạng đồng nhất hoặc cho các giao diện HTTP đơn giản được dựng lên đểthay thế CoAP

 Kết nối an toàn tới lược đồ dữ liệu bảo mật tầng giao vận (DatagramTransport Layer Security - DTLS)

1.1.3.2 Các thuật ngữ

Các từ khóa “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”,

“SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”

và “OPTIONAL” trong tài liệu này được định nghĩa trong [RFC2119] khi chúngđều được viết hoa Trong báo cáo này chúng xuất hiện dưới dạng chữ viết thường

để thuận tiện cho việc dễ hiểu

Endpoint: Một thực thể tham gia vào giao thức Coap Nhìn chung, một

điểm cuối hoạt động như là một nút mạng “Node” Nút “Host” thường tồntại lâu hơn so với nút “Client” trong mạng Internet

Sender: Điểm đầu tiên của một bản tin Khi diện mạo tập trung vào một

đối tượng bên gửi cụ thể nó sẽ được gọi là điểm nguồn“source endpoint”

Recipient: Điểm cuối cùng của một bản tin Khi diện mạo tập trung vào

một đối tượng bên nhận cụ thể nó sẽ được gọi là điểm đích “destinationendpoint”

Trang 25

Client: Điểm ban đầu của một yêu cầu, điểm đích của một đáp ứng trả về.

Server: Điểm cuối của một yêu cầu, điểm ban đầu của một đáp ứng trả

về

Origin Server: Máy chủ trong đó mà một tài nguyên biết trước lưu trú

hoặc được tạo ra

Intermediary: Một điểm đầu cuối CoAP mà có vai trò hoạt động như một

server hoặc một client (có thể theo hướng trung gian hơn nữa) hướng vềmột Origin server Có hai loại trung gian phổ biến đó là : proxy và reverseproxy Trong một số trường hợp thì một điểm đầu cuối có thể cư xử nhưmột origin server, proxy hoặc reverse proxy, vai trò chuyển đổi dựa theotrạng thái tự nhiên của mỗi yêu cầu

Proxy: Một “proxy” là một endpoint được lựa chọn bởi một client,

thường được cấu hình cục bộ, để biểu diễn các yêu cầu thay cho các client,thực hiện bất kì việc dịch (translation) cần thiết nào Một vài chuyển dịchđược tối thiểu, như là các proxy phục vụ các yêu cầu dành cho “coap”URI, trong khi các yêu cầu khác có thể yêu cầu dịch ra hoặc dịch về cácthực thể khác nhau các giao thức tầng ứng dụng

Reverse Proxy: Là một endpoint mà hoạt động như một lớp phía trên một

vài máy chủ và thỏa mãn các yêu cầu thay thế cho chúng, thực hiện bất kỳ

cơ chế dịch cần thiết nào Không giống như một proxy, reverse proxynhận các yêu cầu khi nó là nút gốc cho tài nguyên đích; client phát ra yêucầu sẽ không ý thức được rằng nó đang giao tiếp với một reverse proxy

Confirmable Message: Một vài bản tin yêu cầu cần có phúc đáp trả về.

Các bản tin này gọi là “Confirmable” (xác nhận) Khi mà không có gói tinnào bị mất, mỗi bản tin xác nhận sẽ có chính xác một bản tin trả về theokiểu ACK hoặc kiểu Reset

Non-confirmable message: Một vài bản tin không yêu cầu phúc đáp Đây

là đặc tính riêng của một vài bản tin thường được lặp lại dành cho các yêucầu ứng dụng, như là lặp lại việc đọc từ một cảm biến khi đủ các sự kiệnnối tiếp

Trang 26

Acknowledgment message: Một bản tin phúc đáp sẽ phúc đáp lại một

bản tin confirmable khi nó đến Nó không chỉ ra sự thành công hay thất

bại của bất kỳ yêu cầu được bao gồm nào

Reset message: Một bản tin reset message chỉ thị rằng một bản tin cụ thể

(confirmable hoặc non-confirmable) đã nhận được, nhưng đôi khi nó

không được sử lý đúng Điều này thường xảy ra khi nút nhận đã khởi độnglại và đã quên một vài trạng thái mà yêu cầu cần đưa ra lời giải thích vềbản tin

Piggy-backed Response: Nó bao gồm đúng một bản tin CoAP ACK mà

được gửi tới bên nhận phúc đáp của yêu cầu dành cho đáp ứng này

Separate Response: Khi một bản tin confirmable mang một yêu cầu được

phúc đáp trả về với một bản tin trống (vd : bởi vì máy chủ trả lời không

đúng cách), một đáp ứng riêng (separate response) được gửi đi trong một

bản tin trao đổi riêng

Critical Option: Một tùy chọn cần các điểm đầu cuối nhận bản tin hiểu

được để xử lý đúng bản tin Chú ý rằng việc triển khai critical option, như

ngụ ý “option” của nó, nhìn chung : không hỗ trợ việc tùy chọn dẫn đếnviệc loại bỏ bản tin

Elective Option: Một tùy chọn mang ý định bị bỏ qua bởi một điểm đầu

cuối mà không hiểu về nó Xử lý bản tin thậm chí không cần hiểu về tùychọn được cho phép

Resource Discovery: Tiến trình trong đó một CoAP client gửi truy vấn

đến một máy chủ về danh sách các máy chủ lưu trữ tài nguyên

1.1.3.3 Mô hình giao thức CoAP

Mô hình tương tác của giao thức Coap tương tự như mô hình client/servercủa HTTP Tuy nhiên, các kết quả tương tác M2M trong một triển khai Coapđóng vai trò như cả client và server Một yêu cầu CoAP sẽ giống như yêu cầutrong HTTP, nó được gửi từ một client để yêu cầu một xử lý trên một tài nguyên(được nhận dạng bởi một địa chỉ URI) trên một server Máy chủ sau đó gửi lạimột đáp ứng trả về với một mã đáp ứng; đáp ứng này có thể bao gồm một sự

Trang 27

trình bày tài nguyên

Không giống với HTTP, CoAP phân tán các bản tin trao đổi này khôngđồng bộ qua một lược đồ dữ liệu có hướng như là UDP Điều này được thực thimột cách logic sử dụng một lớp các bản tin mà hỗ trợ các tùy chọn tin cậy CoAPđịnh nghĩa 4 loại bản tin : Confirmable, Non)confirmable, Acknowledgment,Reset; các method codes và các response codes bao gồm một vài bản tin làm chochúng mang các yêu cầu đi hoặc mang các đáp ứng trả về Sự trao đổi cơ bảnnhất của 4 loại bản tin này hơi có tính trực giao giữa các bản tinrequest/response; các yêu cầu có thể được mang trong bản tin Confirmable hoặcNon)confirmable, các đáp ứng trả về cũng có thể được mang trên hai loại bản tinnày hoặc chúng được cõng trên bản tin phúc đáp

CoAP có thể được tiếp cận theo mô hình logic 4 lớp, một lớp bản tinCoAP sử dụng để truyền dữ liệu UDP và một lớp bất đồng bộ tự nhiên của cáctương tác, lớp các tương tác request/response sử dụng các mã yêu cầu và các mãđáp ứng Coap sử dụng một đơn giao thức, với việc gửi bản tin vàrequest/response tạo lên các đặc điểm của Coap header

Hình 1.9 - Phân tầng trừu tượng của CoAP

Lớp message

Lớp message của CoAP dựa trên việc trao đổi các bản tin bằng UDP qua

Trang 28

các điểm đầu cuối

CoAP sử dụng một tập tin tiêu đề header nhị phân ngắn có độ dài cố định(4 byte) được theo sau bởi một khoảng tùy chọn nhị phân và một tải payload.Định dạng bản tin này được sử dụng trong các yêu cầu và các đáp ứng Mỗi bảntin chứa một ID message sử dụng để dò tìm các bản tin sao lặp và dành cho tùychọn độ tin cậy

Lớp request/response

Nghĩa của CoAP request/response là mang theo các bản tin CoAP, chúngbao gồm hoặc là mã yêu cầu hoặc là mã đáp ứng Các thông tin tùy chọn (hoặcmặc định) cho request và response như là URI và kiểu nội dung tải trọng payloadđược mang đi như là các tùy chọn của CoAP Một thẻ bài tùy chọn được sử dụng

để phối hợp response với request độc lập với các bản tin lớp dưới

Trung gian và nhớ đệm

Giao thức CoAP hỗ trợ việc nhớ đệm các đáp ứng để phục vụ hiệu quảđầy đủ các yêu cầu Nhớ đệm đơn giản được cho phép khi sử dụng các thông tintươi mới và thông tin kiểm tra được mang cùng với các đáp ứng CoAP Vùngnhớ đệm được định vị trong các điểm đầu cuối hoặc các trung gian

Chuyển đổi từ CoAP → HTTP

Nếu yêu cầu (Request) đến có chứa trường tùy chọn ProxyURI Option vớicác địa chỉ URI bắt đầu là ‘http’ hoặc ‘https’ [RFC2616], sau đó các điểm cuốinhận bản tin CoAP (được gọi là “proxy – máy ủy quyển) được yêu cầu đưa rahoạt động cụ thể theo phương pháp yêu cầu (Request Method) bên phía HTTPđưa ra và trả về kết quả của yêu cầu đến máy khách (client) Trong phần này sẽchỉ ra các cách thức để bất kỳ yêu cầu CoAP và các đáp ứng CoAP sẽ đượcProxy xử lý và trả lại máy khách

Do CoAP và HTTP cùng có chung tập các phương thức cơ bản (requestmethod), việc biểu diễn một yêu cầu CoAP đến một tài nguyên HTTP sẽ khôngkhác nhiều so với việc yêu cầu này đến tài nguyên CoAP Một số các phương

Trang 29

thức riêng của CoAP khi biểu diễn vào nguồn tài nguyên HTTP sẽ được trình bàychi tiết bên

dưới

Nếu máy ủy quyền (Proxy) không thể phục vụ một yêu cầu mang địa chỉHTTP URI, mã đáp ứng 5.05 (Proxying Not Supported) sẽ được trả về cho máykhách Nếu máy Proxy phục vụ yêu cầu đến của máy khách bằng cách hợp tácvới một bên thứ 3 (như là máy chủ HTTP gốc) và không thể đạt được kết quảtrong một khung thời gian hợp lý, đáp ứng 5.04 (Gateway Timeout) sẽ được trảvề; nếu có kết quả trả về nhưng kết quả này không được hiểu, một đáp ứng 5.02(Bad Gateway) sẽ được trả về

Chuyển đổi từ HTTP → CoAP

Nếu một yêu cầu HTTP mà bên trong địa chỉ URI của yêu cầu có chứa cáctiêu đề ‘coap’ hoặc ‘coaps’, điểm cuối nhận yêu cầu HTTP (máy ủy quyền –Proxy) được yêu cầu để biểu diễn các hoạt động được chỉ ra bởi phương thức yêucầu (request method) lên tài nguyên CoAP đã chỉ định và trả về kết quả cho máykhách

Trong phần này chỉ ra cách bất kỳ yêu cầu HTTP (HTTP request) và đápứng

HTTP (HTTP response) mà máy ủy quyền (Proxy) sẽ trả về cho máykhách Cách thức làm thế nào proxy sẽ xử lý làm thỏa mãn các yêu cầu tới, mặc

dù trường hợp thông thường máy ủy quyền sẽ dịch và chuyển tiếp yêu cầu tớimáy chủ CoAP gốc Chi tiết về các phương thức HTTP (HTTP method) sẽ đượctrình bày sau đây Nếu một máy ủy quyền không thể phục vụ một yêu cầu đếnvới địa chỉ URI của CoAP, một mã đáp ứng 501 (Not Implemented) được trả vềmáy khách Nếu máy ủy quyền phục vụ yêu cầu bằng cách hợp tác với bên thứ 3(như là máy chủ CoAP gốc) và không thể thu được kết quả trong một khung thờigian hợp lý, mã đáp ứng 504 (Gateway Timeout) sẽ được trả về; nếu có kết quảthu về nhưng lại không được máy ủy quyền hiểu, mã đáp ứng 502 (Bad Gateway)được trả về

Trang 30

Lợi thế chính của việc sử dụng Android để phát triển ứng dụng là Androidcung cấp cách tiếp cận tốt nhất để phát triển ứng dụng Các nhà phát triển chỉ cầnphát triển cho Android là các ứng dụng đó có thể chạy trên rất nhiều thiết bị khácnhau, miễn là thiết bị đó hỗ trợ Android Trong thế giới của điện thoại thôngminh thì vấn đề thích hợp phần cứng là điểm quan trọng đối với các ứng dụng,khi đã sử dụng Android làm nền tảng để phát triển thì sẽ có được rất nhiều lợi thế

về mặt này vì các sản phẩm thiết bị thông minh hỗ trợ Android ngày càng đuợc

ưa chuộng

1.2.2 Kiến trúc Android (4 tầng)

Hình bên dưới cho thấy các tầng khác nhau tạo nên hệ điều hành Android

Trang 31

Hình 1.10 – Các tầng trong hệ điều hành Android

1.2.2.1 Tầng hạt nhân Linux (Linux Kernel layer)

Hệ điều hành Android được phát trển dựa trên hạt nhân linux, cụ thể là hạtnhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng ở hình 1.1 Tất

cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ởmức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giaotiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình(process)

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nângcấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay nhưhạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nốimạng không dây

Tầng này có các thành phần chủ yếu :

Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận

những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )

Trang 32

Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ

camera trả về

Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.

USB driver : Quản lý hoạt động của các cổng giao tiếp USB.

Keypad driver : Điều khiển bàn phím.

Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi.

Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu

dạng audio thành tín hiệu số và ngược lại

Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với

mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chứcnăng truyền thông được thực hiện

M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ

SD, flash

Power Madagement : Giám sát việc tiêu thụ điện năng.

1.2.2.2 Tầng Library và android runtime

Phần này có 2 thành phần là phần Library và Android Runtime

Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc phát

và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng

Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên

web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse)

Trang 33

cũng như để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợđược nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM,AJAX…

Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.

2 Phần Android runtime:

Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thểhoạt động Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tínhthường Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO,Collections, File Access Thứ hai là một máy ảo java (Dalvik Virtual Machine)

Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệđiều hành android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà

là chạy bằng máy ảo Dalvik do Google phát triển

1.2.2.3 Tầng Application Framework

Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trìnhviên có thể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khảnăng sử dụng chung để tiết kiệm tài nguyên

Đây là một nền tảng mở, điều đó có 2 lợi thế:

Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấuhình điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, phong cách hợpthị hiếu người dùng

Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thểkhác

hẳn với Motorola, HTC, T-Mobile, Samsung

Với lập trình viên : Cho phép lập trình viên có thể sử dụng các API ở tầngtrên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên

tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc

Trang 34

Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch

vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao Giới thiệu một số thành phần của tầng này:

Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũng như

cung cấp công cụ điều khiển các Activity

Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như

gọi điện thoại

XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực.

Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa vào

hệ thống định vị toàn cầu GPS và Google Maps

Window Manager : Quản lý việc xây dựng và hiển thị các giao diện

người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tin

nhắn,có e-mail mới )

Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm

các file hình ảnh, âm thanh, layout, string (Những thành phần không đượcviết bởi ngôn ngữ lập trình)

Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các tròchơi(Game), từ điển

Trang 35

Các chương trình có các đặc điểm là :

 Viết bằng Java, phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine đượcdựng lên để phục vụ cho nó Nó có thể là một Active Program : Chươngtrình có giao diện với người sử dụng hoặc là một background : chươngtrình chạy nền hay là dịch vụ

 Android là hệ điều hành đa nhiệm, nghĩa là trong cùng một thời điểm, cóthể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụngthì có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó

có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốthơn

 Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyềnhạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống

 Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành diđộng khác, android cho phép một ứng dụng của bên thứ ba được phépchạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không đượcphép sử dung quá 5~10% công suất CPU, điều đó nhằn để tránh độcquyền trong việc sử dụng CPU

Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu

1.2.3 Vòng đời Android

Android có cơ chế quản lý các process theo chế độ ưu tiên Các process cópriority thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tàinguyên

Foreground process: là process của ứng dụng hiện thời đang được người

dùng tương tác

Ngày đăng: 27/04/2014, 22:50

HÌNH ẢNH LIÊN QUAN

Hình 1.2 – Tác tử tương tác với môi trường - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.2 – Tác tử tương tác với môi trường (Trang 7)
Hình 1.1 – Giao thức HTTP giữa thiết bị cá nhân và máy chủ - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.1 – Giao thức HTTP giữa thiết bị cá nhân và máy chủ (Trang 7)
Hình 1.3 Kiến trúc của tác tử - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.3 Kiến trúc của tác tử (Trang 10)
Hình 1.5 Tác tử có trạng thái bên trong - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.5 Tác tử có trạng thái bên trong (Trang 15)
Hình 1.6  Tác tử có  mục đích - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.6 Tác tử có mục đích (Trang 16)
Hình 1.7 Tác tử với cơ chế suy diễn - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.7 Tác tử với cơ chế suy diễn (Trang 19)
Hình 1.8 – Giao thức CoAP giữa server với các node trong mạng cảm biến - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.8 – Giao thức CoAP giữa server với các node trong mạng cảm biến (Trang 23)
Hình 1.9 - Phân tầng trừu tượng của CoAP - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.9 Phân tầng trừu tượng của CoAP (Trang 27)
Hình bên dưới cho thấy các tầng khác nhau tạo nên hệ điều hành Android. - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình b ên dưới cho thấy các tầng khác nhau tạo nên hệ điều hành Android (Trang 30)
Hình 1.11 - Biểu đồ miêu tả Activity state - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 1.11 Biểu đồ miêu tả Activity state (Trang 36)
Hình 2.1.a – Mô hình chung 3 phần của dự án - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 2.1.a – Mô hình chung 3 phần của dự án (Trang 43)
Hình 2.1.b – Mô hình thiết bị tổng quan - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 2.1.b – Mô hình thiết bị tổng quan (Trang 43)
Hình 2.2 – Thiết bị di động tương tác với tòa nhà qua mạng Internet - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 2.2 – Thiết bị di động tương tác với tòa nhà qua mạng Internet (Trang 44)
Hình 2.3 – Biểu đồ Use Case của hệ thống - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 2.3 – Biểu đồ Use Case của hệ thống (Trang 46)
Hình 2.4 – Biểu đồ lớp ca sử dụng đăng nhập - Báo cáo mô phỏng phần mềm điều khiển nhà thông minh bằng thiết bị Android
Hình 2.4 – Biểu đồ lớp ca sử dụng đăng nhập (Trang 47)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w