Lập trình web

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 65)

r

3.1.1Lập trình web

3.1.1.1 Sơ lược về .Net Framework

.NET Framework là một nền tảng lập trình, thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows đƣợc phát triển bởi Microsoft. Các chƣơng trình đƣợc viết trên nền .NET Framework sẽ đƣợc triển khai trong môi trƣờng Common Language Runtime (CLR). Môi trƣờng phần mềm này là một máy ảo trong đó cung cấp các dịch vụ nhƣ an ninh phần mềm (security), quản lý bộ nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling).

Các thành phần chính của .NET Framework: CLR, Framework class library, parallel, computing platform, and dynamic language runtime. .NET framework bao gồm tập các thƣ viện lập trình lớn, và những thƣ viện này hỗ trợ việc xây dựng các chƣơng trình phần mềm nhƣ lập trình giao diện; truy cập, kết nối cơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng...

.NET framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần đƣợc thiết kế sẵn, ngƣời lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 3-1: Thành phần trong các phiên bản .NET Framework (2005 - 2010)

3.1.1.2 Giới thiệu về ASP.Net

ASP.NET (Active Server Pages . NET) là một nền tảng ứng dụng web đƣợc phát triển và cung cấp bởi Microsoft, cho phép lập trình viên tạo ra những trang web động, những ứng dụng và những dịch vụ web. ASP.NET đƣợc biên dịch dƣới dạng Common Language Runtime (CLR), cho phép những ngƣời lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nào đƣợc hỗ trợ bởi.NET language.

Ƣu điểm của Asp.net:

- ASP.Net cho phép lựa chọn ngôn ngữ: Visual Basic.Net, J#, C#,…

- Thay vì phải đọc và thông dịch mỗi khi trang web đƣợc yêu cầu, ASP.Net biên dịch những trang web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả.

- ASP.Net hỗ trợ đầy đủ bộ thƣ viện phong phú và đa dạng của .Net Framework, Web Service, truy cập cơ sở dữ liệu qua ADO.Net, …

- ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng. - ASP.Net sử dụng cấu trúc lập trình mới: Code behide - Kiến trúc lập trình giống ứng dụng trên Windows.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ - Hỗ trợ quản lý trạng thái của các control

- Tự động phát sinh mã HTML cho các điều khiển tƣơng ứng với từng loại trình duyệt

3.1.1.3 SQL và hệ quản trị cơ sở dữ liệu SQL Server

SQL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ.

SQL là một chuẩn của ANSI (American National Standards Institute - Viện tiêu chuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống cơ sở dữ liệu. Các câu lệnh SQL đƣợc sử dụng để truy xuất và cập nhật dữ liệu trong một cơ sở dữ liệu.

SQL hoạt động với hầu hết các chƣơng trình CSDL nhƣ MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase v.v...

SQL Server là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client và SQL Server. SQL Server đƣợc tối ƣu để có thể chạy trên môi trƣờng cơ sở dữ liệu rất lớn lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user.

3.1.2 Google Maps API

Google Maps là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí đƣợc cung cấp bởi Google có hỗ trợ nhiều dịch vụ dựa vào bản đồ. Google Maps cho phép thấy bản đồ đƣờng sá, đƣờng đi cho xe đạp, cho ngƣời đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vực cũng nhƣ khắp nơi trên thế giới.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

3.1.2.1 Google Maps Javascript API v3

Maps API là một phƣơng thức cho phép một website B sử dụng dịch vụ bản đồ của site A và nhúng vào website của mình (site B). Site A ở đây là Google Map, site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của Google

Với Google Maps API các ứng dụng xây dựng trên maps đƣợc nhúng vào trang web cá nhân thông qua các thẻ javascripts. Phiên bản mới nhất hiện tại là Google Maps Javascript APIv3. Phiên bản này hỗ trợ tốt cho các máy để bàn truyền thống và các thiết bị di động. Google Maps API v3 nhanh hơn và nhiều ứng dụng hơn.

Lập trình viên sử dụng các dịch vụ của Google Maps API hoàn toàn miễn phí với việc xây dựng các ứng dụng nhỏ và trả phí với các ứng dụng trong kinh doanh, doanh nghiệp.

3.1.2.2 Google Maps API Web Services

Ngoài việc cung cấp các API để lập trình viên có thể nhúng ứng dụng bản đồ vào website của mình, Google Map còn cung cấp cho ngƣời dùng một dịch vụ online trên nền web (web services). Lập trình viên có thể dùng các dịch vụ này trong ứng dụng của mình với việc truy vấn, xử lý dữ liệu trên tập dữ liệu của Google nằm trên máy chủ của Google.

Các dịch vụ đƣợc Google cung cấp trong API:

A.Các dịch vụ liên quan đến vị trí: cho phép truy vấn và tìm các thông tin trên bản đồ theo nhiều loại nhƣ: tìm nhà hàng, khách sạn, trƣờng học, các địa điểm du lịch,….Ngƣời dùng có thể tìm các địa điểm bằng những từ khóa thân thiện và gần gũi,kết quả trả về của quá trình tìm kiếm là 1 chỉ dẫn và giới thiệu ngắn gọn về địa điểm và chi tiết về địa điểm đó. (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

B.Distance Matrix Web API, Directions Services: cung cấp cho ngƣời sử dụng tính khoảng cách, thời gian đi lại và đƣờng đi cụ thể giữa điểm bắt đầu và điểm kết thúc.

C.Geocoding Service: cho phép chuyển đổi giữa các địa chỉ và các mô tả khác thành vĩ độ/kinh độ của bản đồ toạ độ hoặc tìm địa chỉ dựa vào kinh độ và vĩ độ của một địa điểm.

3.1.2.3 Google Maps Android API v2

Google Maps Android API hỗ trợ lập trình viên nhúng module bản đồ của google vào trong ứng dụng android đang xây dựng. Các hàm, các dịch vụ đƣợc cung cấp khá đầy đủ và tiện ích; Ngƣời dùng ứng dụng có thể thao tác với bản đồ giống nhƣ trên trình duyệt web. Ngoài ra Google Maps Android API còn hỗ trợ đầy đủ các hàm để lập trình viên có thể tối đa tùy biến, cá nhân hóa ứng dụng android của mình, cũng nhƣ đƣa đƣợc dữ liệu vị trí địa lý cá nhân lên trên bản đồ số để hiển thị cho ngƣời dùng.

3.1.3 Xây dựng ứng dụng trên di động

3.1.3.1 Ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình dạng lập trình hƣớng đối tƣợng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thƣờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đƣợc thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đƣợc môi trƣờng thực thi chạy.

Cú pháp Java giống với ngôn ngữ C và C++ nhƣng có cú pháp hƣớng đối tƣợng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chƣơng trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.

Đặc điểm nổi bật nhất của Java là không phụ thuộc vào hệ điều hành và bộ xử lý. Điều này cho phép một ứng dụng viết bằng Java có thể đƣợc thực hiện

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

trên bất kỳ hệ điều hành và hệ xử lý nào có hỗ trợ Java. Do vậy, ngƣời lập trình chỉ cần viết ứng dụng bằng Java đúng một lần, sau đó có thể sử dụng ứng dụng này trên nhiều hệ điều hành khác nhau nhƣ theo phƣơng châm: "viết một lần, sử dụng ở bất kỳ đâu" ("Write Once, Run Anywhere" (WORA)).

Ngôn ngữ Java sử dụng trong Android không phải là toàn bộ thƣ viện J2EE mà những nhà phát triển ứng dụng Java thƣờng hay sử dụng, mà nó chỉ là một phần nhỏ đƣợc xem là máy ảo Dalvik. Do đó, chỉ những thƣ viện nào có thể dùng để phục vụ cho việc phát triển các ứng dụng di động mới đƣợc sử dụng.

3.1.3.2 Hệ điều hành Android

Android là một hệ điều hành dựa trên nền tảng Linux đƣợc thiết kế dành cho các thiết bị di động có màn hình cảm ứng nhƣ điện thoại thông minh và máy tính bảng. Ban đầu, Android đƣợc phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này đƣợc Google mua lại vào năm 2005.

Android là một nền tảng mã nguồn mở gồm hệ điều hành, middleware và các ứng dụng chủ chốt dành riêng cho các thiết bị di động. Mục tiêu của nó là để điều hành, quản lý phần cứng và các tài nguyên phần mềm trên thiết bị. Nó đóng vai trò trung gian trong việc giao tiếp giữa ngƣời sử dụng và phần cứng của máy, cung cấp một môi trƣờng cho phép ngƣời sử dụng phát triển và thực hiện các ứng dụng của họ một các dễ dàng.

Hệ điều hành Android có một số ƣu điểm nhƣ: an ninh tốt, chất lƣợng cao, tính tùy biến, chi phí thấp hoặc miễn phí.

Hệ thống Android có kiến trúc chia làm 5 tầng chính:

- Tầng lõi ARM Linux: là tầng thấp nhất đƣợc xây dựng từ 2 thành phần chính là Linux kernel và bộ vi xử lý ARM (Acorn RISC Machine). Bộ vi xử lý ARM hoạt động với hiệu suất cao nhƣng tiêu thị năng lƣợng rất ít.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

- Tầng thƣ viện: chứa mã nguồn cấp thấp cho những chức năng cơ bản nhƣ: mã hóa và giải mã âm thanh, hình ảnh kỹ thuật số, trình bày các giao diện đồ họa, bảo mật lƣu lƣợng TCP/IP, …

- Tầng máy ảo Android: là phần mềm dùng để chạy các ứng dụng trên thiết bị Android, bao gồm tập các thƣ viện lõi. Mỗi ứng dụng Android đƣợc chạy trong 1 tiến trình riêng và 1 máy ảo Dalvik riêng.

- Tầng khung ứng dụng Android: định nghĩa Android API, cung cấp bộ công cụ ở mức cao

- Tầng ứng dụng lõi Android: bao gồm các ứng dụng cơ bản hỗ trợ thêm cho ngƣời lập trình.

3.2 Xây dựng mô hình thử nghiệm 3.2.1 Phân tích lựa chọn mô hình 3.2.1 Phân tích lựa chọn mô hình

Qua nghiên cứu các kỹ thuật và các thuật toán bảo vệ tính riêng tƣ trong LBS, trong giới hạn của luận văn, tác giả lựa chọn kỹ thuật làm rối thông tin vị trí (obfuscation technique) để cài đặt trong mô hình thử nghiệm.

Để đáp ứng đƣợc việc hiện thực hóa kỹ thuật, thuật toán, kết hợp với điều kiện thực tế các thiết bị di động thông minh (smartphone, tablet, …) đang khá phổ biến, mô hình thử nghiệm đƣợc triển khai trên nền dịch vụ Web, ngƣời dùng có thể sử dụng dịch vụ qua mạng Internet.

Máy khách: các loại điện thoại di động, máy tính bảng hay các PDA có khả năng định vị vị trí địa lývà kết nối Internet và một số yêu cầu về phần cứng.

Máy chủ: máy tính tiếp nhận và đáp ứng các yêu cầu dịch vụ từ phía máy khách. Máy chủ là nơi lƣu trữ các dữ liệu địa điểm, các thông tin dịch vụ. Phần mềm cung cấp dịch vụ tại máy chủ đảm nhận chức năng xử lý chính, kết quả cuối cùng gửi cho máy khách.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ (adsbygoogle = window.adsbygoogle || []).push({});

Môi trường truyền thông: mạng Internet.

Dịch vụ định vị: máy khách cần phải cung cấp vị trí địa lý của mình kèm theo yêu cầu đến máy chủ. Trên cơ sở đó máy chủ sẽ đáp ứng yêu cầu dựa trên vị trí địa lý của máy khách. Máy khách có thể khai thác dịch vụ định vị toàn cầu GPS hay dịch vụ định vị dựa trên cơ sở mạng di động.

3.2.2 Thiết kế hệ thống

Một số yêu cầu của hệ thống:

- Có cơ sở dữ liệu thông tin, vị trí địa lý riêng và có chức năng quản trị cơ sở dữ liệu đó.

- Chƣơng trình hoạt động tốt trên thiết bị di động thông minh (smart phones) sử dụng hệ điều hành Android phiên bản 4.0 (Ice Scream Sandwich) trở lên có công nghệ định vị GPS và có kết nối mạng (3G hoặc Wifi).

- Có khả năng chuyển đổi khoảng cách địa lý về khoảng cách hình học

3.2.2.1 Mô hình hệ thống

Hệ thống đƣợc chia làm 2 module chính là module phía Server và module phía Client, trong đó:

- Module Server: là website cung cấp các dịch vụ khai thác dữ liệu đƣợc

chạy trực tuyến trên Internet. Có các chức năng quản lý dữ liệu về các địa điểm địa lý và các thông tin khác:

Thêm mới, sửa, xóa nhóm địa điểm: tên nhóm địa điểm, mô tả, hình ảnh đại diện

Thêm mới, sửa xóa địa điểm: tên địa điểm, địa chỉ, mô tả, nhóm địa điểm, vị trí địa lý

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Các dịch vụ cung cấp dữ liệu hệ thống dƣới dạng dữ liệu có cấu trúc khi có truy vấn từ ngƣời dùng

Công nghệ sử dụng: ASP.NET, SQL Server, Google Maps Javascript API v3, Google Maps Services.

- Module Client: là một ứng dụng trên thiết bị di động cài đặt hệ điều

hành Android, có khả năng định vị vị trí hiện tại của thiết bị và kết nối mạng Internet. Ứng dụng có các chức năngnhằm hiện thực hóa kỹ thuật bảo vệ tính riêng tƣ bằng cách làm rối thông tin vị trí của ngƣời dùng:

Tải dữ liệu bản đồ từ Google Maps

Sử dụng thuật toán sinh vật giả để tạo danh sách các vật giả theo yêu cầu của ngƣời dùng.

Kết nối đến module server để truy vấn dữ liệu đƣợc cung cấp trên server với danh sách các vị trí giả và vị trí thật

Phân tích tập dữ liệu kết quả lấy ra những địa điểm đúng ứng với vị trí thật của ngƣời dùng,đồng thời hiển thị những thông tin đó lên màn hình, giúp ngƣời dùng dễ dàng tìm đƣợc địa điểm cần thiết.

Công nghệ sử dụng: Java for Android, Google Maps Android API, Google Maps Services.

Việc truyền dữ liệu giữa 2 module đƣợc thực hiện bằng việc truyền thông trên mạng Internet thông thƣờng, thông qua GPRS, 3G, 4G hoặc Wifi…

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 3-2:Mô hình hệ thống mô phỏng

Mô tả:

- Phía Client, ngƣời dùng sử dụng ứng dụng đƣợc cài đặt trên thiết bị di động, thiết lập các cấu hình hệ thống cần thiết: phƣơng thức kết nối Internet, số lƣợng vị trí giả cần khởi tạo, vùng khởi tạo vị trí giả, …

- Ứng dụng tự động định vị vị trí địa lý hiện tại qua GPS hoặc mạng truyền thông và hiển thị trên bản đồ.

- Ngƣời dùng bắt đầu tìm kiếm địa điểm bằng cách thiết lập các thông tin tìm kiếm: nhóm địa điểm cần tìm, khoảng cách, phƣơng tiện giao thông, …. Ngoài ra ngƣời dùng cần thiết lập sử dụng vị trí giả trong khi truy vấn để bảo vệ tính riêng tƣ về vị trí. (adsbygoogle = window.adsbygoogle || []).push({});

- Dựa vào cấu hình và các thông tin tìm kiếm, ứng dụng khởi tạo thông tin truy vấn dữ liệu địa điểm và gửi tới Server thông qua kết nối Internet

- Phía Server, khi nhận đƣợc yêu cầu truy vấn, hệ thống lọc dữ liệu địa điểm trong cơ sở dữ liệu và gửi về Client danh sách kết quả tƣơng ứng với từng yêu cầu truy vấn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

- Khi nhận đƣợc kết quả truy vấn, ứng dụng phía Client phân tích tập dữ liệu và lọc ra các dữ liệu địa điểm tƣơng ứng với vị trí chính xác của ngƣời dùng và hiển thị lên màn hình cho ngƣời dùng.

3.2.2.2 Biểu đồ Ca sử dụng (Use case) của hệ thống

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 65)