Ứng dụng ñã ñáp ứng ñược những chức năng cần thiết nhất trong việc xem bản ñồ, cung cấp thông tin theo ngữ cảnh về Đại học Quốc gia Hà Nội... Ngoài ra ứng dụng phải cung cấp thông tin cầ
BÀI TOÁN
Bài toán
Khuôn viên Đại học Quốc gia Hà Nội rộng lớn với nhiều tòa nhà, nhưng sinh viên mới hoặc khách tham quan thường gặp khó khăn trong việc định hướng và tìm hiểu các khu vực, trường, khoa trong khuôn viên Việc cung cấp thông tin chi tiết về các trường, khoa là cần thiết để giúp người học dễ dàng nắm bắt Một bảng chỉ dẫn đơn thuần không đủ để đáp ứng nhu cầu tìm hiểu toàn diện và thuận tiện về các địa điểm trong khuôn viên.
Ngày nay, hầu hết mọi người đều sở hữu chiếc điện thoại di động nhỏ gọn với nhiều chức năng đa dạng Với sự phát triển của công nghệ, các thiết bị di động ngày càng phong phú về mẫu mã và có khả năng xử lý mạnh mẽ hơn Việc xây dựng các ứng dụng dành cho thiết bị di động trở nên dễ dàng hơn, mở ra nhiều cơ hội sáng tạo và phát triển trong lĩnh vực công nghệ di động.
Việc phát triển một ứng dụng cho phép người dùng dễ dàng xác định vị trí nhà và điểm thưởng trong khu vực là rất cần thiết Ứng dụng nên cung cấp thông tin phù hợp và cần thiết dựa trên ngữ cảnh để nâng cao trải nghiệm người dùng Điều này giúp người dùng dễ dàng tìm kiếm và lựa chọn các địa điểm phù hợp một cách thuận tiện và nhanh chóng.
Mô tả
Chương trình nhằm giúp người dùng dễ dàng tìm kiếm và truy xuất thông tin cần thiết về các trường, khoa trong Đại học Quốc gia Đối tượng hướng tới là những người có sở hữu điện thoại di động hỗ trợ ứng dụng Java Mục tiêu chính của dự án là cung cấp tiện ích tìm kiếm nhanh chóng, chính xác, giúp sinh viên và người dùng tiết kiệm thời gian khi tra cứu thông tin liên quan đến các ngành học và khoa trong trường đại học.
Cần cú giao diện cho phộp người dựng xem bản ủồ khu vực ủể xỏc ủịnh cỏc tũa nhà, ủịa ủiểm trong Đại học Quốc gia Hà Nội
Mỗi người dựng ủều cú nhu cầu tỡm hiểu thụng tin khỏc nhau, vỡ thế lượng thụng tin cung cấp cho từng người cũng phải khác nhau
Các thông tin cung cấp phải tùy thuộc vào người dùng và thông tin cũng như lượng thụng tin ủó xem trong quỏ khứ
Với một thiết bị di ủộng cú hỗ trợ Java, người dựng cú thể sử dụng chương trỡnh bất kỳ ủõu, vào bất kỳ thời gian nào
Với ngữ cảnh người dùng, ngữ cảnh môi trường, lượng thông tin cung cấp sẽ
Mụ hỡnh ủề xuất
Nghiên cứu nhằm phát triển một ứng dụng giúp người dùng dễ dàng truy cập thông tin về Đại học Quốc gia mọi lúc, mọi nơi Ứng dụng được thiết kế phù hợp để sử dụng trên các thiết bị di động hỗ trợ Java và có kết nối Internet Mục tiêu của dự án là tạo ra một công cụ tiện lợi, giúp sinh viên và người quan tâm nhanh chóng tìm hiểu về các chương trình đào tạo, dịch vụ và các hoạt động của Đại học Quốc gia mọi lúc, mọi nơi.
Hệ thống cung cấp thông tin, hình ảnh và hướng dẫn phù hợp với ngữ cảnh người dùng Ngoài ra, hệ thống còn có khả năng tự động nhận diện sự thay đổi của ngữ cảnh để điều chỉnh nội dung một cách linh hoạt Việc này giúp trải nghiệm người dùng trở nên mượt mà, hiệu quả hơn trong quá trình hoạt động.
Hệ thống lấy thông tin dựa trên yêu cầu của người dùng và cập nhật ngữ cảnh để cung cấp kết quả chính xác Thông tin ngữ cảnh này bao gồm các quy tắc lựa chọn dữ liệu phù hợp để đáp ứng nhu cầu của người dùng Sau khi chọn lọc thông tin dựa trên ngữ cảnh, hệ thống sẽ cập nhật lịch sử truy cập để cải thiện trải nghiệm người dùng Việc duy trì và cập nhật ngữ cảnh giúp hệ thống phản hồi nhanh chóng và chính xác hơn trong các lần truy cập tiếp theo.
2.3.1 Mô hình ng ườ i s ử d ụ ng
Mỗi người dùng có nhiều thông tin cá nhân và dữ liệu về môi trường khác nhau, nhưng để xây dựng nội dung phù hợp, chúng ta chỉ tập trung vào những yếu tố chính và quan trọng ảnh hưởng đến ngữ cảnh của người dựng.
Các tác nhân thể hiện ngữ cảnh của người sử dụng:
Hỡnh 2.1 Mụ hỡnh ủề xuất xõy dựng hệ thống
Luật lựa chọn thông tin
Nội dung theo ngữ cảnh
Vị trí của người dùng là thông tin thực về vị trí hiện tại, có thể biểu diễn bằng kinh độ và vĩ độ Thường thì, do vị trí của người dùng thay đổi liên tục, xác định vị trí là ưu tiên hàng đầu Có nhiều phương pháp để xác định vị trí chính xác như sử dụng công nghệ định vị A-GPS, E-OTD, Cell-ID hoặc TOA Ngoài ra, thông tin vị trí còn bao gồm dữ liệu không gian và vị trí hiện tại của người dùng để cung cấp các dịch vụ phù hợp.
Thời gian sử dụng chương trình phụ thuộc vào mức độ tập trung và khả năng quản lý thời gian của mỗi người dùng Mỗi cá nhân có thể dành dựng thời gian khác nhau để xem thông tin, phù hợp với nhu cầu và lịch trình cá nhân Quản lý thời gian hiệu quả giúp tối ưu hóa trải nghiệm sử dụng và nâng cao hiệu quả công việc khi sử dụng phần mềm.
Thông tin người dùng đa dạng và phong phú, khi thiết lập dữ liệu, cần đảm bảo cung cấp chính xác và phù hợp với từng đối tượng người dùng khác nhau Việc điều chỉnh thông tin dựa trên độ tuổi, sở thích và nhu cầu riêng giúp tối ưu trải nghiệm người dùng và nâng cao hiệu quả tiếp thị Hiểu rõ đặc điểm từng nhóm khách hàng là yếu tố quyết định thành công trong xây dựng chiến lược nội dung phù hợp.
Lịch sử xem thông tin giúp người dùng lưu trữ dữ liệu xem trước đó, tránh việc phải xem lại nội dung nhiều lần và nâng cao trải nghiệm người dùng Việc quản lý lịch sử xem thông tin cho phép hệ thống xử lý các lần truy cập tiếp theo một cách hiệu quả hơn, tiết kiệm thời gian và tăng tính tiện lợi cho người dùng Đây là chức năng quan trọng trong các nền tảng nội dung số, đảm bảo người dùng có thể dễ dàng truy cập lại những thông tin đã xem trước đó mà không mất công tìm kiếm lại từ đầu.
"Bối cảnh là bất kỳ thụng tin cú thể ủược sử dụng ủể ủặc trưng cho hoàn cảnh
Lịch sử xem thông Thông tin tin người dùng
Hình 2.2 mô tả mô hình người dùng thể hiện mối quan hệ tương tác giữa người sử dụng và ứng dụng, bao gồm cả người dùng và chính ứng dụng đó, theo mô hình của Dey, Abowd & Salber [1] Mô hình này giúp làm rõ quá trình tương tác giữa người dùng và hệ thống, từ đó tối ưu hóa trải nghiệm người dùng và nâng cao hiệu quả sử dụng ứng dụng Hiểu rõ các yếu tố trong mô hình người dùng hỗ trợ phát triển các giải pháp phần mềm phù hợp với nhu cầu thực tế của người dùng.
Paul Dourish ủó núi rằng cú hai gúc nhỡn khỏc nhau về ngữ cảnh [5]:
Ngữ cảnh là một hình thức của thông tin, có khả năng xác định và khoanh vùng những giá trị liên quan đến hoạt động hỗ trợ ứng dụng Nó đóng vai trò như một bối cảnh của hoạt động, giữ ổn định bất kể các yếu tố chính xác của biểu diễn ngữ cảnh có thể khác nhau tùy theo ứng dụng Ngữ cảnh mô tả các đặc trưng của môi trường diễn ra hoạt động, giúp xác định các mối quan hệ và ý nghĩa của các yếu tố liên quan, nhưng luôn riêng biệt với chính hoạt động đó Hoạt động diễn ra “trong” một ngữ cảnh, trong khi ngữ cảnh cung cấp các đặc điểm của môi trường nơi các hoạt động này xảy ra, giúp xác định tính chất và ảnh hưởng của chúng trong hệ thống.
Ngữ cảnh được xem như một yếu tố tương tác quan trọng trong quá trình hoạt động và truyền đạt thông tin Nó không chỉ đơn thuần là trường hợp có hoặc không có ngữ cảnh mà còn bao gồm phạm vi và đặc điểm của các hoạt động liên quan đến ngữ cảnh đó Ngữ cảnh có thể được hiểu là phạm vi xác định hoặc dựa trên các hoạt động cụ thể, phản ánh tính chất thời điểm, không gian và các yếu tố liên quan tại từng lần hành động diễn ra Bối cảnh thường phát sinh từ hoạt động, không chỉ là nơi chốn mà còn bao gồm quá trình tạo ra, duy trì và điều chỉnh trong suốt quá trình hoạt động đó Do đó, nội dung và bối cảnh cần được xem là hai thực thể riêng biệt, trong đó bối cảnh phản ánh các yếu tố cụ thể đã hình thành và duy trì trong quá trình hoạt động, góp phần hỗ trợ việc hiểu và diễn giải nội dung một cách chính xác hơn.
Ng ữ c ả nh ch ươ ng trình:
- Thông tin người dùng: mỗi người dùng sẽ có thông tin khác nhau như: tên, kiểu người dùng, lượng thông tin cần xem…
Vị trớ là vị trí người dựng ủược xỏc ủịnh dựa trên dịch vụ Location-Based Service (LBS) hoặc do người dựng chủ ủộng chọn Khi xác định vị trí ủịnh, thông tin cung cấp sẽ phù hợp với địa điểm ủú, giúp nâng cao tính chính xác và hiệu quả trong việc cung cấp dịch vụ định vị Điều này đảm bảo rằng dữ liệu vị trí phản ánh chính xác vị trí thực tế của người dùng hoặc đối tượng cần theo dõi.
Thời gian xem thông tin sẽ được điều chỉnh dựa trên mức độ chi tiết mong muốn của người dùng Nếu người dùng có nhiều thời gian hơn, họ có thể xem thông tin với mức độ chi tiết cao hơn để nắm bắt các chi tiết quan trọng Việc lựa chọn mức độ xem phù hợp giúp tối ưu hóa trải nghiệm người dùng và đảm bảo dữ liệu được cung cấp đầy đủ, rõ ràng.
Lịch sử xem thông báo giúp người dùng dễ dàng quản lý các thông báo đã xem trước đó Khi một người dùng xem một thông báo, không cần phải xem lại lần sau vì hệ thống có thể tự động loại bỏ tùy chọn xem thông báo đó để tối ưu trải nghiệm người dùng Việc này giúp giảm thiểu việc lặp lại và nâng cao hiệu quả quản lý các thông báo trong hệ thống Hãy tận dụng tính năng lịch sử xem thông báo để đảm bảo không bỏ lỡ các nội dung quan trọng và tiết kiệm thời gian trong quá trình vận hành.
Thông tin sẽ được phân cấp theo mức độ chi tiết, giúp người dùng dễ dàng truy cập dữ liệu phù hợp Việc chọn mẫu hình thông tin dạng cây sẽ tối ưu hóa quá trình phân cấp và tổ chức dữ liệu Mỗi nút trong cây sẽ chứa một lượng thông tin nhất định, đảm bảo tính rõ ràng và dễ quản lý thông tin theo từng cấp độ.
Tùy thuộc vào ngữ cảnh thì sẽ lấy thông tin ở một nhánh các nút khác nhau
- Đỉnh cây là một nút tương ứng với một phần thông tin
- Mức thứ 2 tương ứng với từng kiểu người dùng
- Mức thứ 3 tương ứng với từng topic của cho từng kiểu người dùng
PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH VNU CAMPUS
Phân tích
3.1.1 Phân tích các yêu c ầ u ch ứ c n ă ng 3.1.1.a Đăng nhập, ủăng ký
Chương trình cung cấp thông tin dựa trên ngữ cảnh cụ thể, bao gồm cả thông tin về người dựng nội dung để đảm bảo tính chính xác và phù hợp Việc xác thực người dựng nội dung là cần thiết để đảm bảo nguồn tin đáng tin cậy và phù hợp với mục đích sử dụng Do đó, yêu cầu đăng nhập là bước quan trọng để xác nhận danh tính người dùng và xử lý các thông tin một cách an toàn, bảo mật.
Khi ủăng nhập cần tài khoản người dựng, do ủú cần yờu cầu Đăng ký tài khoản ủối với người dựng mới
Khuôn viên Đại học Quốc gia rộng lớn với nhiều tòa nhà, đòi hỏi người dùng có bản đồ để dễ dàng định vị và tìm kiếm các điểm phù hợp Ứng dụng có chương trình màn hình chính thể hiện bản đồ sống động với các chức năng cơ bản như dịch chuyển, phóng to, thu nhỏ giúp người dùng dễ dàng điều hướng.
Trong khu vực có nhiều nhà, việc xác định vị trí chính xác của từng địa điểm là rất quan trọng để đảm bảo an toàn và thuận tiện cho cư dân Chính vì vậy, cần có chức năng tìm kiếm địa điểm hiển thị rõ trên bản đồ, giúp người dùng dễ dàng định vị và truy cập nhanh chóng Tính năng này không chỉ nâng cao trải nghiệm người dùng mà còn tối ưu hóa việc quản lý và điều phối các hoạt động trong khu vực.
Người dựng cú nhu cầu tỡm hiểu thụng tin cú thể trực tiếp chọn Trường, khoa ủể xem thông tin
Người dùng mới của chương trình có thể chưa quen với các chức năng và cách sử dụng, do đó, cần có mục Trợ giúp để cung cấp thông tin hướng dẫn sử dụng rõ ràng và đầy đủ, giúp người dùng dễ dàng làm quen và khai thác tối đa các tính năng của chương trình.
Khi chọn một địa điểm phù hợp, người dựng muốn xem thông tin về trường, chương trình đào tạo, cơ sở vật chất của địa điểm đó Thông tin về các tiện ích, môi trường học tập, cũng như uy tín của nhà trường là yếu tố quan trọng giúp đưa ra quyết định chính xác Các thông tin này cần rõ ràng và đầy đủ để hỗ trợ sinh viên chọn lựa nơi học phù hợp với nhu cầu và mục tiêu của bản thân.
Lượng thông tin cung cấp phải tùy thuộc vào ngữ cảnh: người dùng, lượng thông tin…
Hệ thống ủược xõy dựng ủể hỗ trợ cho cỏc nhúm sau:
- Khách tham quan: Những người muốn tham quan tìm hiểu về Đại học Quốc gia
- Sinh viờn: Những sinh viờn mới chưa biết và tỡm hiểu ủược hết thụng tin về Trường có thể sử dụng chương trình.
Thiết kế cơ sở dữ liệu
Hệ thống cơ sở dữ liệu này được xây dựng dựa trên hệ quản trị cơ sở dữ liệu MySQL, đảm bảo tính ổn định và mở rộng cao Thông tin về trường, khoa được lưu trữ theo mô hình cây, phù hợp với từng người dùng nhằm tối ưu hóa khả năng truy xuất dữ liệu Các mức độ truy cập khác nhau cho phép người dùng xem và chỉnh sửa thông tin phù hợp với quyền hạn của mình, nâng cao tính bảo mật và quản lý dữ liệu hiệu quả Dữ liệu của hệ thống sử dụng định dạng Unicode để đảm bảo tính toàn vẹn và khả năng hiển thị đa ngôn ngữ, phù hợp với môi trường đa dạng.
Sơ ủồ cơ sở dữ liệu:
The database consists of several interconnected tables, including the 'user' table, which stores user ID, password, and user type, and the 'owner' table, containing owner ID, name, top info ID, and logo The 'location' table records location ID, name, images, owner ID, and descriptions, providing detailed information about various sites The 'info' table captures content, child info ID, and sibling info ID, enabling structured content management Additionally, the 'log' table tracks user activity, logging log ID, owner ID, user ID, topic ID, and activity level to monitor interactions within the system Properdatabase design ensures efficient data management and retrieval for user and owner interactions across different locations and content types.
Mô tả các bảng cơ sở dữ liệu:
1 user: Bảng lưu ủịnh danh người dựng và thụng tin
Bảng 3.1 Hồ sơ người dùng
Tên field Kiểu dữ liệu Mô tả usrID varchar(30) Định danh người dùng passwd varchar(30) Mật khẩu
Hỡnh 3.1 Sơ ủồ biểu diễn cỏc bảng trong cơ sở dữ liệu
: Primary key, Khóa chính
: Foreign key, Khóa ngoài owner ownerID ownerName topInfoID int varchar(50) varchar(10) user usrID passwd usrType varchar(30) varchar(30) int
location locID locName image varchar(20) varchar(50) blob
ownerID int description varchar(500)
info infoID content childID varchar(10) varchar(500) varchar(10)
log logID ownerID usrID int int varchar(30)
topicID varchar(10) level int
2 owner: Bảng lưu cỏc trường ủại học và cỏc khoa
Bảng 3.2 Thông tin trường, khoa
Trong cơ sở dữ liệu, trường ownerID kiểu dữ liệu int được dùng để xác định duy nhất khoa hoặc bộ phận chủ sở hữu Trường ownerName kiểu varchar(50) lưu giữ tên của trường hoặc khoa đó một cách rõ ràng Trường topInfoID kiểu varchar(10) chứa mã số của phần thông tin chính liên quan đến kiến trúc hoặc cấu trúc cây của hệ thống Ngoài ra, logo của trường được lưu trữ dưới dạng dữ liệu blob để đảm bảo chất lượng hình ảnh và khả năng truy xuất nhanh chóng.
3 location: Bảng lưu trữ thụng tin về cỏc ủịa ủiểm
Bảng 3.3 Địa ủiểm, tũa nhà
Bảng dữ liệu này chứa các thông tin quan trọng về các địa điểm, bao gồm mã định danh (locID) dạng varchar(20) giúp định vị chính xác Tên địa điểm (locName) dài tối đa 50 ký tự, cung cấp tên gọi rõ ràng của từng nơi Ảnh của địa điểm được lưu trữ dưới dạng blob, giúp hiển thị hình ảnh trực quan Mỗi địa điểm có một ID chủ sở hữu (ownerID) dạng số nguyên, liên kết với các trường hoặc khoa quản lý phù hợp Ngoài ra, bảng còn lưu mô tả (description) dài tối đa 500 ký tự, cung cấp thông tin chi tiết về địa điểm hoặc các phòng ban liên quan, đặc biệt hữu ích đối với các tòa nhà hoặc các khu vực phức tạp.
4 info: Bảng lưu trữ thông tin về các trường, khoa
Bảng 3.4 Các bản ghi thông tin trường, khoa
The "infoID" is a varchar(10) data type that uniquely identifies each info node, ensuring accurate data referencing The "content" field, with a varchar(500) data type, stores the content of each node, providing detailed information The "childID" is a varchar(10) data type that links to the identifiers of child nodes, supporting hierarchical data structures The "brotherID," also a varchar(10), connects sibling nodes, maintaining the relationship among nodes at the same level, thereby facilitating organized data management.
5 log: Bảng lưu trữ lịch sử người dựng xem cỏc topic của cỏc ủịa ủiểm nào
Bảng 3.5 Lịch sử người dùng
Trong cơ sở dữ liệu, các trường như logID có kiểu dữ liệu là int dùng để định danh lịch sử và tự động tăng, giúp theo dõi các hoạt động một cách chính xác Trường ownerID cũng có kiểu int, dùng để xác định trường hoặc khoa liên quan Trường usrID với kiểu varchar(30) lưu trữ định danh người dùng một cách linh hoạt Các trường topicID với kiểu varchar(10) được sử dụng để xác định nút chính của một cây con chứa thông tin trong từng chủ đề, đặc biệt là các nút trong bảng info.
Tất cả thông tin về Trường và các khoa được lưu trữ trong bảng thông tin Hệ thống tổ chức cơ sở dữ liệu theo hình cây giúp phân cấp thông tin thành nhiều mức khác nhau, mang lại sự linh hoạt và dễ quản lý cho người dựng Điều này đảm bảo dữ liệu được sắp xếp hợp lý, dễ truy cập và tối ưu cho công tác quản trị.
Cây thông tin lưu trữ theo kiểu con trưởng và em kề giúp quản lý dữ liệu hiệu quả bằng cách liên kết các nút theo cấu trúc rõ ràng Mỗi bản ghi trong bảng info tương ứng với một nút trong cây, đảm bảo dữ liệu được tổ chức chặt chẽ và dễ truy cập Mỗi nút trong cây chứa thông tin về con trưởng và em kề, giúp duy trì mối liên kết hợp lý giữa các phần tử, tối ưu hóa quá trình tìm kiếm và xử lý dữ liệu Phương pháp này phù hợp cho các hệ thống yêu cầu cấu trúc dữ liệu linh hoạt và tối ưu cho các thao tác thao tác truy vấn hoặc cập nhật dữ liệu.
Sơ ủồ tổ chức cõy như sau: info info infoID content brotherID childID info infoID content brotherID childID
… info infoID content brotherID childID info infoID content brotherID childID info infoID content brotherID childID info infoID content brotherID childID
Hình 3.2 Mô hình tổ chức cây thông tin
Mô hình kết nối
Trong mô hình kết nối giữa ứng dụng viết trên điện thoại và server, thiết bị di động (client) giao tiếp với server qua giao thức HTTP Các yêu cầu (requests) từ client được chuyển đến server, sau đó server truy vấn cơ sở dữ liệu MySQL và gửi lại phản hồi (response) phù hợp Gói tin gửi từ thiết bị di động đến webserver là các HTTP request, còn các phản hồi từ webserver về thiết bị di động là các HTTP response Việc sử dụng giao thức HTTP giúp đảm bảo quá trình truyền tải dữ liệu diễn ra hiệu quả và an toàn, phù hợp với các ứng dụng di động hiện nay.
Các gói tin HTTP request và HTTP response chứa các thông điệp SOAP request và SOAP response phù hợp, trong đó các thông điệp SOAP thể hiện các operations của web service để xử lý kết nối đến cơ sở dữ liệu Các thao tác này tạo thành mô hình truy cập hàm từ xa RPC (Remote Procedure Call), giúp hệ thống tương tác linh hoạt hơn Đối với dữ liệu nhị phân như hình ảnh và âm thanh, việc truyền trực tiếp qua các gói tin HTTP không qua giao thức SOAP sẽ nhanh và tiện lợi hơn, và hình ảnh sẽ được trả về qua một servlet để tối ưu hoá tốc độ xử lý.
Chức năng của ứng dụng Midlet
3.4.1 Các ch ứ c n ă ng c ủ a ứ ng d ụ ng
Hỡnh 3.4 Biểu ủồ phõn ró chức năng
Khi người dùng mở ứng dụng, chương trình sẽ hiển thị màn hình chờ trong một khoảng thời gian ngắn, sau đó chuyển đến màn hình đăng nhập để người dùng có thể truy cập Sau khi đăng nhập thành công, ứng dụng sẽ chuyển đến giao diện chính hiển thị bản đồ khuôn viên Đại học Quốc Gia Hà Nội, giúp người dùng dễ dàng tìm kiếm và khám phá khuôn viên trường.
- Đă ng ký : Người dựng mới sử dụng cần cú tài khoản ủể sử dụng chương trỡnh sẽ sử dụng chức năng này ủăng ký một tài khoản mới
Khi người dùng xem bản đồ, họ có thể chọn một điểm mốc để xem chi tiết Chương trình sẽ tự động cung cấp các tùy chọn để xem mô tả điểm mốc hoặc thông tin về trường, khoa quản lý điểm mốc đó, giúp người dùng dễ dàng tra cứu và hiểu rõ hơn về vị trí và thông tin liên quan.
Trong phần tìm trường, khoa, hệ thống hiển thị danh sách các trường và khoa trong cơ sở dữ liệu để người dùng dễ dàng chọn lựa Khi người dùng chọn một trường hoặc khoa, hệ thống sẽ tự động hiển thị các tùy chọn liên quan, giúp tối ưu quá trình nhập dữ liệu và đảm bảo thông tin chính xác Tính năng này hỗ trợ người dùng dễ dàng truy cập và quản lý thông tin các cơ sở giáo dục một cách thuận tiện và hiệu quả.
Tóm lược ý chính của bài viết là hệ thống hiển thị danh sách các ưu điểm trong bản đồ, đi kèm với một trường nhập dữ liệu để người dùng dễ dàng lọc và chọn các ưu điểm phù hợp Khi người dùng nhập dữ liệu, hệ thống sẽ tự động lọc ra các ưu điểm tương ứng, giúp tiết kiệm thời gian và nâng cao hiệu quả công việc Khi chọn một ưu điểm từ danh sách, thông tin về ưu điểm đó sẽ được hiển thị rõ ràng trên bản đồ, giúp người dùng dễ dàng theo dõi và quản lý các điểm nổi bật.
- Tr ợ giúp: Hiển thị các thông tin về chương trình và trợ giúp
3.4.2 Lu ồ ng x ử lý ch ươ ng trình
Chương trình gồm 12 Displayable chính: signInForm, signUpForm, mainForm, mainMenu, helpForm, findForm, chooseLocOwner, viewLocDetail, viewOwners, chooseTopic, chooseLevel, viewOwnerDetail Chi tiết các Displayable như sau:
• signInForm là một Displayable thể hiện dưới dạng Form Đõy là màn hỡnh ủăng nhập, nú cú 2 TextField ủể nhập tài khoản, mật khẩu và 4 command:
- cmSignIn: Đăng nhập vào hệ thống, nếu thành cụng chuyển ủến mainForm
- cmSignUp: Chuyển ủến màn hỡnh ủăng ký ( signUpForm )
- cmViewOnly: Bỏ qua ủăng nhập và chuyển ủến màn hỡnh chớnh ( mainForm )
- cmExit: Kết thúc chương trình
signUpForm là một Displayable dưới dạng biểu mẫu được thiết kế để đăng ký tài khoản Màn hình này gồm có hai trường TextField để người dùng nhập tên đăng nhập và mật khẩu, cùng với một ChoiceGroup để lựa chọn kiểu người dùng Ngoài ra, còn có hai nút lệnh (command) để người dùng có thể gửi hoặc hủy đăng ký.
- cmSignUp: Đăng ký tài khoản mới với tờn, mật khẩu và kiểu người dựng ủó chọn
- cmBack: Quay lại màn hỡnh ủăng nhập
Hỡnh 3.6 Màn hỡnh ủăng nhập (signInForm) Hỡnh 3.7 Màn hỡnh ủăng ký (signUpForm)
• mainForm là một Displayable thể hiện dưới dạng GameCanvas Nó cho phép xử lý sự kiện bàn phớm, vẽ ảnh bản ủồ chi tiết Cú 2 command:
• mainMenu là một Displayable thể hiện dưới dạng List Đây là một màn hình thể hiện danh sách chức năng, nó bao gồm danh sách 5 phần tử
- Chi tiết: Chức năng “Xem chi tiết”
- Danh sách trường, khoa: Chức năng “Tìm trường, khoa”
- Đăng nhập lại: Chuyển ủến màn hỡnh ủăng nhập signInForm
- Tỡm ủịa ủiểm: Chức năng “Tỡm ủịa ủiểm”
- Trợ giúp: Chức năng “Trợ giúp”
Hình 3.8 Màn hình chính (mainForm) Hình 3.9 Màn hình chức năng (mainMenu)
• helpForm là một Displayable thể hiện dưới dạng Form Màn hình này thể hiện thông tin chương trình và một số trợ giúp, nó có 2 command
- cmOk: Chuyển về màn hình chính mainForm
- cmBack: Quay lại màn hình chức năng mainMenu
findForm là một Displayable dạng Form, bao gồm một TextField để người dùng nhập từ khóa lọc điểm, và một ChoiceGroup hiển thị danh sách kết quả tìm kiếm phù hợp Ngoài ra, giao diện còn có 2 command để điều hướng và thao tác người dùng thuận tiện hơn trong quá trình tìm kiếm và lựa chọn dữ liệu.
- cmOK: Chuyển về mainForm , dịch chuyển bản ủồ tới ủịa ủiểm ủó chọn
- cmBack: Quay lại màn hình chức năng mainMenu
Hỡnh 3.10 Màn hỡnh trợ giỳp (helpForm) Hỡnh 3.11 Tỡm kiếm ủịa ủiểm (findLocation)
• chooseLocOwner là một Displayable thể hiện dưới dạng List Màn hỡnh này ủưa ra
2 lựa chọn tương ứng với hai phần tử:
- Xem chi tiết ủịa ủiểm: Chuyển ủến màn hỡnh xem thụng tin ủịa ủiểm viewLocDetail
- Thụng tin trường, khoa: Chuyển ủến màn hỡnh lựa chọn topic thụng tin chooseTopic
• viewLocDetail là một Displayable thể hiện dưới dạng Form Màn hình hiển thị hỡnh ảnh và thụng tin về ủịa ủiểm (nếu cú) Cú 2 command:
- cmOk: Chuyển về màn hình chính mainForm
- cmBack: Chuyển về màn hình chức năng mainMenu
• viewOwners là một Displayable thể hiện dưới dạng Form Màn hình này gồm một ChoiceGroup chứa các trường, khoa Có 2 command:
- cmOk: Chuyển tới màn hình lựa chọn topic thông tin chooseTopic
- cmBack: Quay lại màn hình chức năng mainMenu
• chooseTopic là một Displayable thể hiện dưới dạng Form Màn hình gồm một ChoiceGroup chứa cỏc chủ ủề tương ứng ủược cung cấp theo ngữ cảnh Cú 3 command:
- cmAll: Chọn tất cả cỏc chủ ủề
- cmNone: Bỏ chọn tất cả cỏc chủ ủề
- cmOk: Chuyển ủến màn hỡnh chooseLevel
Hỡnh 3.14 Chọn trường, khoa (viewOwners) Hỡnh 3.15 Chọn chủ ủề (chooseTopic)
• chooseLevel là một Displayable thể hiện dưới dạng Form Màn hình cho phép lựa chọn mức ủộ chi tiết ủối với từng chủ ủề ủó chọn Cú 2 command:
- cmOk: Chuyển ủến màn hỡnh viewOwnerDetail
- cmBack: Chuyển về màn hình chooseTopic
The viewOwnerDetail is a displayable form that presents detailed information about a specific field or department, corresponding to the selected theme and associated level of detail It provides users with comprehensive insights into the relevant data The interface includes two commands to facilitate user interaction and data management.
- cmOk: Chuyển ủến màn hỡnh mainForm
Hỡnh 3.16 Chọn mức ủộ chi tiết (chooseLevel) Hỡnh 3.17 Xem thụng tin (viewOwnerDetail)
Từ màn hỡnh ủăng nhập signInForm , người dựng chọn cmSignUp, chương trỡnh chuyển ủến màn hỡnh ủăng ký signUpForm
Tại biểu mẫu đăng ký (signUpForm), người dùng nhập tên tài khoản, mật khẩu và chọn kiểu người dùng Sau khi điền đầy đủ thông tin và nhấn nút đăng ký (cmSignUp), hệ thống sẽ tiến hành xử lý đăng ký và hiển thị kết quả cho người dùng Sau đó, chương trình tự động chuyển về màn hình đăng nhập (signInForm) để người dùng có thể đăng nhập bằng thông tin đã đăng ký.
Khi người dựng xem bản ủồ và chọn một ủịa ủiểm Sau ủú chọn “Xem chi tiết”, chương trỡnh sẽ ủưa ra 2 tựy chọn:
Xem chi tiết ủịa ủiểm
Thụng tin về Trường, khoa quản lý ủịa ủiểm ủó chọn
Khi chọn Xem chi tiết ủịa ủiểm chương trỡnh sẽ chuyển ủến màn hỡnh viewLocDetail ủể xem thụng tin về ủịa ủiểm
Khi chọn Thông tin về Trường, khoa chương trình sẽ chuyển đến màn hình ChooseTopic để người dùng lựa chọn chủ đề xem Sau khi chọn chủ đề, hệ thống sẽ hiển thị màn hình ChooseLevel giúp người dùng chọn mức độ chi tiết phù hợp Cuối cùng, người dùng sẽ được chuyển đến màn hình ViewOwnerDetail để xem đầy đủ thông tin về Trường, khoa một cách rõ ràng và dễ hiểu.
Từ màn hình menuMain, người dùng chọn “Danh sách trường, khoa”, chương trỡnh chuyển ủến màn hỡnh viewOwners hiển thị danh sỏch cỏc trường, khoa
Sau khi người dựng chọn một trường, khoa và ấn cmOk thỡ chuyển ủến màn hình chooseTopic chooseLevel viewOwnerDetail
Từ màn hỡnh menuMain, người dựng chọn “Tỡm ủịa ủiểm”, chương trỡnh chuyển ủến màn hỡnh findForm , màn hỡnh hiển thị danh sỏch tối ủa 10 ủịa ủiểm
Khi người dựng nhập từ khúa tỡm kiếm, chương trỡnh tự ủộng lọc cỏc ủịa ủiểm và hiển thị
Sau khi chọn một ủịa ủiểm và chọn cmOk chương trỡnh chuyển ủến màn hỡnh mainForm và dịch chuyển bản ủồ ủến vị trớ tương ứng
Từ màn hình menuMain, người dùng chọn “Trợ giúp”, chương trình chuyển ủến màn hỡnh helpForm , màn hỡnh hiển thị thụng tin chương trỡnh và trợ giúp
Khi chọn cmOk chương trinh chuyển về màn hình mainForm
Chức năng phía Server
Phía server bao gồm 2 phần chính:
Web service sở hữu các operator giống như các hàm trong lập trình, giúp ứng dụng dễ dàng sử dụng mà không cần bận tâm đến cách kết nối hoặc xử lý phức tạp Các operator này tối ưu hóa quá trình tích hợp, mang lại hiệu quả và tiết kiệm thời gian phát triển Nhờ đó, doanh nghiệp có thể triển khai dịch vụ web nhanh chóng, đảm bảo tính linh hoạt và mở rộng hệ thống dễ dàng hơn.
Các operator của Web service phục vụ cho truy vấn từ client qua SOAP
• checkNetwork(): Kiểm tra kết nối mạng và cơ sở dữ liệu
• signUp(String usrID, String passwd, int usrType): Tạo mới tài khoản
• checkLogin(String usrID, String passwd): Kiểm tra việc ủăng nhập
• getOwnerName(String locID): Lấy tên của trường, khoa
• getLocName(String locID): Lấy tờn của ủịa ủiểm
• getLocDescription(String locID): Lấy thụng tin mụ tả ủịa ủiểm
• getOwnerIDs(): Lấy tất cả ID của các trường, khoa
• getOwnerNames(): Lấy tất cả tên của các trường, khoa
• getTopicIDs(String usrID, String ownerID): Lấy ID của các topic phù hợp
• getTopicNames(String[] topicIDs): Lấy tên của các topic
• getMaxLevel(String usrID, String topicID): Lấy mức ủộ chi tiết cao nhất ủó xem với một topic
• logging(String usrID, String locID, String topicIDs[], String levels[]): Ghi nhớ lịch sử lượng thụng tin ủó xem của người dựng
• resetLog( String usrID, String ownerID): Xóa bản ghi lịch sử lượng thông tin ủó xem với một trường, khoa
• getInfo(String tpIDs[], String tpLvs[], int length): Lấy thông tin chi tiết về trường, khoa với chủ ủề và mức ủộ chi tiết ủó chọn
Servlet chịu trách nhiệm xử lý các yêu cầu HTTP, lấy dữ liệu hình ảnh dạng byte từ cơ sở dữ liệu và truyền đến client Client sẽ nhận dữ liệu byte này và xử lý để tạo thành hình ảnh hiển thị cho người dùng Quá trình này giúp truyền tải hình ảnh một cách hiệu quả từ máy chủ đến trình duyệt của người dùng.
Các Module xử lý
3.6.1 Phía client Ứng dụng phớa client ủược chia làm hai gúi chớnh và một gúi bổ sung chứa dữ liệu cần thiết
Gồm lớp MIDlet ứng dụng chính và các phụ trợ
- MainMidlet.java: Lớp ứng dụng chính của chương trình J2ME, thừa kế từ lớp
ImageCanvas.java là lớp dùng để xây dựng và hiển thị bản đồ, đồng thời xử lý các sự kiện bàn phím liên quan đến việc di chuyển và thao tác trên bản đồ Lớp này kế thừa từ javax.microedition.lcdui.game.GameCanvas, giúp dễ dàng quản lý các hoạt động đồ họa và sự kiện người dùng trong ứng dụng di động Việc tùy biến lớp này là cần thiết để phù hợp với yêu cầu của trò chơi hoặc ứng dụng, đảm bảo trải nghiệm mượt mà cho người dùng.
- SplashScreen.java: Lớp hiển thị màn hình chờ của chương trình trong một khoảng thời gian nhất ủịnh, thừa kế từ lớp javax.microedition.lcdui.Canvas
- CampusHttpClient.java: Lớp dựng ủể kết nối ủến server lấy ảnh về trực tiếp qua giao thức Http
Chứa các lớp hỗ trợ cho việc kết nối với server thông qua cơ chế WSDL
- CampusService.java: Một giao diện mô tả các hàm có thể dùng của lớp CampusService_Stub, các hàm này tương ứng với các hàm phía server
- CampusService.wsclient: Một tệp tin XML mô tả về server kết nối
- CampusService.wsdl: Một tệp tin XML ủể mụ tả cỏc dịch vụ, cỏc thủ tục, thụng ủiệp cú thể truyền từ server về client
- CampusService_Stub.java: Lớp cho phộp người dựng kết nối ủến server thụng qua các hàm, thủ tục tương ứng trên server WSDL
Hỡnh 3.18 Bản ủồ Đại học Quốc gia Hà Nội (tệp Hỡnh 3.19 Màn hỡnh chờ khởi
- map.svg: Tệp tin ảnh svg bản ủồ khuụn viờn Đại học Quốc Gia Hà Nội
- splash.jpg: Tệp tin ảnh màn hỡnh chờ khởi ủộng
- cursor.png: Tệp tin ảnh con trỏ dựng di chuyển chọn ủịa ủiểm trờn bản ủồ
- mark.png: Tệp tin ảnh ủỏnh dấu ủịa ủiểm khi con trỏ vào một ủịa ủiểm cụ thể
Hỡnh 3.20 Con trỏ (tệp tin cursor.png) Hỡnh 3.21 Đỏnh dấu ủịa ủiểm (tệp mark.png)
Tệp tin location.txt là file dữ liệu văn bản chứa thông tin điểm dựng khi xử lý bản đồ Dữ liệu được lưu trữ dưới định dạng CSV (comma-separated values), với các trường dữ liệu được phân cách bằng dấu chấm phẩy ";" Ví dụ về dữ liệu trong file như sau: gd2;Giảng đường 2 và G3;Giảng đường G3.
Là một lớp dựng ủể tạo kết nối ủến cơ sở dữ liệu mySQL
Là một servlet dựng ủể truyền hỡnh ảnh cho client thụng qua HTTP
Là một Web Service cung cấp cỏc operator cho client gọi cỏc hàm tương ứng ủể nhận thông tin thông qua SOAP.
CÔNG NGHỆ SỬ DỤNG
Lĩnh vực ứng dụng không dây với công nghệ Java
Nền tảng Java 2 ủược chia thành ba phiờn bản, mỗi phiờn bản hỗ trợ một dạng phần mềm trên các hệ thống khác nhau
Java Standard Edition (J2SE) là phiên bản chuẩn của nền tảng Java, hỗ trợ phát triển các ứng dụng Java, applet và phần mềm desktop cho các hệ thống lớn hơn, chủ yếu dành cho PC J2SE có khả năng hoạt động cả khi có kết nối mạng và khi không có kết nối mạng, giúp đảm bảo tính linh hoạt và đa dạng trong sử dụng.
J2EE (Java 2 Platform, Enterprise Edition) là phiên bản doanh nghiệp mở rộng với các API tích hợp các tính năng doanh nghiệp, nhằm hỗ trợ các ứng dụng phức tạp J2EE cung cấp khả năng xây dựng dịch vụ web thông qua các thành phần như servlet và JSP, giúp phát triển các ứng dụng web động và linh hoạt Ngoài ra, dữ liệu được quản lý hiệu quả bằng JDBC, còn các hệ thống giao tiếp lớn được tích hợp qua EJB, làm tăng khả năng mở rộng và hiệu suất của hệ thống doanh nghiệp.
Phiên bản thu nhỏ, hay J2ME (Java 2 platform, Micro Edition): hỗ trợ các thiết bị
Trong J2ME, các "hiện trạng" (profile) được gọi là "micro" của dạng phần mềm, nhưng chúng đều có khả năng hạn chế hơn nhiều so với máy tính cá nhân Do đó, sức mạnh CPU, bộ nhớ, lưu trữ và khả năng kết nối của các thiết bị chạy J2ME đều bị giới hạn nghiêm ngặt, dẫn đến hiệu năng làm việc không cao.
Các ứng dụng MIDlet không yêu cầu kết nối trực tiếp đến các server chạy Java, vì chúng có thể gửi HTTP request đến các trang Web đã được xác định trước mà không cần quan tâm đến việc trang web đó có hỗ trợ ASP, PHP hay servlet hay không Tuy nhiên, trong thực tế, nhiều hệ thống phân tán mới phát triển sử dụng Java để xây dựng các dịch vụ và chức năng, do đó việc dựng hệ thống dựa trên Java ngày càng phổ biến và được triển khai rộng rãi ở mọi cấp độ.
Java 2 Enterprise Edition (J2EE) là một tập hợp các tiêu chuẩn và công nghệ Java được thiết kế để phát triển các ứng dụng doanh nghiệp quy mô lớn J2EE hỗ trợ xây dựng các hoạt động doanh nghiệp phức tạp như hệ thống xử lý giao dịch, dịch vụ web, và các ứng dụng phân tán Đây là nền tảng lý tưởng cho các doanh nghiệp muốn xây dựng các giải pháp phần mềm mở rộng, bền vững và dễ duy trì Với J2EE, các nhà phát triển có thể tạo ra các ứng dụng “loại doanh nghiệp” hiệu quả, đáp ứng nhu cầu khắt khe của môi trường doanh nghiệp hiện đại.
- Dịch vụ HTTP (servlet), bao gồm ứng dụng Web và dịch vụ Web
- Lưu trữ và lấy dữ liệu từ cơ sở dữ liệu quan hệ
- Xử lý giao tác trực tuyến
- Thực hiện ủối tượng phõn tỏn (bằng CORBA)
- Xử lý tài liệu XML
Java Servlet API hỗ trợ nhà phát triển phần mềm thêm nội dung động vào Web server sử dụng nền tảng Java, giúp tạo ra các trang web tương tác và linh hoạt Servlets thường sinh ra nội dung HTML, nhưng cũng có thể xử lý các định dạng khác như XML để phục vụ nhu cầu đa dạng của ứng dụng web Là bản sao Java của các kỹ thuật trình bày nội dung web động phổ biến như PHP, CGI và ASP.NET, Servlets đóng vai trò quan trọng trong việc xây dựng các ứng dụng web hiện đại, tối ưu hóa khả năng mở rộng và hiệu suất của hệ thống.
J2ME is organized into multiple levels, each defining a progressively broader range of supported devices Each level offers different architectural options, with higher levels imposing additional restrictions Developers can focus on the current profile and the associated APIs to ensure compatibility Notably, device specifications such as Connected Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP) determine the capabilities and limitations of mobile devices supported by J2ME applications.
Cỏc thiết bị ủặc tả với CLDC thường cú cấu hỡnh như sau:
- Bộ xử lý 16-bit hoặc 32-bit với tốc ủộ 16MHz hoặc cao hơn
- Ít nhất 160KB bộ nhớ cố ủịnh phõn bổ cho thư viện CLDC và mỏy ảo
- Ít nhất 192KB tổng bộ nhớ cho nền Java
- Tiờu thụ ủiện năng thấp, thường hoạt ủộng bằng pin
- Cú khả năng kết nối ủến một vài kiểu mạng, thường với một mạng khụng dõy, kết nối giỏn ủoạn và giới hạn băng thụng
4.1.3.a Các kiểu ứng dụng MIDP
Cỏc ứng dụng MIDP ủược gọi là cỏc MIDlet Hầu hết cỏc MIDlet ủều ở một trong hai dạng sau:
Ứng dụng ươn (standalone application) là loại phần mềm được cài đặt hoàn toàn trên thiết bị của người dùng, cho phép chạy độc lập mà không cần kết nối hoặc tài nguyên bên ngoài Với khả năng hoạt động bất kỳ lúc nào khi thiết bị mở, ứng dụng ươn mang lại sự tiện lợi và tính linh hoạt cao cho người dùng.
Networked applications are typically composed of at least two main components: the client, which operates on a mobile device, and the server The client component relies on establishing a connection to at least one server within the system to function effectively.
Server thường là ủược ủặt trong mụi trường J2EE, và phục vụ bằng Web hoặc các giao thức Internet khác
4.1.3.b Hạn chế của cỏc thiết bị di ủộng
- Hạn chế về bộ xử lý: Cỏc dũng ủiện thoại cú tốc ủộ xử lý thấp so với tốc ủộ xử lý của mỏy tớnh ủể bàn
- Hạn chế về bộ nhớ và khả năng lưu trữ: Bộ nhớ ROM và RAM nhỡn chung ủều cú dung lượng nhỏ
- Hạn chế về kớch thước màn hỡnh: Màn hỡnh của ủiện thoại di ủộng thường rất hạn chế về cả ủộ rộng màn hỡnh và ủộ phõn giải.
Lập trình Web Service với MIDP
4.2.1 D ị ch v ụ Web (Web service) 4.2.1.a Định nghĩa
Dịch vụ web là một mạng lưới giao diện truy cập các chức năng ứng dụng được xây dựng dựa trên công nghệ Internet chuẩn Đây là thành phần quan trọng trong việc phát triển các ứng dụng trực tuyến, giúp người dùng dễ dàng tương tác và sử dụng các dịch vụ một cách hiệu quả Hình 4.1 trong tài liệu minh họa rõ nét về cấu trúc và chức năng của dịch vụ web, góp phần nâng cao trải nghiệm người dùng và tối ưu hóa hiệu suất hệ thống.
Núi cỏch khỏc, nếu một ứng dụng có thể ủược truy cập qua mạng bằng cách sử dụng các giao thức như HTTP, XML, SMTP hoặc Jabber, thì đó chính là dịch vụ web Các dịch vụ web không có gỡ mới, mà thay vào đó phản ánh sự phát triển của các nguyên tắc hướng dẫn Internet trong nhiều năm.
Hình 4.1 Một dịch vụ web cho phép truy cập vào các mã ứng dụng bằng cách sử dụng các công nghệ Internet chuẩn
Dịch vụ Web là một hệ thống phần mềm nhận dạng bằng URI (Uniform Resource Identifier) Các giao diện chung và sự gắn kết của dịch vụ được định nghĩa và mô tả bằng XML, giúp đảm bảo tính nhất quán và khả năng tương tác Định nghĩa của dịch vụ Web có thể được nhận dạng và sử dụng bởi các hệ thống phần mềm khác nhau, mở rộng khả năng tích hợp Các hệ thống này sau đó có thể tương tác với dịch vụ Web theo phương pháp mô tả, sử dụng các thủ tục dựa trên XML nhằm tối ưu hóa khả năng giao tiếp và trao đổi dữ liệu.
4.2.1.b Cỏc ủặc ủiểm chớnh của dịch vụ We:
- Cú thể chuyển ủổi cỏc ứng dụng của bạn vào cỏc ứng dụng Web
- Được xuất bản, tỡm thấy, và ủược sử dụng thụng qua Web
- Là những thành phần ứng dụng
- Giao tiếp bằng cách sử dụng giao thức mở
- Được khép kín và tự mô tả
- Cú thể ủược phỏt hiện bằng cỏch sử dụng UDDI
- Cú thể ủược sử dụng bởi cỏc ứng dụng khỏc
Các nền tảng cơ bản của dịch vụ Web gồm có XML và HTTP XML dùng để mô tả và giải mã dữ liệu, giúp định dạng dữ liệu một cách dễ hiểu và dễ mở rộng Trong khi đó, HTTP là giao thức chủ đạo để truyền tải dữ liệu giữa các hệ thống khác nhau Ngoài ra, SOAP là chuẩn giao tiếp sử dụng trong dịch vụ Web để truyền tải các thông điệp, đảm bảo tính bảo mật và đáng tin cậy trong quá trình trao đổi dữ liệu.
4.2.1.c Tại sao dùng dịch vụ Web
Dịch vụ Web cho phép xây dựng các ứng dụng dễ dàng truy cập từ bất kỳ trình duyệt nền tảng nào, giúp mở rộng khả năng sử dụng trên nhiều thiết bị khác nhau Bằng cách sử dụng dịch vụ Web, các ứng dụng có thể tương tác và trao đổi dữ liệu với nhau một cách linh hoạt và hiệu quả, nâng cao trải nghiệm người dùng Đây là giải pháp tối ưu để phát triển hệ thống phần mềm kết nối đa nền tảng một cách dễ dàng, an toàn và hiệu quả.
4.2.1.d Các thành phần cơ bản
Dịch vụ Web có ba thành phần nền tảng cơ bản: WSDL, UDDI và SOAP
Hình 4.2 Kiến trúc dịch vụ Web
WSDL là một ngôn ngữ dựa trên XML dùng để mô tả các dịch vụ Web, giúp xác định cách thức hoạt động của chúng Nó cung cấp một định nghĩa rõ ràng về các dịch vụ Web, đảm bảo khả năng tích hợp và giao tiếp hiệu quả giữa các hệ thống khác nhau WSDL mô tả kỹ thuật của các dịch vụ Web bao gồm bốn phần chính quan trọng của dữ liệu, giúp các nhà phát triển hiểu rõ cách tạo và quản lý các dịch vụ này Việc sử dụng WSDL trong phát triển dịch vụ Web giúp tối ưu hóa quá trình tích hợp hệ thống và nâng cao khả năng mở rộng của ứng dụng.
Giao diện thông tin mô tả tất cả các chức năng công bố công khai
Dữ liệu thông tin cho tất cả các loại tin nhắn yêu cầu và trả lời tin nhắn
Ràng buộc thụng tin về cỏc giao thức vận chuyển sẽ ủược sử dụng Thụng tin ủịa chỉ cho ủịnh vị cỏc dịch vụ cụ thể
WSDL là bản mô tả hợp đồng giữa khách hàng yêu cầu dịch vụ và nhà cung cấp dịch vụ, tương tự như một giao diện Java đại diện cho một hợp đồng giữa khách hàng và đối tượng Java thực tế Điểm khác biệt chính là WSDL là nền tảng và ngôn ngữ độc lập, sử dụng chủ yếu để mô tả các dịch vụ SOAP một cách không sở hữu Với WSDL, khách hàng có thể xác định vị trí của dịch vụ web và dễ dàng gọi các chức năng công khai của nó Các công cụ nhận diện WSDL giúp tự động hóa quá trình tích hợp, cho phép ứng dụng dễ dàng kết nối và sử dụng các dịch vụ mới theo hướng dịch vụ hướng dẫn hoặc không có hướng dẫn Chính vì vậy, WSDL đóng vai trò cốt lõi trong kiến trúc dịch vụ web, cung cấp một ngôn ngữ chuẩn để mô tả dịch vụ và nền tảng để tự động tích hợp các dịch vụ khác nhau.
Hinh 4.3 Định nghĩa tài liệu WSDL 1.1 và WSDL 2.0
Bảng 4.1 Những yếu tố chính của tài liệu WSDL
WSDL 1.1 WSDL 2.0 Ý nghĩa Service Service Dịch vụ cú thể ủược dựng như một lớp chứa cho một tập hợp cỏc hàm hệ thống ủó ủược ủưa ra với cỏc giao thức dựa trên Web
Port Endpoint Định nghĩa ủịa chỉ hoặc ủiểm kết nối tới một dịch vụ Web
Nú thường ủược biểu diễn bởi một chuỗi http url ủơn giản
Binding Binding Cỏc giao thức truyền thụng ủược sử dụng bởi cỏc dịch vụ
Web Định nghĩa ủịnh dạng thụng ủiệp và chi tiết giao thức cho mỗi cổng
PortType Interface là thành phần quan trọng nhất trong WSDL, mô tả một dịch vụ Web và các hoạt động có thể thực hiện Nó xác định các phương thức mà dịch vụ hỗ trợ, cũng như các đối tượng truyền và nhận Tương tự như một thư viện chức năng hoặc lớp trong ngôn ngữ lập trình truyền thống, PortType giúp định nghĩa cấu trúc và chức năng của dịch vụ Web một cách rõ ràng và chính xác.
Trong lập trình, hoạt động (operation) đề cập đến một phương thức hoặc lời gọi hàm trong ngôn ngữ lập trình, giúp thực hiện các tác vụ cụ thể Các hoạt động như SOAP là các phương pháp định nghĩa và cách thức thức thi linh hoạt, hỗ trợ quá trình xử lý dữ liệu và giao tiếp giữa các hệ thống phần mềm một cách hiệu quả Việc hiểu rõ các hoạt động này giúp tối ưu hóa quá trình lập trình và phát triển phần mềm, đồng thời nâng cao khả năng kết nối hệ thống theo chuẩn quốc tế.
Message Thụng thường, một thụng ủiệp tương ứng với một hoạt ủộng Thụng ủiệp này chứa cỏc thụng tin cần thiết ủể thực hiện cỏc hoạt ủộng
Message ủó ủược loại bỏ trong WSDL 2.0, chỳng ta cú thể trực tiếp tham khảo tới XML Schema ủể xỏc ủịnh thõn của ủầu vào, ủầu ra và lỗi
Types Types Mục ủớch là mụ tả dữ liệu XML Schema ủược sử dụng
Cấu trúc chính của một tài liệu WSDL 1.1 tương tự như sau:
UDDI (Universal Description, Discovery, and Integration) is a technical specification for describing, discovering, and integrating web services As a vital component of web service protocols, UDDI enables businesses to publish and locate web services efficiently, facilitating seamless service integration and interoperability.
Universal Description, Discovery, and Integration (UDDI) is a directory service that allows businesses to register and discover web services easily This platform facilitates seamless integration by providing a centralized database of available services, enabling companies to efficiently find and utilize web services tailored to their needs Leveraging UDDI enhances business connectivity and promotes interoperability across digital ecosystems.
UDDI là một khung khủng độc lập giúp mô tả các dịch vụ trực tuyến, hỗ trợ doanh nghiệp phát hiện và tích hợp các dịch vụ kinh doanh qua Internet một cách dễ dàng Nó đóng vai trò quan trọng trong việc tăng cường khả năng kết nối và hợp tác giữa các doanh nghiệp, thúc đẩy sự phát triển của thương mại điện tử Với UDDI, các doanh nghiệp có thể quản lý và chia sẻ thông tin dịch vụ một cách hiệu quả, nâng cao khả năng cạnh tranh trên thị trường số.
UDDI (Universal Description, Discovery, and Integration) là thư mục lưu trữ thông tin về các dịch vụ Web, giúp mô tả và khám phá các dịch vụ này một cách dễ dàng UDDI chứa các mô tả về giao diện dịch vụ Web được xác định bởi WSDL, tạo điều kiện thuận lợi cho việc tích hợp và quản lý dịch vụ Giao tiếp của UDDI diễn ra qua giao thức SOAP, đảm bảo tính linh hoạt và an toàn trong quá trình trao đổi dữ liệu.
SOAP là một giao thức chuẩn hóa cho việc chia sẻ tin nhắn giữa các ứng dụng, đảm bảo giao tiếp hiệu quả và an toàn Đặc điểm nổi bật của SOAP là sử dụng XML để mô tả thông tin truyền tải, giúp dễ dàng chuyển dữ liệu và tương tác giữa các nền tảng khác nhau Giao thức này còn được định nghĩa rõ ràng về cách thức chuyển đổi dữ liệu sang định dạng XML, giúp các ứng dụng có thể dễ dàng hiểu và xử lý thông tin trong quá trình trao đổi dữ liệu.
Cụng nghệ bản ủồ
SVG, viết tắt của Scalable Vector Graphics, là định dạng hình ảnh dựa trên XML giúp biểu diễn các nội dung đồ họa một cách nhỏ gọn và linh hoạt Điểm nổi bật của SVG là khả năng mở rộng không mất chất lượng, phù hợp cho các thiết kế đồ họa cần độ phân giải cao và khả năng tích hợp dễ dàng trên các nền tảng khác nhau Với tính năng này, SVG trở thành lựa chọn phổ biến trong phát triển web và các ứng dụng đồ họa kỹ thuật số.
SVG là một ngôn ngữ đánh dấu dựa trên XML dùng để mô tả hình ảnh đồ họa vector 2 chiều, bao gồm hình tĩnh và hoạt hình, phổ biến trong các ứng dụng trên trang web Là tiêu chuẩn mở được quản lý bởi tổ chức World Wide Web Consortium (W3C), SVG đóng vai trò quan trọng trong việc tạo ra các hình ảnh đồ họa linh hoạt và tối ưu cho trình duyệt.
Tập tin SVG, viết tắt của Scalable Vector Graphics, là định dạng hình ảnh vector có khả năng phóng to hoặc thu nhỏ đến mọi kích thước mà không giảm chất lượng Nhờ đặc điểm này, SVG thường được sử dụng trong các bản đồ, sơ đồ và thiết kế cần độ linh hoạt cao Ưu điểm của file SVG giúp bạn dễ dàng chỉnh sửa, tối ưu hóa cho các website và dự án sáng tạo khác.
Vớ dụ dưới ủõy là nội dung tệp SVG và hỡnh ảnh hiển thị
4.3.1.a Các thuộc tính của ảnh SVG
- SVG là một ngụn ngữ ủể mụ tả ủồ họa 2D và cỏc ứng dụng ủồ họa trong XML
Cỏc ủối tượng trong ảnh SVG tường là cỏc ủối tượng hỡnh học Ảnh sẽ lưu cỏc tọa ủộ, kớch thước hỡnh học
- SVG ủược sử dụng ủể ủịnh nghĩa ủối tượng ủồ họa dựa trờn vecto cho ứng dụng Web
- SVG ủịnh nghĩa cỏc ủối tượng ủồ họa theo ủịnh dạng XML
- Cỏc ủối tượng ủồ họa SVG khụng bị giảm chất lượng khi phúng to hoặc thay ủổi kích thước
- Mỗi thành phần và thuộc tớnh trong tệp SVG cú thể thay ủổi
- SVG là một khuyến nghị của W3C
4.3.1.b Cỏc chức năng và ủặc trưng
Mụ tả SVG 1.1 ủịnh nghĩa 14 chức năng và ủặc trưng quan trọng
- Các hình vẽ cơ bản (Basic Shapes)
- Đường trượt màu và mẫu (Gradients and Patterns)
- Cắt xén, mặt nạ và tổ hợp (Clipping, Masking and Compositing)
- Hiệu ứng lọc (Filter Effects)
SVG là định dạng đồ họa vectơ có khả năng hiển thị tốt ở mọi kích cỡ và độ phân giải, giúp hình ảnh luôn rõ nét dù phóng to hay thu nhỏ Với cùng kích thước, tập tin SVG có thể chứa nhiều thông tin hơn so với các định dạng nhị phân như GIF hoặc PNG, mang lại lợi ích trong việc tối ưu hóa nội dung và chất lượng hình ảnh Định dạng SVG phù hợp cho các dự án yêu cầu đồ họa sắc nét, responsive và dễ chỉnh sửa trên nhiều nền tảng khác nhau.
SVG là một chuẩn mở giúp tạo ra các hình ảnh dễ dàng tùy biến theo mục đích sử dụng Các hình ảnh SVG có thể chỉnh sửa và phát triển dễ dàng sau này, khác với đồ họa mảng thường là sản phẩm cuối cùng của quá trình xử lý ảnh và không chứa mã nguồn các lớp ảnh.
Các tập tin SVG ở dạng văn bản, việc chỉnh sửa có thể thực hiện bằng các trình soạn thảo ủơn giản nhất
Kích thước các tệp SVG nhỏ, phù hợp với ứng dụng Web và ứng dụng trên các
SVG là định dạng hình ảnh phổ biến không yêu cầu thiết kế hoặc chỉnh sửa trực tiếp trên mã nguồn Để tạo ra các hình ảnh SVG chất lượng, người dùng cần sử dụng các công cụ hỗ trợ chuyên dụng, giúp dễ dàng thiết kế và chỉnh sửa các vector đồ họa một cách hiệu quả.
SVG đang ngày càng trở thành một lựa chọn tiềm năng cho hình ảnh trên các trang web trong tương lai gần, nhờ ưu điểm về độ phân giải và khả năng mở rộng mà không làm giảm chất lượng hình ảnh Tuy nhiên, vẫn còn một số hạn chế do tính mới của công nghệ này và mức độ hỗ trợ từ các trình duyệt web hiện tại Mozilla Firefox hiện đã hỗ trợ đầy đủ SVG, giúp tăng khả năng tích hợp trên nhiều nền tảng, nhưng Internet Explorer và một số trình duyệt khác vẫn yêu cầu cài đặt plugin riêng để hiển thị SVG một cách chính xác.
Các thiết bị di động có điểm khác nhau về tốc độ CPU, kích thước bộ nhớ và khả năng hỗ trợ màu sắc, đòi hỏi các hình ảnh vector phù hợp để tối ưu hóa hiệu suất Để đáp ứng đa dạng nhu cầu này, hai cấu hình hình ảnh vector được xác định rõ ràng: SVG Tiny (SVGT) phù hợp cho thiết bị di động có hạn chế về phần cứng như điện thoại di động, trong khi SVG Basic (SVGB) nhắm vào các thiết bị cao cấp hơn như PDA để tận dụng khả năng xử lý mạnh mẽ hơn.
SVG Tiny 1.1 khác biệt chính so với SVG Basic 1.1 là không hỗ trợ kịch bản và tạo kiểu trong SVG Tiny 1.1 Điều này giúp giảm thiểu yêu cầu về Document Object Model (DOM), từ đó tiết kiệm bộ nhớ khi chạy chương trình.
4.3.3 X ử lý cỏc ủố i t ượ ng trong ả nh SVG
Một số lớp và giao diện cần thiết cho việc xử lý ảnh SVG trong Java được cung cấp trong các gói javax.microedition.m2g, org.w3c.dom, org.w3c.dom.svg, và org.w3c.dom.events Các gói này đảm bảo hỗ trợ xử lý các thành phần, quản lý sự kiện, và vẽ đồ họa của ảnh SVG một cách hiệu quả.
CÀI ĐẶT VÀ THỬ NGHIỆM
Yêu cầu
Phần Client là ứng dụng di động hỗ trợ chạy Java và kết nối mạng Trong quá trình phát triển và thử nghiệm, có thể sử dụng trình giả lập thiết bị di động như Sun Java Wireless Toolkit để mô phỏng hoạt động của client một cách hiệu quả.
Server là mỏy chủ cú cầu hỡnh ủủ mạnh ủể chạy cỏc ứng dụng Java
Mỏy chủ dịch vụ có thể cài đặt và vận hành trên nhiều hệ điều hành nhờ vào Java hỗ trợ nền tảng Cụ thể, hệ thống này được xây dựng để chạy trên máy tính cài đặt Windows XP Professional, nhưng vẫn có thể triển khai trên các máy chủ chạy hệ điều hành Linux hoặc Macintosh Các phần mềm cần thiết để vận hành hệ thống bao gồm Java Runtime Environment (JRE) và các phần mềm phụ trợ phù hợp, đảm bảo khả năng tích hợp linh hoạt và mở rộng cho nhiều nền tảng khác nhau.
Máy ảo Java JDK 1.6 Sun Java Wireless toolkit 2.5.2 for CLDC Server: Sun GlassFish Enterprise Server v3 Database: mySQL server 5.1
IDE lập trỡnh: Netbeans (ủó bao gồm thư viện MySQL JDBC Driver).
Cài ủặt
Phớa thiết bị di dộng, chỉ cần copy file ứng dụng vào là cú thể chạy ủược File ứng dụng bao gồm 2 file: CampusGuide.jad và CampusGuide.jar
Phía server, khi triển khai thực tế, chỉ cần upload CampusServer.war lên server hỗ trợ J2EE.
Thử nghiệm chương trình
- V ớ i ng ườ i dùng khác nhau
Chương trình thử nghiệm với người dùng A (khách tham quan) và B (sinh viên)
Khi người dùng lựa chọn xem thông tin về Đại học Quốc gia, hệ thống sẽ đề xuất các mục lựa chọn phù hợp với nhu cầu của từng người dùng Các chương trình cung cấp các lựa chọn chủ đề khác nhau dựa trên các loại thông tin đa dạng và phong phú Điều này giúp người dùng dễ dàng truy cập và tìm kiếm các nội dung phù hợp với sở thích và mục đích của mình Việc cung cấp các chủ đề khác nhau đảm bảo thông tin được sắp xếp một cách rõ ràng, tối ưu hóa trải nghiệm người dùng và nâng cao hiệu quả học tập hoặc công việc của sinh viên và cán bộ giáo dục.
Hỡnh 5.1 Lựa chọn chủ ủề xem với người dùng sinh viên
Hỡnh 5.2 Lựa chọn chủ ủề xem với người dùng khách tham quan
- V ớ i l ượ ng thông tin khác nhau
Đại học Quốc gia là trung tâm giáo dục hàng đầu, thu hút nhiều học sinh và du khách tham quan nhờ các chương trình giới thiệu đa dạng và phong phú Thông tin về trường ngày càng được cập nhật liên tục, giúp người dân lựa chọn mức độ chi tiết phù hợp khi khám phá về cơ sở giáo dục này Với vị trí chiến lược và nhiều tiện ích, Đại học Quốc gia góp phần nâng cao chất lượng giáo dục và thúc đẩy hoạt động nghiên cứu, phát triển cộng đồng.
Bảng 5.1 Nội dung cung cấp cho người dựng tựy vào mức ủộ chi tiết
Số dòng (line) Số từ (word)
Mỗi lần người dùng xem thông tin, chương trình tự động ghi vào lịch sử xem dữ liệu Dựa trên lịch sử này, hệ thống sẽ đề xuất các lựa chọn phù hợp cho các lần xem tiếp theo Việc lưu trữ lịch sử xem giúp cá nhân hóa trải nghiệm và tối ưu hóa các đề xuất nội dung Đây là cách nâng cao sự tiện lợi và hiệu quả trong việc tìm kiếm thông tin phù hợp với từng người dùng.
Khi người dựng xem một mức thụng tin của một chủ ủề thỡ cỏc mức nhỏ hơn sẽ không xuất hiện trong lần chọn tiếp theo
Hỡnh 5.3 Lần lựa chọn mức chi tiết ủầu tiờn Hỡnh 5.4 Lần lựa chọn mức chi tiết lần tiếp theo
Khi người dùng xem thông tin với mức chi tiết cao nhất của một chủ đề (xem toàn bộ chủ đề), thì lần xem tiếp theo, chủ đề đó sẽ không xuất hiện lại trong màn hình lựa chọn Điều này giúp nâng cao trải nghiệm người dùng bằng cách giảm thiểu hiển thị những nội dung đã được xem kỹ lưỡng trước đó Tối ưu hóa này cũng hỗ trợ cải thiện hiệu quả SEO bằng cách tập trung vào các nội dung mới và phù hợp hơn với quan tâm của người dùng.
Hỡnh 5.5 Chọn chủ ủề lần ủầu tiờn Hỡnh 5.6 Chọn chủ ủề sau khi ủó xem hết thụng tin chủ ủề Giới thiệu chung
Khi xem hết tất cả thông tin của một Trường hoặc khoa, người dùng có thể chọn xem lịch sử thông tin của trường hoặc khoa đó để có cái nhìn tổng quan và chính xác hơn Việc này giúp người dùng dễ dàng đưa ra quyết định phù hợp dựa trên dữ liệu lịch sử đã được lưu trữ Đây là tính năng hữu ích giúp nâng cao khả năng quản lý thông tin và hỗ trợ người dùng trong quá trình tra cứu và lựa chọn chính xác hơn.
Hỡnh 5.7 Lựa chọn xúa lịch sử Hỡnh 5.8 Nếu ủồng ý xúa lịch sử, chuyển ủến màn hỡnh chọn chủ ủề