Một số mô hình MiddleWare LBS

Một phần của tài liệu Dịch vụ trên nền công nghệ định vị location based services và ứng dụng (Trang 61)

3.1.4.1 Mô hình Publish/Subscribe

Mô hình Publish/Subscribe là một trong phương thức MiddleWare nổi bật nhất được dùng trong di động. Sự quan trọng của mô hình này là sử dụng một dạng thức truyền thông phù hợp cho sự hoạt động không kết nối và phân phối thông tin hiệu quả.

Mô hình Publish/Subcribe gồm các thành phần cung cấp thông tin về các sự kiện (trong đó bao gồm thông tin về location và các dữ liệu khác) gọi là event producer và một bên là các đối tượng đăng ký để được cung cấp thông tin về các sự kiện mà nó quan tâm gọi là event consumer.

Publish : Là thuật ngữ chỉ thành phần cung cấp thông tin về các sự kiện

Subcribe : Là thuật ngữ chỉ các đối tượng phải đăng ký để được cung cấp thông tin về các sự kiện.

Những đặc trưng chính của mô hình Publish/Subscribe :

Không đồng bộ : Một truyền thông có thể nối tiếp sự kiện nếu nơi đến không sẵn sàng để dùng.

Truyền thông nhiều điểm : Sự truyền thông tin là bản chất bởi vì nhiều hơn một khách hàng có thể đăng ký sự quan tâm cho đồng thời một sự kiện.

Tuyệt đối : Nơi đến thực của những sự kiện là tuyệt đối.( khi biết mục tiêu mà một sự kiện cần gửi đến, sự kiện đó chắc chắn được gửi mục tiêu đó)

Tồn tại của sự kiện : Sự kiện không được lưu lại trong hệ thống sau khi gửi đến người đăng ký.

Những mô hình trên nền nội dung và không gian phụ thuộc là một cách tiếp cận đầy đủ nhất những yêu cầu của một hệ thống trên nền định vị.

a. Mô hình trên nền nội dung

Trong mô hình trên nền nội dung, một sự kiện được thể hiện bằng 1 cặp (thuộc tính, giá trị).

Mô hình này thích hợp cho phân phối thông tin. Ví dụ như một ứng dụng hay một khách hàng có thể nhận được những thông báo về sự thay đồi trạng thái của hệ

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

thống. Thông tin vị trí là những toạ độ được biểu diễn như: vĩ độ, kinh độ, độ cao. Tương tự như thiết bị di động, thông tin xác định nó là số hiệu

Mô hình hệ thống Publish/Subscribe hỗ trợ những dịch vụ trên nền định vị

Hình 3.6. Mô hình hệ thống Pblish/subscribe Mỗi khối là một thành phần của mô hình Publish/subscribe .

Khối Publish/Subscribe filter engine : Là bộ lọc Publish/subscribe Khối Repository : Là kho dữ liệu.

Khối Notification : Đưa ra thông báo và gửi cho người sử dụng.

Khối Location constraint matching engine : Sự đối sánh có ràng buộc về vị trí. Khối Location staging area : Thông tin hay sự diễn giải của vị trí đó.

Khối Location update : Cập nhật các vị trí. Hoạt động của mô hình

Thông tin xuất bản và đăng kí sau khi qua bộ lọc Publish/subscribe mang theo dữ liệu được đưa đến bộ đối sánh có ràng buộc vị trí, tại đây cho kết quả về dữ liệu phù hợp và gửi thông báo cho người dùng (khách hàng).

Tại khối Location constraint matching engine mọi thông tin dữ liệu về vị trí được gửi tới khối này thông qua 2 khối Location staging area và Location update. Như vậy kết thúc 1 (vòng) chu trình làm việc của mô hình.

Ví dụ

Publisher cung cấp thông tin về một dịch vụ du lịch tại địa điểm A. Người sử dụng dịch vụ gần vị trí A đăng kí thông tin(Subscribe) về dịch vụ du lịch. Sau khi thông

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

tin của dịch vụ và người sử dụng này qua bộ đối sánh có ràng buộc về vị trí thì nó cho kết quả phù hợp và tạo thông báo gửi cho người sử dụng biết mọi thông tin cần thiết về dịch vụ du lịch tại A.

b. Mô hình không gian phụ thuộc Định nghĩa

Mô hình không gian phụ thuộc là một mô hình hệ thống tổng quát biểu thị sự tương tác không đồng bộ của những thực thể riêng rẽ.

Một không gian phụ thuộc là một nhóm xuất bản và đăng ký có liên quan được mô tả bởi tập hợp những thuộc tính, và mỗi chiều (không gian) đại diện cho một thuộc tính. (adsbygoogle = window.adsbygoogle || []).push({});

Trong mô hình không gian phụ thuộc, một hệ thống Publish/Subscribe được mô tả như chủ thể không gian. Chủ thể không gian là siêu dữ liệu của hệ thống Publish/Subscribe và trợ giúp việc mô tả những giá trị và mối quan hệ giữa sự xuất bản thông tin và đăng ký thu nhận thông tin.

Những lợi thế của mô hình không gian phụ thuộc + Tránh việc thông báo thừa

+ Trong một hệ thống đối xứng Publish/Subscribe, một thông báo chỉ được gửi nếu thông tin xuất bản phù hợp với thông tin đăng ký. Đặc trưng này có ý nghĩa quan trọng trong LBS vì nó cho phép người sử dụng lọc ra thông tin không cần thiết và tránh phân phối thông tin vô ích.

+ Khi vị trí của người sử dụng thay đổi, mô hình sẽ cập nhật thông tin trong tất cả đăng ký đã có.

Trong hệ thống Publish/Subscribe truyền thống, khi một ví trí thay đổi tất cả sự đăng ký sẽ bị loại bỏ và được thông tin mới sẽ được chèn vào trong hệ thống.

3.1.4.2 Mô hình không gian bộ dữ liệu (Tuple Spaces)

Trong mô hình không gian bộ dữ liệu, một tiến trình giao tiếp với một tiến trình khác bằng cách sử dụng một bộ dữ liệu không gian. Bộ dữ liệu là một phần tử dữ liệu mà chứa giá trị hay chỉ rõ kiểu dữ liệu.

Không gian bộ dữ liệu là một tập hợp tổng thể những bộ dữ liệu được dùng trong hệ thống.

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

Sự thực thi của 1 MiddleWare trên không gian bộ dữ liệu được hỗ trợ bởi 3 thao tác cơ bản.

Out(t): Chèn 1 bộ dữ liệu t vào không gian bộ dữ liệu

In(p): Lấy ra 1 bộ dữ liệu t nào đó từ không gian bộ dữ liệu để phù hợp với khung bộ dữ liệu p cho trước.

Rd(p): Giống như sự hoạt động của in(p), phần lấy ra bộ dữ liệu t không thể loại bỏ khỏi không gian bộ dữ liệu.

Mô hình không gian bộ dữ liệu phát biểu đầy đủ và linh hoạt nhằm hỗ trợ phát triển ứng dụng trên nền định vị cơ bản.

Trong một ứng dụng trên nền định vị thông tin, người xuất bản thông tin và khách hàng cần thông tin tương tác qua một không gian bộ dữ liệu bằng việc chèn vào và lấy ra bộ dữ liệu.

3.1.4.3 Mô hình DBMS – based

Mô hình DBMS – based sử dụng cơ sở dữ liệu để thực hiện một mô hình truyền thông và phối hợp.

Mô hình này cho phép sự tương tác giữa một thiết bị đầu cuối và cơ sở dữ liệu, cất giữ thông tin liên quan đến thiết bị đầu cuối.

Một thiết bị đầu cuối gửi yêu cầu, hệ thống ước lượng trên cơ sở dữ liệu và trả lại bất kỳ kết quả nào phù hợp tới thiết bị.

3.2 Sự thu thập và trao đổi dữ liệu trong LBS 3.2.1 Thu thập dữ liệu trong LBS 3.2.1 Thu thập dữ liệu trong LBS

Những hệ thống định vị khác nhau cung cấp dữ liệu định vị với những đặc trưng khác nhau. Dưới đây là một số thuộc tính của bộ dữ liệu định vị trong LBS

Hệ tọa độ : Có 2 loại

+ Vĩ độ, kinh độ và cao độ (LLA) sử dụng 2 góc và một chiều cao.

+ Hệ thống sử dụng tọa độ Đề Các với gốc tọa độ O là trọng tâm của trái đất

Phạm vi : Một hệ thống định vị có phạm vi bao phủ nhất định. Phạm vi thực tế của 1 hệ thống định vị có thể nhỏ hơn so với phạm vi mà hệ thống có thể cung cấp.

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

Ví dụ : Hệ thống định vị trong nhà phạm vi cung cấp cho ứng dụng có thể là toàn bộ tòa nhà hay 1 góc nhất định nào đó của tòa nhà (Tại 1 số phòng nào đó không được trang bị hệ thống nó sẽ nằm ngoài vùng phạm vi của hệ thống).

Sự chính xác : Một hệ thống định vị không thể lúc nào cũng cho kết quả chính xác tuyệt đối, sự không chính xác này do những điều kiện ngoại cảnh như nhiệt độ, điều kiện khí quyển,…

Thu thập dữ trong LBS

Dữ liệu trong các dịch vụ trên nền định vị LBS được cập nhật từ những hệ thống như GPS, GIS,…. Dữ liệu ở đây bao gồm các hệ thống, dịch vụ và thông tin trên bề mặt trái đất. (adsbygoogle = window.adsbygoogle || []).push({});

3.2.2 Sự trao đổi dữ liệu trong di động

Sự trao đổi dữ liệu trong Ứng dụng LBS được thực hiện theo 2 cách : đồng bộ và không đồng bộ

Phương pháp đồng bộ

Khi người người dùng gửi một yêu cầu định vị cụ thể nào đó đến các nhà cung cấp dịch vụ và sẽ nhận được câu trả lời ngay

Phương pháp không đồng bộ

Ngườid sử dụng dịch vụ LBS cần đăng ký trước các dịch vụ, sự kiện cần quan tâm và chỉ khi nào có sự kiện xảy ra thì các nhà cung cấp mới tự động kích hoạt gửi thông tin định vị tới cho người dùng

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD Phần II Ứng dụng

Chương 4 Giới thiệu về công cụ lập trình và phần mềm MIDP 4.1 Tổng quan về lập trình J2ME và MIDP

4.1.1 Lịch sử phát triển

Công nghệ Java cho công nghiệp di động (Java Technology Wireless Industry ] JTWI) ngày càng phát triển và thu hút sự quan tâm của nhiều người. Nhằm đáp ứng nhu cầu này, Tin CNTT mở chuyên mục J2ME Tutorial cố gắng đề cập đầy đủ nhiều khía cạnh của công nghệ Java cho di động. J2ME được phát triển từ kiến trúc Java Card, Embeded Java và Personal Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay thế Personal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME.

Lý do chọn J2ME

Java ban đầu được thiết kế dành cho các máy với tài nguyên bộ nhớ hạn chế. Thị trường của J2ME được mở rộng ra cho nhiều chủng loại thiết bị như:

• Các loại thẻ cá nhân như Java Card

• Máy điện thoại di động

• Máy PDA (Personal Digital Assistant ] thiết bị trợ giúp cá nhân)

• Các hộp điều khiển dành cho tivi, thiết bị giải trí gia dụng … 4.1.2 Khái quát các lớp (tầng) của J2ME

Mục tiêu của J2ME là cho phép người lập trình viết các ứng dụng độc lập với thiết bị di động, không cần quan tâm đến phần cứng thật sự. Để đạt được mục tiêu này, J2ME được xây dựng bằng các tầng (layer) khác nhau để giấu đi việc thực hiện phần cứng khỏi nhà phát triển. Sau đây là các tầng của J2ME được xây dựng trên CLDC:

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

Hình 4.1: Các tầng của CLDC J2ME Tầng phần cứng thiết bị (Device Hardware Layer)

Đây chính là thiết bị di động thật sự với cấu hình phần cứng của nó về bộ nhớ và tốc độ xử lý. Dĩ nhiên thật ra nó không phải là một phần của J2ME nhưng nó là nơi xuất phát. Các thiết bị di động khác nhau có thể có các bộ vi xử lý khác nhau với các tập mã lệnh khác nhau. Mục tiêu của J2ME là cung cấp một chuẩn cho tất cả các loại thiết bị di động khác nhau.

Tầng máy ảo Java (Java Virtual Machine Layer)

Khi mã nguồn Java được biên dịch nó được chuyển đổi thành mã bytecode. Mã bytecode này sau đó được chuyển thành mã ngôn ngữ máy của thiết bị di động. Tầng máy ảo Java bao gồm KVM (K Virtual Machine) là bộ biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode của chương trình Java thành ngôn ngữ máy để chạy trên thiết bị di động. Tầng này cung cấp một sự chuẩn hóa cho các thiết bị di động để ứng dụng J2ME sau khi đã biên dịch có thể hoạt động trên bất kỳ thiết bị di động nào có J2ME KVM.

Tầng cấu hình (Configuration Layer)

Tầng cấu hình của CLDC định nghĩa giao diện ngôn ngữ Java (Java language interface) cơ bản để cho phép chương trình Java chạy trên thiết bị di động. Đây là một tập các API định nghĩa lõi của ngôn ngữ J2ME. Lập trình viên có thể sử dụng các lớp và phương thức của các API này tuy nhiên tập các API hữu dụng hơn được chứa trong tầng hiện trạng (profile layer).

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

Tầng hiện trạng hay MIDP (Hiện trạng thiết bị thông tin di động]Mobile Information Device Profile) cung cấp tập các API hữu dụng hơn cho lập trình viên. Mục đích của hiện trạng là xây dựng trên lớp cấu hình và cung cấp nhiều thư viện ứng dụng hơn. MIDP định nghĩa các API riêng biệt cho thiết bị di động. Cũng có thể có các hiện trạng và các API khác ngoài MIDP được dùng cho ứng dụng. Ví dụ, có thể có hiện trạng PDA định nghĩa các lớp và phương thức hữu dụng cho việc tạo các ứng dụng PDA (lịch, sổ hẹn, sổ địa chỉ,…). Cũng có thể có một hiện trạng định nghĩa các API cho việc tạo các ứng dụng Bluetooth. Thực tế, các hiện trạng kể trên và tập các API đang được xây dựng. Chuẩn hiện trạng PDA là đặc tả JSR ] 75 và chuẩn bluetooth API là đặc tả JSR ] 82 với JSR là viết tắt của Java Specification Request.

4.1.3 Kiến trúc của J2ME

Hình 4.2: Sơ đồ kiến trúc của J2ME 4.1.3.1 Máy ảo Java(hay KVM)

Vai trò của máy ảo Java hay KVM là dịch mã bytecode được sinh ra từ chương trình Java đã biên dịch sang ngôn ngữ máy. Chính KVM sẽ chuẩn hóa output của các chương trình Java cho các thiết bị di động khác nhau có thể có bộ vi xử lý và tập lệnh khác nhau. Không có KVM, các chương trình Java phải được biên dịch thành tập lệnh cho mỗi thiết bị di động. Như vậy lập trình viên phải xây dựng nhiều đích cho mỗi loại thiết bị di động. Tiến trình xây dựng ứng dụng MIDlet hoàn chỉnh và vai trò của KVM.

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.3: Mô tả tiến trình xây dựng MIDlet 4.1.3.2 Tầng Configuration Level

Là đặc tả định nghĩa một môi trường phần mềm cho một dòng các thiết bị được phân loại bởi tập hợp các đặc tính, ví dụ như:

• Kiểu và số lượng bộ nhớ

• Kiểu và tốc độ bộ vi xử lý

• Kiểu mạng kết nối

Do đây là đặc tả nên các nhà sản xuất thiết bị như Samsung, Nokia …bắt buộc phải thực thi đầy đủ các đặc tả do Sun qui định để các lập trình viên có thể dựa vào môi trường lập trình nhất quán và thông qua sự nhất quán này, các ứng dụng được tạo ra có thể mang tính độc lập thiết bị cao nhất có thể. Hiện nay Sun đã đưa ra 2 dạng Configuration:

CLDC (Connected Limited Device Configuration[Cấu hình thiết bị kết nối giới hạn): Được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low]end), các thiết bị này thông thường là máy điện thoại di động và PDA với khoảng 512 KB bộ nhớ. Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless ), dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như là Midlet.

CDC [ Connected Device Configuration (Cấu hình thiết bị kết nối): CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE. Những thiết bị này có nhiều

Sinh viên TH : Nguyễn Nho Bình – Lớp 49PM2 ĐHXD

bộ nhớ hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn. Các sản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị gia dụng trong gia đình …

4.1.3.3 Tầng Profile Level

Profile mở rộng Configuration bằng cách thêm vào các class để bổ trợ các tính năng cho từng thiết bị chuyên biệt. Cả 2 Configuration đều có những profile liên quan và từ những profile này có thể dùng các class lẫn nhau. Đến đây ta có thể nhận thấy do mỗi profile định nghĩa một tập hợp các class khác nhau, nên thường ta không thể chuyển một ứng dụng Java viết cho một profile này và chạy trên một máy hỗ trợ một profile khác. Cũng với lý do đó, bạn không thể lấy một ứng dụng viết trên J2SE hay J2EE và chạy trên các máy hỗ trợ J2ME. Sau đây là các profile tiêu biểu:

Một phần của tài liệu Dịch vụ trên nền công nghệ định vị location based services và ứng dụng (Trang 61)