3.3.1 Cơng cụ và mơi trường phát triển ứng dụng
Bộ chương trình điều khiển Desktop “AG Remote Desktop” được xây dựng bằng các cơng cụ và trên các mơi trường sau:
• Cơng cụ phân tích thiết kế: Rational Rose 2000.
• Mơi trường lập trình:
o Visual Studio .NET 2003
o .NET Framework version 1.1.
o .NET Compact Framework version 1.0
• Ngơn ngữ lập trình: C#
• Mơi trường thử nghiệm và cài đặt:
o Windows XP Professional Service Pack 2.
KHOA CNTT –
ĐH KHTN
77
• Thiết bị:
o Pocket PC HP Jornada 928 bộ nhớ 61.64 MB (Storage Card dung lượng 121.85MB)
o Access Point Intel
o Wireless CF Card type 1 cho Pocket PC
o Wireless LAN USB card cho máy Desktop
• Các thư viện mã nguồn mở và bài viết được sử dụng tham khảo:
o Lớp MultiCommFramework của tác giả Jim Wilson (MSDN)
o Bài viết “Plug-ins in C#” của tác giả Redth (Code Project).
3.3.2 Mơ hình cài đặt
MultiCommFramework.dll AGRemoteDesktop_Server
AGRemoteDesktop_DTClient AGRemoteDesktop_PPCClient Plugin
Hình 3-22: Mơ hình cài đặt ứng dụng “AGRemoteDesktop”
- AGRemoteDesktop_Server: Ứng dụng điều khiển desktop phân hệ server. - AGRemoteDesktop_DTClient: Ứng dụng điều khiển desktop phân hệ client
cho máy desktop.
- AGRemoteDesktop_PPCClient: Ứng dụng điều khiển desktop phân hệ client cho máy Pocket PC.
- Plugin: Lớp tạo 2 thư viện PluginInterface.dll vaf PluginServices.dll giúp
KHOA CNTT – ĐH KHTN 78 - MultiCommFramework.dll: thư viện giao tiếp mạng. 3.4 Plugin 3.4.1 Giới thiệu
Giả sử ta viết một chương trình cho phép người dùng thay đổi giao diện, thay
đổi ngơn ngữ một cách tự do và theo ý thích của họ nhưng ta viết theo cách thơng thường, tức là hỗ trợ sẵn vài giao diện, vài ngơn ngữ trong chương trình thì sẽ rất mất cơng trong việc nâng cấp, thêm mới cho chương trình sau này. Mặt khác, nếu viết theo cách này thì chỉ cĩ người viết ra chương trình mới cĩ mã nguồn của chương trình để thêm giao diện, thêm ngơn ngữ cịn những người khác thì khơng thể làm cơng việc này được. Cơ chế Plugin ra đời nhằm giải quyết vấn đề đĩ. Chỉ
cần biết cách tạo plugin theo hướng dẫn của chương trình, người sử dụng sẽ tự tạo cho mình giao diện, bộ ngơn ngữ theo ý thích. Hay cụ thể là khi ta viết chương trình “AG Remote Desktop” ở trên, nếu khơng sử dụng cơ chế plugin trong chương trình thì chương trình sẽ khá đơn giản vì chỉ hỗ trợ một số chức năng cho người sử dụng và nếu như muốn cĩ thêm những chức năng khác trong chương trình, ta chỉ cĩ thể
sửa mã nguồn rồi dịch lại. Ngược lại, nếu sử dụng cơ chế plugin, mỗi người cĩ thể
tạo cho mình một plugin riêng để làm một cơng việc cụ thể nào đĩ và chia sẻ cho nhau như quản lý chương trình Winamp, quản lý con trỏ chuột, quản lý điều khiển thiết bị ngoại vi…
Tĩm lại, plugin tựa như một chương trình thực hiện một cơng việc cụ thể nào đĩ và cĩ thể nhúng vào chương trình khác. Chương trình được nhúng vào các plugin sẽ
cĩ thể thực hiện được các chức năng mà plugin đĩ làm được. Viết chương trình theo cơ chế plugin giúp cho chương trình mềm dẻo hơn, dễ mở rộng hơn, tiện dụng hơn và nhất là cĩ khả năng tiến hĩa cao hơn.
3.4.2 Cấu trúc và cách xây dựng một Plugin
KHOA CNTT –
ĐH KHTN
79
Chương 4 Ứng dụng “AG Messenger”
4.1 Giới thiệu
"AG Messenger" là bộ chương trình giúp người dùng cĩ thể sử dụng các máy tính để bàn (Desktop PC) hoặc các máy tính cầm tay (Pocket PC, các thiết bị di
động cài hệđiều hành Windows CE...) cĩ gắn thiết bị mạng khơng dây và cĩ cài đặt chương trình "AG Messenger" để chat với nhau.
4.1.1 Các chức năng của phiên bản "AG Messenger Server"
4.1.1.1 Khởi động và ngừng Server
Thiết lập thơng tin, khởi động Server để cho phép các Client kết nối vào. Bên cạnh đĩ chương trình cịn thể hiện được các thơng tin hoạt động của Server và các thành viên.
4.1.1.2 Quản lý tài khoản người dùng
Cho phép nhà quản trị cĩ thể thêm, xĩa, sửa thơng tin tài khoản người dùng. Ngồi ra cịn cĩ các chức năng phụ khác như buộc client ngừng kết nối (kick), quan sát hành động của Server và các Client.
4.1.1.3 Chat
Server cịn đĩng vai trị như một client tức là cĩ đầy đủ các chức năng trao đổi thơng tin (chat) giữa một hay nhiều thành viên.
KHOA CNTT –
ĐH KHTN
80
4.1.2 Các chức năng của phân hệ "AG Messenger Client for Desktop" và phiên bản “AG Messenger Client for Pocket Desktop" và phiên bản “AG Messenger Client for Pocket PC”
4.1.2.1 Kết nối vào Server
Kết nối vào Server theo các thơng tin như listener port và client port. Nếu kết nối thành cơng, Client sẽ cĩ thể thực hiện các chức năng mà Server cung cấp (các plugin đã được cấu hình)
4.1.2.2 Ngừng kết nối vào Server
Ngừng kết nối vào Server. Lúc này Client sẽ khơng thể thực hiện bất kỳ các chức năng mà Server cung cấp.
4.1.2.3 Thực thi chức năng mà Server cung cấp
Yêu cầu Server thực hiện chức năng mà Server cung cấp cho Client.
4.2 Phân tích - Thiết kế
4.2.1 Ứng dụng “AG Messenger Server”
4.2.1.1 Lược đồ chính của mơ hình Use-Case
StartServer StopServer AddAccount RemoveAccount UpdateAccount User Chat
KHOA CNTT – ĐH KHTN 81 4.2.1.1.1 Danh sách Actor STT Actor Ý nghĩa 1 User Người sử dụng. 4.2.1.1.2 Danh sách Use-Case chính STT Use-Case Ý nghĩa
1 StartServer Khởi động server để cho phép client kết nối vào.
2 StopServer Ngừng server và khơng cho client kết nối vào nữa.
3 AddAccount Thêm tài khoản mới.
4 RemoveAccount Xĩa tài khoản.
5 UpdateAccount Cập nhật tài khoản.
6 Chat Tán gẫu (gửi tin nhắn với 1 ngưịi hay nhĩm ngưịi)
4.2.1.2 Đặc tả Use-Case chính 4.2.1.2.1 Đặc tả Use-Case “StartServer”
Tĩm tắt
Use-Case này cho phép người sử dụng khởi động Server để cho phép các client cĩ thể kết nối vào để chat.
Dịng sự kiện
o Dịng sự kiện chính
1. Use-Case này bắt đầu khi người sử dụng chọn chức năng khởi động Server từ nút tên "Start" trên màn hình kết nối.
2. Chương trình kiểm tra thơng tin đăng nhập của Server.
3. Chương trình sẽ khởi động Server và gửi thơng điệp mời các client đang cố kết nối vào Server trước đĩ (khởi động thành cơng)
4. Thơng báo cho người sử dụng biết kết quả khởi động Server. o Dịng sự kiện khác
- Thơng tin đăng nhập của người sử dụng (nhà quản trị) khơng đúng, chương trình sẽ báo lỗi và yêu cầu sửa lại.
Các yêu cầu đặc biệt
KHOA CNTT – ĐH KHTN 82 Điều kiện tiên quyết Khơng cĩ. Post condition
Server sẽđược khởi động và cho phép client kết nối.
Điểm mở rộng
Khơng cĩ.
4.2.1.2.2 Đặc tả Use-Case “StopServer”
Tĩm tắt
Use-Case này cho phép người sử dụng ngừng Server để và khơng cho phép các client cĩ thể kết nối vào nữa.
Dịng sự kiện
3. Use-Case này bắt đầu khi người sử dụng chọn chức năng ngừng Server từ
nút tên "Stop" trên màn hình kết nối.
4. Chương trình sẽ ngừng Server và gửi thơng điệp ngừng kết nối cho tất cả
các client đang tham gia.
5. Thơng báo cho người sử dụng biết kết quả ngừng Server. o Dịng sự kiện khác Khơng cĩ. Các yêu cầu đặc biệt Khơng cĩ. Điều kiện tiên quyết Khơng cĩ. Post condition
Server sẽ ngừng và khơng cho phép client kết nối.
Điểm mở rộng
KHOA CNTT –
ĐH KHTN
83
4.2.1.2.3 Đặc tả Use-Case “AddAccount”
Tĩm tắt
Use-Case này cho phép người sử dụng (nhà quản trị) thêm tài khoản mới.
Dịng sự kiện
o Dịng sự kiện chính
6. Use-Case này bắt đầu khi người sử dụng chọn chức năng thêm tài khoản từ nút tên "Add" trên màn quản lý tài khoản.
7. Hộp thoại thêm tài khoản được mở ra.
8. Người dùng nhập thơng tin để tạo tài khoản như tên đăng nhập, mật khẩu. 9. Chương trình kiểm tra thơng tin đăng ký và thêm tài khoản này vào cơ sở
dữ liệu (thêm tài khoản thành cơng) o Dịng sự kiện khác
- Nếu tên đăng nhập khơng hợp lệ (bỏ trống hoặc đã cĩ) hoặc mật khẩu khơng hợp lệ (bỏ trống) thì chương trình sẽ báo lỗi. Người sử dụng cĩ thể
quay trở lại dịng sự kiện chính để sửa lại hoặc hủy bỏ việc thêm tài khoản. Lúc này Use-Case kết thúc. Các yêu cầu đặc biệt Khơng cĩ. Điều kiện tiên quyết Khơng cĩ. Post condition
Nếu Use-Case thành cơng thì tài khoản mới sẽđược thêm vào cơ sở dữ liệu.
Điểm mở rộng
KHOA CNTT –
ĐH KHTN
84
4.2.1.2.4 Đặc tả Use-Case “RemoveAccount”
Tĩm tắt
Use-Case này cho phép người sử dụng (nhà quản trị) xĩa một tài khoản đã cĩ trong cơ sở dữ liệu.
Dịng sự kiện
o Dịng sự kiện chính
1. Use-Case này bắt đầu khi người sử dụng chọn chức năng xĩa bỏ tài khoản từ nút tên "Remove" trên màn hình quản lý tài khoản nếu như
người sử dụng đã chọn tài khoản cần xĩa trong danh sách các tài khoản. 2. Tài khoản được chọn sẽđược xĩa khỏi cơ sở dữ liệu.
o Dịng sự kiện khác
Khơng cĩ.
Các yêu cầu đặc biệt
Khơng cĩ.
Điều kiện tiên quyết
Người sử dụng phải chọn một tài khoản đã cĩ trong danh sách tài khoản.
Post condition
Tài khoản được chọn xĩa sẽđược xĩa khỏi cơ sở dữ liệu.
Điểm mở rộng
Khơng cĩ.
4.2.1.2.5 Đặc tả Use-Case “UpdateAccount”
Tĩm tắt
Use-Case này cho phép người sử dụng (nhà quản trị) cập nhật lại tài khoản đã cĩ trong cơ sở dữ liệu.
KHOA CNTT –
ĐH KHTN
85
Dịng sự kiện
o Dịng sự kiện chính
1. Use-Case này bắt đầu khi người sử dụng chọn chức năng cập nhật tài khoản từ nút tên "Update" trên màn hình quản lý tài khoản nếu như người sử dụng đã chọn tài khoản cần cập nhật trong danh sách các tài khoản. 2. Hộp thoại cập nhật tài khoản sẽđược mở ra.
3. Người dùng nhập thơng tin cập nhật (mật khẩu). Chương trình kiểm tra thơng tin mới và cập nhật tài khoản này vào cơ sở dữ liệu (cập nhật tài khoản thành cơng)
o Dịng sự kiện khác
- Nếu tên đăng mật khẩu khơng hợp lệ (bỏ trống) thì chương trình sẽ báo lỗi. Người sử dụng cĩ thể quay trở lại dịng sự kiện chính để sửa lại hoặc hủy bỏ
việc cập nhật tài khoản. Lúc này Use-Case kết thúc.
Các yêu cầu đặc biệt
Khơng cĩ.
Điều kiện tiên quyết
Khơng cĩ.
Post condition
Trong trường hợp Use-Case thành cơng, thơng tin mới của tài khoản sẽđược cập nhật vào cơ sở dữ liệu.
Điểm mở rộng
Khơng cĩ.
4.2.1.2.6 Đặc tả Use-Case “Chat”
Tĩm tắt
Use-Case này cho phép người sử dụng (nhà quản trị) gửi và nhận tin nhắn (chat) với một người hay tất cả mọi người đã đăng nhập vào server.
KHOA CNTT –
ĐH KHTN
86
Dịng sự kiện
o Dịng sự kiện chính
1. Use-Case này bắt đầu khi người sử dụng chọn người cần gửi tin nhắn, nhập nội dung tin nhắn cần gửi đến người đĩ và chọn Send trên màn hình chat.
2. Chương trình sẽ gửi tin nhắn đến đối tượng được yêu cầu (gửi tin nhắn thành cơng)
o Dịng sự kiện khác
- Trong trường hợp đối tượng đang được chọn để chat gửi tin nhắn đến người sử dụng thì tin nhắn đĩ sẽđược cập nhật lên màn hình chat (nhận tin nhắn). - Trong trường hợp đối tin nhắn khơng gửi đến được đối tượng được chọn, chương trình sẽ báo lỗi.
Các yêu cầu đặc biệt
Khơng cĩ.
Điều kiện tiên quyết
Người sử dụng phải chọn người để gửi tin nhắn hoặc tất cả mọi người (public). Server cũng phải được khởi động và phải cĩ client tham gia.
Post condition
Nếu Use-Case thực hiện thành cơng, tin nhắn sẽ được chương trình gửi đến đối tượng được yêu cầu.
Điểm mở rộng
KHOA CNTT – ĐH KHTN 87 4.2.1.3 Thiết kế dữ liệu Options Connection Management Chat MainForm 1 1 1 1 11 1 1 1 1 1 1 1 1 MultiCommFramework 1 11 1 Lớp đối tượng Connection • Danh sách các thuộc tính STT Tên Loại Kiểu Miền giá trị Ý nghĩa
1 listenerport Đơn trị int (0, 9999) cổng nghe
2 clientport Đơn trị int (0, 9999) cổng client
3 username Đơn trị string Tên user
• Danh sách các trách nhiệm
STT Xử lý chính Loại Ý nghĩa Ghi chú
1 Connect Cập nhật Kết nối với Server
2 Disconnect Cập nhật NgServer ừng kết nối với
3 Register Cập nhật Đăng ký tài khoản mới
4 SignIn Cập nhật Đăthống nhng ập vào hệ
5 SignOut Cập nhật Đăthống xung ất khỏi hệ
Lớp đối tượng Chat
• Danh sách các thuộc tính
STT Tên Loại Kiểu Miền giá trị Ý nghĩa
1 listenerport Đơn trị int (0, 9999) cổng nghe
KHOA CNTT –
ĐH KHTN
88 • Danh sách các trách nhiệm
STT Xử lý chính Loại Ý nghĩa Ghi chú
1 ChatPublic Cập nhật Chat với mọi người
2 ChatPrivate Cập nhật Chat với một người
Lớp đối tượng Management • Danh sách các thuộc tính
STT Tên Loại Kiểu Miền giá trị Ý nghĩa
1 userlist Đa trị Mảng Danh sách user
• Danh sách các trách nhiệm
STT Xử lý chính Loại Ý nghĩa Ghi chú
1 AddUser Cập nhật Thêm user mới
2 RemoveUser Cập nhật Xĩa user
3 UpdateUser Cập nhật Cập nhật thơng tin user
4 KickUser Cập nhật Khơng cho user knữa ết nối
Lớp đối tượng MultiCommFramework • Danh sách các trách nhiệm
STT Xử lý chính Loại Ý nghĩa Ghi chú
1 listener_OnJoined Cập nhật Phát sinh khi client kết
nối vào
2 listener_OnLeave Cập nhật Phát sinh khi client
ngừng kết nối 3 multiComm_OnReceive Cập nhật Phát sinh khi nhđược thơng điệp ận 4 multiComm_OnTerminate Cập nhật Phát sinh khi ngnối ừng kết
KHOA CNTT –
ĐH KHTN
89
4.2.1.4 Thiết kế giao diện
4.2.1.4.1 Danh sách các giao diện chính
Chương trình "AG Messenger Server" đĩng vai trị Server trong mơ hình mạng Client-Server. Ngồi các chức năng phục vụ cho Client kết nối, chương trình cịn hỗ
trợ các chức năng quản lý như thêm, xĩa, cập nhật tài khoản. Ngồi ra nĩ cũng đĩng vai trị như một client tức là cĩ thể chat với từng người hoặc chung nhiều người.
Danh sách các màn hình chính trong chươn trình "AG Messenger Server" gồm:
STT Tên Nội dung
1 Màn hình giới thiệu Các gitrình. ới thiệu liên quan đến chương
2 Màn hình kết nối Khởi động và ngừng server.
3 Màn hình quản lý tài khoản Thể hiện thơng tin các tài khoản và cho phép thêm, xĩa, sửa tài khoản.
4 Màn hình thêm tài khoản Thêm một tài khoản mới.
5 Màn hình cập nhật tài khoản Câp nhật tài khoản.
6 Màn hình chat Thể hiện thơng tin chat giữa các thành
KHOA CNTT – ĐH KHTN 90 Màn hình giới thiệu Hình 4-2: Màn hình giới thiệu Màn kết nối Hình 4-3: Màn hình kết nối
KHOA CNTT –
ĐH KHTN
91
Màn hình quản lý tài khoản
Hình 4-4: Màn hình quản lý tài khoản
Màn hình thêm tài khoản
KHOA CNTT – ĐH KHTN 92 Màn hình cập nhật tài khoản Hình 4-6: Màn hình cập nhật tài khoản Màn hình chat Hình 4-7: Màn hình chat
KHOA CNTT –
ĐH KHTN
93
4.2.1.5 Thiết kế xử lý
4.2.1.5.1 Danh sách các xử lý chính
STT Xử lý Mơ tả Use-Case tương ứng
1 XL1 Khởi động Server. StartServer
2 XL2 Ngừng Server. StopServer
3 XL3 Thêm tài khoản. AddAccount
4 XL4 Cập nhật tài khoản. UpdateAccount
5 XL5 Tán gẫu (gửi tin nhắn) Chat
4.2.1.5.2 Các xử lý chính
XL1 – Khởi động Server
: User : ConnectionScreen : ConnectionControl : Main_DB 1: //StartServerRequest()
2: //CheckAndStartRequest()
3: //CheckAdminInfo() 4: //StartAndSendInviteMessage() 5: //ShowStartServerResult()
KHOA CNTT –
ĐH KHTN
94
XL2 – Ngừng Server
: User : ConnectionScreen : ConnectionControl 1: //StopServerRequest()
2: //StopRequest()
3: //SendStopServerMessage() 4: //ShowStopServerResult()
KHOA CNTT –
ĐH KHTN
95
XL3 – Thêm tài khoản
: User : ManagementScreen : AddAccountScreen : ManagementControl : Main_DB 1: //AddAccountRequest() 2: //OpenAddAccountScreen() 3: //InputAccountInfo() 4: //DoAddAccount() 5: //GetAccountList() 6: //CheckAccountInfo() 7: //AddAccount() 8: ShowAddAccountResult()
KHOA CNTT –
ĐH KHTN
96
XL4 – Cập nhật tài khoản