Cơ chế Extension (Plugin)

Một phần của tài liệu Xây dựng hệ thống tương tác trực tuyến (Trang 48)

Khái nim Extension (Plugin)

Extension là cơ chế cho phép chạy các đoạn mã đóng gói từ bên ngoài, cùng với hệ thống, ứng dụng mà không làm ảnh hưởng đến phần lõi của hệ thống, ứng dụng đó. Một hệ thống cho phép cài đặt extension, là một hệ thống có khảnăng mềm dẻo, cho phép người phát triển tự do xây dựng các phần mở rộng dựa trên api mà hệ

thống cung cấp. Một Extension là tập hợp các file cài đặt, cấu hình để extension có thể chạy được.

Plugin là cũng là các phần mở rộng, cắm thêm vào hệ thống nhưng đảm nhiệm một chức năng, nhiệm vụ cụ thể. Các Plugin có thểđược chứa trong Extension. Đặc thù của Plugin là thực hiện một nhiệm vụ cụ thể vì vậy chúng thường gắn với các Class với hành vi và thuộc tính của riêng nó.

Với cơ chế Extension, hệ thống hoàn toàn có thể quản lý bật tắt các phần mở

rộng, giảm thiểu và ngăn ngừa lỗi từ các phần mở rộng bằng cách tạo ra các khuôn mẫu đòi hỏi các extension phải cài đặt nếu muốn tích hợp vào hệ thống, đảm bảo hệ

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 48 thống vẫn hoạt động bình thường nếu các extension bị lỗi, từđó tăng khảnăng chịu lỗi hệ thống.

Extension xuất hiện ở rất nhiều các hệ thống, ứng dụng, framework khác nhau

như: extension trong hệ điều hành, extension với các trình duyệt web (Chorme, Firefox, IE), extension trong các web framework (joomla, wordpress)…

Cơ chế extension trong các game server engine càng trở nên rõ ràng khi người phát triển có thể xây dựng nhiều game logic khác nhau, nghiệp vụ rất đa dạng nhưng đều có đặc điểm chung là quản lý user, quản lý luồng ra vào phòng, giao tiếp giữa user và hệ thống. Do đó các hệ thống game server cần có cơ chế extension, cho phép

người phát triển tùy biến, cài đặt các phần mở rộng thông qua API mà hệ thống cung cấp.

Cấu trúc thư mục cài đặt các phn m rng

Hình 3.10: Cấu trúc thư mục cài đặt phần mở rộng

Theo cấu trúc thư mục trên các phần mở rộng sau khi đã được đóng gói được

đặt trong thư mục extensions. Cấu trúc file của một phần mở rộng bao gồm: thư mục

có tên tương ứng với phần mở rộng, thư mục này chứa 2 thư mục con khác là config

và lib. Trong thư mục config người phát triển cấu hình các plugin, các đối tượng sử

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 49

thư viện của phần mở rộng. Sau đó hệ thống sẽcó cơ chếđể duyệt qua các thư mục này, khởi tạo extension và chạy cùng server.

Cơ chế chy các phn m rng

Các chương trình viết bằng Java được các IDE hỗ trợ biên dịch các file .java thành các file .class dưới dạng byte code, sau đó sử dụng JVM để thông dịch các file .class thành mã máy tương ứng, từđó chương trình được nạp và chạy thông qua CPU.

Để chạy các phần mở rộng ta sử dụng ClassLoader trong Java hỗ trợ nạp các file class từcác file thư viện đóng gói (.jar) vào máy ảo JVM mà không cần phải đặt chúng vào –classpath khi chạy chương trình.

Hình 3.11: Cơ chế load class trong Java Trong Java có 3 loại Class Loader:

x Bootstrap Class Loader (Bộ nạp Lớp Khởi động): nạp các lớp java căn bản (core class) thuộc các gói như java.lang, java.util, v.v.. Những lớp này là một phần của môi trường thực thi của java (JRE). Bootstrap Class Loader

được triển khai riêng cho từng nền tảng nên có thể khác nhau giữa các JVM.

x Extensions Class Loader (Bộ nạp Lớp Mở rộng): nạp các lớp java từthư

mục JRE/lib/ext này hoặc bất cứ thư mục nào được định nghĩa trong biến

môi trường java.ext.dirs

x System Class Loader (Application Class Loader): load các lớp được cấu hình trong biến môi trường CLASSPATH, -cp, -classpath hoặc thuộc tính Class-Path trong file Manifest của gói JAR.

Java cung cấp các lớp mở rộng từ java.lang.ClassLoader như:

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 50 dụng để nạp các file class trong lúc chạy chương trình. Ngoài ra, LTV cũng có thể cũng có thể tạo ra các lớp Class Loader của riêng mình bằng cách mở rộng class java.lang.ClassLoader.

Biểu đồ hoạt động sau đây mô tả cách hệ thống chạy các phần mở rộng:

Browse extension folder

Load all file .jar in lib folder

load class by URLClassLoader

Read config/Extension.xml

init and run object by className use

URLClassLoader

Hình 3.12: Biểu đồ hoạt động load extension

Hệ thống sẽ duyệt các phần mở rộng trong thư mục extensions, sau đó đọc vào

thư mục lib, load tất cảcác file .jar. Sau đó, hệ thống sử dụng URLClassLoader để

nạp các class trong các file .jar này vào máy ảo JVM. Từđó hệ thống có thể khởi tạo các class từclass name đọc từ file Extension.xml. Nhờcơ chế này các đối tượng từ

các phần mở rộng được khởi tạo và điều khiển theo logic của người phát triển.

Kết chương

¾ Trong chương này, người viết đồán đã trình bày về 3 giải pháp trọng tâm giải quyết bài toán là: nghiên cứu và cài đặt cơ chếNIO Network, cơ chế

phân cụm dữ liệu và áp dụng Hazelcast, cơ chế Extension (Plugin).

¾ Trong chương tiếp theo, người viết đồ án xin trình bày vềcách cài đặt hệ

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 51

Chương 4: Kết quđạt được

Nội dung chính được trình bày trong chương này: 9 Cài đặt hệ thống trong môi trường thực tế 9 Kiểm thử hiệu năng hệ thống

Qua quá trình nghiên cứu, tìm hiểu dưới sự hướng dẫn của thầy ThS Hoàng Anh Việt và anh Nguyễn Hoàng Bách em đã xây dựng thành công giải pháp tương

tác trực tuyến Parrot Interactive Solution.

Được sự hỗ trợ của công ty TapStudio, hệ thống game đã được đưa vào hoạt

động được một thời gian.

Một phần của tài liệu Xây dựng hệ thống tương tác trực tuyến (Trang 48)

Tải bản đầy đủ (PDF)

(58 trang)