Để thực hiện việc lƣu trữ dữ liệu đa phƣơng tiện đã đƣợc phân nhóm dữ liệu từ trƣớc ta có thể sử dụng hệ quản trị cơ sở dữ liệu có cấu trúc nhƣ Oracle, SQL, MySQL,... Tuy nhiên về cơ sở hạ tầng yêu cầu là rất lớn và rất khó triển khai nhƣ giải quyết bài toán phụ thuộc nền tảng, bảo mật,… tuy nhiên một giải pháp đƣợc nghĩ tới là sử dụng hệ thống lƣu trữ của hệ thống điện toán đám mây đặc biệt là hệ thống của Google, nó đáp ứng đƣợc hầu hết các yêu cầu nhƣ chi phí, nền tảng hay phƣơng tiện.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình C2. 7: Tổ chức và hoạt động của Google App Engine
Thuật ngữ Điện toán đám mây chỉ mới xuất hiện gần đây. Giữa năm 2007, Amazon đẩy mạnh nghiên cứu và triển khai Điện toán đám mây. Ngay sau đó, với sự tham gia của các công ty lớn nhƣ Microsoft, Google, IBM… thúc đẩy Điện toán đám mây phát triển ngày càng mạnh mẽ.
2.4.1. Cơ sở dữ liệu lưu trữ của Google
Trên phƣơng diện lập trình, Google App Engine (GAE) cung cấp nhiều lựa chọn cho phép ngƣời dùng sử dụng để lƣu trữ dữ liệu:
- Google Cloud DataStore - Google Cloud SQL - Google Cloud Storage
Xét trên mặt mạnh của các hệ thống lƣu trữ này thì đề tài lựa chọn lƣu trữ thông qua Google Cloud DataStore. Đƣợc trang bị theo 2 hình thức là Master / Client Datastore và High Replication Datastore.
Không giống nhƣ các cơ sở dữ liệu quan hệ truyền thống, DataStore sử dụng kiến trúc phân tán để tự động quản lý và mở rộng đối với các tập dữ liệu rất lớn. Mặc dù DataStore có rất nhiều đặc tính tƣơng tự nhƣ các cơ sở dữ liệu
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
truyền thống nhƣng nó có điểm khác đó là cách mô tả các quan hệ giữa các đối tƣợng dữ liệu.
Các đối tƣợng dữ liệu trong DataStore đƣợc gọi là các thực thể (các entities). Một thực thể có một hay nhiều thuộc tính (properties), mỗi thuộc tính có thể có nhiều giá trị (values). Giá trị của các thuộc tính có thể là một trong nhiều kiểu dữ liệu nhƣ: integer, floating-point, string, date, binary.
Mỗi thực thể DataStore thuộc về một kiểu (kind) riêng dùng để phân loại các thực thể cho mục đích truy vấn, ví dụ, một ứng dụng quản lý tài nguyên con ngƣời có thể biểu diễn mỗi nhân viên tại một công ty bằng một thực thể có kiểu là Employee. Hơn nữa, mỗi thực thể có một khóa của riêng nó để định danh duy nhất cho thực thể đó. Khóa bao gồm các thành phần sau:
- Kiểu của thực thể
- Định danh (identifier), có thể là chuỗi tên khóa hoặc một ID ở dạng integer - Một ancestor-path tùy chọn chỉ ra vị trí của thực thể trong sự phân cấp DataStore - Identifier đƣợc gán cho thực thể khi nó đƣợc tạo ra. Nó sẽ gắn liền với thực thể và không thể thay đổi.
Các thực thể trong DataStore tạo thành một không gian cấu trúc phân cấp tƣơng tự nhƣ cấu trúc thƣ mục của hệ thống thập tin. Có thể tùy chọn chỉ định một thực thể là cha của thực thể mới đƣợc tạo ra. Thực thể không có cha đƣợc gọi là root entity. Mối liên kết giữa một thực thể và cha của nó là vĩnh viễn, và không thể thay đổi khi thực thể đƣợc tạo ra. DataStore sẽ không bao giờ gán cùng một ID cho hai thực thể có cùng cha hoặc cho hai root entity.
Để tìm các entities từ DataStore trực tiếp thông qua các khóa của chúng, ứng dụng có thể thực hiện một truy vấn với tham số là giá trị của các thuộc tính của chúng. Khi một truy vấn tới các thực thể của một kiểu cho trƣớc, nó có thể chỉ ra các filter trên giá trị các thuộc tính, khóa, ancestor của các thực thể và trả về giá trị zero hoặc các thực thể nhƣ là kết quả của câu truy vấn. Một truy vấn cũng có thể chỉ ra thứ tự sắp xếp các thực thể trả về theo các giá trị thuộc tính.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mọi truy vấn đến DataStore để thêm, cập nhật, hay xóa một thực thể đƣợc gọi là một giao dịch (transaction). Một giao dịch đơn có thể bao gồm một số các tác vụ. Để đảm bảo tính nhất quán của dữ liệu, giao dịch đảm bảo tất cả các tác vụ của giao dịch đó tới DataStore chỉ nhƣ một đơn vị, nếu có bất kỳ tác vụ nào xảy ra lỗi thì các tác vụ khác đều không đƣợc thực thi.
Việc thực thi các tác vụ đối với Datastore qua mạng đƣợc sử dụng bằng các “entity groups”. Tác vụ thao tác với các entities thông qua một nhóm đơn (single group). Các Entities trong cùng một nhóm (group) đƣợc lƣu trữ cùng nhau nhằm tăng tối đa hiệu suất thực thi của tác vụ.
Do vậy việc lƣu trữ dữ liệu trên google vừa bảo đảm các ƣu điểm của hệ quản trị cơ sở dữ liệu quan hệ, đồng thời Datastore còn mang lại nhiều điểm mới mà không phải hệ quản trị sẵn có nào cũng đƣợc trang bị.
2.4.2. Chỉ mục tối ưu trên dữ liệu
Trong Datastore của Google App Engine không có SQL mà sử dụng NoSQL. NoSQL khác biệt so với SQL của cơ sở dữ liệu có cấu trúc ở nhiều điểm nhƣng đặc biệt nhất là thiết kế của nó.
Cơ sở dữ liệu của App Engine đƣợc thiết kế với quy mô lớn cho phép ứng dụng duy trì truy cập ở băng thông cao. NoSQL tự động chia nhỏ dữ liệu ở mức cần thiết giống nhƣ việc chỉ mục trong dữ liệu nhƣng khác ở chỗ, nó đƣợc triển khai phân chia ngay trên dữ liệu chứ không phải lập bảng chỉ mục tối ƣu trong cơ sở dữ liệu quan hệ. Việc xây dựng theo cách mới này giúp cho việc truy vấn tập dữ liệu chứa một trăm thực thể cũng giống nhƣ khi truy xuất với hàng trăm hay thậm chí hàng triệu thực thể. Đặc điểm này là lý do chính khiến một số loại truy vấn không còn đƣợc sử dụng vì thực sự chúng không cần thiết.
Tất cả các truy vấn đều dựa vào chỉ mục, các loại truy vấn có thể thực hiện không giới hạn so với dữ liệu quan hệ SQL, không có câu lệnh join, cũng không còn việc lọc dữ liệu với so sánh khác bằng cho nhiều thuộc tính hoặc lọc dữ liệu dựa vào kết quả của subqueries. Kết quả của truy vấn trong NoSQL có thể trả về toàn bộ thực thể hay chỉ trả về khóa của nó.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nhƣ vậy, với việc dùng Datastore của Google App Engine chúng ta không cần quan tâm đến vấn đề chỉ mục tối ƣu nữa.
2.4.3. Phân lớp dữ liệu
Phân lớp là một tiến trình xử lý nhằm xếp các mẫu dữ liệu hay các đối tƣợng vào một trong các lớp đã đƣợc định nghĩa từ trƣớc. Việc phân lớp dữ liệu thông thƣờng sử dụng các kỹ thuật trong khai phá dữ liệu (Data mining) hoặc ngƣời sử dụng có thể phân loại ngay khi nó đƣợc đƣa vào kho dữ liệu.
Kỹ thuật khai phá thƣờng sử dụng các kỹ thuật sau: - Kỹ thuật khai phá dữ liệu mô tả
Mục tiêu chính của phƣơng pháp phân cụm dữ liệu thành nhóm các đối tƣợng tƣơng tự nhau trong tập dữ liệu vào các cụm có sẵn sao cho các đối tƣợng thuộc cùng một lớp là tƣơng đồng còn các đối tƣợng thuộc các cụm khác nhau sẽ không tƣơng đồng.
- Kỹ thuật khai phá dữ liệu dự đoán
Mục tiêu của phƣơng pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Không giống nhƣ phân cụm dữ liệu, phân lớp dữ liệu là học bằng ví dụ, trong khi phân cụm dữ liệu có thể coi là một cách học bằng quan sát.
Tuy nhiên việc khai phá dữ liệu chỉ thực sự cần thiết khi dữ liệu là sẵn có và không đƣợc phân cụm. Hệ thống Media LBS đƣợc xây dựng mới nên không cần thiết áp dụng kỹ thuật phân cụm dữ liệu mà thực hiện giải pháp phân cụm thông qua việc phân lớp dữ liệu qua giao diện nhập liệu hoặc thiết bị tạo ra dữ liệu. Mục đích của việc phân lớp dữ liệu giúp hệ thống có thế truy cập nhanh chóng hơn, lấy ra những dữ liệu mong muốn mà không gây dƣ thừa dữ liệu. Ví dụ: Một ngƣời dùng hệ thống Media LBS đi đến một địa điểm nhƣ siêu thị Big C Hải Phòng, khi tới địa điểm đó hệ thống thông báo đây là Siêu thị Big C Hải phòng và gợi ý có hình ảnh, thông tin giới thiệu,… về Big C Hải Phòng cho ngƣời dùng chọn lựa để có thể xem. Nhƣ vậy nếu ngƣời dùng chọn xem hình ảnh thì chỉ hình ảnh và thông tin về ảnh đƣợc hiển thị, còn nếu ngƣời dùng xem thông tin giới thiệu về Big C thì chỉ có các thông tin đó đƣợc hiện lên. Trong
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
tình huống này nếu không phân lớp dữ liệu thì hệ thống phải tìm kiếm trong tập dữ liệu và nhận biết đâu là thông tin về Siêu thị, đâu là hình ảnh,… Nhƣng nếu có sự phân lớp dữ liệu từ trƣớc thì hệ thống chỉ việc hiển thị đúng các thông tin yêu cầu.
Dữ liệu đa phƣơng tiện có thể biết tới các nhƣ Văn bản, Hình ảnh, Âm thanh, Video, …
2.5. Lựa chọn kỹ thuật nén dữ liệu
Nhu cầu trao đổi dữ liệu giữa luôn đƣợc đề cập đến trong thời đại ngày nay, dữ liệu mà chúng ta muốn chia sẻ, trao đổi ngày một lớn hơn, phức tạp hơn và đa dạng hơn. Trong hệ thống Media LBS cũng vậy, cần có một giải pháp nén dữ liệu trƣớc khi đƣa lên đám mây và ngƣợc lại nén dữ liệu trƣớc khi trả về thiết bị di động. Điều này bảo đảm cho thiết bị thông minh có thể hoạt động tốt bởi vì hiệu năng cũng nhƣ bộ nhớ của thiết bị thông minh có giới hạn.
Có rất nhiều cách nén dữ liệu, nhiều thuật toán đã đƣợc nghiên cứu. Thông thƣờng có hai phƣơng pháp nén dữ liệu là nén dữ liệu có hao hụt (lossy compression) và nén bảo toàn (lossless compression). Thực tế thì cả hai phƣơng pháp nén đều cho ra kết quả tƣơng tự nhau. Bởi khi nén có hao hụt ta thƣờng tìm những dữ liệu ít cần thiết để loại bỏ nên bằng mắt thƣờng hầu nhƣ ta không nhận ra việc hao hụt đó.
Đối với dữ liệu media đƣợc lƣu trữ và thao tác trong hệ thống Media LBS đƣợc phân chia ra các loại khác nhau do vậy cần thiết phải áp dụng các phƣơng pháp nén dữ liệu đặc thù.
- Dữ liệu dạng văn bản sử dụng thuật toán nén LZW, đây là thuật toán nén đƣợc sử dụng phổ biến hiện nay, nó đƣợc phát triển từ LZ77, LZ78 nhƣng đƣợc hoàn thiện hơn. Thuật toán LZW đƣợc mô tả theo 2 bƣớc sau đây:
Bƣớc 1: Cắt văn bản mới thành các đoạn Copy nếu bảng chữ cái có m chữ
thì các chữ cái là m đoạn copy đầu tiên đƣợc đánh số từ 0 đến m-1.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Lƣu ý: các đoạn copy lần lƣợt đƣợc tạo ra và phần số của nó luôn nhỏ hơn số hiệu cột mà nó đứng.
- Dữ liệu dạng hình ảnh sử dụng thuật toán nén JPEG vì đây là thuật đƣợc sử dụng phổ biến và hiện là đƣợc lấy là 1 dạng chuẩn của hình ảnh. Thuật toán Jpeg đƣợc trình bày qua sơ đồ khối nhƣ sau:
Hình C2. 8: Quá trình nén ảnh theo chuẩn JPEG
Hình C2. 9: Quá trình giải nén ảnh theo chuẩn JPEG
- Dữ liệu dạng video sử dụng thuật toán nén MPEG-2, thuật toán nén phim ảnh MPEG-2 đạt tốc độ rất cao bằng cách khai thác các thông tin dƣ thừa trong phim ảnh. MPEG-2 loại bỏ cả sự dƣ thừa thời gian và dƣ thừa không gian xuất hiện trong phim ảnh chuyển động. Các hoạt động cơ bản của bộ mã hóa đƣợc thể hiện nhƣ sau:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình C2. 10: Hoạt động cơ bản của bộ mã hóa MPEG-2
- Dữ liệu dạng âm thanh (audio) theo chuẩn mp3.
2.6. Các kỹ thuật tính toán vị trí
2.6.1. Kỹ thuật tính toán vị trí thông qua GPS
Việc xác định vị trí của ngƣời dùng sử dụng thiết bị thông minh thông qua GPS đƣợc biết đến dƣới một công thức rất đơn giản nhƣ sau:
Việc xác định tọa độ của ngƣời sử dụng thiết bị thu GPS thông qua 4 phƣơng trình với 4 ẩn số x, y, z, tc ở đây x, y, z là tạo độ của ngƣời nhận tc là thời gian chính xác trên đồng hồ của thiết bị nhận GPS. 4 phƣơng trình nhƣ sau:
Hình C2. 11: Cách xác định vị trí ngƣời dùng thông qua GPS
GPS 1 GPS 2 GPS 3 GPS 4 d1 d2 d3 d4
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong đó:
- c là tốc độ ánh sáng 3x108m/s
- tt,1, tt,2, tt,3, tt,4là thời gian tƣơng ứng của 4 vệ tinh truyền tín hiệu của nó tới thiết bị nhận, thời gian này đƣợc cung cấp cho ngƣời nhận nhƣ là một phần thông tin mà nó truyền đi.
- t r, 1 , t r, 2 , t r, 3 , t r, 4 lần lƣợt là thời gian mà thiết bị nhận nhận đƣợc tín hiệu lần lƣợt từ 4 vệ tinh, thời gian theo đồng hồ trên thiết bị nhận.
- x1, y1, z1 là tọa độ của vệ tinh GPS 1, x2, y2, z2 là tọa độ của vệ tinh GPS 2,…
Nhƣ vậy ngƣời nhận giải các phƣơng trình đồng thời để xác định x, y, z và tc. Tuy nhiên trong thực tế sẽ có sai số nhất định vì sự sai lệch của đồng hồ trên thiết bị thu GPS và đồng hồ trên vệ tinh. Thông thƣờng đồng hồ trên vệ tinh là đồng hồ nguyên tử nên độ chính xác là tuyệt đối, đồng hồ trên thiết bị thu thì không nhƣ vậy, vì lý do giá thành nên nó chỉ dừng ở dạng đồ hồ rẻ tiền quartz. Do vậy, ta phải xây dựng những thiết bị hỗ trợ nhằm làm cho việc xác định vị trí trở nên chính xác hơn và cải thiện hiệu năng của hệ thống. Một số kỹ thuật đã đƣợc nghĩ tới và các kỹ thuật này đƣợc gọi là DGPS (Differential GPS) hay GPS vi sai.
Kỹ thuật này giải quyết vấn đề sai số do thực tế đem lại nhƣ đã nói ở trên do vậy ngƣời ta đặt thêm những trạm mặt đất để hiệu chỉnh sai số này. Trạm mặt đất cũng giống vệ tinh trên trời, nhƣng vị trí của nó chính xác và sóng phát trong khu vực của nó có thể khỏe hơn.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ở Mỹ đã có những trạm công cộng truyền hệ số hiệu chỉnh miễn phí. Lực lƣợng tuần tra Mỹ và các cơ quan khác của chính phủ Mỹ đã thiết lập các trạm phát ở khắp nơi, đặc biệt là xung quanh các cảng và tuyến giao thông thuỷ.
Các tín hiệu này cũng đƣợc truyền trên dải tần 300kHz là dải tần dẫn đƣờng hàng hải ở Mỹ. Bất kì ai trong vùng phủ sóng cũng có thể tận dụng đƣợc thông tin hiệu chỉnh này cải thiện đƣợc độ chính xác của việc định vì bằng GPS. Hầu hết các tàu thuyền đều đã đƣợc trang bị radio thu tín hiệu dẫn đƣờng rồi nên việc thu thêm tín hiệu DGPS cũng không khó lắm. Máy thu GPS bây giờ thƣờng đƣợc thiết kế để có thể chấp nhận hiệu chỉnh, một số khác đƣợc trang bị cả máy thu tín hiệu hiệu chỉnh.
Hình C2. 13: Bản đồ các trạm phát DGPS và phạm vi phủ sóng ở Mỹ
Hình C2. 14: Bản đồ các trạm phát DGPS và phạm vi phủ sóng ở Nhật Hình C2. 12: Differential GPS
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
WAAS Wide Area Augmentation System
Cơ quan quản trị hàng không Liên bang của Mỹ (Federal Aviation Administration - FAA) cũng có một mạng lƣới DGPS bao trùm toàn bộ lục