1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Egobile mng xa hi dnh v danh cho sin

7 10 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 1,21 MB

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

Nội dung

Kỹ thuật mới để xác định vị trí người dùng trên nền tảng Web – W3C Geolocation API, cơ sở dữ liệu với tính mở rộng và phân tán cao – MongoDB, mơ hình giảm thiểu chi phí đường truyền l

Trang 1

Egobile – Mạng xã hội định vị dành cho sinh viên Đại học Cơng Nghệ Thơng Tin

Hung Q Tao#1, Vy L Y Nguyen*2, Hieu M Nguyen#3, Viet H Huynh*4, Tuan A Nguyen#5

# Khoa Hệ Thống Thơng Tin, Trường Đại học Cơng Nghệ Thơng Tin – ĐHQG TPHCM

KM 20 Xa Lộ Hà Nội, Phường Linh Trung, Quận Thủ Đức, TP Hồ Chí Minh

1 07520160@sv.uit.edu.vn

2 07520424@sv.uit.edu.vn

3 07520117@sv.uit.edu.vn

4 viethh@uit.edu.vn

5

tuanna@uit.edu.vn

Abstract— Cùng với sự phát triển mạnh mẽ của các ứng dụng

trên nền tảng World Wide Web, mạng xã hội ngày càng phát

triển với ngày càng nhiều tính năng, tiện ích hướng tới phục vụ

ngày càng tốt hơn nhu cầu giải trí và chia sẻ thơng tin của con

người Kỹ thuật mới để xác định vị trí người dùng trên nền tảng

Web – W3C Geolocation API, cơ sở dữ liệu với tính mở rộng và

phân tán cao – MongoDB, mơ hình giảm thiểu chi phí đường

truyền là những vấn đề cần quan tâm khi xây dựng một mạng xã

hội định vị và sẽ được trình bày trong báo cáo này Với tiêu chí

―Everything Goes On Mobile‖, nhĩm tác giả cũng sẽ giới thiệu

một mạng xã hội định vị mang tên Egobile và cách mà Egobile cĩ

thể giúp đỡ các sinh viên mới nhập học tại trường Đại học Cơng

Nghệ Thơng Tin – ĐHQG TPHCM

Keywordsmạng xã hội, thiết bị di động, HTML5, Geolocation

API, NoSQL

Mạng xã hội đã và đang dần dần thay đổi cách thức trao đổi

thơng tin của giới trẻ và đã là một phần của cuộc sống hiện đại

Theo thống kê của Facebook [1] – mạng xã hội lớn nhất hành

tinh với con số chính thức hơn 500 triệu người dùng, 50% số

người dùng truy cập vào Facebook mỗi ngày và điều thú vị là

hơn 250 triệu người thường xuyên truy cập Facebook trên

thiết bị di động của họ Sự phát triển của khoa học cơng nghệ

trong những năm gần đây đã đem lại nhiều lợi ích nhất định:

các thiết bị di động trở nên thơng minh và nhiều chức năng

hơn nhưng chi phí thấp hơn, các kỹ thuật xác định vị trí người

dùng di động cũng được sử dụng nhiều hơn Với hướng tiếp

cận trên các thiết bị di động, nhĩm tác giả giới thiệu ứng dụng

Egobile (Everything Goes On Mobile) – một mạng xã hội sử

dụng kỹ thuật định vị làm nền tảng giúp người sử dụng dễ

dàng chia sẻ thơng tin và liên lạc với nhau Egobile tập trung

vào đối tượng cụ thể là những sinh mới nhập học tại Trường

đại học Cơng Nghệ Thơng – ĐHQG TPHCM, gặp rất nhiều

khĩ khăn trong việc sinh hoạt, di chuyển và kết bạn với những

người khác Egobile được xây dựng trên 3 nền tảng quan

trọng:

để lưu trữ dữ liệu với những điểm mạnh như: khả năng

lưu trữ và truy vấn phân tán, hỗ trợ Spatial Index và khả năng mở rộng cơ sở dữ liệu theo chiều ngang

di động, sử dụng W3C Geolocation API để xác định vị trí của người dùng

chi phí đường truyền – yếu tố quan trọng đối với người dùng sử dụng thiết bị di động

Báo cáo được trình bày theo cấu trúc sau Phần 2 đặc tả một tình huống cụ thể: làm thế nào Egobile cĩ thể giúp đỡ những sinh viên mới vào học tại trường Đại học Cơng Nghệ Thơng Tin Phần 3 và 4 trình bày nền tảng phát triển Egobile Phần 5 đánh giá và thảo luận về đề tài Phần cuối cùng nêu kết luận

và hướng phát triển của đề tài

Trong phần này, nhĩm tác giả sẽ đưa ra một tình huống cụ thể, ứng dụng Egobile sẽ giúp đỡ một sinh viên mới nhập học tại UIT như thế nào

Nam là một sinh viên mới của trường Đại học Cơng Nghệ Thơng Tin Đây cũng là lần đầu tiên Nam rời quê hương đến sinh sống tại một thành phố đơng đúc, hiện đại Cũng giống như hầu hết các sinh viên mới vào trường, Nam cảm thấy ngỡ ngàng, mọi thứ đều mới lạ và dĩ nhiên Nam rất cần được giúp

đỡ

Như thường lệ, ngày đầu tiên tại trường Đại học, các tân sinh viên đều phải nhận mã số đăng ký và hồn tất các thủ tục nhập học Vào cuối buổi, Nam nhận được một tờ giấy hướng dẫn từ trường với tiêu đề “Làm thế nào để tìm được những điều bạn muốn tại trường Đại học?” Nam được dặn dị: ghi nhớ địa chỉ website trong hướng dẫn và hãy bắt đầu khám phá Nam về nhà trọ và ngủ một giấc sau một ngày mệt mỏi Ngày thứ hai, mọi khĩ khăn tan biến Nhớ lại địa chỉ website hơm qua, Nam truy cập đến địa chỉ đĩ bằng chính điện thoại của mình Với vài bước đăng ký, Nam đã cĩ được tài khoản trên website Một bản đồ hiện ra và Nam cĩ thể nhìn thấy được vị trí của mình trên màn hình điện thoại Điều đầu tiên Nam làm là kết nối với tài khoản của trường Đại học Cơng Nghệ Thơng Tin Tài khoản của trường chia sẻ cho Nam thơng tin và vị trí của những nơi Nam cần như: chợ, quán ăn,

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 2

nhà sách, bệnh viện, thư viện, các máy ATM, vị trí các trường

đại học khác xung quanh… và nhiều nơi nữa Cảm thấy thích

thú với tiện ích này, Nam ra ngồi và bắt đầu khám phá

Trên đường đi, Nam tìm thấy nhiều điều thú vị hơn Nam

kết bạn với Lan, người mà Nam đã quen hơm qua, ngay trên

website Nam hẹn Lan đến quán nước Sinh viên, gần Ký túc xá

Nam vẽ lại đường đi từ vị trí hiện tại của Lan đến nơi hẹn và

gửi cho cơ ấy Trên đường đi, Nam cĩ thể biết được Lan đang

đi đến đâu trên bản đồ của mình Họ gặp nhau và trị chuyện

với nhau vui vẻ về những thử thách mới khi vào Đại học và

đặc biệt là về những tiện ích mà Trường đã hỗ trợ trên

website Vẫn cịn nhiều tiện ích khác nữa đang chờ họ khám

phá như: ghi nhận lại địa điểm hiện tại của mình, một vài

dịng bình luận và cĩ thể chia sẻ địa điểm này cho các bạn

khác; lập lịch biểu theo vị trí tại những nơi muốn hệ thống

nhắc nhở… Cuối ngày hơm đĩ, Nam đã kết bạn với Thành,

Đức và Vân – những anh chị sinh viên cũng rất bỡ ngỡ như

Nam và Lan năm ngối

Và kể từ đĩ, ngày qua ngày, Nam càng cĩ được nhiều bạn

mới, biết được nhiều nơi và khám phá ra rất nhiều điều mới lạ

nhưng chỉ với một cách rất đơn giản

Đầu tiên, hãy xem qua mơ hình dưới đây:

User

first_name last_name nick_name email password myLocation locLog dirLog FK2 friends FK4 locations FK3 directions

Location

location name description createDate isPublic categories rating

direction

start finish direction name description createDate isPublic categories rating

Post

content

createDate

rating

tag

FK2 user_id

Comment

content

createDate

rating

FK2 post_id

FK3 user_id

Hình 1 Mơ hình thực thể kế hợp ở mức quan niệm

Hình 1 biểu diễn mối quan hệ giữa các thực thể gồm: user,

location, direction, post và comment ở mức quan niệm Nhĩm

tác giả nhận xét rằng: hầu hết các thực thể kết hợp với nhau

bằng quan hệ nhiều nhiều Mỗi một quan hệ nhiều nhiều sau

khi được mơ hình hĩa xuống tầng vật lý sẽ phát sinh thêm một

bảng Điều này sẽ gây khơng ít khĩ khăn trong quá trình xử lý,

truy vấn, đặc biệt hiệu năng của hệ thống sẽ giảm đi đáng kể

khi cơ sở dữ liệu rất lớn (do kết hợp quá nhiều bảng trong quá

trình truy xuất)

Hướng tiếp cận để giải quyết vấn đề này là mơ hình hĩa lại

các thực thể dưới dạng một tài liệu Trong đĩ, các tài liệu cĩ

mối quan hệ với nhau được đặt cạnh nhau hoặc lồng vào nhau

nhằm tăng hiệu năng và giảm quá trình xử lý NoSQL là cĩ

thể là sự lựa chọn hợp lý

NoSQL là thuật ngữ chung cho các hệ cơ sở dữ liệu khơng

sử dụng mơ hình dữ liệu quan hệ và được giới thiệu lần đầu vào năm 1998 NoSQL đặc biệt nhấn mạnh đến mơ hình lưu trữ cặp giá trị - khĩa và hệ thống lưu trữ phân tán[6] Một số đặc điểm của NoSQL:

dụng đến các mối quan hệ giữa các bảng trong cơ sở dữ liệu quan hệ (Relational Database Management System)

sử dụng mơ hình gồm 2 loại khĩa: khĩa chính (primary key) và khĩa phụ (foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất quán dữ liệu từ các bảng khác nhau Non-relational là khái niệm khơng sử dụng các ràng buộc dữ liệu cho tính nhất quán dữ liệu

BẢNG 1 đưa ra một vài so sánh giữa Cơ sở dữ liệu quan hệ (RDBMS) và NoSQL [6]

BẢNG 1 BẢNG SO SÁNH GIỮA RDBMS VÀ NOSQL

Tính năng RDBMS NoSQL

Hiệu suất Kém hơn

SQL Relational giữa các table

Rất tốt

Bỏ qua SQL

Bỏ qua các ràng buộc Khả năng

mở rộng theo chiều ngang

Hiệu suất đọc – ghi

Kém do thiết kế đảm bảo

sự vào / ra liên tục của

dữ liệu

Tối ưu về đọc – ghi

dữ liệu

Phần cứng Địi hỏi cao về phần cứng Địi hỏi thấp hơn về

giá trị và tính đồng nhất của phần cứng

MongoDB là một trong những cơ sở dữ liệu NoSQL với 3 đặc điểm phù hợp với Egobile:

Notation)

ràng buộc quá cao

Trong MongoDB, một bảng được lưu dưới dạng một Collection và một dịng trong CSDL quan hệ được gọi là một Document Thiết kế một CSDL trên MongoDB khơng giống như những gì chúng ta thường thực hiện trên CSDL quan hệ

Cĩ thể tham khảo một vài nguyên tắc trong việc thiết kế MongoDB tại [7] BẢNG 2 mơ tả một câu truy vấn SQL sẽ được định nghĩa như thế nào trong MongoDB

BẢNG 2 BẢNG MƠ TẢ CÁC TRUY VẤN SQL VÀ MONGODB [8]

SQL MongoDB

CREATE TABLE USERS (a Number, b Number)

Khơng cần định nghĩa bảng trước

INSERT INTO USERS VALUES(1,1)

db.users.insert({a:1,b:1 })

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 3

SELECT a,b FROM users db.users.find({},

{a:1,b:1}) SELECT * FROM users db.users.find()

SELECT * FROM users

SELECT a,b FROM users

WHERE age=33

db.users.find({age:33}, {a:1,b:1})

SELECT * FROM users

WHERE age=33 ORDER BY

name

db.users.find({age:33}).

sort({name:1})

SELECT * FROM users

WHERE age>33

db.users.find({'age':{$g t:33}})})

SELECT * FROM users

WHERE age<33

db.users.find({'age':{$l t:33}})})

SELECT * FROM users

WHERE name LIKE "%Joe%"

db.users.find({name:/Joe /})

SELECT * FROM users

WHERE name LIKE "Joe%"

db.users.find({name:/^Jo e/})

SELECT * FROM users

WHERE age>33 AND

age<=40

db.users.find({'age':{$g t:33,$lte:40}})})

SELECT * FROM users

ORDER BY name DESC

db.users.find().sort({na me:-1})

CREATE INDEX

myindexname ON

users(name)

db.users.ensureIndex({na me:1})

CREATE INDEX

myindexname ON

users(name,ts DESC)

db.users.ensureIndex({na me:1,ts:-1})

SELECT * FROM users

WHERE a=1 and b='q'

db.users.find({a:1,b:'q' })

SELECT * FROM users

LIMIT 10 SKIP 20

db.users.find().limit(10 ).skip(20)

SELECT * FROM users

WHERE a=1 or b=2

db.users.find({$or:[{a:1 },{b:2}]})

SELECT * FROM users

EXPLAIN SELECT * FROM

users WHERE z=3

db.users.find({z:3}).exp lain()

SELECT

DISTINCTlast_name FROM

users

db.users.distinct('last_

name')

SELECT COUNT(*y)FROM

SELECT COUNT(*y)FROM users where AGE > 30

db.users.find({age: {'$gt': 30}}).count()

SELECT COUNT(AGE) from users

db.users.find({age: {'$exists':

true}}).count()

UPDATE users SET a=1 WHERE b='q'

db.users.update({b:'q'}, {$set:{a:1}}, false, true)

UPDATE users SET a=a+2 WHERE b='q'

db.users.update({b:'q'}, {$inc:{a:2}}, false, true)

DELETE FROM users WHERE z="abc"

db.users.remove({z:'abc' });

Trong Egobile, cơ sở dữ liệu MongoDB đƣợc thiết kế nhƣ BẢNG 3

Các ký hiệu đƣợc sử dụng:

BẢNG 3 BẢNG MƠ TẢ CÁC COLLECTION TRONG CSDL EGOBILE

Collection 1: USER

{ _id,first_name,last_name,nick_name, email, password,

myLocation{lat, lng},groups[{_id, name}], friends[{friend_id,visibility,group[_id]}], locLog[loc_id],

locations[{loc_id,privacy[user_id],

type <public, private, friendonly>,from}], dirLog[dir_id],

directions[{dir_id,privacy[user_id],

type <public, private, friendonly>,from}]

}

Collection 2: LOCATION

{ _id, location{lat, lng}, name, description, createdate,isPublic<true,false>,

categories[value], rating{star, like[user_id], dislike[user_id]}}

Collection 3: DIRECTION

{ _id, start{lat, lng}, finish{lat, lng}, direction[{lat, lng}], name,

description, createdate, ispublic <true, false>, rating{star, like[user_id], dislike[user_id]} }

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 4

Collection 4: POST

{

_id, user_id, content, createDate,

privacy [{friend_id}],

rating {like[{user_id}], dislike[user_id]},

comment [{

user_id,content,createDate,

rating {like[user_id],dislike[user_id]}}],

tag {friend[friend_id],location[location_id]}}

BẢNG 4 BẢNG ĐẶC TẢ COLLECTION USER

Thành phần Ý nghĩa

_id đây là thuộc tính đầu tiên và cần thiết phải cĩ

trong một collection (cĩ thể khơng cần thiết đối

với một sub-collection) Thuộc tính này cĩ giá trị

duy nhất

first name mơ tả tên của người dùng

last name mơ tả họ của người dùng

nick name mơ tả tài khoản mà người dùng đăng nhập

email mơ tả địa chỉ hộp thư của người dùng

password mơ tả mật khẩu đăng nhập hệ thống của người

dùng

myLocation mơ tả vị trí hiện tại của người dùng Đây là một ví

dụ của document với 2 giá trị là: lat (latitude – vĩ

độ) và lng (longitude – kinh độ) Thuộc tính này

là một thuộc tính khơng gian trong MongoDB

groups mơ tả một người dùng cĩ thể cĩ nhiều nhĩm bạn,

mỗi một nhĩm do người dùng tạo ra cĩ một thuộc

tính _id là định danh phân biệt và một thuộc tính;

name lưu tên nhĩm Đây là một ví dụ về

sub-collection

friends mơ tả một người dùng cĩ thể cĩ nhiều bạn, mỗi

bạn cĩ một thuộc tính: friend_id tham chiếu đến

thuộc tính _id trong collection USER; visibility

dùng để ẩn hiện bài post của người dùng này;

group mơ tả một người bạn cĩ thể ở nhiều nhĩm

khác nhau

locLog dùng để lưu log vị trí được chia sẻ đang hiển thị

trên bản đồ của người dùng Thuộc tính này được

dùng để tối ưu hĩa quá trình xử lý ở client

locations là một sub-collection mơ tả một người dùng cĩ

thể cĩ nhiều vị trí được chia sẻ trên bản đồ, mỗi

một vị trí gồm cĩ: loc_id tham chiếu đến thuộc

tính _id trong collection Location; privacy là một

sub-collection, mơ tả một vị trí cĩ thể được chia

sẻ cho nhiều người bạn; type là một thuộc tính lựa

chọn với ba giá trị: public, private và only friend,

đây cũng là ba hình thức chia sẻ hiện tại của ứng

dụng này; from lưu _id của người tạo ra địa điểm

này

dirLog and

directions

tương tự với locLog và locations nhưng sử dụng

cho đường đi được chia sẻ

Các colllection khác được mơ tả tương tự

Để so sánh chi phí truy vấn giữa CSDL quan hệ và

MongoDB, nhĩm tác giả giả định một bài tốn như sau:

“Giả định rằng trong CSDL cĩ 1.000 user, mỗi user cĩ 200

vị trí khác nhau được chia sẻ Yêu cầu lấy tất cả vị trí được

chia sẻ của user A (quan hệ giữa user và location là quan hệ

nhiều nhiều)”

Với CSDL quan hệ, ta sẽ cĩ các bảng: user(1.000), location(200.000) và user_location (>=200.000), trong đĩ: bảng user chứa 1.000 dịng, bảng location chứa 200.000 dịng, bảng user_location thể hiện mối quan hệ giữa user và location với hơn 200.000 dịng Chi phí cho việc truy vấn chọn ra tất cả các vị trí được chia sẻ của user A bằng với số thể hiện của bảng user_location, tương đương với >= 200.000 (đơn vị thời gian)

Với MongoDB, ta sẽ cĩ các collection: user và location như BẢNG 3, trong đĩ: collection USER chứa 1.000 dịng, collection LOCATION chứa 200.000 dịng Mối quan hệ giữa USER và LOCATION đã được nhúng vào trong collection USER Vì vậy, chi phí cho việc truy vấn chọn ra tất cả vị trí được chia sẻ của user A bằng với số thể hiện của collection USER, tương đương với 1.000 (đơn vị thời gian)

Rõ ràng, trong trường hợp này, truy vấn trên MongoDB tối

ưu hơn CSDL quan hệ ít nhất 200 lần

Kết luận, Việc mơ hình hĩa các đối tượng hay các thực thể dưới dạng một tài liệu như những gì đã trình bày trong MongDB sẽ giúp cho việc truy xuất nhanh hơn, hiệu quả hơn

và phù hợp hơn với đề tài mạng xã hội

IV KỸ THUẬT ĐỊNH VỊ VÀ MƠ HÌNH TỐI ƯU

A W3C Geolocation API

Việc xác định vị trí của người dùng sử dụng thiết bị di động

cĩ nhiều cách khác nhau, đa phần phụ thuộc vào nền tảng của thiết bị, trình duyệt, hệ điều hành mà thiết bị sử dụng Theo

Maximiliano Firtman [3], các kỹ thuật định vị cĩ thể được

chia thành 2 loại chính: các kỹ thuật định vị bên trong (Indoor

Location) và các kỹ thuật định vị bên ngồi (Outdoor Location) Mỗi một kỹ thuật lại cĩ nhiều phương pháp khác

nhau tuy nhiên, những phương pháp đơn lẻ này khơng thể áp dụng trên nền tảng phổ biến như Web Giải pháp cho vấn đề này đến từ W3C – World Wide Web Consortium W3C Geolocation API [4] được xem là một giải pháp tổng thể được W3C đang xây dựng và hồn thiện API này cung cấp một kịch bản JavaScript để cĩ thể lấy được thơng tin vị trí của người sử dụng khơng chỉ bằng một mà kết hợp nhiều phương

pháp khác nhau như: xác định vị trí theo địa chỉ IP (IP

Address), kết nối mạng khơng dây (Wireless Network Connection) và thậm chí thơng tin từ phần cứng GPS tích hợp

sẵn trong các thiết bị di động Tính đến thời điểm này, W3C Geolocation API đang trong giai đoạn hồn thiện cùng với HTML5 Mặc dù vẫn cịn là bản nháp tuy nhiên, kỹ thuật này đang rất được cộng đồng chú ý và đã cĩ một vài ứng dụng cụ

tham khảo tại [5] Sau đây là một ví dụ đơn giản để cĩ thể lấy được vị trí của người sử dụng thơng qua W3C Geolocation API:

navigator.geolocation.getCurrentPosition( function(position){

var location =

[position.address.city, position.address.region, position.address.country]; location = location.join(', ');

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 5

createMap(position.latitude,

position.longitude, location);

}, function() {

document.getElementById(‘canvas’).inner

HTML = "Khơng thể lấy được vị trí";

});

Ví dụ trên mơ tả cách thức đơn giản nhất để cĩ được vị trí

của người dùng bao gồm: latitude, longitude (từ thiết bị GPS),

city, region, country… (từ IP Address và các phương pháp

khác) Đối tượng navigator là đối tượng cĩ sẵn trong

Geolocation API Hàm createMap là hàm JavaScript do người

dùng định nghĩa và dùng cho việc tạo bản đồ

Tĩm lại, ứng dụng W3C Geolocation API vào Egobile đáp

ứng được 3 yếu tố:

trên từng nền tảng khác nhau như: Android, iOS, Nokia,

BlackBerry, Palm…

gũi nhất – nền tảng web

B Mơ hình truy vấn tối ưu của Egobile

Mục tiêu của mơ hình truy vấn tối ưu, gọi tắt OPM

(Optimize Processing Model) là giảm thiểu tối đa chi phí

đường truyền nhưng ứng dụng vẫn giữ được tính tức thời

Nghĩa là, người dùng cĩ thể thấy ngay những thay đổi trên

bản đồ mà khơng cần làm mới lại tồn bộ trang

Trước tiên, cần phải xác định rằng: cĩ ba nhĩm đối tượng

sẽ được hiển thị trên bản đồ là vị trí của bạn bè, địa điểm được

chia sẻ và đường đi được chia sẻ Cả ba nhĩm đối tượng này

đều cùng chung một vấn đề sau:

Giả định rằng: người sử dụng đang ở vị trí Z(lat, lng), tọa

độ gĩc trên bên trái của màn hình đang hiển thị là A(lat, lng),

tọa độ gĩc dưới bên phải của màn hình là B(lat, lng),

Boundary là vùng giới hạn bởi AB Hiện tại, bản đồ hiện ra:

50 bạn bè cĩ mặt quanh đây, 50 địa điểm được chia sẻ và 50

đường đi được chia sẻ Mỗi lần người sử dụng di chuyển bản

đồ đến một vị trí mới cách vị trí cũ ko xa, hàm thực thi tại

client sẽ phải gửi yêu cầu đến server để lấy lại danh sách các

đối tượng cĩ trong Boundary mới, sau đĩ duyệt hết danh sách

các đối tượng cũ để xĩa và thêm danh sách các đối tượng mới

vào bản đồ Điều này sẽ làm giảm hiệu năng của hệ thống:

thời gian đáp ứng, tính tương tác

Hình 2 đề xuất một mơ hình tối ưu kết quả truy vấn nhằm

giải quyết vấn đề nêu trên Mơ hình tối ưu bắt đầu bằng việc

lấy tất cả những đối tượng hiện cĩ trong Boundary, sau đĩ so

sánh với log được lưu trên server Kết quả của hàm so sánh là

tạo ra ba mảng đối tượng: Equal (chứa danh sách các đối

tượng mới tồn tại trong log), Add (chứa danh sách các đối

tượng mới khơng tồn tại trong log), Remove (chứa danh sách

các đối tượng trong log khơng tồn tại trong danh sách mới)

Bước tiếp theo là lưu các đối tượng mới vào log để cập nhật

lại trạng thái cho lần truy vấn tiếp theo Ba mảng đối tượng sẽ

được truyền xuống client để thực hiện xĩa đối tượng cũ, và

thêm đối tượng mới (nếu cĩ)

Hình 3 mơ tả luồng xử lý từ khi một yêu cầu được gửi từ client cho đến khi nhận được kết quả trả về từ server OPM được thể hiện ở ơ xử lý thứ 3 của mơ hình trên

Start

End

Get all available objects in map boudary

Compare with log in Server

Is There no different found?

Create output array Equal Array = |New Objects| Ç |Log|

Add Array = |New Objects| \ |Log|

Remove Array = |Log| \ |New Objects|

Create empty array

Get output array and Save New Log

Hình 2 Mơ hình tối ưu kết quả truy vấn

OPM được tích hợp vào ứng dụng Egobile như Hình 3

User Interface

1 Javascript Conroller

ajax process

process

forward forward

display

3 Optimizing

1.1 Javascript UI Process

1.2 Javascript Server Process

forward forward

display

2.1 Controller

process MongoDB

Server

connect 2.2

Model Invalid request

Hình 3 Mơ hình xử lý tổng quan của Egobile

Để cĩ thể đánh giá được mơ hình OPM hiệu quả như thế nào thì cần một tiêu chuẩn cụ thể

ISO 9126 là tiêu chuẩn quốc tế đánh giá phần mềm [9]

Tiêu chuẩn này được giám sát bởi dự án SQuaRE, ISO 25000:2005 dựa trên các khái niệm chung tương đương nhau Tiêu chuẩn này được phân chia thành 4 phần tuân theo một cách nghiêm ngặt các tiêu chí sau: mẫu chất lượng, hệ đo lường bên ngồi và bên trong, chất lượng khi sử dụng hệ đo lường này Mẫu chất lượng được thiết lập ở phần đầu của tiêu chuẩn, mơ hình này được đặt tên là ISO 9126-1, phân loại chất lượng phần mềm theo một chuỗi cĩ tổ chức các đặc trưng

và đặc trưng phụ như Hình 4

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 6

Hình 4 Mơ hình chất lượng trong và ngồi của chuẩn ISO 9126-1

Với mơ hình này, để cĩ thể đánh giá mơ hình OPM, nhĩm

tác giả sẽ tập trung vào 2 tiêu chí tính năng và hiệu quả, trong

đĩ, chia thành 3 tiêu chí nhỏ như sau:

Tính tức thời: một người vừa được bạn bè chia sẻ 1 địa

điểm gần họ thì người đĩ cĩ thấy địa điểm đĩ trên bản

đồ ngay lập tức khơng? 100 người chia sẻ địa điểm

cùng 1 lúc thì như thế nào?

Tính ổn định: xung quanh vị trí hiện tại của người dùng

cĩ 200 địa điểm được chia sẻ thì hệ thống cĩ sự cố gì

khơng?

Tính hiệu quả: chi phí đường truyền khi sử dụng hệ

thống ra sao?

BẢNG 5 BẢNG KẾT QUẢ ĐÁNH GIÁ THEO CÁC TIÊU CHÍ

Tiêu chí Nội dung

thực nghiệm

Kết quả

Tính

tức thời

Kiểm tra khả năng đáp

ứng của hệ thống ngay

khi một người vừa

được bạn bè chia sẻ 1

địa điểm gần với vị trí

hiện tại của người

dùng

Địa điểm chia sẻ được hiển thị ngay lập tức trên bản đồ với độ trễ là (1s – 2s)

Trường hợp 100 người

chia sẻ địa điểm cùng

1 lúc thì như thế nào?

Hệ thống vẫn đáp ứng tốt, hiển thị vị trí trên bản đồ với độ trễ (1s – 2s)

Tính

ổn định

Trường hợp xung

quanh vị trí hiện tại

của người dùng cĩ 200

địa điểm được chia sẻ

thì hệ thống cĩ đáp

ứng được khơng?

Người dùng vẫn thao tác bình thường

Tính

hiệu quả

Đánh giá chi phí

đường truyền khi sử

dụng hệ thống

Phương pháp: dùng chương trình Bandwidth Monitor

để đánh giá đường truyền khi sử dụng hệ thống

Độ chính xác: tương đối

(xem kết quả bên dưới)

Kết quả đánh giá tính hiệu quả của hệ thống khi sử dụng

chương trình Bandwidth Monitor:

Ứng dụng Egobile được triển khai trên nền PHP, HTML5

và sử dụng máy chủ Web Apache Trong giới hạn báo cáo này, nhĩm tác giả đã chạy thử ứng dụng trên các thiết bị: iPod Touch, iPhone, Android 2.2 và máy tính để bàn Một điều thú

vị là W3C Geolocation API vẫn cĩ thể lấy được thơng tin vị trí người dùng một cách tương đối mặc dù khơng cĩ thiết bị GPS hỗ trợ (chỉ cần cĩ kết nối Wifi)

Đề tài Mạng xã hội định vị – Egobile với hướng tiếp cận từ các thiết bị di động vẫn cịn nhiều vấn đề cần nghiên cứu: i) giao diện người dùng phải phù hợp với phần lớn các thiết bị di động, ii) bảo mật thơng tin vị trí người dùng đồng thời vẫn đảm bảo các dịch vụ trong ngữ cảnh của hệ thống, iii) khuyến khích những người sống biệt lập sử dụng các giá trị của mạng

xã hội mang lại và mang nĩ vào cuộc sống thật, iv) ứng dụng mạng xã hội cho vào mơi trường học, và v) hiểu rõ các khuynh hướng xã hội bằng cách theo dõi hoạt động của người dùng

Đầu tiên, giao diện người dùng phải phù hợp với phần lớn các thiết bị di động Các thiết bị di động cĩ màn hình nhỏ hơn, tốc độ hạn chế so với máy tính và lượng pin cũng hạn chế Một chiếc điện thoại di động cũng khơng phải là một máy tính thu nhỏ Do đĩ trong Egobile, để tăng tốc độ tính tốn và truyền dữ liệu nhanh nhất cho máy khách (client), chúng tơi đưa hầu hết các xử lý nặng về phía máy chủ (server)

Thứ hai, việc các thơng tin người dùng (như vị trí) bị lưu giữ bởi các nhà cung cấp dịch vụ đang làm gia tăng phản ứng của cộng đồng về việc xâm phạm quyền riêng tư [10] Tuy nhiên, trong ngữ cảnh của đề tài, nhĩm tác giả chưa đề cập đến việc giải quyết vấn đề này Hướng giải quyết được đưa ra

là chuyển những thơng tin quan trọng của người dùng về client bằng cách sử dụng HTML5 Web Storage

Một khía cạnh thú vị khác là về thực trạng sống biệt lập [11] Trong cuộc sống, chúng ta dễ dàng bắt gặp các trường hợp giới trẻ thành thị chỉ tập trung vào chiếc điện thoại di động mà khơng quan tâm đến những điều xảy ra xung quanh

Xã hội số trực tuyến dường như hấp dẫn với họ hơn là cuộc sống thực tại, do đĩ họ sẽ hồn tồn tự động cơ lập bản thân với cuộc sống Một mạng xã hội dành cho thiết bị di động sẽ giúp họ tiến dần vào cuộc sống thực

Tĩm lại, những vấn đề nêu trên được tổng hợp lại thành sáu vấn đề cần phải nghiên cứu:

trên thiết bị di động cĩ thể giúp đỡ những người khác?

với nhiều loại thiết bị và nhiều nền tảng khác nhau, phù hợp với nhiều người khác nhau?

trong mạng xã hội định vị trong khi đây là thơng tin quan trọng nhất của ứng dụng?

dùng thốt khỏi trạng thái cơ lập như thế nào?

học tập trong cộng đồng như thế nào?

cĩ thể phục vụ người dùng tốt hơn?

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Trang 7

Danh sách một số màn hình trong ứng dụng Egobile:

(c) Màn hình chia sẻ địa điểm (d)Màn hình chia sẻ đường đi

Hình 4 Danh sách các màn hình ví dụ của Egobile

Tĩm lại, trong báo cáo này, nhĩm tác giả đã xây dựng một mạng xã hội định vị mang tên Egobile, sử dụng các cơng nghệ mới như: kỹ thuật xác định vị trí với W3C Geolocation API, cơ sở dữ liệu dễ mở rộng và phân tán với MongoDB – NoSQL Egobile giải quyết được những vấn đề gây khĩ khăn cho những sinh viên mới nhập học tại UIT

Về mặt ý nghĩa, ứng dụng Egobile cịn cĩ thể giúp cho các bạn học sinh trong mùa thi Đại học tìm được địa điểm thi, nhà trọ một cách nhanh chĩng và tiết kiệm nhất Các thơng tin chia sẻ trên hệ thống được cập nhật từ các trường tổ chức tuyển sinh nên cĩ độ tin cậy cao

Trong giai đoạn tiếp theo, nhĩm tác giả sẽ tiếp tục hồn thiện các chức năng của Egobile dựa trên nền tảng đã phát triển Nhĩm tác giả cũng sẽ tập trung vào vấn đề bảo mật thơng tin vị trí người dùng với HTML5 Web Storage và Offline Web Apps

ACKNOWLEDGMENT

Nhĩm tác giả muốn bày tỏ lịng biết lơn sâu sắc đến các Thầy Cơ trường Đại học Cơng Nghệ Thơng Tin – ĐHQG TPHCM, đã tạo điều kiện cho chúng tơi hồn thành đề tài này

REFERENCES [1] Facebook statistics, facebook.com

URL: http://www.facebook.com/press/info.php?statistics [2] B Schilit, N Adams, R Want, Context-Aware Computing

Applications, IEEE Workshop on Mobile Computing Systems and

Applications, 1994, Santa Cruz, CA, US

[3] Maximiliano Firtman (July 2010), Programming the Mobile Web,

O’Reilly Media, Inc, 1005 Gravenstein Highway Norht, Sebastopol,

CA 95472

[4] Geolocation API Specification, w3c.org,

URL: http://dev.w3.org/geo/api/spec-source.html [5] Google Maps with My Location (Beta), google.com

URL: http://www.google.com/mobile/gmm/mylocation/index.html [6] NoSQL phân tán, khơng ràng buộc, pcworld.com.vn,

URL: http://www.pcworld.com.vn/articles/cong-nghe/cong-nghe/2011/03/1222905/nosql-phan-tan-khong-rang-buoc/

[7] MongoDB Schema Design, mongodb.org,

URL: http://www.mongodb.org/display/DOCS/Schema+Design [8] SQL To MongoDB Mapping Chart, mongodb.org

URL: http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mappi ng+Chart

[9] ISO 9126, http://vi.wikipedikia.org/wiki/ISO_9126

[10] T Hashem, L Kulik, Don’t trust anyone : Privacy protection for

location-based services, Pervasive and Mobile Computing In Press,

Corrected Proof (2010) doi: 10.1016/j.pmcj.2010.04.006 doi:doi: 10.1016/j.pmcj 2010.04.006

[11] D J Cook, J C Augusto, V R Jakkula, Review: Ambient

intelligence: Technologies, applications, and opportunities, Pervasive

and Mobile Computing 5 (4) (2009) 277 – 298 doi:DOI: 10.1016/ j.pmcj.2009.04.001

Hội nghị Khoa học trẻ Lần 1 - Năm 2011

Ngày đăng: 17/12/2021, 16:15

HÌNH ẢNH LIÊN QUAN

BẢNG 3 - Egobile mng xa hi dnh v danh cho sin
BẢNG 3 (Trang 3)
BẢNG MƠ TẢ CÁC COLLECTION TRONG CSDL EGOBILE - Egobile mng xa hi dnh v danh cho sin
BẢNG MƠ TẢ CÁC COLLECTION TRONG CSDL EGOBILE (Trang 3)
BẢNG 4 - Egobile mng xa hi dnh v danh cho sin
BẢNG 4 (Trang 4)
Hình 4. Mơ hình chất lƣợng trong và ngồi của chuẩn ISO 9126-1. - Egobile mng xa hi dnh v danh cho sin
Hình 4. Mơ hình chất lƣợng trong và ngồi của chuẩn ISO 9126-1 (Trang 6)
Với mơ hình này, để cĩ thể đánh giá mơ hình OPM, nhĩm tác giả sẽ tập trung vào 2 tiêu chí tính năng và hiệu quả , trong  đĩ, chia thành 3 tiêu chí nhỏ nhƣ sau:  - Egobile mng xa hi dnh v danh cho sin
i mơ hình này, để cĩ thể đánh giá mơ hình OPM, nhĩm tác giả sẽ tập trung vào 2 tiêu chí tính năng và hiệu quả , trong đĩ, chia thành 3 tiêu chí nhỏ nhƣ sau: (Trang 6)
(a) Màn hình chính (b) Màn hình cập nhật bản tin - Egobile mng xa hi dnh v danh cho sin
a Màn hình chính (b) Màn hình cập nhật bản tin (Trang 7)

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

w