Cổng thông tin điện tử Giáo dục Ninh Bình

Một phần của tài liệu Ứng dụng WebGis trong quản lý mạng lưới trường học trên địa bàn tỉnh Ninh Bình (Trang 65)

Mục đích của bài toán là xây dựng ứng dụng quản lý mạng lưới trường học trực tuyến tích hợp vào cổng thông tin điện tử của Sở Giáo dục và Đào tạo tỉnh Ninh Bình. Để làm rõ việc xây dựng kiến trúc của ứng dụng cũng như các định hướng để thiết kế ứng dụng trước khi triển khai xây dựng mã nguồn, mục này trình bày sơ bộ công nghệ và kiến trúc của cổng thông tin điện tử của ngành Giáo dục và Đào tạo tỉnh Ninh Bình. Đây là một website được phát triển dựa trên phần mềm quản trị nội dung và khung làm việc mã nguồn mở Joomla.

Thực hiện mục tiêu đẩy mạnh ứng dụng công nghệ thông tin trong ngành giáo dục tỉnh Ninh Bình, bên cạnh những hoạt động đầu tư tăng cường cơ sở hạ tầng và thiết bị phục vụ dạy, học và ứng dụng tin học, ngành giáo dục và đào tạo

Ninh Bình cũng rất trú trọng phát triển các nội dung trực tuyến phục vụ yêu cầu truy cập thông tin, sử dụng dịch vụ của cán bộ, giáo viên, học sinh và các tầng lớp nhân dân. Do được phát triển trên hệ quản trị nội dung mã nguồn mở Joomla nên cổng thông tin điện tử ngành giáo dục tỉnh đã tích hợp được nhiều ứng dụng và bước đầu phát huy hiệu quả, điển hình là hệ thống website thành viên của các đơn vị trường học trực thuộc, hệ thống tài nguyên giáo dục ngành, hệ thống quản lý văn bản điện tử, hệ thống đào tạo và thi trực tuyến, …

Hình 3.2: Trang chủ cổng thông tin điện tử Giáo dục và Đào tạo Ninh Bình 3.4.1.2. Kiến trúc của hệ quản trị nội dung Joomla

Joomla là phần mềm mã nguồn mở miễn phí cung cấp cả hệ quản trị nội dung và khung làm việc dựa trên ngôn ngữ lập trình web PHP và cơ sở dữ liệu MySQL [15]. Dựa trên phần mềm này, các nhà phát triển ứng dụng web có thể triển khai xây dựng các website với nội dung đa dạng, khả năng tùy biến cao. Hệ quản trị nội dung của Joomla cung cấp khả năng tạo ra các website với những nội dung cơ bản nhất, bên cạnh đó khung làm việc Joomla cho phép các nhà phát triển web có thể nhanh chóng tạo ra các ứng dụng bổ sung cho website được tạo ra từ hệ quản trị nội dung Joomla. Joomla phát triển nhanh và đã trở thành một hệ quản trị nội dung mã nguồn mở phổ biến với gần 2.000 lập trình viên hỗ trợ phát triển thường xuyên và trên 200.000 thành viên tham gia cộng đồng xây dựng và phát triển và sử dụng Joomla. Số lượng ứng dụng bổ sung tích

hợp cho Joomla đã được cộng đồng phát triển xây dựng rất phong phú, đáp ứng yêu cầu sử dụng trên nhiều lĩnh vực khác nhau. Các thành phần chính của Joomla bao gồm:

- Nhân hệ thống cung cấp kiến trúc và các thành phần phần mềm cơ bản đảm bảo hệ thống có thể vận hành sau khi cài đặt trên máy chủ.

- Các thành phần ứng dụng thực hiện các chức năng riêng biệt được cài đặt vào hệ thống để tạo ra những ứng dụng cho hệ thống. Các thành phần ứng dụng là một dạng ứng dụng bổ sung vào hệ thống, thường được hiển thị tại khu vực chính trong giao diện người dùng.

- Các mô đun ứng dụng thực hiện các chức năng riêng biệt. Khác với các thành phần ứng dụng, các mô đun ứng dụng thường hiển thị dưới dạng các khung nhỏ, chịu trách nhiệm hiển thị nội dung tại một vị trí nhất định trong giao diện người dùng để tương tác với người dùng và trả về kết quả xử lý.

- Các ứng dụng nhúng là một dạng ứng dụng bổ sung chịu trách nhiệm bổ sung cho cả hệ thống hoặc một ứng dụng bổ sung khác những chức năng đặc biệt nào đó.

- Giao diện của hệ thống: Là một phần của hệ thống, có thể thay đổi được và được cài đặt bổ sung để thay đổi giao diện của hệ thống.

- Ngôn ngữ của hệ thống: Là một phần của hệ thống, có thể thay đổi được và được cài đặt bổ sung để thay đổi ngôn ngữ cho hệ thống.

Với kiến trúc của hệ quản trị nội dung Joomla, chúng ta có thể phát triển thêm các ứng dụng bổ sung độc lập theo chuẩn của Joomla để cài đặt tích hợp vào website dưới dạng một thành phần, một mô đun, hoặc một ứng dụng nhúng. Việc xây dựng một ứng dụng bổ sung cài đặt vào Joomla ngoài việc đảm bảo được tính thống nhất và tương thích hoàn toàn với hệ thống đã có, chúng ta còn tận dụng được tài khoản người dùng và các tài nguyên đã có trong hệ thống để triển khai ứng dụng, đồng thời tiết kiện được đáng kể chi phí xây dựng ứng dụng do đã có sẵn khung làm việc Joomla hỗ trợ cho việc xây dựng các ứng dụng bổ sung cho hệ quản trị nội dung Joomla.

3.4.1.3. Khung làm việc Joomla

Khung làm việc Joomla là một phần mềm được xây dựng để hỗ trợ việc tạo ra các thành phần ứng dụng khác nhau cho hệ quản trị nội dung Joomla theo phương pháp hướng đối tượng. Khung làm việc cung cấp các chương trình, thư viện mã nguồn và các mẫu kiến trúc chuẩn để giúp lập trình viên dễ dàng phát triển các thành phần ứng dụng cho website Joomla.

Hình 3.3: Kiến trúc cơ bản của khung làm việc Joomla

Kiến trúc cơ bản của khung làm việc joomla gồm 3 tầng:

a) Tầng trên cùng là tầng bổ sung: Bao gồm các thành phần ứng dụng, các mô đun ứng dụng và các giao diện bổ sung.

b) Tầng giữa là tầng ứng dụng: Chứa các lớp JApplication của khung làm việc, bao gồm:

- Jinstallation: Cho phép xây dựng ứng dụng cài đặt Joomla trên máy chủ.

- Jadministrator: Cho phép xây dựng các ứng dụng quản trị hệ thống.

- Jsite: Cho phép xây dựng các ứng dụng hiển thị trên website, tương tác với người dùng cuối.

- XML-RPC: Hỗ trợ quản trị từ xa đối với website Joomla. c) Tầng dưới cùng là tầng khung làm việc, bao gồm:

- Libraries: Thư viện sử dụng cho khung làm việc hoặc cho lập trình viên phát triển ứng dụng bổ sung.

- Các ứng dụng cắm chạy: Ứng ựng bổ sung cho phép sử dụng trong khung làm việc.

3.4.1.4. Mô hình phát triển phần mềm MVC

Mô hình phát triển phần mềm MVC là phương pháp thiết kế phần mềm bắt nguồn từ việc phát triển giao diện người dùng trong ngôn ngữ lập trình Smalltalk, đây là một trong những phương pháp thiết kế thành công nhất trong các phương pháp thiết kế hướng đối tượng. Hiện nay, MVC được dùng rộng rãi trong nhiều hệ thống phần mềm hướng đối tượng, bất kể được viết bằng ngôn ngữ hướng đối tượng nào.

MVC là viết tắt của Model-View-Controller, phương pháp thiết kế MVC là phương pháp chia nhỏ một ứng dụng thành nhiều lớp hoặc chia nhỏ phần giao diện người dùng của một ứng dụng thành ba thành phần chính là Model, View

Hình 3.4: Mô hình MVC đơn giản

- Model được hiểu là phần “Mô hình”: Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ các dữ liệu được lưu trong cơ sở dữ liệu hay từ các hệ thống ứng dụng khác như hệ thống email.

- View được hiểu là phần “Hiển thị”: Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các trình đơn, nút bấm, hộp đối thoại, chọn lựa, ... để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.

- Controller được hiểu là phần “Điều khiển”: Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người dùng từ chuột, bàn phím, các thiết bị ngoại vi khác và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng.

Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều khiển và chức năng truy cập dữ liệu của chương trình được chia làm các phần tách biệt. PHP là một ngôn ngữ lập trình có hỗ trợ hướng đối tượng thuần túy nên việc áp dụng MVC vào các phần mềm viết bằng PHP rất dễ và hiển nhiên. Hệ quản trị nội dung Joomla được thiết kế hoàn toàn tuân theo mô hình MVC sử dụng ngôn ngữ lập trình PHP.

3.4.1.5. Ứng dụng quản lý mạng lưới trường học

Như vậy, để phát triển ứng dụng WebGIS quản lý mạng lưới trường học tích hợp vào website đã có của ngành Giáo dục và Đào tạo Ninh Bình, chúng ta cần xây dựng ứng dụng có kiến trúc tuân theo chuẩn xây dựng thành phần ứng

dụng bổ sung cho hệ quản trị nội dung Joomla. Thành phần ứng dụng bổ sung cho Joomla cần được xây dựng tuân theo kiến trúc MVC của Joomla.

Hình 3.5: Mô hình Joomla MVC

3.4.2. Đặc tả Use-Case của bài toán

3.4.2.1. Tác nhân

a) User: Người dùng thông thường, được quyền duyệt bản đồ mạng lưới trường học, tra cứu thông tin các điểm trường, góp ý và liên hệ với ban quản trị hệ thống hoặc các đơn vị giáo dục (Sở Giáo dục và Đào tạo tỉnh, Phòng Giáo dục và đào tạo các huyện thị, các trường học).

b) User-Register: Là các thành viên của hệ thống (chính là những người dùng có tài khoản trong cơ sở dữ liệu của cổng thông tin điện tử ngành Giáo dục và Đào tạo tỉnh Ninh Bình), ngoài quyền truy cập giống như người dùng thông thường còn được quyền truy cập các điểm trường hoặc các thông tin chỉ dành cho thành viên. Trong thiết kế, hệ thống cho phép người quản trị tự tạo ra các bản đồ mạng lưới trường học theo mục đích riêng, ngoài bản đồ mặc định sẽ được hiển thị tại khu vực chính của giao diện người dùng để phục vụ yêu cầu tra cứu và quản lý toàn bộ mạng lưới trường học trong tỉnh, người quản trị có thể tạo ra các bản đồ theo những yêu cầu đặc biệt ví dụ bản đồ có các thông tin đặc biệt chỉ dành cho công tác quản lý, bản đồ giáo dục chi tiết hơn đối với một huyện (dùng cho Phòng Giáo dục và Đào tạo các huyện, thị). Chỉ các thành viên đăng ký, với mức độ quyền hạn của mình có thể truy cập và thao tác trên các dữ liệu riêng này. Thành viên của hệ thống được chia thành các mức quyền hạn khác nhau:

- Thành viên thông thường: Mức thấp nhất của các thành viên trong hệ thống, được quyền truy cập và sử dụng các chức năng giống người dùng thông thường; được truy cập thêm một số thông tin trong phạm vi cho phép; được gửi bài cho các trường, các Phòng Giáo dục và Đào tạo, Sở Giáo dục và Đào tạo.

- Thành viên quản trị điểm trường: Ngoài các chức năng như thành viên thông thường, thành viên quản trị điểm trường có thêm khả năng cập nhật thông tin điểm trường của mình.

- Thành viên quản trị cấp huyện: Ngoài chức năng như thành viên thông thường, thành viên này có quyền hạn cập nhật các điểm trường và thông tin các điểm trường trong phạm vi huyện, thị mà mình phụ trách.

- Thành viên quản trị cấp tỉnh: Ngoài chức năng như thành viên thông thường, thành viên này còn được quyền cập nhật các điểm trường và thông tin các điểm trường trong phạm vi toàn tỉnh.

- Thành viên quản trị hệ thống: Được toàn quyền truy cập hệ thống, chỉnh sửa, cấu hình, cài đặt hệ thống, tạo các bản đồ và cập nhật điểm trường và thông tin điểm trường trên toàn tỉnh.

3.4.2.2. Use-case Duyệt bản đồ: Duyệt bản đồ:

- Xem bản đồ toàn cảnh;

- Xem bản đồ ở dạng mặc định hoặc dạng ảnh vệ tinh, dạng hỗn hợp; - Phóng to, thu nhỏ bản đồ;

- Điều hướng bản đồ, di chuyển bản đồ;

- Tìm vị trí một điểm trường, một địa danh, trung tâm một xã, một huyện trên bản đồ;

- Xem thông tin chi tiết tại một điểm trường trên bản đồ.

Gửi bài đến thành viên quản trị của trường, Phòng và Sở GD&ĐT:

- Đăng nhập hệ thống;

- Gửi bài viết, thông tin đến thành viên lựa chọn qua email hoặc hệ thống tin nhắn nội bộ.

Quản trị điểm trường:

- Duyệt bản đồ, xác định vị trí điểm trường;

- Cập nhật thông tin chi tiết của điểm trường qua hệ thống quản trị.

Quản trị các điểm trường trong phạm vi huyện, thị:

- Duyệt bản đồ, di chuyển tâm vùng hiển thị đến trung tâm huyện;

- Cập nhật các điểm trường và thông tin chi tiết của các điểm trường trong phạm vi huyện.

Quản trị điểm trường trong phạm vi toàn tỉnh:

- Duyệt bản đồ, di chuyển tâm vùng hiển thị đến trung tâm tỉnh hoặc duyệt bản đồ ở chế độ mặc định;

- Cập nhật các điểm trường và thông tin chi tiết của các điểm trường trong phạm vi toàn tỉnh.

Quản trị hệ thống:

- Duyệt bản đồ, di chuyển tâm vùng hiển thị đến trung tâm tỉnh hoặc duyệt bản đồ ở chế độ mặc định;

- Cập nhật các điểm trường và thông tin chi tiết của các điểm trường trong phạm vi tỉnh;

3.4.3. Xây dựng mã nguồn cho ứng dụng

3.4.3.1. Cơ sở dữ liệu

Do được xây dựng dưới dạng một thành phần ứng dụng bổ sung cài đặt vào hệ thống quản trị nội dung Joomla, ứng dụng được phép sử dụng các tài nguyên và dữ liệu có sẵn của Joomla, chúng ta chỉ cần tạo thêm các bảng để lưu trữ cơ sở dữ liệu riêng của ứng dụng. Trong phiên bản thứ hai của ứng dụng, có 08 bảng được bổ sung vào cơ sở dữ liệu Joomla. Thông tin xây dựng cơ sở dữ liệu của các bảng này được mô tả chi tiết tại Phụ lục 1 của luận văn, sau đây chúng ta sẽ tìm hiểu sơ bộ về các bảng này.

Hình 3.7: Mô hình thiết kế cơ sở dữ liệu ứng dụng

- nb_gmaps_adapters: Bảng lưu dữ liệu bổ sung từ bên ngoài vào bản đồ.

- nb_gmaps_category: Bảng lưu dữ liệu liên quan tới việc phân loại trong ứng dụng bản đồ, cụ thể trong ứng dụng này là các loại hình trường học.

- nb_gmaps_config: Bảng lưu dữ liên quan tới cấu hình ứng dụng, bao gồm các thông số cài đặt ứng dụng, các thông số mặc định của bản đồ.

- nb_gmaps_icons: Bảng lưu dữ liệu quản lý hình ảnh, biểu tượng dùng trong bản đồ.

- nb_gmaps_maps: Bảng chứa dữ liệu quản lý các bản đồ trong ứng dụng.

- nb_gmaps_markers: Bảng chứa dữ liệu liên quan tới tầng dữ liệu bổ sung cho bản đồ như điểm đánh dấu, đường, khoanh vùng, … Trong ứng dụng cụ thể này, bảng dùng để lưu trữ các điểm trường.

- nb_gmaps_points: Bảng lưu dữ liệu quản lý các thẻ trong cửa sổ thông tin điểm trường, bổ trợ cho bảng nb_gmaps_markers.

- nb_gmaps_sysadapters: Bảng lưu trữ các dữ liệu bổ sung từ các ứng dụng khác trong cùng hệ thống.

3.4.3.2. Kiến trúc mã nguồn

Theo mô hình kiến trúc Joomla và khung làm việc Joomla, các ứng dụng bổ sung được hỗ trợ xây dựng theo mô hình kiến trúc Model-View-Controller (MVC). Như vậy, để phát triển ứng dụng WebGIS quản lý trường học tích hợp vào Joomla dưới dạng một thành phần ứng dụng bổ sung, tác giả xây dựng mã nguồn từ khung làm việc Joomla tuân theo kiến trúc MVC. Trong giai đoạn đầu nghiên cứu về Google Maps API, tác giả sử dụng Javascript API phiên bản 2 để phát triển ứng dụng. Sau khi Google công bố Javascript API phiên bản 3 với những cải thiện đáng kể, tác giả đã chuyển sang xây dựng ứng dụng phiên bản 2 hoàn toàn mới sử dụng Google Map Javascript API phiên bản 3. Đây là một ứng dụng WebGIS động, mã API của Google được nhúng trong mã lập trình PHP chạy phía máy chủ, toàn bộ dữ liệu hiển thị khi chạy ứng dụng được chuyển cho

Một phần của tài liệu Ứng dụng WebGis trong quản lý mạng lưới trường học trên địa bàn tỉnh Ninh Bình (Trang 65)