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

GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ HÓA DỮ LIỆU CHO BÀI TOÁN ĐĂNG KÝ TUOR DU LỊCH TỪ XA TRONG MÔI TRƯỜNG INTERNET OF THING - Full 10 điểm

87 0 0

Đ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 đề Giải Pháp Kỹ Thuật Đồng Bộ Hóa Dữ Liệu Cho Bài Toán Đăng Ký Tuor Du Lịch Từ Xa Trong Môi Trường Internet Of Thing
Tác giả Trần Dương Ngọc Tuấn
Trường học Trường Đại Học Quảng Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp đại học
Năm xuất bản 2017
Thành phố Quảng Nam
Định dạng
Số trang 87
Dung lượng 4,37 MB

Cấu trúc

  • I. NỘI DUNG (8)
  • Phần 1. MỞ ĐẦU (8)
    • 1.1. Lý do chọn đề tài (8)
    • 1.2. Tính mới của đề tài (8)
    • 1.3. Mục tiêu của đề tài (9)
    • 1.4. Đối tượng và phạm vi nghiên cứu (9)
    • 1.5. Phương pháp nghiên cứu (9)
  • Phần 2. NỘI DUNG NGHIÊN CỨU (10)
  • Chương I: TỔNG QUAN HỆ TIN HỌC PHÂN TÁN (10)
    • 1.1. Hệ phân tán (10)
      • 1.1.1 Khái niệm (10)
      • 1.1.2. Ưu điểm và hạn chế của hệ thống phân tán (11)
      • 1.1.3 Nguyên tắc xây dựng hệ phân tán (12)
      • 1.1.4 Hệ cơ sở dữ liệu phân tán (13)
      • 1.1.5. Ưu điểm và nhược điểm của hệ quản trị cơ sở dữ liệu phân tán (14)
    • 1.2. Mô hình hệ cơ sở dữ liệu phân tán (15)
    • 1.3. Đồng bộ hóa dữ liệu (17)
      • 1.3.1. Đồng bộ hóa cơ sở dữ liệu (17)
      • 1.3.2. Bản sao dữ liệu (19)
    • 1.4. Giao dịch và quản lý giao dịch (21)
      • 1.4.1. Khái niệm (21)
      • 1.4.2 Đặc tính (22)
    • 1.5. Internet of Things (23)
      • 1.5.1. Khái niệm (23)
      • 1.5.2. Tác động (24)
    • 1.6. Mạch vi xử lý Arduino (25)
      • 1.6.1. Phần cứng (26)
      • 1.6.2. Phần mềm (27)
    • 1.7. Hệ quản trị cơ sở dữ liệu MYSQL (30)
      • 1.7.1. Khái niệm (30)
      • 1.7.2 Một số đặc điểm của MySQL (31)
    • 1.8. Giới thiệu về tỉnh Quảng Nam và bài toán ứng dụng công nghệ thông tin xử lý trên môi trường Internet of Thing (32)
    • 1.9. Kết luận (33)
  • Chương II: MÔ HÌNH BÀI TOÁN DU LỊCH ĐĂNG KÝ TỪ XA VÀ GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ (34)
    • 2.1. Giới thiệu bài toán (34)
    • 2.2. Các thuật toán kỹ thuật gắn bó (36)
      • 2.2.1. Kỹ thuật nhân bản cơ sở dữ liệu (36)
      • 2.2.2. Kỹ thuật cập nhật dữ liệu (38)
      • 2.2.3. Giải thuật (41)
    • 2.3. Đề xuất thuật toán (49)
    • 2.4 Kết luận (52)
  • Chương III: GIẢI PHÁP KỸ THUẬT GẮN BÓ (53)
    • 3.1. Lưu đồ giải thuật (53)
    • 3.2. Demo chương trình (54)
      • 3.2.1. Khởi tạo thực thể MySQL (54)
      • 3.2.2. Cơ sở dữ liệu của bài toán (56)
      • 3.2.3. Cài đặt Server (57)
    • 3.3. Kết luận (64)
  • KẾT LUẬN (64)
    • 1.1. Kết quả đạt được (64)
    • 1.2. Hạn chế (65)
    • 1.3. Hướng phát triển của đề tài (65)
    • Phần 3: DANH MỤC CÁC TÀI LIỆU THAM KHẢO (65)

Nội dung

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ----  ----- TRẦN DƯƠNG NGỌC TUẤN GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ HÓA DỮ LIỆU CHO BÀI TOÁN ĐĂNG KÝ TUOR DU LỊCH TỪ XA TRONG MÔI TRƯỜNG INTERNET OF THING KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Qu ả ng Nam, tháng 04 n ă m 2017 LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn các Thầy Cô giáo đã tận tình hướng dẫn, giảng dạy trong suốt quá trình học tập, nghiên cứu và rèn luyện ở trường Đại học Quảng Nam Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách tốt nhất Song do buổi đầu mới làm quen với công tác nghiên cứu cũng như hạn chế về kiến thức và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định của bản thân Em rất mong được sự góp ý của quý Thầy, Cô giáo để khoá luận được hoàn chỉnh hơn Em xin chân thành cảm ơn! Quảng Nam, ngày 27 tháng 4 năm 2017 Sinh viên Trần Dương Ngọc Tuấn MỤC LỤC I NỘI DUNG 1 Phần 1 MỞ ĐẦU 1 1 1 Lý do chọn đề tài 1 1 2 Tính mới của đề tài 1 1 3 Mục tiêu của đề tài 2 1 4 Đối tượng và phạm vi nghiên cứu 2 1 5 Phương pháp nghiên cứu 2 Phần 2 NỘI DUNG NGHIÊN CỨU 3 Chương I: TỔNG QUAN HỆ TIN HỌC PHÂN TÁN 3 1 1 Hệ phân tán 3 1 1 1 Khái niệm 3 1 1 2 Ưu điểm và hạn chế của hệ thống phân tán 4 1 1 3 Nguyên tắc xây dựng hệ phân tán 5 1 1 4 Hệ cơ sở dữ liệu phân tán 6 1 1 5 Ưu điểm và nhược điểm của hệ quản trị cơ sở dữ liệu phân tán 7 1 2 Mô hình hệ cơ sở dữ liệu phân tán 8 1 3 Đồng bộ hóa dữ liệu 10 1 3 1 Đồng bộ hóa cơ sở dữ liệu 10 1 3 2 Bản sao dữ liệu 12 1 4 Giao dịch và quản lý giao dịch 14 1 4 1 Khái niệm 14 1 4 2 Đặc tính 15 1 5 Internet of Things 16 1 5 1 Khái niệm 16 1 5 2 Tác động 17 1 6 Mạch vi xử lý Arduino 18 1 6 1 Phần cứng 19 1 6 2 Phần mềm 20 1 7 Hệ quản trị cơ sở dữ liệu MYSQL 23 1 7 1 Khái niệm 23 1 7 2 Một số đặc điểm của MySQL 24 1 8 Giới thiệu về tỉnh Quảng Nam và bài toán ứng dụng công nghệ thông tin xử lý trên môi trường Internet of Thing 25 1 9 Kết luận 26 Chương II: MÔ HÌNH BÀI TOÁN DU LỊCH ĐĂNG KÝ TỪ XA VÀ GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ 27 2 1 Giới thiệu bài toán 27 2 2 Các thuật toán kỹ thuật gắn bó 29 2 2 1 Kỹ thuật nhân bản cơ sở dữ liệu 29 2 2 2 Kỹ thuật cập nhật dữ liệu 31 2 2 3 Giải thuật 34 2 3 Đề xuất thuật toán 42 2 4 Kết luận 45 Chương III: GIẢI PHÁP KỸ THUẬT GẮN BÓ 46 3 1 Lưu đồ giải thuật 46 3 2 Demo chương trình 47 3 2 1 Khởi tạo thực thể MySQL 47 3 2 2 Cơ sở dữ liệu của bài toán 49 3 2 3 Cài đặt Server 50 3 3 Kết luận 57 Qua chương này em đã làm được các việc sau: 57 KẾT LUẬN 57 1 1 Kết quả đạt được 57 1 2 Hạn chế 58 1 3 Hướng phát triển của đề tài 58 Phần 3: DANH MỤC CÁC TÀI LIỆU THAM KHẢO 58 PHỤ LỤC A 60 PHỤ LỤC B 66 DANH MỤC CÁC BẢNG Bảng 1: Những nguyên tắc xây dựng hệ tin học phân tán 6 Bảng 2: Cơ chế cho phép duy trì sự gắn bó 15 Bảng 3: Các đặc tính toàn vẹn 15 Bảng 4: Các hàm nguyên thủy thực hiện trên đối tượng 34 DANH MỤC CÁC HÌNH VẼ Hı̀nh 1: Hệ tin học phân tán 3 Hı̀nh 2: Các thực thể của hệ tin học phân tán 5 Hı̀nh 3: Môi trường của hệ CSDL tập trung 9 Hı̀nh 4: Môi trường của hệ CSDL phân tán 9 Hı̀nh 5: Ba giai đoạn của một giao dịch 15 Hı̀nh 6: Các loại mạch Arduino 20 Hı̀nh 7: Mô hình hoạt động của Nodejs 22 Hı̀nh 8: Mô hình cơ sở dữ liệu phân tán của tỉnh Quảng Nam 26 Hı̀nh 9: Giao thức cam kết hai pha 36 Hı̀nh 10: Giao thức cam kết ba pha 38 Hı̀nh 11: Mô hình đa Server 44 Hı̀nh 12: Lưu đồ giải thuật 46 Hı̀nh 13: Các thực thể của MySQL 49 Hı̀nh 14: Cơ sở dữ liệu 50 Hı̀nh 15: Server 1 50 Hı̀nh 16: Server 2 51 Hı̀nh 17: Server 3 51 Hı̀nh 18: Trang đăng nhập 52 Hı̀nh 19: Danh sách đăng ký tour du lịch 52 Hı̀nh 20: Đăng ký tour 53 Hı̀nh 21: Giao diện kiểm tra đồng bộ dữ liệu 53 Hı̀nh 22: Mô hình thông báo sự cố bằng mạch Arduino 54 Hı̀nh 23: Thông báo sự cố 54 Hı̀nh 24: Trang xem danh sách nhà hàng đang gặp sự cố 55 Hı̀nh 25: Mạch Arduino và module bluetooth HC06 55 Hı̀nh 26: Thông báo kết nối qua bluetooth 56 Hı̀nh 27: Giao diện của người dùng chọn tour 56 Hı̀nh 28: Giao diện đăng ký của người dùng 57 1 I NỘI DUNG Phần 1 MỞ ĐẦU 1 1 Lý do chọn đề tài Trong thời đại phát triển thông tin số, các giải pháp về kỹ thuật “Internet of Thing” dựa trên nền tảng hạ tầng như là dịch vụ (IaaS) ngày càng trở nên quan trọng hơn bao giờ hết Thông qua hạ tầng này, các ứng dụng chạy dịch vụ IoT trở nên hiệu quả hơn và đáng tin cậy hơn Các ứng dụng liên quan tới cơ sở dữ liệu của IoT ngày càng được chú trọng tại lớp nền tảng như là dịch vụ Cơ sở dữ liệu phân tán nói riêng và các hệ tin học phân tán nói chung là một lĩnh vực không thể thiếu trong các hệ thống mạng, đặc biệt là Internet Ngày nay Internet được áp dụng vào mọi lĩnh vực công nghiệp, nông nghiệp, đời sống và xã hội, trong giới nghiên cứu và nhà sản xuất Trong khóa luận này, tập trung nghiên cứu giải pháp kỹ thuật trên hệ thống hạ tầng gồm đa Server phân tán kết qua mạng truyền thông, mà mỗi máy trạm có thể thực hiện các dịch vụ đăng ký thông tin tour du lịch từ xa Vấn đề đặt ra là phải xây dựng một hệ thống cho phép thực thi bài toán đăng ký thông tin từ xa theo mô hình phân tán Sau đó xử lý để đảm bảo gắn bó dữ liệu khi hệ thống có sự cố xảy ra 1 2 Tính mới của đề tài Với sự bùng nỗ của Internet of Thing và thiết bị thông minh, được rất nhiều nhà nghiên cứu phát triển tập trung vào các ngành du lịch, sức khỏe Việc sử dụng công nghệ mới này vào ngành công nghiệp du lịch đã tác động rất lớn tới các doanh nghiệp và khách du lịch Ngày nay việc đặt mua vé du lịch cho một kỳ nghỉ thật dễ, trong đó có các loại hình dịch vụ được cung cấp như khách sạn, vé máy bay… tất cả đều được thanh toán trực tuyến Internet đã thay đổi triệt để mô hình, mối quan hệ trong kinh doanh Nghiên cứu dựa trên việc kết hợp các giải pháp kỹ thuật “Internet of Thing” cho hệ thống mô hình gắn bó dữ liệu là rất mới 1 3 Mục tiêu của đề tài Tiều hiểu hệ thống phân tán Các vấn đề tính toán trong hệ phân tán Các giải pháp kỹ thuật đảm bảo gắn bó dữ liệu Mô phỏng quá trình đồng bộ và cập nhật trên các Server 1 4 Đối tượng và phạm vi nghiên cứu 1 4 1 Đối tượng nghiên cứu Giới thiệu về các khái niệm cơ bản về hệ phân tán, nguyên lý xây dựng hệ phân tán và cơ sở dữ liệu phân tán Để tài này tôi tập trung nghiên cứu về phần giải pháp kỹ thuật đồng bộ hóa dữ liệu để làm rõ những ưu điểm của mô hình trên IoT Sử dụng chương trình mô phỏng bằng ngôn ngữ Java, công cụ WindowBuilder để mô phỏng quá đồng bộ dữ liệu trong mạng đa Server 1 4 2 Phạm vi nghiên cứu Thu thập thông tin, nghiên cứu tài liệu liên quan đến đề tài Tham khảo tài liệu, sách, báo và từ Internet 1 5 Phương pháp nghiên cứu Thu thập, phân tích các tài liệu và thông tin liên quan đến đề tài Thảo luận, lựa chọn phương hướng giải quyết vấn đề Triển khai xây dựng chương trình mô phỏng Phần 2 NỘI DUNG NGHIÊN CỨU Chương I: TỔNG QUAN HỆ TIN HỌC PHÂN TÁN 1 1 Hệ phân tán 1 1 1 Khái niệm Hệ tin học phân tán hay gọi tắt là hệ phân tán là một hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc các bộ vi xử lý được đặt ở xa tại các vị trí khác nhau và được liên kết với nhau thông qua các phương tiện viễn thông dưới sự thống nhất của hệ điều hành H ı ̀ nh 1: H ệ tin h ọ c phân tán Hệ tin học phân tán là một hệ thống không chia sẻ bộ nhớ và đồng hồ Các tính toán học phân tán có thể được thực hiện trên nhiều bộ xử lý hay vi xử lý khác nhau Do đó hệ thống tin học phân tán đòi hỏi hệ thống của mình phải trang bị bộ nhớ cục bộ Các bộ xử lý trao đổi thông tin thông qua các đường Servers Server Server Server truyền khác nhau như cáp mạng chuyên dụng, bus trao đổi, đường điện thoại, cáp quang hoặc có thể là sóng Không như các máy tính đơn lẻ, mạng máy tính là tập hợp các thiết bị đầu cuối được nối với nhau bởi hệ thống đường truyền, những đường truyền nối với các trạm rất xa nhau có thể là một mạng viễn thông Các thiết bị đầu cuối của mạng máy tính rất đa dạng, bao gồm tập hợp các máy tính, các thiết bị chuyên dụng, các thiết bị truyền tin, các thiết bị nhận và hiển thị thông tin…Hệ thống mạng máy tính được điều khiển bằng hệ điều hành mạng Hệ tin học này có thể là hệ tập trung hay là hệ phân tán 1 1 2 Ưu điểm và hạn chế của hệ thống phân tán 1 1 2 1 Ưu điểm Chia sẻ tài nguyên: Chia sẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia sẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiện các thao tác… Tăng tốc độ tính toán: Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ 1 1 2 2 Hạn chế Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống phân tán, giá thành sẽ tăng lên Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó có thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm Do vậy mà số lỗi sẽ tăng lên Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông báo, nhiều tính toán phụ Do vậy khối lượng xử lý tăng lên so với hệ thống tập trung 1 1 3 Nguyên tắc xây dựng hệ phân tán Căn cứ vào thành phần của hệ tin học, ta nhận thấy hệ tin học phân tán có thể bao gồm bốn thực thể như hình bên dưới Hı̀nh 2: Các th ự c th ể c ủ a h ệ tin h ọ c phân tán Phần mềm phân tán cung cấp công cụ thích hợp cho phép các máy tính phối hợp các hoạt động với nhau, cùng chia sẻ tài nguyên phần cứng Cấu hình phần cứng của mạng có thể bao gồm các bộ xử lý có cấu tạo hoàn toàn khác nhau về khả năng, tốc độ và được thiết kế cho các chức năng không giống nhau Chúng có thể là các bộ xử lý, các trạm làm việc, các máy tính trung và các máy tính điện tử vạn năng lớn Bên cạnh hệ thống phần cứng, phần mềm, dữ liệu, hệ phân tán còn có hệ thống truyền thông Nhưng điều cơ bản để phân biệt hệ tin học phân tán với mạng máy tính và hệ điều hành mạng chính là nguyên tắc xây dựng hệ tin học phân tán được liệt kê như bảng dưới đây: Bảng 1: Những nguyên tắc xây dựng hệ tin học phân tán STT Tên gọi Thuyết minh 1 Chia sẻ tài nguyên Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn là cần phải dùng chung tài nguyên Một tiến trình trên một trạm nào đó có thể cung cấp tài nguyên dùng chung ở một trạm khác 2 Liên lạc Khi các hệ thống đã được mắc nối với nhau, các thực thể trong hệ có thể trao đổi thông tin với nhau 3 Tin cậy Một trạm trong hệ bị sự cố không làm cho toàn hệ ảnh hưởng, mà ngược lại, công việc đó được phân cho các trạm khác đảm nhận Ngoài ra, trạm bị sự cố có thể tự động phục hồi lại trạng thái ban đầu trước khi có sự cố hay trạng thái ban đầu của nó 4 Tăng tốc Đây là khái niệm mới về phân tán tải Một tính toán lớn nào đó, nếu chỉ sử dụng một trạm thì thời gian cho kết quả lâu Tính toán này được chia nhỏ và thực hiện song song trên các trạm Điều này cũng cần thiết đối với các trạm quá tải 1 1 4 Hệ cơ sở dữ liệu phân tán Chúng ta có thể định nghĩa một cơ sở dữ liệu phân tán gồm nhiều cơ sở dữ liệu tích hợp lại với nhau thông qua mạng máy tính để trao đổi dữ liệu, thông tin… Cơ sở dữ liệu được tổ chức và lưu trữ ở những vị trí khác nhau trong mạng máy tính và chương trình ứng dụng truy cập vào dữ liệu ở những điểm khác nhau đó Một hệ cơ sở dữ liệu phân tán (distributed database system, viết tắt là DDBS) không phải là một “tập các tập tin” lưu riêng lẻ tại mỗi nút của một mạng máy tính Để tạo ra một hệ cơ sở dữ liệu phân tán, các tập tin không những có liên đới logic mà chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung 1 1 5 Ưu điểm và nhược điểm của hệ quản trị cơ sở dữ liệu phân tán 1 1 5 1 Ưu điểm Có nhiều nguyên nhân dẫn đến sử dụng cơ sở dữ liệu phân tán nhưng về cơ bản cơ sở dữ liệu phân tán có những ưu điểm sau: - Lợi điểm về tổ chức và tính kinh tế là tổ chức phân tán nhiều chi nhánh và dùng cơ sở dữ liệu phân tán phù hợp với các tổ chức kiểu này - Tận dụng những cơ sở dữ liệu sẵn có là hình thành cơ sở dữ liệu phân tán từ các cơ sở dữ liệu tập trung có sẵn ở địa phương - Thuận lợi cho nhu cầu phát triển là xu hướng dùng cơ sở dữ liệu phân tán sẽ cung cấp khả năng phát triển thuận lợi hơn và giảm được xung đột về chức năng giữa các đơn vị đã tồn tại và giảm được xung đột giữa các chương trình ứng dụng khi truy cập đến cơ sở dữ liệu - Giảm chi phí truyền thông, trong cơ sở dữ liệu phân tán chương trình ứng dụng đặt ở địa phương có thể giảm bớt được chi phí truyền thông khi thực hiện bằng các khai thác dữ liệu tại chỗ - Tăng số công việc thực hiện giúp cơ sở dữ liệu phân tán có nhiều thuận lợi trong việc phân tán dữ liệu như tạo ra các chương trình ứng dụng phụ thuộc vào tiêu chuẩn mở rộng vị trí làm cho các nơi có thể hỗ trợ lẫn nhau Do đó tránh được hiện tượng tắc nghẽn cổ chai trong mạng truyền thông hoặc trong các dịch vụ thông thường của toàn bộ hệ thống 1 1 5 2 Nhược điểm Kinh nghiệm thiết kế và ứng dụng chưa nhiều, còn tồn tại nhiều vấn đề cần giải quyết Các vấn đề của cơ sở dữ liệu phân tán thì phức tạp hơn nhiều so với cơ sở dữ liệu tập trung, đặc biệt là vấn đề khi cập nhật dữ liệu cũng như xử lý khi gặp lỗi Vấn đề truyền thông phải bảo đảm an toàn thông tin cũng như chọn cấu hình mạng cho phù hợp Vấn đề an toàn dữ liệu nếu không có cơ chế bảo vệ hợp lý thì có khả năng những dữ liệu không mong muốn vẫn được truy xuất ra ngoài 1 2 Mô hình hệ cơ sở dữ liệu phân tán Một hệ cơ sở dữ liệu phân tán không phải là hệ thống trong đó dù có sự hiện diện của một mạng máy tính, cơ sở dữ liệu chỉ nằm tại một nút của mạng Trong trường hợp này, vấn đề quản trị cơ sở dữ liệu không khác với việc quản trị cơ sở dữ liệu trong hệ tập trung Cơ sở dữ liệu này được quản lý tập trung tại một hệ thống máy tính (trạm 2 trong hình dưới) và tất cả mọi yêu cầu đều chuyển đến vị trí đó Điều cần xem xét là độ chậm trễ khi truyền dữ liệu Hiển nhiên là sự tồn tại của một mạng máy tính hoặc một tập các tập tin không đủ để tạo ra một hệ cơ sở dữ liệu phân tán Điều chúng ta quan tâm là một môi trường trong đó dữ liệu được phân tán trên một số vị trí Servers 1 Server 3 Data Server 2 Data Data Internet Hı̀nh 3: Môi trường của hệ CSDL tập trung Servers 1 Server 3 Data Server 2 Data Data Internet Data H ı ̀ nh 4: Môi tr ườ ng c ủ a h ệ CSDL phân tán Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu lưu trữ ở các máy tính khác nhau Các máy tính liên lạc với nhau qua nhiều phương tiện truyền thông, như bus tốc độ cao hay đường điện thoại Chúng không chia sẻ bộ nhớ chính, cũng không dùng chung đồng hồ Các bộ xử lý trong hệ thống phân tán có kích cỡ và chức năng khác nhau Chúng có thể gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy tính lớn vạn năng Những bộ xử lý được đặt tại các trạm, nút, máy tính Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác các giao thức truy nhập dữ liệu trên nhiều trạm khác Sự khác nhau chính giữa hệ thống cơ sở dữ liệu phân tán và tập trung là: trong hệ thống tập trung, dữ liệu lưu trữ tại chỗ, còn phân tán thì không 1 3 Đồng bộ hóa dữ liệu 1 3 1 Đồng bộ hóa cơ sở dữ liệu Đồng bộ (Synchronous) là khái niệm nói lên tính nguyên tắc, nó đòi hỏi các dữ liệu, tiến trình có liên quan phải được kết nối, liên hệ theo một trình tự thực hiện, một định dạng, cách thức cố định, không bao giờ thay đổi Trong một chuỗi các hàm của một quy trình có n tác vụ, nếu nó được bảo là đồng bộ thì trình tự thực hiện các hàm đó sẽ không bao giờ thay đổi Hàm A đã được thiết lập để được gọi và chạy trước hàm B thì hàm B phải chờ hàm A kết thúc mới được phép bắt đầu Một dây chuyền sản xuất công nghiệp của một nhà máy có thể coi là một quá trình đồng bộ Công nghệ đồng bộ hóa dữ liệu được thiết kế để đồng bộ hóa một tập hợp dữ liệu giữa hai hoặc nhiều thiết bị, tự động sao chép thay đổi qua lại Ví dụ: danh sách liên hệ của người dùng trên một thiết bị di động có thể được đồng bộ hóa với các thiết bị di động hoặc máy tính khác Đồng bộ hóa dữ liệu có thể được đồng bộ hóa cục bộ, nơi thiết bị và máy tính được song song và dữ liệu được chuyển hoặc đồng bộ hóa từ xa khi người dùng di động và dữ liệu được đồng bộ qua mạng di động Đồng bộ hóa dữ liệu (data synchronization) là một quá trình thiết lập sự thống nhất giữa các hệ thống và các cập nhật liên tục liên tục để duy trì sự nhất quán Từ ''''liên tục'''' cần được nhấn mạnh ở đây vì việc đồng bộ hóa dữ liệu không nên được coi là một nhiệm vụ một lần Đây thực sự là một quá trình cần được lên kế hoạch, sở hữu, quản lý, lập kế hoạch và kiểm soát Quy trình đồng bộ hóa dữ liệu: - Kế hoạch những nhu cầu, yêu cầu, mục tiêu về đồng bộ hóa dữ liệu nên được tập hợp trong giai đoạn lập kế hoạch Điều này cần phải bao gồm nội dung về dữ liệu, định dạng dữ liệu, truyền tài và tần suất cập nhật Các yêu cầu phi chức năng như hiệu suất, thời gian và bảo mật cũng nên được đề cập đến - Lập lịch và tần suất cập nhật là một trong những mục tiêu được nghiên cứu trong giai đoạn đầu Việc tạo một lịch rõ ràng và càng chi tiết cho quá trình cập nhật, đồng bộ hóa được thực hiện một cách hợp lý và tối ưu nhất là một yếu tố vô cùng quan trọng - Giám sát quá trình đồng bộ hóa cần được theo dõi để đánh giá xem lịch biểu và tần suất cập nhật có đáp ứng được nhu cầu của khách hàng hay của doanh nghiệp không Việc xây dựng cơ sở dữ liệu phân tán có khả năng đồng bộ hóa cao cũng gặp không ít khó khăn như: - Độ phức tạp của định dạng dữ liệu sự phức tạp của dữ liệu trong quá trình vận hành và phát triển luôn thay đổi theo thời gian sự thay đổi đó dù ít hay nhiều cũng tác động không nhỏ đến quả trình đồng bộ hóa dữ liệu Việc chuẩn hóa dữ liệu và quy định các kiểu dữ liệu là điều đầu tiên mà hệ thống dữ liệu cần phải làm Giảm thiểu đi các nguy cơ không thể kiểm soát, quản lý chặt chẽ được dữ liệu - Thời gian thực là yêu cầu quan trọng trong hệ phân tán Một hế thống phân tán ngày nay luôn phải hoạt động theo thời gian thực nhằm dáp ứng được yêu cầu thời gian thực, trong khoảng thời gian ngắn nhất, có thể chấp nhận được các nhu cầu của khách hàng, các doanh nghiệp, giúp cho việc cập nhật, thay đổi diễn ra nhanh nhất có thể không gây sự chậm trễ trong thông tin dữ liệu - Đồng bộ hóa dữ liệu cho phép chia sẻ dữ liệu giữa các cơ sở dữ liệu (CSDL) tại nhiều điểm khác nhau theo thời gian Với một dữ liệu gốc, ta có thể tạo nhiều bản sao và sử dụng tại nhiều nơi Dữ liệu gốc thay đổi, các dữ liệu bản sao cũng sẽ thay đổi và ngược lại - Bảo mật các hệ thống khác nhau có thể có các chính sách khác nhau để thực thi bảo mật dữ liệu và cấp độ truy cập Mặc dù bảo mật được duy trì chính xác trong hệ thống nguồn chứa dữ liệu, đặc quyền truy cập thông tin và bảo mật cũng phải được thực thi trên các hệ thống cũng như ngăn chặn bất kỳ sự tấn công đối với thông tin Bất kỳ dữ liệu thông qua trung gian của việc truyền dữ liệu cũng như chuyển dữ liệu của chính trung gian đó cũng phải được mã hóa - Chất lượng của dữ liệu việc truyền di những dữ liệu cần thiết, quan trọng qua các Server các điểm kết nối thông tin là một điều không thể thiếu trong truyền tải dữ liệu Dữ liệu có thể được chia ra sao cho hợp lý để có truyền tải nhanh nhất, ít bị sự cố nhất Điều này ngăn ngừa sự không nhất quán trong dữ liệu do việc cập nhật cùng một lúc nhiều dữ liệu trong một hệ thống - Bảo trì như bất kỳ các hệ thống khác, trong quá trình đồng bộ hoá cần phải được giám sát để đảm bảo rằng nó chạy đúng lịch và kịp thời xử lý lỗi, khắc phục sự cố xảy ra trong quá trình đồng bộ hoá chẳng hạn như dữ liệu cập nhật bị từ chối hoặc dữ liệu không đúng định dạng 1 3 2 Bản sao dữ liệu Một lựa chọn phổ biến cho việc phân bổ dữ liệu cũng như có khả năng chịu lỗi tốt của cơ sở dữ liệu là lưu trữ một bản sao riêng của cơ sở dữ liệu tại hai hoặc nhiều điểm lưu trữ khác nhau Nhân rộng có thể diễn ra trên một mạng lưu trữ, mạng cục bộ hoặc mạng cục bộ diện rộng, cũng như với đám mây Việc nhân rộng dữ liệu cho phép chuyển dư liệu tập trung trên một Server ra nhiều Server khác gần với người dùng cuối hơn tránh sự truyền tải dữ liệu chỉ tập trung trên Server Nhân bản dữ liệu sữ dụng kỹ thuật dồng bộ hoặc không đồng độ trên cơ sở dữ liệu phân tán, nhưng được ứng dụng rộng rãi hơn trên môi trường đồng bộ 1 3 2 1 Ưu điểm Có năm ưu điểm của việc sử dụng bản sao dữ liệu: - Độ tin cậy, nếu một điểm lưu trữ cơ sở dữ liệu bị hỏng thì có thể tìm thấy một bản sao dữ liệu tại điểm Server khác mà không gây ra sự nghẽn mạch trong việc truy cập dữ liệu Việc đồng bộ diễn ra ngay trong lúc thực hiện giao dịch hoặc sau khi kết thúc giao dịch - Đáp ứng nhanh mỗi địa điểm lưu trữ đầy đủ dữ liệu có thể xử lý các truy vấn cục bộ, do đó các truy vấn có thể được xử lý nhanh chóng - Có khả năng tránh các sự cố giao dịch, việc nhân bản thường được làm mới theo khoảng thời gian đã định trước để có tính nhất quán trong cơ sở dữ liệu, vì vậy hầu hết các dạng sao chép được sử dụng khi thực hiện quá trình đồng bộ hóa dữ liệu qua các bản sao cơ sở dữ liệu là cần thiết - Các điểm độc lập các giao dịch với dữ liệu vẫn thực hiện mà không có sự kết nối với mạng Như vậy các điểm kết nối bị dừng, treo hoặc ngắt kết nối (ví dụ: thiết bị di động điện thoại, laptop ) nhưng vẫn có thể thực hiện giao dịch xử lý dữ liệu trên bộ nhớ cục bộ - Giảm lưu lượng mạng vào giờ cao điểm việc nhân bản dữ liệu để lưu trữ dữ liệu trên các Server khác nhau nhằm giảm lượng truy cập vào dữ liệu trên một Server nhất định tránh trường hợp quá tải, giúp tăng tốc độ truy cập, truyền tải dữ liệu cho người dùng 1 3 2 2 Nhược điểm Có ba nhược điểm: - Yêu cầu lưu trữ một bản sao đều có dữ liệu giống như bản gốc nên việc tăng lên các bản sao dữ liệu được lưu trữ trên các Server dẫn tới việc sử dụng không gian lưu trữ lớn yêu cầu chí phí cao Bên cạnh đó thời gian cập nhật lại dữ liệu cũng tăng lên - Sự phức tạp liên quan tới việc duy trì tính toàn vẹn của cơ sở dữ liệu các vấn đề xử lý dữ liệu không nhất quán gây ra Việc duy trì các bản sao phải có dữ liệu giống hệt nhau, tránh việc dư thừa dữ liệu trong quá trình giao dịch thực đăng ký từ người dùng - Tính phức tạp trong vận hành và chi phí cập nhật cho việc vận hành đồng bộ giữa các Server là việc rất khó khăn yêu cầu kỹ thuật cao, cần đồng bộ trong thời gian thực, hạn chế thấp trong việc chậm trễ cập nhật Chi phí thời gian cho việc cập nhật lại toàn bộ dữ liệu khí có sự cố xảy ra tại một điểm Server bất kỳ rất tốn kém Trong các ứng dụng sử dụng hệ cơ sở dữ liệu phân tán, các bản sao dữ liệu cuối cùng cần phải được đồng bộ hóa, càng nhanh càng tốt Sao chép cơ sở dữ liệu là nhân bản dữ liệu thường xuyên từ cơ sở dữ liệu trong một máy tính hoặc máy chủ đến cơ sở dữ liệu ở một máy khác để tất cả người dùng chia sẻ cùng một cấp độ thông tin Kết quả là một cơ sở dữ liệu phân tán trong đó người dùng có thể truy cập dữ liệu liên quan đến nhiệm vụ của họ mà không can thiệp vào công việc của người khác Việc thực hiện sao chép cơ sở dữ liệu nhằm loại bỏ sự mơ hồ của dữ liệu hoặc sự không thống nhất giữa các người dùng được gọi là chuẩn hóa 1 4 Giao dịch và quản lý giao dịch 1 4 1 Khái niệm Giao dịch (Transaction): Giao dịch được xem như một dãy các thao tác đọc và ghi trên cơ sở dữ liệu cùng với các bước tính toán cần thiết Với ý nghĩa đó, một giao dịch có thể được nghĩ như là một chương trình nhúng các câu truy vấn truy cập cở sở dữ liệu (CSDL) Định nghĩa khác của giao dịch là một sự thực thi đơn giản một chương trình Một câu truy vấn đơn giản cũng được xem là một chương trình mà thực hiện như một giao dịch Một CSDL ở trong một trạng thái nhất quán (gắn bó) nếu nó tuân theo tất cả các ràng buộc toàn vẹn (nhất quán) được định nghĩa trên Sự thay đổi trạng thái xảy ra khi ta thực hiện các thao tác chèn, sửa hoặc xoá (gọi chung là cập nhật) Chúng ta cần đảm bảo rằng CSDL không bao giờ chuyển sang trạng thái không nhất quán CSDL có thể tạm thời không nhất quán trong khi thực hiện giao dịch, điều quan trọng là CSDL phải trở về trạng thái nhất quán khi giao dich chấm dứt Một cơ chế cho phép duy trì sự gắn bó trong môi trường phân tán có sự cố phải là: Bảng 2: Cơ chế cho phép duy trì sự gắn bó STT Phải thực hiện 1 Giao dịch T bắt buộc phải được thực hiện một cách trọn vẹn 2 Nếu có sự cố diễn ra thì bắt buộc nó phải quay trở lại điểm xuất phát 1 4 2 Đặc tính Muốn thực hiện những điều vừa nêu trong bảng trên, người ta đòi hỏi giao dịch phải có các đặc tính toàn vẹn như sau: Bảng 3: Các đặc tính toàn vẹn STT Đặc tính 1 Nếu một tiến trình bị sự cố trước khi kết thúc T nhưng lại sau các thao tác thay đổi cần thiết của T, trạng thái của hệ là gắn bó 2 Nếu một tiến trình bị sự cố trước khi diễn ra các thay đổi của T, trạng thái của hệ là gắn bó 3 Nếu một tiến trình bị sự cố giữa các thay đổi của T, trạng thái của hệ là không gắn bó Trước khi cập nhật (thay đổi) Trong khi cập nhật (thay đổi) Gắn bó Không gắn bó T Độ tin cậy hay khả tín muốn nói đến khả năng chịu tác động của một hệ thống đối với các loại sự cố và khả năng khôi phục lại từ những sự cố này Một hệ thống chịu được tác động sẽ chịu được các sự cố hệ thống và có thể tiếp tục cung cấp các dịch vụ ngay cả khi xảy ra sự cố Một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) hồi phục được là DBMS có thể chuyển sang trạng thái nhất quán ( bằng cách quay trở lại trạng thái nhất quán trước đó hoặc chuyển sang trạng thái nhất quán mới) sau khi gặp sự cố Quản lý giao dịch (transaction management) lo giải quyết các bài toán duy trì dược CSDL ở trong trình trạng nhất quán ngay cả khi có nhiều truy xuất đồng thời và khi có sự cố Một giao dịch là một đơn vị tính toán nhất quán và đáng tin cậy Vì thế về mặt trực quan, một giao dịch nhận một CSDL, thực hiện một hành động trên CSDL và sinh ra một “bản” CSDL mới gây ra một dich chuyển trạng thái Điều này tương tự như điều mà câu truy vấn thực hiện, ngoại trừ trường hợp nếu CSDL nhất quán trước khi thực hiện giao dịch 1 5 Internet of Things 1 5 1 Khái niệm Internet of Things (IoT) nghe có vẻ giống như một thuật ngữ tương lai, nhưng nó đã và đang tác động và cải thiện đời sống của chúng ta từng ngày Khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet Internet of Thing được dự đoán là một trong những xu hướng chính trong cuộc cách mạng công nghiệp lần thứ tư 1 5 2 Tác động Nhờ sự phát triển không ngừng của Internet đã tạo điều kiện thuận lợi cho IoT đã tham giao vào hay tác động tích cực đến cuộc sống và lao động của chúng ta hàng ngày, các tác động đó gồm có: - Quản lý giao thông thông minh sẽ khiến bạn đi đường dễ chịu hơn Nhờ dữ liệu về đường đi, xe cộ liên tục được cập nhật tới thiết bị di động của ta, việc tránh được cả tiếng đồng hồ kẹt xe ở giờ cao điểm là hoàn toàn có thể - Chăm sóc sức khỏe thông minh khi được ứng dụng vào ngành y tế sẽ đem lại cơ chế chăm sóc và quản lý bệnh nhân hiệu quả hơn rất nhiều Từ đó, các bệnh viện và tổ chức y tế có thể cải thiện hiệu quả vận hành của mình hơn đáng kể Thực tế, ngay vào thời điểm hiện tại, các mô hình y tế đều vướng phải rào cản lớn, khả năng tiếp cận đa thông tin cùng lúc ở cùng một thời điểm chăm sóc Ngoài các giải pháp xét nghiệm và chữa trị truyền thống, số lượng cảm biến và kết nối tăng cường của mô hình IoT sẽ cho phép bệnh viện chăm sóc bệnh nhân sớm hơn trong khi vẫn tăng cường hiệu quả chữa trị nhờ việc có thể giám sát từ xa hiệu quả hơn - Nhà thông minh là một trong những xu thế đi đầu mà các doanh nghiệp công nghê hướng tới để cung cấp các dịch vụ cho người tiêu dùng Mọi thiết bị đồ dùng trong gia đình có thể kết nối với mạng lưới Internet, tất cả hoạt động một cách thông minh, được điều khiển thông qua các thiết bị điện tử như điện thoại máy tính bảng, Giúp cho việc quản lý ngôi nhà một cách tốt hơn - Phát triển kinh doanh dễ thấy nhất là IoT giúp các doanh nghiệp thu thập rất nhiều dữ liệu từ máy móc và người tiêu dùng Các dữ liệu thu thập được từ khách hàng cũng rất quan trọng trong việc nâng cao chất lượng phục vụ khách hàng và phát triển dịch vụ - Quản lý môi trường là một việc vô cùng cấp bách hiện nay, dưới sự tàn phá gây thiệt hại không nhỏ đến môi trường của con người cần có cách giải quyết để bảo vệ hay khắc phục môi trường hư hại là vô cùng cấp thiết Việc đưa IoT vào giải quyết vấn đề là một ý tưởng hay, IoT giúp ta biết được khả năng xẩy ra thiệt hại, dự báo trước những nguy hiểm, cập nhật nhanh chóng các thông tin của môi trường để kịp khắc phúc hay bảo vệ môi trưòng - Quản lý du lịch thông minh là một hướng phát triển mà các doanh nghiệp kinh doanh cần phải chú ý tới Nhờ những thiết bị thông minh phần mềm có kết nối tới Internet ta có thể khai khác các thông tin từ khách hàng như địa điểm du lịch tới sở thích của từng cá nhân khách hàng mà từ đó có thể cải thiện kinh doanh, dịch vụ mang lại trải nghiêm tốt hơn cho khách hàng 1 6 Mạch vi xử lý Arduino Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại có trên thị trường thường được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O (vào/ra) kỹ thuật số tương thích với nhiều board mở rộng khác nhau Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích lập trình, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các thiết bị vận hành Cộng đồng phá triển phát triển Arduino rất đông đảo, sẵn sàng hỗ trợ những người yêu thích hoặc mới bắt, có rất nhiều ví dụ mẫu và tài liệu để nghiên cứu Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++ Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người ta ước tính trung bình mỗi năm có hơn 700 000 mạch chính thức đã được đưa tới tay người dùng Giá của các board Arduino dao động xung quanh €20, hoặc $27 hoặc 574 468VNĐ, nếu tự làm thì giá có thể giảm xuống thấp hơn 150 000VNĐ 1 6 1 Phần cứng Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các module, các mạch tích hợp thêm vào có thể dễ dàng thay đổi, được gọi là shield Các shield truyền thông tin với board Arduino trực tiếp thông qua các chân khác nhau Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số Nhiều shield ứng dụng plug-in cũng được thương mại hóa Hı̀nh 6: Các loại mạch Arduino 1 6 2 Phần mềm Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross- platform (nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột Một chương trình hoặc code viết cho Arduino được gọi là một sketch Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được: setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho một bóng đèn Led sáng/tắt Trong môi trường Arduino, ta sẽ phải viết một chương trình giống như sau: #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // Đặ t chân 13 làm đầ u ra digital } void loop () { digitalWrite (LED_PIN, HIGH); // B ậ t LED on delay (1000); // ch ờ trong 1 giây (1000 mili giây) digitalWrite (LED_PIN, LOW); // T ắ t LED off delay (1000); // ch ờ trong 1s } 1 7 Nodejs nền tảng lập trình Server Node js là một nền tảng chạy trên môi trường V8 JavaScript runtime - một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome Bình thường thì bạn cũng có thể tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node js làm điều đó đối với các web Server JavaScript suy cho cùng cũng chỉ là một ngôn ngữ - vậy thì không có lý do gì để nói nó không thể sử dụng trên môi trường Server tốt như là trong trình duyệt của người dùng được Hı̀nh 7: Mô hình hoạt động của Nodejs Trong một môi trường Server điển hình LAMP (Linux-Apache-MySQL- PHP), bạn có một web Server là Apache hoặc NGINX nằm dưới, cùng với PHP chạy trên nó Mỗi một kết nối tới Server sẽ sinh ra một thread mới, và điều này khiến ứng dụng nhanh chóng trở nên chậm chạp hoặc quá tải - cách duy nhất để hỗ trợ nhiều người dùng hơn là bằng cách bổ sung thêm nhiều máy chủ Đơn giản là nó không có khả năng mở rộng tốt Nhưng với Node js thì điều này không phải là vấn đề Không có một máy chủ Apache lắng nghe các kết nối tới và trả về mã trạng thái HTTP - bạn sẽ phải tự quản lý kiến trúc lõi của máy chủ đó May mắn thay, có một số module giúp thực hiện điều này được dễ dàng hơn, nhưng công việc này vẫn gây cho bạn một chút khó khăn khi mới bắt đầu Tuy nhiên, kết quả thu được là một ứng dụng web có tốc độ thực thi cao Ưu điểm : Đầu tiên là ưu điểm về tốc độ thực thi và khả năng mở rộng Node js có tốc độ rất nhanh Đó là một yêu cầu khá quan trọng khi bạn là một startup đang cố gắng tạo ra một sản phẩm lớn và muốn đảm bảo có thể mở rộng nhanh chóng, đáp ứng được một lượng lớn người dùng khi trang web của bạn phát triển lên Node js có thể xử lý hàng ngàn kết nối đồng thời trong khi PHP sẽ chỉ có nước sụp đổ Bên cạnh các lợi ích về tốc độ thực thi và khả năng mở rộng, có thể bạn cũng đã biết một chút về JavaScript, vì vậy tại sao lại phải phiền toái để học thêm về một ngôn ngữ lập trình hoàn toàn mới như PHP? Và sau đó bạn sẽ có một sự phấn khích khi học về một cái gì đó mới mẻ và gần như chưa được khám phá Bạn còn nhớ cái cảm giác khi mà một cái gì đó mới xuất hiện và sau đó trở thành phổ biến khắp mọi nơi mà bạn hối tiếc đã không học về nó sớm hơn, và mãi mãi chỉ là người đến sau? Đừng phạm phải sai lầm như vậy lần này nữa Node js đang ngày càng trở nên lớn mạnh hơn Nhược điểm: Giống như hầu hết các công nghệ mới, việc triển khai Nodejs trên host không phải là điều dễ dàng cho người mới tiếp cận Là mã nguồn mở nên được nhiều người biết đến và tham gia phát triển nhưng chính vì điều đó mà khiến cho Nodejs không có một khuôn mẫu thống nhất nào cho việc phát triển nền tảng Việc sử dụng ngôn ngữ JavaScript cũng là một điểm yếu vì JavaScript không phải là một ngôn ngữ hướng đối tượng thuần túy 1 7 Hệ quản trị cơ sở dữ liệu MYSQL 1 7 1 Khái niệm MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windown, Linux, MacOSx, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,… MySQL là một trong những ví dụ rất cơ bản về hệ quản trị cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) MySQL được sử dụng cho việc hổ trợ Nodejs, Java, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng Nodejs hay Java,… 1 7 2 Một số đặc điểm của MySQL MySQL là một phần mềm quản trị CSDL dạng Server-based (gần tương đương với SQL Server của Microsoft) MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dùng trong SQL Server vậy Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức Hỗ trợ ngôn ngữ truy vấn cấu trúc SQL Bạn có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft) Năng lực: Nhiều client có thể truy cập đến Server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cập MySQL bằng cách sử dụng các công cụ quản lý để có thể đưa vào các câu lệnh truy vấn và xem các kết quả Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẻ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên những người không có quyền truy cập thì không thể nhìn thấy dữ liệu của bạn Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được với mọi phần cứng từ các máy PC ở nhà cho đến các máy Server Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thể thay đổi nó Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet 1 8 Giới thiệu về tỉnh Quảng Nam và bài toán ứng dụng công nghệ thông tin xử lý trên môi trường Internet of Thing Tỉnh Quảng Nam là một tỉnh thuộc vùng Duyên hải Nam Trung Bộ, Việt Nam Vùng đất giàu truyền thống văn hóa đậm đà bản sắc dân tộc, nơi có nhiều di sản văn hóa thế giới, có bờ biển đẹp trải dài khắp cả tỉnh tạo điều kiện thuận lợi cho việc phát triển kinh tế du lịch Việc quản lý về thông tin, cở sở dữ liệu của ngành du lịch là việc vô cùng quan trọng trong thời buổi công nghệ thông tin ngày nay Việc khách du lịch sử dụng Internet để thực hiện các dịch vụ như đặt phòng, đặt vé, được thực hiện một cách thường xuyên Các dữ liệu thông tin của khách hàng tương tác với hệ thống càng lúc trở nên quan trọng hơn bao giờ hết Dữ liệu từ khách hàng có thể giúp cho doanh nghiệp kinh doanh tìm thấy những nhu cầu của khách hàng mà doanh nghiệp có thể hướng tới nhằm tăng lợi nhuận của mình Đứng trước tình thế đó việc lưu trữ và bảo đảm an toàn cho dữ liệu là việc cấp thiết đặt ra trong ngành du lịch Đã có rất nhiều giải pháp được đặt ra để đảm bảo cho việc lưu trữ dữ liệu, xong em xin trình bày một giải pháp kỹ thuật đồng bộ hóa dữ liệu cho bài toán đăng ký tour du lịch từ xa trong môi trường Internet of Thing INTERNET Khu Kinh Tế Mở Chu Lai Thành Phố Tam Kỳ Thành Phố Hội An Hı̀nh 8: Mô hình cơ sở dữ liệu phân tán của tỉnh Quảng Nam 1 9 Kết luận Qua chương này em đã làm được các việc sau: - Giới thiệu khái niệm hệ tin học phân tán, đồng bộ hóa cơ sở dữ liệu, các lợi ích của việc áp dụng công nghệ thông tin vào kinh doanh du lịch của tỉnh Quảng Nam - Hiểu được các lý thuyết căn bản của hệ tin học phân tán và cơ sở dữ liệu phân tán - Tìm hiều những lợi ích và tác động lớn của Internet of Thing từ đời sống xã hội đến lao động hằng ngày - Hiểu được căn bản của nguyên lý hoạt động của arduino Chương II: MÔ HÌNH BÀI TOÁN DU LỊCH ĐĂNG KÝ TỪ XA VÀ GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ 2 1 Giới thiệu bài toán Hệ cơ sở dữ liệu phân tán là giải pháp phù hợp với cấu trúc tự nhiên của các tổ chức hiện nay Việc sử dụng nhiều Servers đặt trên nhiều vị trí địa lý khác nhau của hệ cơ sở dữ liệu phân tán có thể giúp các Client tại mỗi vị trí ngoài việc truy xuất những dữ liệu sử dụng thường xuyên tại vị trí của mình mà còn có thể truy xuất đến dữ liệu tại các vị trí khác Hệ cơ sở dữ liệu phân tán có thể giải quyết tốt các vấn đề như đa truy cập từ xa, ngẫu nhiên, số lượng truy cập lớn, tăng tốc, an toàn,… Trong xu hướng toàn cầu hóa hiện nay, để phù hợp với nhu cầu phát triển, các tổ chức thường phân bố các chi nhánh phân tán trên nhiều vị trí địa lý khác nhau Lúc này, việc sử dụng hệ cơ sở dữ liệu tập trung với chỉ duy nhất một hoặc một vài Servers phục vụ đa người dùng với một bài toán dữ liệu lớn sẽ gặp nhiều vấn đề khó khăn như hiệu năng khai thác không cao, dễ xảy ra ùn tắc, tốc độ chậm, không an toàn,… Điều đó có thể dẫn đến sự không nhất quán về dữ liệu Chẳng hạn, một hệ thống đặt tours du lịch nếu sử dụng hệ cơ sở dữ liệu tập trung thì tình trạng một nghế ngồi hay phòng nghỉ có thể được bán nhiều lần Áp dụng hệ cơ sở dữ liệu phân tán để giải quyết bài toán đặt vé tours du lịch từ xa mang lại nhiều thuận lợi nhưng cũng mang đến không ít những khó khăn cho các doanh nghiệp về việc quản lý, cập nhật, đồng bộ hóa dữ liệu giữa các điểm lưu trữ Một trong những vấn đề khó khăn trong hệ cơ sở dữ liệu phân tán đó là xử lý tương tranh Trong quá trình hoạt động, có thể có nhiều truy xuất đồng thời đến một tài nguyên tại cùng một thời điểm, điều đó dẫn đến vấn đề tranh giành tài nguyên Để đảm bảo cơ sở dữ liệu luôn đáng tin cậy, gắn bó và nhất quán khi xảy ra tương tranh người ta đã đề xuất một số thuật toán điều khiển tương tranh Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống thông tin đăng ký trên mạng nói riêng như việc đăng ký các tour du lịch, mua bán trong các giao dịch thương mại điện tử, đăng ký giữ chỗ trong giao thông vận tải, đăng ký dự thi trong các hệ thống thông tin đào tạo, đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong các cơ sở dữ liệu truy cập ngẫu nhiên với số lượng truy cập lớn Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu trong môi trường phân tán đến nay đã có một số thành công đáng kể Trước hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bản của việc gắn bó thông tin nói chung trong quá trình đa truy cập thông qua hệ thống viễn thông Việc triển khai phương pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều kiện lý tưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệu quả nhất định cho các hệ thống đăng ký Tuy nhiên, trong quá trình triển khai lập trình và vận hành các hệ thống đăng ký, vấn đề gắn bó dữ liệu trong các cơ sở dữ liệu khi hệ thống bị sự cố đang đặt ra như là vấn đề quan trọng và có ý nghĩa sống còn trong việc phát triển toàn hệ nói chung Nói tóm lại, sự cố trong các hệ thống nói chung, hệ thống đăng ký nói riêng có thể xảy ra và là nguyên nhân dẫn đến hệ thống cơ sở dữ liệu không thể đảm bảo tính gắn bó được nữa 2 2 Các thuật toán kỹ thuật gắn bó 2 2 1 Kỹ thuật nhân bản cơ sở dữ liệu Để có được một hệ thống đáng tin cậy và nhanh chóng với cơ sở dữ liệu phân tán, chúng ta phải kết hợp sử dụng một số kỹ thuật khác nhau Các yếu tố quan trọng để đánh giá hệ thống khi lựa chọn kỹ thuật là hiệu suất, tính nhất quán và sự dư thừa Khi xử lý với một hệ thống cơ sở dữ liệu nhân bản, một số hành động được thực hiện trong quá trình thực hiện một giao dịch Trong bài viết 5 giai đoạn mà trình bày để mô tả các bước khác nhau trong hệ thống Các bước là: - Request bước đầu tiên của một giao dịch, khi khách hàng (client) gửi yêu cầu tới một điểm Server trong hệ thống - Server Coordination đồng bộ hóa giữa các điểm (Server) khác nhau để thực hiện các giao dịch - Execution giai đoạn thực hiện các pha giao dịch - Agreement Coordination giai đoạn thỏa thuận được thực hiện giữa các điểm để đảm bảo rằng tất cả các điểm đã nhận được cùng một kết quả cập nhật - Response phản hồi về kết quả giao dịch cho khách hàng Các giai đoạn này không phải lúc nào cũng áp dụng cho tất cả các giao thức, và thứ tự của chúng có thể khác nhau tùy thuộc vào tính chất của các giao thức được sử dụng Các kỹ thuật này thường được chia thành hai khu vực chính khác nhau, kỹ thuật nhân bản chủ động và kỹ thuật nhân bản bị động 2 2 1 1 Nhân bản chủ động Nhân bản chủ động là kỹ thuật nhân rộng được thực hiện thường xuyên hơn trên dữ liệu Với sự hỗ trợ của các giao thức nhân bản chủ động các điểm Server được đồng bộ hóa với nhau mà ở đó có độ tin cậy cao về tính nhất quán Kỹ thuật nhân bản chủ động là loại kỹ thuật sao chép an toàn nhất khi nói đến tính nhất quán và độ tin cậy Vấn đề chính đối với nhân bản chủ động là hiệu suất Việc sao chép liên tục thường dễ bị “ deadlock ” nhiều hơn và điều đó có thể làm giảm hiệu suất Sao chép chủ động có thể được tách thành hai loại Kỹ thuật đầu tiên là bản sao chính bao gồm một địa điểm cơ sở dữ liệu chính với một hoặc nhiều địa điểm sao lưu Kỹ thuật thứ hai là được cập nhật ở khắp mọi điểm, nơi giao dịch có thể được thực hiện trong tất cả các điểm cùng một lúc Điều này đòi hỏi nhiều từ giao thức sử dụng để đảm bảo sự nhất quán trong toàn bộ hệ thống cơ sở dữ liệu Nhiều loại giao thức khác nhau cho việc nhân bản chủ động sử dụng một số phương pháp để giải quyết vấn đề với cách nhất quán Một hệ thống đã được trình bày ờ bài [10] mà sử dụng ba tham số để phân loại các giao thức khác nhau Các tham số là kiến trúc Server (bản sao chính hoặc cập nhật ở mọi nơi), tương tác máy chủ (tương tác liên tục hoặc tương tác tuyến tính) và chấm dứt giao dịch (chấm dứt bỏ phiếu hoặc không bỏ phiếu chấm dứt) Server Architecture (kiến trúc máy chủ) chia thành hai loại kiến trúc cơ sở dữ liệu chính, bản sao chính và cập nhật ở mọi nơi Server Interaction (tương tác của máy chủ) liên quan đến các điểm liên kết trong hệ thống giao tiếp với nhau trong suốt một giao dịch Hằng số tương tác là kỹ thuật mà số lượng các thông điệp được gửi giữa các điểm liên kết là hằng số và bao nhiêu hoạt động độc lập mà một giao dịch có được Điều này có nghĩa là bộ giao dịch được gửi đi trong một thông điệp duy nhất giữa các điểm liên kết Tương tác tuyến tính là sự tương tác giữa các giao dịch được tách ra theo hoạt động Càng nhiều hoạt động của một giao dịch thì càng nhiều tin nhắn sẽ được gửi giữa các điểm Transaction Termination (chấm dứt giao dịch) là một câu hỏi về những gì xảy ra vào cuối của một giao dịch Trong một số hệ thống bỏ phiếu để kết thúc được thực hiện để đảm bảo sự nhất quán và thỏa thuận giữa các điểm trong hệ thống trong khi các hệ thống khác dựa vào việc thực hiện xác định giao dịch và không bỏ phiếu vào cuối một giao dịch 2 2 1 2 Nhân bản bị động Sao chép lười biếng cũng chứa cả bản sao chính và cập nhật ở mọi nơi mặc dù chúng hoạt động theo một cách hơi khác nhau Sự khác biệt chính giữa các giao thức chủ động (eager) và bị động (lazy) là số lần đồng bộ được thực hiện trong hệ thống cơ sở dữ liệu trong quá trình thực hiện giao dịch Trong nhân bản chủ động các giao thức bỏ phiếu và đồng bộ hóa được thực hiện trước khi cam kết bất cứ điều gì Đây không phải là trường hợp với Lazy Replication Để tăng tốc độ giao dịch khách hàng nhận được một phản ứng trước khi các điểm liên kết thực hiện bất cứ sự điều phối với các điểm liên kết khác trong hệ thống [11] Phương thức làm việc này cho phép khách hàng nhận được phản ứng từ một điểm, nhưng mặt khác không có thỏa thuận nào được thực hiện trong hệ thống rằng giao dịch có thể được thực hiện mà không can thiệp vào các giao dịch khác chạy song song Điều này có thể dẫn đến các vấn đề về tính nhất quán trong cơ sở dữ liệu [1][11] Mặc dù các vấn đề có thể xảy ra với sự sao chép bị động, nhưng nhiều hệ thống ngày nay vẫn sử dụng kỹ thuật này vì nó cho phép thực hiện tốt hơn trong nhiều hệ thống cơ sở dữ liệu phân tán [1] 2 2 2 Kỹ thuật cập nhật dữ liệu Hệ thống cơ sở dữ liệu sử dụng Update Everywhere (cập nhật mọi nơi) kh

NỘI DUNG

1.1 Lý do chọn đề tài

Trong thời đại phát triển thông tin số, các giải pháp về kỹ thuật “Internet of Thing” dựa trên nền tảng hạ tầng như là dịch vụ (IaaS) ngày càng trở nên quan trọng hơn bao giờ hết Thông qua hạ tầng này, các ứng dụng chạy dịch vụ IoT trở nên hiệu quả hơn và đáng tin cậy hơn Các ứng dụng liên quan tới cơ sở dữ liệu của IoT ngày càng được chú trọng tại lớp nền tảng như là dịch vụ

Cơ sở dữ liệu phân tán nói riêng và các hệ tin học phân tán nói chung là một lĩnh vực không thể thiếu trong các hệ thống mạng, đặc biệt là Internet Ngày nay Internet được áp dụng vào mọi lĩnh vực công nghiệp, nông nghiệp, đời sống và xã hội, trong giới nghiên cứu và nhà sản xuất

Trong khóa luận này, tập trung nghiên cứu giải pháp kỹ thuật trên hệ thống hạ tầng gồm đa Server phân tán kết qua mạng truyền thông, mà mỗi máy trạm có thể thực hiện các dịch vụ đăng ký thông tin tour du lịch từ xa Vấn đề đặt ra là phải xây dựng một hệ thống cho phép thực thi bài toán đăng ký thông tin từ xa theo mô hình phân tán Sau đó xử lý để đảm bảo gắn bó dữ liệu khi hệ thống có sự cố xảy ra

1.2 Tính mới của đề tài

Với sự bùng nỗ của Internet of Thing và thiết bị thông minh, được rất nhiều nhà nghiên cứu phát triển tập trung vào các ngành du lịch, sức khỏe Việc sử dụng công nghệ mới này vào ngành công nghiệp du lịch đã tác động rất lớn tới các doanh nghiệp và khách du lịch Ngày nay việc đặt mua vé du lịch cho một kỳ nghỉ thật dễ, trong đó có các loại hình dịch vụ được cung cấp như khách sạn, vé máy bay… tất cả đều được thanh toán trực tuyến Internet đã thay đổi triệt để mô hình, mối quan hệ trong kinh doanh

NỘI DUNG NGHIÊN CỨU

Hệ tin học phân tán hay gọi tắt là hệ phân tán là một hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc các bộ vi xử lý được đặt ở xa tại các vị trí khác nhau và được liên kết với nhau thông qua các phương tiện viễn thông dưới sự thống nhất của hệ điều hành

Hệ tin học phân tán là một hệ thống không chia sẻ bộ nhớ và đồng hồ Các tính toán học phân tán có thể được thực hiện trên nhiều bộ xử lý hay vi xử lý khác nhau Do đó hệ thống tin học phân tán đòi hỏi hệ thống của mình phải trang bị bộ nhớ cục bộ Các bộ xử lý trao đổi thông tin thông qua các đường

TỔNG QUAN HỆ TIN HỌC PHÂN TÁN

Hệ phân tán

Hệ tin học phân tán hay gọi tắt là hệ phân tán là một hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc các bộ vi xử lý được đặt ở xa tại các vị trí khác nhau và được liên kết với nhau thông qua các phương tiện viễn thông dưới sự thống nhất của hệ điều hành

Hệ tin học phân tán là một hệ thống không chia sẻ bộ nhớ và đồng hồ Các tính toán học phân tán có thể được thực hiện trên nhiều bộ xử lý hay vi xử lý khác nhau Do đó hệ thống tin học phân tán đòi hỏi hệ thống của mình phải trang bị bộ nhớ cục bộ Các bộ xử lý trao đổi thông tin thông qua các đường

Server Server truyền khác nhau như cáp mạng chuyên dụng, bus trao đổi, đường điện thoại, cáp quang hoặc có thể là sóng

Không như các máy tính đơn lẻ, mạng máy tính là tập hợp các thiết bị đầu cuối được nối với nhau bởi hệ thống đường truyền, những đường truyền nối với các trạm rất xa nhau có thể là một mạng viễn thông Các thiết bị đầu cuối của mạng máy tính rất đa dạng, bao gồm tập hợp các máy tính, các thiết bị chuyên dụng, các thiết bị truyền tin, các thiết bị nhận và hiển thị thông tin…Hệ thống mạng máy tính được điều khiển bằng hệ điều hành mạng Hệ tin học này có thể là hệ tập trung hay là hệ phân tán

1.1.2 Ưu điểm và hạn chế của hệ thống phân tán

Chia sẻ tài nguyên: Chia sẻ tài nguyên trong hệ thống phân tán cung cấp một cơ chế để chia sẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thực hiện các thao tác…

Tăng tốc độ tính toán: Hệ thống phân tán cho phép phân chia việc tính toán trên nhiều vị trí khác nhau để tính toán song song

An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn tiếp tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống

Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ liệu từ vị trí này sang vị trí khác Khi các vị trí được nối kết với nhau trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ

Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống phân tán, giá thành sẽ tăng lên

Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó có thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm Do vậy mà số lỗi sẽ tăng lên

Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông báo, nhiều tính toán phụ Do vậy khối lượng xử lý tăng lên so với hệ thống tập trung

1.1.3 Nguyên tắc xây dựng hệ phân tán

Căn cứ vào thành phần của hệ tin học, ta nhận thấy hệ tin học phân tán có thể bao gồm bốn thực thể như hình bên dưới

Hı̀nh 2: Các th ự c th ể c ủ a h ệ tin h ọ c phân tán

Phần mềm phân tán cung cấp công cụ thích hợp cho phép các máy tính phối hợp các hoạt động với nhau, cùng chia sẻ tài nguyên phần cứng

Cấu hình phần cứng của mạng có thể bao gồm các bộ xử lý có cấu tạo hoàn toàn khác nhau về khả năng, tốc độ và được thiết kế cho các chức năng không giống nhau Chúng có thể là các bộ xử lý, các trạm làm việc, các máy tính trung và các máy tính điện tử vạn năng lớn

Bên cạnh hệ thống phần cứng, phần mềm, dữ liệu, hệ phân tán còn có hệ thống truyền thông Nhưng điều cơ bản để phân biệt hệ tin học phân tán với mạng máy tính và hệ điều hành mạng chính là nguyên tắc xây dựng hệ tin học phân tán được liệt kê như bảng dưới đây:

Bảng 1: Những nguyên tắc xây dựng hệ tin học phân tán

STT Tên gọi Thuyết minh

Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn là cần phải dùng chung tài nguyên Một tiến trình trên một trạm nào đó có thể cung cấp tài nguyên dùng chung ở một trạm khác

2 Liên lạc Khi các hệ thống đã được mắc nối với nhau, các thực thể trong hệ có thể trao đổi thông tin với nhau

3 Tin cậy Một trạm trong hệ bị sự cố không làm cho toàn hệ ảnh hưởng, mà ngược lại, công việc đó được phân cho các trạm khác đảm nhận Ngoài ra, trạm bị sự cố có thể tự động phục hồi lại trạng thái ban đầu trước khi có sự cố hay trạng thái ban đầu của nó

4 Tăng tốc Đây là khái niệm mới về phân tán tải Một tính toán lớn nào đó, nếu chỉ sử dụng một trạm thì thời gian cho kết quả lâu Tính toán này được chia nhỏ và thực hiện song song trên các trạm Điều này cũng cần thiết đối với các trạm quá tải

1.1.4 Hệ cơ sở dữ liệu phân tán

Chúng ta có thể định nghĩa một cơ sở dữ liệu phân tán gồm nhiều cơ sở dữ liệu tích hợp lại với nhau thông qua mạng máy tính để trao đổi dữ liệu, thông tin… Cơ sở dữ liệu được tổ chức và lưu trữ ở những vị trí khác nhau trong mạng máy tính và chương trình ứng dụng truy cập vào dữ liệu ở những điểm khác nhau đó

Một hệ cơ sở dữ liệu phân tán (distributed database system, viết tắt là DDBS) không phải là một “tập các tập tin” lưu riêng lẻ tại mỗi nút của một mạng máy tính Để tạo ra một hệ cơ sở dữ liệu phân tán, các tập tin không những có liên đới logic mà chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung

1.1.5 Ưu điểm và nhược điểm của hệ quản trị cơ sở dữ liệu phân tán

Có nhiều nguyên nhân dẫn đến sử dụng cơ sở dữ liệu phân tán nhưng về cơ bản cơ sở dữ liệu phân tán có những ưu điểm sau:

Mô hình hệ cơ sở dữ liệu phân tán

Một hệ cơ sở dữ liệu phân tán không phải là hệ thống trong đó dù có sự hiện diện của một mạng máy tính, cơ sở dữ liệu chỉ nằm tại một nút của mạng Trong trường hợp này, vấn đề quản trị cơ sở dữ liệu không khác với việc quản trị cơ sở dữ liệu trong hệ tập trung Cơ sở dữ liệu này được quản lý tập trung tại một hệ thống máy tính (trạm 2 trong hình dưới) và tất cả mọi yêu cầu đều chuyển đến vị trí đó Điều cần xem xét là độ chậm trễ khi truyền dữ liệu Hiển nhiên là sự tồn tại của một mạng máy tính hoặc một tập các tập tin không đủ để tạo ra một hệ cơ sở dữ liệu phân tán Điều chúng ta quan tâm là một môi trường trong đó dữ liệu được phân tán trên một số vị trí

Hı̀nh 3: Môi trường của hệ CSDL tập trung

H ı ̀ nh 4: Môi tr ườ ng c ủ a h ệ CSDL phân tán

Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu lưu trữ ở các máy tính khác nhau Các máy tính liên lạc với nhau qua nhiều phương tiện truyền thông, như bus tốc độ cao hay đường điện thoại Chúng không chia sẻ bộ nhớ chính, cũng không dùng chung đồng hồ

Các bộ xử lý trong hệ thống phân tán có kích cỡ và chức năng khác nhau Chúng có thể gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy tính lớn vạn năng Những bộ xử lý được đặt tại các trạm, nút, máy tính

Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác các giao thức truy nhập dữ liệu trên nhiều trạm khác Sự khác nhau chính giữa hệ thống cơ sở dữ liệu phân tán và tập trung là: trong hệ thống tập trung, dữ liệu lưu trữ tại chỗ, còn phân tán thì không.

Đồng bộ hóa dữ liệu

1.3.1 Đồng bộ hóa cơ sở dữ liệu Đồng bộ (Synchronous) là khái niệm nói lên tính nguyên tắc, nó đòi hỏi các dữ liệu, tiến trình có liên quan phải được kết nối, liên hệ theo một trình tự thực hiện, một định dạng, cách thức cố định, không bao giờ thay đổi Trong một chuỗi các hàm của một quy trình có n tác vụ, nếu nó được bảo là đồng bộ thì trình tự thực hiện các hàm đó sẽ không bao giờ thay đổi Hàm A đã được thiết lập để được gọi và chạy trước hàm B thì hàm B phải chờ hàm A kết thúc mới được phép bắt đầu Một dây chuyền sản xuất công nghiệp của một nhà máy có thể coi là một quá trình đồng bộ

Công nghệ đồng bộ hóa dữ liệu được thiết kế để đồng bộ hóa một tập hợp dữ liệu giữa hai hoặc nhiều thiết bị, tự động sao chép thay đổi qua lại Ví dụ: danh sách liên hệ của người dùng trên một thiết bị di động có thể được đồng bộ hóa với các thiết bị di động hoặc máy tính khác Đồng bộ hóa dữ liệu có thể được đồng bộ hóa cục bộ, nơi thiết bị và máy tính được song song và dữ liệu được chuyển hoặc đồng bộ hóa từ xa khi người dùng di động và dữ liệu được đồng bộ qua mạng di động Đồng bộ hóa dữ liệu (data synchronization) là một quá trình thiết lập sự thống nhất giữa các hệ thống và các cập nhật liên tục liên tục để duy trì sự nhất quán Từ 'liên tục' cần được nhấn mạnh ở đây vì việc đồng bộ hóa dữ liệu không nên được coi là một nhiệm vụ một lần Đây thực sự là một quá trình cần được lên kế hoạch, sở hữu, quản lý, lập kế hoạch và kiểm soát Quy trình đồng bộ hóa dữ liệu:

- Kế hoạch những nhu cầu, yêu cầu, mục tiêu về đồng bộ hóa dữ liệu nên được tập hợp trong giai đoạn lập kế hoạch Điều này cần phải bao gồm nội dung về dữ liệu, định dạng dữ liệu, truyền tài và tần suất cập nhật Các yêu cầu phi chức năng như hiệu suất, thời gian và bảo mật cũng nên được đề cập đến

- Lập lịch và tần suất cập nhật là một trong những mục tiêu được nghiên cứu trong giai đoạn đầu Việc tạo một lịch rõ ràng và càng chi tiết cho quá trình cập nhật, đồng bộ hóa được thực hiện một cách hợp lý và tối ưu nhất là một yếu tố vô cùng quan trọng

- Giám sát quá trình đồng bộ hóa cần được theo dõi để đánh giá xem lịch biểu và tần suất cập nhật có đáp ứng được nhu cầu của khách hàng hay của doanh nghiệp không

Việc xây dựng cơ sở dữ liệu phân tán có khả năng đồng bộ hóa cao cũng gặp không ít khó khăn như:

- Độ phức tạp của định dạng dữ liệu sự phức tạp của dữ liệu trong quá trình vận hành và phát triển luôn thay đổi theo thời gian sự thay đổi đó dù ít hay nhiều cũng tác động không nhỏ đến quả trình đồng bộ hóa dữ liệu Việc chuẩn hóa dữ liệu và quy định các kiểu dữ liệu là điều đầu tiên mà hệ thống dữ liệu cần phải làm Giảm thiểu đi các nguy cơ không thể kiểm soát, quản lý chặt chẽ được dữ liệu

- Thời gian thực là yêu cầu quan trọng trong hệ phân tán Một hế thống phân tán ngày nay luôn phải hoạt động theo thời gian thực nhằm dáp ứng được yêu cầu thời gian thực, trong khoảng thời gian ngắn nhất, có thể chấp nhận được các nhu cầu của khách hàng, các doanh nghiệp, giúp cho việc cập nhật, thay đổi diễn ra nhanh nhất có thể không gây sự chậm trễ trong thông tin dữ liệu

- Đồng bộ hóa dữ liệu cho phép chia sẻ dữ liệu giữa các cơ sở dữ liệu (CSDL) tại nhiều điểm khác nhau theo thời gian Với một dữ liệu gốc, ta có thể tạo nhiều bản sao và sử dụng tại nhiều nơi Dữ liệu gốc thay đổi, các dữ liệu bản sao cũng sẽ thay đổi và ngược lại

- Bảo mật các hệ thống khác nhau có thể có các chính sách khác nhau để thực thi bảo mật dữ liệu và cấp độ truy cập Mặc dù bảo mật được duy trì chính xác trong hệ thống nguồn chứa dữ liệu, đặc quyền truy cập thông tin và bảo mật cũng phải được thực thi trên các hệ thống cũng như ngăn chặn bất kỳ sự tấn công đối với thông tin Bất kỳ dữ liệu thông qua trung gian của việc truyền dữ liệu cũng như chuyển dữ liệu của chính trung gian đó cũng phải được mã hóa

- Chất lượng của dữ liệu việc truyền di những dữ liệu cần thiết, quan trọng qua các Server các điểm kết nối thông tin là một điều không thể thiếu trong truyền tải dữ liệu Dữ liệu có thể được chia ra sao cho hợp lý để có truyền tải nhanh nhất, ít bị sự cố nhất Điều này ngăn ngừa sự không nhất quán trong dữ liệu do việc cập nhật cùng một lúc nhiều dữ liệu trong một hệ thống

- Bảo trì như bất kỳ các hệ thống khác, trong quá trình đồng bộ hoá cần phải được giám sát để đảm bảo rằng nó chạy đúng lịch và kịp thời xử lý lỗi, khắc phục sự cố xảy ra trong quá trình đồng bộ hoá chẳng hạn như dữ liệu cập nhật bị từ chối hoặc dữ liệu không đúng định dạng

Một lựa chọn phổ biến cho việc phân bổ dữ liệu cũng như có khả năng chịu lỗi tốt của cơ sở dữ liệu là lưu trữ một bản sao riêng của cơ sở dữ liệu tại hai hoặc nhiều điểm lưu trữ khác nhau Nhân rộng có thể diễn ra trên một mạng lưu trữ, mạng cục bộ hoặc mạng cục bộ diện rộng, cũng như với đám mây Việc nhân rộng dữ liệu cho phép chuyển dư liệu tập trung trên một Server ra nhiều Server khác gần với người dùng cuối hơn tránh sự truyền tải dữ liệu chỉ tập trung trên Server Nhân bản dữ liệu sữ dụng kỹ thuật dồng bộ hoặc không đồng độ trên cơ sở dữ liệu phân tán, nhưng được ứng dụng rộng rãi hơn trên môi trường đồng bộ

Có năm ưu điểm của việc sử dụng bản sao dữ liệu:

- Độ tin cậy, nếu một điểm lưu trữ cơ sở dữ liệu bị hỏng thì có thể tìm thấy một bản sao dữ liệu tại điểm Server khác mà không gây ra sự nghẽn mạch trong việc truy cập dữ liệu Việc đồng bộ diễn ra ngay trong lúc thực hiện giao dịch hoặc sau khi kết thúc giao dịch

- Đáp ứng nhanh mỗi địa điểm lưu trữ đầy đủ dữ liệu có thể xử lý các truy vấn cục bộ, do đó các truy vấn có thể được xử lý nhanh chóng

- Có khả năng tránh các sự cố giao dịch, việc nhân bản thường được làm mới theo khoảng thời gian đã định trước để có tính nhất quán trong cơ sở dữ liệu, vì vậy hầu hết các dạng sao chép được sử dụng khi thực hiện quá trình đồng bộ hóa dữ liệu qua các bản sao cơ sở dữ liệu là cần thiết

Giao dịch và quản lý giao dịch

Giao dịch (Transaction): Giao dịch được xem như một dãy các thao tác đọc và ghi trên cơ sở dữ liệu cùng với các bước tính toán cần thiết Với ý nghĩa đó, một giao dịch có thể được nghĩ như là một chương trình nhúng các câu truy vấn truy cập cở sở dữ liệu (CSDL) Định nghĩa khác của giao dịch là một sự thực thi đơn giản một chương trình Một câu truy vấn đơn giản cũng được xem là một chương trình mà thực hiện như một giao dịch

Một CSDL ở trong một trạng thái nhất quán (gắn bó) nếu nó tuân theo tất cả các ràng buộc toàn vẹn (nhất quán) được định nghĩa trên Sự thay đổi trạng thái xảy ra khi ta thực hiện các thao tác chèn, sửa hoặc xoá (gọi chung là cập nhật) Chúng ta cần đảm bảo rằng CSDL không bao giờ chuyển sang trạng thái không nhất quán CSDL có thể tạm thời không nhất quán trong khi thực hiện giao dịch, điều quan trọng là CSDL phải trở về trạng thái nhất quán khi giao dich chấm dứt

Một cơ chế cho phép duy trì sự gắn bó trong môi trường phân tán có sự cố phải là:

Bảng 2: Cơ chế cho phép duy trì sự gắn bó

1 Giao dịch T bắt buộc phải được thực hiện một cách trọn vẹn

2 Nếu có sự cố diễn ra thì bắt buộc nó phải quay trở lại điểm xuất phát

Muốn thực hiện những điều vừa nêu trong bảng trên, người ta đòi hỏi giao dịch phải có các đặc tính toàn vẹn như sau:

Bảng 3: Các đặc tính toàn vẹn

1 Nếu một tiến trình bị sự cố trước khi kết thúc T nhưng lại sau các thao tác thay đổi cần thiết của T, trạng thái của hệ là gắn bó

2 Nếu một tiến trình bị sự cố trước khi diễn ra các thay đổi của T, trạng thái của hệ là gắn bó

3 Nếu một tiến trình bị sự cố giữa các thay đổi của T, trạng thái của hệ là không gắn bó

Trước khi cập nhật (thay đổi)

Trong khi cập nhật (thay đổi)

T Độ tin cậy hay khả tín muốn nói đến khả năng chịu tác động của một hệ thống đối với các loại sự cố và khả năng khôi phục lại từ những sự cố này Một hệ thống chịu được tác động sẽ chịu được các sự cố hệ thống và có thể tiếp tục cung cấp các dịch vụ ngay cả khi xảy ra sự cố Một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) hồi phục được là DBMS có thể chuyển sang trạng thái nhất quán ( bằng cách quay trở lại trạng thái nhất quán trước đó hoặc chuyển sang trạng thái nhất quán mới) sau khi gặp sự cố

Quản lý giao dịch (transaction management) lo giải quyết các bài toán duy trì dược CSDL ở trong trình trạng nhất quán ngay cả khi có nhiều truy xuất đồng thời và khi có sự cố

Một giao dịch là một đơn vị tính toán nhất quán và đáng tin cậy Vì thế về mặt trực quan, một giao dịch nhận một CSDL, thực hiện một hành động trên CSDL và sinh ra một “bản” CSDL mới gây ra một dich chuyển trạng thái Điều này tương tự như điều mà câu truy vấn thực hiện, ngoại trừ trường hợp nếu CSDL nhất quán trước khi thực hiện giao dịch.

Internet of Things

Internet of Things (IoT) nghe có vẻ giống như một thuật ngữ tương lai, nhưng nó đã và đang tác động và cải thiện đời sống của chúng ta từng ngày Khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet Internet of Thing được dự đoán là một trong những xu hướng chính trong cuộc cách mạng công nghiệp lần thứ tư

Nhờ sự phát triển không ngừng của Internet đã tạo điều kiện thuận lợi cho IoT đã tham giao vào hay tác động tích cực đến cuộc sống và lao động của chúng ta hàng ngày, các tác động đó gồm có:

- Quản lý giao thông thông minh sẽ khiến bạn đi đường dễ chịu hơn Nhờ dữ liệu về đường đi, xe cộ liên tục được cập nhật tới thiết bị di động của ta, việc tránh được cả tiếng đồng hồ kẹt xe ở giờ cao điểm là hoàn toàn có thể

- Chăm sóc sức khỏe thông minh khi được ứng dụng vào ngành y tế sẽ đem lại cơ chế chăm sóc và quản lý bệnh nhân hiệu quả hơn rất nhiều Từ đó, các bệnh viện và tổ chức y tế có thể cải thiện hiệu quả vận hành của mình hơn đáng kể Thực tế, ngay vào thời điểm hiện tại, các mô hình y tế đều vướng phải rào cản lớn, khả năng tiếp cận đa thông tin cùng lúc ở cùng một thời điểm chăm sóc Ngoài các giải pháp xét nghiệm và chữa trị truyền thống, số lượng cảm biến và kết nối tăng cường của mô hình IoT sẽ cho phép bệnh viện chăm sóc bệnh nhân sớm hơn trong khi vẫn tăng cường hiệu quả chữa trị nhờ việc có thể giám sát từ xa hiệu quả hơn

- Nhà thông minh là một trong những xu thế đi đầu mà các doanh nghiệp công nghê hướng tới để cung cấp các dịch vụ cho người tiêu dùng Mọi thiết bị đồ dùng trong gia đình có thể kết nối với mạng lưới Internet, tất cả hoạt động một cách thông minh, được điều khiển thông qua các thiết bị điện tử như điện thoại máy tính bảng, Giúp cho việc quản lý ngôi nhà một cách tốt hơn

- Phát triển kinh doanh dễ thấy nhất là IoT giúp các doanh nghiệp thu thập rất nhiều dữ liệu từ máy móc và người tiêu dùng Các dữ liệu thu thập được từ khách hàng cũng rất quan trọng trong việc nâng cao chất lượng phục vụ khách hàng và phát triển dịch vụ

- Quản lý môi trường là một việc vô cùng cấp bách hiện nay, dưới sự tàn phá gây thiệt hại không nhỏ đến môi trường của con người cần có cách giải quyết để bảo vệ hay khắc phục môi trường hư hại là vô cùng cấp thiết Việc đưa IoT vào giải quyết vấn đề là một ý tưởng hay, IoT giúp ta biết được khả năng xẩy ra thiệt hại, dự báo trước những nguy hiểm, cập nhật nhanh chóng các thông tin của môi trường để kịp khắc phúc hay bảo vệ môi trưòng

- Quản lý du lịch thông minh là một hướng phát triển mà các doanh nghiệp kinh doanh cần phải chú ý tới Nhờ những thiết bị thông minh phần mềm có kết nối tới Internet ta có thể khai khác các thông tin từ khách hàng như địa điểm du lịch tới sở thích của từng cá nhân khách hàng mà từ đó có thể cải thiện kinh doanh, dịch vụ mang lại trải nghiêm tốt hơn cho khách hàng.

Mạch vi xử lý Arduino

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại có trên thị trường thường được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O (vào/ra) kỹ thuật số tương thích với nhiều board mở rộng khác nhau Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích lập trình, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các thiết bị vận hành Cộng đồng phá triển phát triển Arduino rất đông đảo, sẵn sàng hỗ trợ những người yêu thích hoặc mới bắt, có rất nhiều ví dụ mẫu và tài liệu để nghiên cứu Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++

Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người ta ước tính trung bình mỗi năm có hơn 700.000 mạch chính thức đã được đưa tới tay người dùng Giá của các board Arduino dao động xung quanh €20, hoặc $27 hoặc 574.468VNĐ, nếu tự làm thì giá có thể giảm xuống thấp hơn 150.000VNĐ

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các module, các mạch tích hợp thêm vào có thể dễ dàng thay đổi, được gọi là shield Các shield truyền thông tin với board Arduino trực tiếp thông qua các chân khác nhau Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra

14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/O số Nhiều shield ứng dụng plug-in cũng được thương mại hóa

Hı̀nh 6: Các loại mạch Arduino 1.6.2 Phần mềm

Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross- platform (nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như compile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột Một chương trình hoặc code viết cho Arduino được gọi là một sketch

Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được: setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch

Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho một bóng đèn Led sáng/tắt Trong môi trường Arduino, ta sẽ phải viết một chương trình giống như sau:

#define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // Đặt chân 13 làm đầu ra digital

} void loop () { digitalWrite (LED_PIN, HIGH); // Bật LED on delay (1000); // chờ trong 1 giây (1000 mili giây) digitalWrite (LED_PIN, LOW); // Tắt LED off delay (1000); // chờ trong 1s

1.7 Nodejs nền tảng lập trình Server

Node.js là một nền tảng chạy trên môi trường V8 JavaScript runtime - một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome Bình thường thì bạn cũng có thể tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node.js làm điều đó đối với các web Server JavaScript suy cho cùng cũng chỉ là một ngôn ngữ - vậy thì không có lý do gì để nói nó không thể sử dụng trên môi trường Server tốt như là trong trình duyệt của người dùng được

Hı̀nh 7: Mô hình hoạt động của Nodejs

Trong một môi trường Server điển hình LAMP (Linux-Apache-MySQL- PHP), bạn có một web Server là Apache hoặc NGINX nằm dưới, cùng với PHP chạy trên nó Mỗi một kết nối tới Server sẽ sinh ra một thread mới, và điều này khiến ứng dụng nhanh chóng trở nên chậm chạp hoặc quá tải - cách duy nhất để hỗ trợ nhiều người dùng hơn là bằng cách bổ sung thêm nhiều máy chủ Đơn giản là nó không có khả năng mở rộng tốt Nhưng với Node.js thì điều này không phải là vấn đề Không có một máy chủ Apache lắng nghe các kết nối tới và trả về mã trạng thái HTTP - bạn sẽ phải tự quản lý kiến trúc lõi của máy chủ đó May mắn thay, có một số module giúp thực hiện điều này được dễ dàng hơn, nhưng công việc này vẫn gây cho bạn một chút khó khăn khi mới bắt đầu Tuy nhiên, kết quả thu được là một ứng dụng web có tốc độ thực thi cao Ưu điểm : Đầu tiên là ưu điểm về tốc độ thực thi và khả năng mở rộng Node.js có tốc độ rất nhanh Đó là một yêu cầu khá quan trọng khi bạn là một startup đang cố gắng tạo ra một sản phẩm lớn và muốn đảm bảo có thể mở rộng nhanh chóng, đáp ứng được một lượng lớn người dùng khi trang web của bạn phát triển lên

Node.js có thể xử lý hàng ngàn kết nối đồng thời trong khi PHP sẽ chỉ có nước sụp đổ Bên cạnh các lợi ích về tốc độ thực thi và khả năng mở rộng, có thể bạn cũng đã biết một chút về JavaScript, vì vậy tại sao lại phải phiền toái để học thêm về một ngôn ngữ lập trình hoàn toàn mới như PHP? Và sau đó bạn sẽ có một sự phấn khích khi học về một cái gì đó mới mẻ và gần như chưa được khám phá Bạn còn nhớ cái cảm giác khi mà một cái gì đó mới xuất hiện và sau đó trở thành phổ biến khắp mọi nơi mà bạn hối tiếc đã không học về nó sớm hơn, và mãi mãi chỉ là người đến sau? Đừng phạm phải sai lầm như vậy lần này nữa Node.js đang ngày càng trở nên lớn mạnh hơn

Giống như hầu hết các công nghệ mới, việc triển khai Nodejs trên host không phải là điều dễ dàng cho người mới tiếp cận

Là mã nguồn mở nên được nhiều người biết đến và tham gia phát triển nhưng chính vì điều đó mà khiến cho Nodejs không có một khuôn mẫu thống nhất nào cho việc phát triển nền tảng

Việc sử dụng ngôn ngữ JavaScript cũng là một điểm yếu vì JavaScript không phải là một ngôn ngữ hướng đối tượng thuần túy.

Hệ quản trị cơ sở dữ liệu MYSQL

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windown, Linux, MacOSx, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…

MySQL là một trong những ví dụ rất cơ bản về hệ quản trị cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL)

MySQL được sử dụng cho việc hổ trợ Nodejs, Java, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng Nodejs hay Java,…

1.7.2 Một số đặc điểm của MySQL

MySQL là một phần mềm quản trị CSDL dạng Server-based (gần tương đương với SQL Server của Microsoft)

MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu

MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL

Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dùng trong SQL Server vậy

Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có

Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn

Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức

Hỗ trợ ngôn ngữ truy vấn cấu trúc SQL

Bạn có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft)

Năng lực: Nhiều client có thể truy cập đến Server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cập MySQL bằng cách sử dụng các công cụ quản lý để có thể đưa vào các câu lệnh truy vấn và xem các kết quả

Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẻ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên những người không có quyền truy cập thì không thể nhìn thấy dữ liệu của bạn

Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được với mọi phần cứng từ các máy PC ở nhà cho đến các máy Server

Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thể thay đổi nó

Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet.

Giới thiệu về tỉnh Quảng Nam và bài toán ứng dụng công nghệ thông tin xử lý trên môi trường Internet of Thing

Tỉnh Quảng Nam là một tỉnh thuộc vùng Duyên hải Nam Trung Bộ, Việt Nam Vùng đất giàu truyền thống văn hóa đậm đà bản sắc dân tộc, nơi có nhiều di sản văn hóa thế giới, có bờ biển đẹp trải dài khắp cả tỉnh tạo điều kiện thuận lợi cho việc phát triển kinh tế du lịch

Việc quản lý về thông tin, cở sở dữ liệu của ngành du lịch là việc vô cùng quan trọng trong thời buổi công nghệ thông tin ngày nay Việc khách du lịch sử dụng Internet để thực hiện các dịch vụ như đặt phòng, đặt vé, được thực hiện một cách thường xuyên Các dữ liệu thông tin của khách hàng tương tác với hệ thống càng lúc trở nên quan trọng hơn bao giờ hết Dữ liệu từ khách hàng có thể giúp cho doanh nghiệp kinh doanh tìm thấy những nhu cầu của khách hàng mà doanh nghiệp có thể hướng tới nhằm tăng lợi nhuận của mình Đứng trước tình thế đó việc lưu trữ và bảo đảm an toàn cho dữ liệu là việc cấp thiết đặt ra trong ngành du lịch Đã có rất nhiều giải pháp được đặt ra để đảm bảo cho việc lưu trữ dữ liệu, xong em xin trình bày một giải pháp kỹ thuật đồng bộ hóa dữ liệu cho bài toán đăng ký tour du lịch từ xa trong môi trường Internet of Thing

Thành Phố Tam Kỳ Thành Phố Hội An

Hı̀nh 8: Mô hình cơ sở dữ liệu phân tán của tỉnh Quảng Nam

Kết luận

Qua chương này em đã làm được các việc sau:

- Giới thiệu khái niệm hệ tin học phân tán, đồng bộ hóa cơ sở dữ liệu, các lợi ích của việc áp dụng công nghệ thông tin vào kinh doanh du lịch của tỉnh Quảng Nam

- Hiểu được các lý thuyết căn bản của hệ tin học phân tán và cơ sở dữ liệu phân tán

- Tìm hiều những lợi ích và tác động lớn của Internet of Thing từ đời sống xã hội đến lao động hằng ngày

- Hiểu được căn bản của nguyên lý hoạt động của arduino.

MÔ HÌNH BÀI TOÁN DU LỊCH ĐĂNG KÝ TỪ XA VÀ GIẢI PHÁP KỸ THUẬT ĐỒNG BỘ

Giới thiệu bài toán

Hệ cơ sở dữ liệu phân tán là giải pháp phù hợp với cấu trúc tự nhiên của các tổ chức hiện nay Việc sử dụng nhiều Servers đặt trên nhiều vị trí địa lý khác nhau của hệ cơ sở dữ liệu phân tán có thể giúp các Client tại mỗi vị trí ngoài việc truy xuất những dữ liệu sử dụng thường xuyên tại vị trí của mình mà còn có thể truy xuất đến dữ liệu tại các vị trí khác Hệ cơ sở dữ liệu phân tán có thể giải quyết tốt các vấn đề như đa truy cập từ xa, ngẫu nhiên, số lượng truy cập lớn, tăng tốc, an toàn,…

Trong xu hướng toàn cầu hóa hiện nay, để phù hợp với nhu cầu phát triển, các tổ chức thường phân bố các chi nhánh phân tán trên nhiều vị trí địa lý khác nhau Lúc này, việc sử dụng hệ cơ sở dữ liệu tập trung với chỉ duy nhất một hoặc một vài Servers phục vụ đa người dùng với một bài toán dữ liệu lớn sẽ gặp nhiều vấn đề khó khăn như hiệu năng khai thác không cao, dễ xảy ra ùn tắc, tốc độ chậm, không an toàn,… Điều đó có thể dẫn đến sự không nhất quán về dữ liệu Chẳng hạn, một hệ thống đặt tours du lịch nếu sử dụng hệ cơ sở dữ liệu tập trung thì tình trạng một nghế ngồi hay phòng nghỉ có thể được bán nhiều lần Áp dụng hệ cơ sở dữ liệu phân tán để giải quyết bài toán đặt vé tours du lịch từ xa mang lại nhiều thuận lợi nhưng cũng mang đến không ít những khó khăn cho các doanh nghiệp về việc quản lý, cập nhật, đồng bộ hóa dữ liệu giữa các điểm lưu trữ Một trong những vấn đề khó khăn trong hệ cơ sở dữ liệu phân tán đó là xử lý tương tranh Trong quá trình hoạt động, có thể có nhiều truy xuất đồng thời đến một tài nguyên tại cùng một thời điểm, điều đó dẫn đến vấn đề tranh giành tài nguyên Để đảm bảo cơ sở dữ liệu luôn đáng tin cậy, gắn bó và nhất quán khi xảy ra tương tranh người ta đã đề xuất một số thuật toán điều khiển tương tranh

Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống thông tin đăng ký trên mạng nói riêng như việc đăng ký các tour du lịch, mua bán trong các giao dịch thương mại điện tử, đăng ký giữ chỗ trong giao thông vận tải, đăng ký dự thi trong các hệ thống thông tin đào tạo, đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong các cơ sở dữ liệu truy cập ngẫu nhiên với số lượng truy cập lớn

Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu trong môi trường phân tán đến nay đã có một số thành công đáng kể Trước hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bản của việc gắn bó thông tin nói chung trong quá trình đa truy cập thông qua hệ thống viễn thông Việc triển khai phương pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều kiện lý tưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệu quả nhất định cho các hệ thống đăng ký Tuy nhiên, trong quá trình triển khai lập trình và vận hành các hệ thống đăng ký, vấn đề gắn bó dữ liệu trong các cơ sở dữ liệu khi hệ thống bị sự cố đang đặt ra như là vấn đề quan trọng và có ý nghĩa sống còn trong việc phát triển toàn hệ nói chung Nói tóm lại, sự cố trong các hệ thống nói chung, hệ thống đăng ký nói riêng có thể xảy ra và là nguyên nhân dẫn đến hệ thống cơ sở dữ liệu không thể đảm bảo tính gắn bó được nữa.

Các thuật toán kỹ thuật gắn bó

2.2.1 Kỹ thuật nhân bản cơ sở dữ liệu Để có được một hệ thống đáng tin cậy và nhanh chóng với cơ sở dữ liệu phân tán, chúng ta phải kết hợp sử dụng một số kỹ thuật khác nhau Các yếu tố quan trọng để đánh giá hệ thống khi lựa chọn kỹ thuật là hiệu suất, tính nhất quán và sự dư thừa Khi xử lý với một hệ thống cơ sở dữ liệu nhân bản, một số hành động được thực hiện trong quá trình thực hiện một giao dịch Trong bài viết 5 giai đoạn mà trình bày để mô tả các bước khác nhau trong hệ thống Các bước là:

- Request bước đầu tiên của một giao dịch, khi khách hàng (client) gửi yêu cầu tới một điểm Server trong hệ thống

- Server Coordination đồng bộ hóa giữa các điểm (Server) khác nhau để thực hiện các giao dịch

- Execution giai đoạn thực hiện các pha giao dịch

- Agreement Coordination giai đoạn thỏa thuận được thực hiện giữa các điểm để đảm bảo rằng tất cả các điểm đã nhận được cùng một kết quả cập nhật

- Response phản hồi về kết quả giao dịch cho khách hàng

Các giai đoạn này không phải lúc nào cũng áp dụng cho tất cả các giao thức, và thứ tự của chúng có thể khác nhau tùy thuộc vào tính chất của các giao thức được sử dụng

Các kỹ thuật này thường được chia thành hai khu vực chính khác nhau, kỹ thuật nhân bản chủ động và kỹ thuật nhân bản bị động

Nhân bản chủ động là kỹ thuật nhân rộng được thực hiện thường xuyên hơn trên dữ liệu Với sự hỗ trợ của các giao thức nhân bản chủ động các điểm Server được đồng bộ hóa với nhau mà ở đó có độ tin cậy cao về tính nhất quán

Kỹ thuật nhân bản chủ động là loại kỹ thuật sao chép an toàn nhất khi nói đến tính nhất quán và độ tin cậy Vấn đề chính đối với nhân bản chủ động là hiệu suất Việc sao chép liên tục thường dễ bị “deadlock” nhiều hơn và điều đó có thể làm giảm hiệu suất

Sao chép chủ động có thể được tách thành hai loại Kỹ thuật đầu tiên là bản sao chính bao gồm một địa điểm cơ sở dữ liệu chính với một hoặc nhiều địa điểm sao lưu Kỹ thuật thứ hai là được cập nhật ở khắp mọi điểm, nơi giao dịch có thể được thực hiện trong tất cả các điểm cùng một lúc Điều này đòi hỏi nhiều từ giao thức sử dụng để đảm bảo sự nhất quán trong toàn bộ hệ thống cơ sở dữ liệu

Nhiều loại giao thức khác nhau cho việc nhân bản chủ động sử dụng một số phương pháp để giải quyết vấn đề với cách nhất quán Một hệ thống đã được trình bày ờ bài [10] mà sử dụng ba tham số để phân loại các giao thức khác nhau Các tham số là kiến trúc Server (bản sao chính hoặc cập nhật ở mọi nơi), tương tác máy chủ (tương tác liên tục hoặc tương tác tuyến tính) và chấm dứt giao dịch (chấm dứt bỏ phiếu hoặc không bỏ phiếu chấm dứt)

Server Architecture (kiến trúc máy chủ) chia thành hai loại kiến trúc cơ sở dữ liệu chính, bản sao chính và cập nhật ở mọi nơi

Server Interaction (tương tác của máy chủ) liên quan đến các điểm liên kết trong hệ thống giao tiếp với nhau trong suốt một giao dịch Hằng số tương tác là kỹ thuật mà số lượng các thông điệp được gửi giữa các điểm liên kết là hằng số và bao nhiêu hoạt động độc lập mà một giao dịch có được Điều này có nghĩa là bộ giao dịch được gửi đi trong một thông điệp duy nhất giữa các điểm liên kết Tương tác tuyến tính là sự tương tác giữa các giao dịch được tách ra theo hoạt động Càng nhiều hoạt động của một giao dịch thì càng nhiều tin nhắn sẽ được gửi giữa các điểm

Transaction Termination (chấm dứt giao dịch) là một câu hỏi về những gì xảy ra vào cuối của một giao dịch Trong một số hệ thống bỏ phiếu để kết thúc được thực hiện để đảm bảo sự nhất quán và thỏa thuận giữa các điểm trong hệ thống trong khi các hệ thống khác dựa vào việc thực hiện xác định giao dịch và không bỏ phiếu vào cuối một giao dịch

Sao chép lười biếng cũng chứa cả bản sao chính và cập nhật ở mọi nơi mặc dù chúng hoạt động theo một cách hơi khác nhau Sự khác biệt chính giữa các giao thức chủ động (eager) và bị động (lazy) là số lần đồng bộ được thực hiện trong hệ thống cơ sở dữ liệu trong quá trình thực hiện giao dịch Trong nhân bản chủ động các giao thức bỏ phiếu và đồng bộ hóa được thực hiện trước khi cam kết bất cứ điều gì Đây không phải là trường hợp với Lazy Replication Để tăng tốc độ giao dịch khách hàng nhận được một phản ứng trước khi các điểm liên kết thực hiện bất cứ sự điều phối với các điểm liên kết khác trong hệ thống [11]

Phương thức làm việc này cho phép khách hàng nhận được phản ứng từ một điểm, nhưng mặt khác không có thỏa thuận nào được thực hiện trong hệ thống rằng giao dịch có thể được thực hiện mà không can thiệp vào các giao dịch khác chạy song song Điều này có thể dẫn đến các vấn đề về tính nhất quán trong cơ sở dữ liệu [1][11]

Mặc dù các vấn đề có thể xảy ra với sự sao chép bị động, nhưng nhiều hệ thống ngày nay vẫn sử dụng kỹ thuật này vì nó cho phép thực hiện tốt hơn trong nhiều hệ thống cơ sở dữ liệu phân tán [1]

2.2.2 Kỹ thuật cập nhật dữ liệu

Hệ thống cơ sở dữ liệu sử dụng Update Everywhere (cập nhật mọi nơi) không chứa một điểm lưu trữ chính, thay vào đó tất cả các điểm lưu trữ trong hệ thống đều được coi là bằng nhau Khi người dùng muốn thực hiện một giao dịch, nó có thể truy cập đến bất kỳ điểm Server nào có sẵn Sau đó điểm nhận được giao dịch thực hiện một số phương pháp để truyền đi dữ liệu cập nhật cho các điểm Server khác và để đảm bảo rằng các thông tin trong tất cả các điểm đều nhất quán

Kiến trúc cơ sở dữ liệu này làm tăng tốc thời gian truy cập cho người dùng khi họ có thể truy cập vào bất kỳ cơ sở dữ liệu nào, tuy nhiên nó lại đòi hỏi nhiều hơn về việc khóa và cam kết các giao thức bởi vì chúng dễ dàng có thể không thống nhất giữa các cơ sở dữ liệu nếu cùng một bản ghi dữ liệu được truy cập và cập nhật trong các điểm riêng biệt [8]

Một hệ thống cơ sở dữ liệu phân tán bằng cách sử dụng chiến lược cập nhật ở mọi nơi có thể là cả loại bị động và chủ động, tùy thuộc vào cách cập nhật và truyền dữ liệu giữa các điểm Server cơ sở dữ liệu khác nhau

2.2.2.1 Cập nhật dữ liệu chủ động

Có hai cách tiếp cận khác nhau để đạt được tính nhất quán với chiến lược cập nhật ở mọi nơi Thứ nhất là sử dụng khóa để đảm bảo rằng không có giao dịch đồng thời xử lý cùng một dữ liệu Cách tiếp cận thứ hai là sử dụng một chương trình atomic (nguyên tử) broadcast trong hệ thống để quyết định thứ tự, trong đó các giao dịch xung đột phải được xử lý [11] a) Cập nhật mọi nơi với khóa

Đề xuất thuật toán

Để dễ dàng mô tả các giải thuật đảm bảo gắn bó dữ liệu phân tán, chúng ta giả thiết rằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác của nó, tiến trình này được gọi là điều phối viên (Coordinator) Điều phối viên trao đổi với các thành viên (Participant) tại những vị trí có tham gia vào việc thực hiện các thao tác của giao dịch

Cải tiến giải thuật hai pha tuyến tính (Linear 2PC), ta thiết kế giải thuật mà trong đó các thành viên có thể trao đổi với nhau

Có một thứ tự giữa các vị trí trong hệ thống dành cho việc giao tiếp Chúng ta hãy giả thiết rằng thứ tự giữa các vị trí có tham gia vào việc thực hiện một giao dịch là 1, 2,…, N với điều phối viên là vị trí đầu tiên trong thứ tự này (Giải thuật được minh họa bằng hình 1)

Theo mô hình trong hình vẽ, ta có các đối tượng sau :

1 C 1 , C 2 , , C n là các Client truy cập Web Server bằng trình duyệt Web

2 Nodejs là các đối tượng xử lý yêu cầu được gửi từ các C i , i=1,n

3 TPC-Server-App1, TPC-Server-App2, , TPC-Server-AppN là các Server cài đặt thuật toán 2PC tuyến tính (Linear Two Phase Commit - TPC)

4 TPCMonitorServer là một trình giám sát cho phép hiển thị quá trình dịch chuyển của danh sách di chuyển trong quá trình xử lý của các TPC-Server-Appi, i = 1,N

5 ConnectionPool là chương trình điều khiển các liên kết cơ sở dữ liệu dùng chung

6 Database1, Database2, , DatabaseN là các cơ sở dữ liệu quan hệ phân tán trên mạng

Các C 1 , C 2 , , C n là các Client truy cập vào Web Server bằng trình duyệt Web Các yêu cầu này đòi hỏi việc xử lý phải truy vấn đến các cơ sở dữ liệu phân tán Do đó việc xử lý thành công hay không phụ thuộc vào kết quả của tất cả các truy vấn này Điều đó có nghĩa là, xử lý sẽ thành công nếu tất cả các truy vấn đều thành công, ngược lại, xử lý sẽ không thành công nếu có bất kỳ một truy vấn nào bị lỗi hoặc không thực hiện được

Khi nhận được một yêu cầu từ các C i , i=1,n, các Servlet sẽ dựa vào yêu cầu này để thành lập nên một danh sách các Database Server sẽ truy vấn và các câu lệnh SQL tương ứng được thực hiện tại mỗi Server Việc thành lập danh sách các câu lệnh SQL truy vấn tại mỗi Database Server được dựa theo thứ tự ưu tiên SELECT, DELETE, UPDATE, INSERT Sau khi thành lập danh sách di chuyển, Servlet chuyển danh sách di chuyển này cho TPC-Server-App đầu tiên trong danh sách di chuyển thông qua phương thức gọi từ xa Socket

T C P M on it or S er ve r T C P -S er ve r-A pp -1 No de js T C P -S er ve r-A pp -2 T C P -S er ve r-A pp -3 T C P -Se rv er -A pp -N

Hı̀nh 11 : Mô hình đ a Server

Mỗi TPC-Server-App cài đặt một giao diện cung cấp phương thức xử lý theo thuật toán 2PC tuyến tính với tham số là danh sách di chuyển, chỉ mục hiện tại của danh sách và trả về kết quả là danh sách kết quả truy vấn của chính nó và các Server đứng phía sau nó trong danh sách di chuyển

Nếu quá trình xử lý tại bất kỳ một TPC-Server-App nào bị lỗi thì kết quả trả về là null Dựa vào kết quả trả về này, các TPC-Server-App commit hoặc rollback transaction đang quản lý Như vậy, khi TPC-Server-App đầu tiên nhận được danh sách di chuyển, TPC-Server-App bắt đầu một transaction để thực hiện các câu lệnh SQL truy vấn CSDL cục bộ thông qua kết nối CSDL được lấy từ ConnectionPool cục bộ Tiếp theo, TPC-Server-App tăng chỉ mục hiện tại của danh sách di chuyển lên 1 và chuyển danh sách di chuyển này đến TPC-Server-App kế tiếp Quá trình này được lặp lại cho đến khi kết thúc danh sách di chuyển Tại Server cuối cùng trong danh sách di chuyển, nếu việc truy vấn CSDL cục bộ thành công, TPC-Server-App commit transaction và trả về kết quả là ResultQueryList khác null Dựa vào kết quả trả về này, Server đứng trước trong danh sách di chuyển sẽ commit hoặc rollback transaction cục bộ và trả về kết quả cho Server liền trước Khi Servlet nhận được kết quả là null có nghĩa là xử lý không thành công Ngược lại, Servlet sẽ tiếp tục xử lý kết quả nhận được để trả về cho Client

Các bước cơ bản của giải thuật đề xuất nhằm minh họa cho việc cải tiến giải thuật MAONT và giải thuật hai pha tuyến tính được mô tả qua hình 2 Việc triển khai xây dựng chương trình bằng ngôn ngữ lập trình Java cùng với thư viện RMI và tiến hành thực nghiệm sau đó đã đạt được kết quả nhất định

Riêng những kết quả thực nghiệm sẽ được trình bày trong các phần tiếp theo của đề tài nghiên cứu.

Kết luận

Qua chương này em đã làm được các việc sau:

- Cải tiến giải pháp kỹ thuật đồng bộ hóa cơ sở dữ liệu

- Tìm hiểu được các ưu điểm và nhược điểm của các kỹ thuật và giải thuật

- Tìm được định hướng cho việc giải quyết các vấn đề gắn bó dữ liệu trong môi trường Internet

- Phát triển được giải thuật trên cở sở các bài toán cũ.

GIẢI PHÁP KỸ THUẬT GẮN BÓ

Lưu đồ giải thuật

Lưu đồ giải thuật mô tả việc thực hiện giao dịch của các Server bằng giải thuật hai pha tuyến tính

Thành lập danh sách di chuyển

Truy vấn CSDL cục bộ

Chuyển sang trạng thái ủy thác

Chuyển sang trạng thái khôi phục

Trả kết quả về cho Client

Truy vấn CSDL cụ bộ

Chuyển sang trạng thái ủy thác

Chuyển sang trạng thái khôi phục

Trả về kết quả cho Server liền trước

Gọi phương thức từ xa trên server kê tiếp

Truy vấn CSDL cụ bộ

Chuyển sang trạng thái ủy thác

Chuyển sang trạng thái khôi phục

Trả về kết quả cho Server liền trước

Gọi phương thức từ xa trên server kê tiếp

Hı̀nh 12: Lưu đồ giải thuật

Demo chương trình

3.2.1 Khởi tạo thực thể MySQL

Hệ quản trị cơ sở dữ liệu MySQL hỗ trợ cho việc quản lý nhiều hệ quản trị cơ sở dữ liệu độc lập với nhau Việc sử dụng nhiều thực thể cùng một lúc cần phải qua việc cài đặt trên hệ thống ở đây là hệ điều hành Linux

Mở file my.cnf bằng câu lệnh “sudo nano /etc/my.cnf”

Sau đó điền các thông tin của các thực thể như sau

[mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin user = root password = 123456

[mysqld1] user = root pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /var/lib/mysql/1

[mysqld2] user = root pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /var/lib/mysql/2

[mysqld3] user = root pid-file = /var/run/mysqld/mysqld3.pid socket = /var/run/mysqld/mysqld3.sock port = 3310 datadir = /var/lib/mysql/3

Tiếp tục thực thi câu lênh cài đặt các thực thể

- Server mysql1 “sudo mysql_install_db user=mysql datadir =

- Server mysql2 “sudo mysql_install_db user=mysql datadir =

- Server mysql3 “sudo mysql_install_db user=mysql datadir =

Khởi động các thực thể hệ quản trị mysql “sudo mysqld_multi start”

Cuối cùng kiểm tra các thực thể đã chạy

Hı̀nh 13: Các thực thể của MySQL 3.2.2 Cơ sở dữ liệu của bài toán

- Dữ liệu gồm có 8 bảng dữ liệu

- Bảng tour là bảng lưu trữ các lịch trình của tour du lịch, thông tin tour, điểm đi và điểm đến

- Bảng place là bản lưu trữ thông tin các địa danh, địa điểm du lịch

- Bảng register là bảng đăng ký của khách hàng tham gia vào hệ thống

- Bảng busserivce lưu trữ các hãng dịch vu xe du lịch

- Bảng account lưu trữ thông tin của nhân viên

- Bảng role lưu trữ mức độ ưu tiên của tài khoản

- Bảng restaurent lưu thữ thông tin nhà hàng của công ty du lịch

- Bảng car lưu trữ thông tin xe du lịch của công ty cần quản lý

- Mối quan hệ bảng place và bảng tour là 1 – n (một – nhiều)

- Mối quan hệ giữa register và tour là 1 – n (một – nhiều)

- Mối quan hệ giữa busservice và register là 1 – n (một – nhiều)

- Mối quan hệ role và account là 1 – n (một – nhiều)

Hı̀nh 14: Cơ sở dữ liệu 3.2.3 Cài đặt Server

- Thực hiện lênh “npm start” trên Server 1, Server sẽ lắng nghe các yêu cầu của Client tại port 5000, gửi thông báo tại port 5001 và thông báo kết nối với mạch Arduino

- Chạy Server 2 “nodemon Server.js”, Server lắng nghe Client tại port

2000, kết nối với Server 1 và Server 3

- Chạy Server 3 “nodemon Server.js” khởi động và kết nối với Server 2

Hı̀nh 17: Server 3 3.2.4 Giao diện chương trình

- Trang đăng nhập sử dụng để xác nhận quyền truy cập vào databases

Hı̀nh 18: Trang đăng nhập

- Trang danh sách đã đăng ký tour du lịch Xem thông tin của khách hàng

Hı̀nh 19: Danh sách đăng ký tour du lịch

- Trang đăng ký tour đặt tour dịch mà khách hàng yêu cầu

Hı̀nh 20: Đăng ký tour

- Trang kiểm tra đồng bộ hóa dữ liệu để kiểm tra các Server có giống nhau về dữ liệu

Hı̀nh 21: Giao diện kiểm tra đồng bộ dữ liệu

- Mạch điện thông báo sự cố của từng nhà hàng

- Việc sử dụng nút bấm button để thông báo cho Server sự cố xảy ra

Hı̀nh 22: Mô hình thông báo sự cố bằng mạch Arduino

- Thông báo sự cố tại một client (nhà hàng), thông báo nằm ở góc bên phải phía trên của trang web Thông báo gửi đến nhà hàng hay xe của công ty đang gặp sự cố

Hı̀nh 23: Thông báo sự cố

- Trang xem nhà hàng nào đang gặp sự cố:

Hı̀nh 24: Trang xem danh sách nhà hàng đang gặp sự cố

- Mô hình kết nối giữa Arduino với Server và điện thoại Có hai đèn led đỏ thông báo sự cố và xanh để thông báo tình trạng ổn định

Hı̀nh 25: Mạch Arduino và module bluetooth HC06

- Giao diện mô phỏng thông báo với thiết bị điện thoại qua bluetooth, với các thông báo như là đã kết nối với mạch Arduino( hay là xe du lịch ), tình trạng xe được thông báo trên điện thoại

Hı̀nh 26: Thông báo kết nối qua bluetooth

- Trang chủ của hệ website, giới thiệu với người dùng các tour dịch mà người dùng có thể đăng ký

Hı̀nh 27: Giao diện của người dùng chọn tour

- Trang giao diện đăng ký thân thiện với người dùng sau khi kích chọn vào tour du lịch trước đó.

Kết luận

Qua chương này em đã làm được các việc sau:

- Mô phỏng được quá trình đăng ký tour du lịch trên môi trường Internet, thực hiện được quá trình đồng bộ hóa dữ liệu trên hệ thống ba Server

- Xây dựng được hệ thống đăng ký tour du lịch phát triển chương trình trong thực tế

- Chương trình demo đã đáp ứng được các nhu cầu của việc phân tích và áp dụng thuật toán hai pha tuyến tính.

Ngày đăng: 29/02/2024, 22:57

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w