You are on page 1of 86

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


KHOA CÔNG NGHỆ THÔNG TIN

HÀ NỘI – 2008
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN

TÓM TẮT KHÓA LUẬN TỐT NGHIỆP


CHUYÊN NGÀNH CÔNG NGHỆ PHẦN MỀM

HÀ NỘI - 2008
Mục lục

Danh sách cán bộ Bộ môn Công nghệ phần mềm …….....……………………….. 5


Danh sách cán bộ tham gia hướng dẫn …………………….....…………………... 6

1. Web 2.0 và ứng dụng website lưu trữ, tìm kiếm và xử lý nhạc
Nguyễn Thị Châm ……………………......................................................... 7

2. Nghiên cứu về công nghệ Portal


Phạm Thị Chung …………………………………………………………... 9

3. Giải pháp kết nối ngân hàng và công ty chứng khoán


Nguyễn Xuân Trường ……………………………………………………... 11

4. Nghiên cứu về CORBA và ứng dụng


Nguyễn Viết Duy …………………………………………………………... 13

5. Xây dựng nền tảng phát triển ứng dụng web map hiệu năng cao
Chu Văn Đoàn ……………………………………………………………... 17

6. Dịnh vụ SMS và ứng dụng


Nguyễn Minh Đức …………………………………………………………. 19

7. Quản lý doanh mục đầu tư chứng khoán


Nguyễn Văn Đức …………………………………………………………... 21

8. Hướng tiếp cận mới về virus


Đỗ Thị Hà ………………………………………………………………….. 23

9. Xây dựng công cụ mô phỏng mạch điện


Nguyễn Thị Thanh Hằng – Nguyễn Anh Tuấn ………………………….. 25

10. Hệ quản trị nội dung và ứng dụng


Vũ Khắc Hiếu ……………………………………………………………… 28

11. Kỹ nghệ Web và ứng dụng trong xây dựng CMS cho trang tin tức
Nguyễn Khắc Hiệp ………………………………………………………… 30

12. Quản lý cấu hình phần mềm


Nguyễn Thị Hoa …………………………………………………………… 32

-1-

 
13. Nghiên cứu phân đoạn ảnh cho nhận dạng văn bản
Nguyễn Đức Huy …………………………………………………………... 34
14. Portal mạng trợ giúp Việt Nam – VietnamF1
Nguyễn Duy Hưng …………………………………………………………. 36

15. Refactoring aware version control


Nguyễn Việt Hưng …………………………………………………………. 38

16. Finding heap bounds of Java card applets


Phạm Tuấn Hưng ………………………………………………………….. 40

17. Hiển thị thông tin chứng khoán trực tuyến sử dụng công nghệ AJAX
Vũ Tiến Hưng ……………………………………………………………… 42

18. Xây dựng giải pháp cho hiệp hội khách sạn Việt Nam trên nền tảng web 2.0
Đoàn Trọng Khôi ………………………………………………………….. 44

19. Các phương pháp nhận dạng chữ viết tay tiếng Việt trực tuyến
Nguyễn Duy Khương ……………………………………………………… 46

20. Xây dựng hệ thống đồ họa 3D hỗ trợ giao diện ZUI dựa trên OpenGL|ES
Nguyễn Văn Lâm ………………………………………………………….. 48

21. Hệ quản lý giao việc ứng dụng công nghệ Workflow và công nghệ hướng
đối tượng
Doãn Đình Lương …………………………………………………………. 46

22. Nghiên cứu về xử lý ảnh trong xây dựng bản đồ


Vũ Thị Lý …………………………………………………………………... 50

23. Workflow – nền tảng cho các ứng dụng phần mềm
Lục Quang Mạnh ………………………………………………………….. 52

24. Xây dựng phần mềm quản lý cổ đông, cổ tức và hỗ trợ bầu cử cho công ty
cổ phần Naphaco
Trịnh Minh Đức …………………………………………………………… 54

25. Ứng dụng lý thuyết mã hóa thông tin trong việc xây dựng hệ thống bầu cử
điện tử
Trương Bảo Nam ………………………………………………………….. 56

26. Nghiên cứu về kiểm chứng phần mềm dựa trên Aspect
Nguyễn Thùy Nhung ………………………………………………………. 58

-2-

 
27. Web services và Ajax trong bài toán Mashup với bản đồ
Nguyễn Trọng Quyền ……………………………………………………... 60

28. Nghiên cứu cài đặt OpenGL|ES trên Java ME


Lê Nguyễn Tuấn Thành …………………………………………………... 62

29. Hệ thống quản lý bất động sản ứng dụng công nghệ hướng đối tượng
Nguyễn Phương Thảo ……………………………………………………... 64

30. Nghiên cứu kỹ thuật phân tích WCET trong hệ thống thời gian thực cứng
Dương Đình Toan …………………………………………………………. 66

31. Nghiên cứu công nghệ EJB và ứng dụng


Vũ Thu Trang ……………………………………………………………… 68

32. Phân tích thiết kế hệ thống quản lý văn bản và hồ sơ công việc
Bùi Quốc Trung …………………………………………………………… 70

33. Ứng dụng công nghệ AJAX trong hiển thị tin nhanh và cá nhân hóa
Nguyễn Văn Trung ………………………………………………………... 72

34. Tích hợp Web service


Phạm Văn Trường ………………………………………………………… 75

35. Kiểm chứng sự tuân theo giữa mã thực thi và đặc tả PSM
Trương Đình Trường ……………………………………………………... 77

36. Nghiên cứu về Web service và ứng dụng


Vũ Minh Tuấn ……………………………………………………………... 79

37. Kiểm chứng tuân theo giữa mã thực thi và đặc tả UCM
Phạm Văn Tùng …………………………………………………………… 81

38. Ứng dụng Web 2.0 theo đinh hướng tích hợp vào portal cá nhân Netvibes
với ứng dụng lịch trình tàu chạy
Nguyễn Minh Tường ………………………………………………………. 83

-3-

 
-4-

 
Danh sách cán bộ Bộ môn Công nghệ phần mềm

Danh sách cán bộ giảng dạy


1. PGS. TS. Nguyễn Ngọc Bình Hiệu phó trường ĐHCN Email: nnbinh@vnu.edu.vn
2. ThS. Trần Thị Minh Châu Email: tmct@vnu.edu.vn
3. ThS. Vũ Quang Dũng Email: dungvq@vnu.edu.vn

4. TS. Nguyễn Việt Hà Phó chủ nhiệm Khoa CNTT Email: hanv@vnu.edu.vn
Chủ nhiệm Bộ môn CNPM

3. TS. Trương Anh Hoang Email: hoangta@vnu.edu.vn

3. TS. Đặng Văn Hưng Email: dvh@vnu.edu.vn

5. ThS. Vũ Diệu Hương Email: huongvd@vnu.edu.vn

6. ThS. Tô Văn Khánh Email: khanhtv@vnu.edu.vn

7. ThS. Đào Kiến Quốc Giám đốc Trung tâm Email: quocdk@vnu.edu.vn
NC & PT CNPM
8. CN. Nguyễn Việt Tân Email: tannv@vnu.edu.vn
9. ThS. Nguyễn Thị Nhật Thanh Email: thanhntn@vnu.edu.vn
10. TS. Trương Ninh Thuận Email: thuantn@vnu.edu.vn
11. ThS. Trần Thị Mai Thương Email: thuongttm@vnu.edu.vn

12. PGS. Nguyễn Quốc Toản Email: toannq@vnu.edu.vn


13. PGS. TS. Nguyễn Văn Vỵ Email: vynv@vnu.edu.vn

Danh sách nghiên cứu sinh


1. ThS. Lê Việt Hà Email: le_viet_ha@yahoo.com
2. CN. Ngô Xuân Bách Email: ngoxuanbachkcn@yahoo.com
3. ThS. Trần Thanh Bình Email: binhtt75@yahoo.com

Danh sách thực tập sinh


1. CN. Nguyễn Đức Anh Email: ducanh@yahoo.com
2. CN. Võ Văn Thành Email: thanhvv@gmail.com
-5-

 
Danh sách cán bộ tham gia hướng dẫn

1. ThS. Trần Vũ Việt Anh Vinasa Email: anhtvv@yahoo.com


2. ThS. Phùng Chí Dũng Trung tâm Mạng máy tính Email: dungpc@vnu.edu.vn

3. ThS. Đinh Khắc Dũng Công ty A.N lab Email:


4. ThS. Đặng Việt Dũng Trường ĐHCN Email: dungdv@vnu.edu.vn
5. TS. Bùi Thế Duy Khoa CNTT Email: duybt@vnu.edu.vn

6. ThS. Lê Hồng Hải Khoa CNTT Email: hailh@vnu.edu.vn

7. ThS. Nguyễn Nam Hải Trung tâm Mạng máy tính Email: hainn@vnu.edu.vn
8. ThS. Nguyễn Cảnh Hoàng Khoa CNTT Email: hoangnc@vnu.edu.vn
9. CN. Lê Xuân Thắng Ngân hàng VP Email:
10. TS. Lê Sĩ Vinh Khoa CNTT Email: vinhls@yahoo.com

-6-

 
WEB 2.0 VÀ ỨNG DỤNG WEBSITE LƯU TRỮ, TÌM KIẾM VÀ XỬ LÝ NHẠC

Họ tên: Nguyễn Thị Châm Cán bộ hướng dẫn: Th.S. Nguyễn Nam Hải

1. Giới thiệu 2.2. Tổ hợp công nghệ Ajax


Có thể nói những năm gần đây Web 2.0 Trình bày về lịch sử ra đời, khái niệm
đã trở nên quen thuộc với những ai đã và đang của Ajax, miền hữu dụng, nhược điểm cũng
quan tâm đến sự phát triển của web. Sự ra đời như các trình duyệt hỗ trợ. Đi sâu vào nghiên
và phát triển của Web 2.0 vẫn đang hấp dẫn và cứu N guyên lý hoạt động và các thành phần bên
được nghiên cứu bởi nhiều nhà phát triển trên trong công nghệ Ajax như CSS, Javascript, mô
thế giới. hình Dom, XML đặc biệt là đối tượng
Được xem là một cuộc cách mạng trên XMLHttpRequest. Chỉ ra cách thức tương tác
thế giới mạng, thế hệ web mới có những thay của Ajax và sự khác biệt so với cách thức tương
đổi quan trọng không chỉ ở nền tảng công nghệ tác truyền thống.
mà còn cả ở cách thức sử dụng - hình thành nên 2.3. Xây dựng ứng dụng Website lưu
môi trường cộng đồng, ở đó mọi người cùng trữ, tìm kiếm và xử lý nhạc.
tham gia đóng góp cho xã hội "ảo" chứ không N gày nay khi ứng dụng CN TT đã được
chỉ "duyệt và xem". Thực chất, Web 2.0 có đi sâu vào đời sống nhân dân, đặc biệt khi
nghĩa là sử dụng web đúng với bản chất và khả internet đang được phát triển nhanh chóng như
năng của nó. bây giờ. Các hình thức giải trí của con người
Thế hệ Web 2.0 đang được mong đợi sẽ không chỉ là TV, hay đi đến một nơi giải trí nào
thay đổi những hạn chế mà Web 1.0 chưa làm đó. Với ưu điểm của Internet con người có thể
được. Nó hình thành nên những khả năng tương có các hình thức giải trí, tìm kiếm thông
tác chưa có hoặc còn quá sơ sài ở Web 1.0 . tin,.v.v…ngay tại nhà mình. Để phục vụ các
Khả năng tương tác được hoàn thiện trên nhiều nhu cầu trên của người dùng internet, rất nhiều
phương diện: công nghệ, chuNn, người dùng, các website tìm kiếm, giới thiệu sản phNm, bán
ứng dụng,... nhằm tăng cường tính năng chia sẻ hàng trực tuyến .v.v… phục vụ cho nhu cầu tìm
vốn có của Web 1.0. hiểu và giải trí của người dùng đã ra đời. Cũng
Với những ưu điểm của mình, tổ hợp nhằm mục đích đánh vào thị hiếu người dùng,
công nghệ Ajax ngày càng đóng vai trò chủ với mong muốn thu hút nhiều người truy cập
chốt trong thế hệ web thứ hai này. vào website, Chúng tôi đã quyết định xây dựng
2. Nội dung khoá luận một website tìm kiếm, lưu trữ và xử lý nhạc
Web 2.0 phục vụ cho nhu cầu giải trí của người sử dụng
Trình bày tổng quan về web 2.0. Các Internet.
động lực để phát triển Web 2.0 như đường Phân rã chức năng của website :
truyền tốc độ cao, băng thông rộng, sự lớn ¾ Quản lý website
mạnh của Internet, gia tăng số lượng người truy o Quản lý tài khoản admin
cập…Tìm hiểu về các công nghệ dùng trong - Thêm tài khoản
Web 2.0 như là RSS, SOA, Ajax…trong đó - Sửa tài khoản
công nghệ Ajax đóng vai trò then chốt. - Xoá tài khoản
o Quản lý file nhạc

-7-
- Thêm file nhạc web, đặc điểm chung của Web 2.0 và đi sâu
- Sửa file nhạc nghiên cứu về tổ hợp công nghệ Ajax. Cùng với
- Xoá file nhạc kiến thức đó tôi đã xây dựng được ứng dụng
o Quản lý user Website lưu trữ, tìm kiếm và xử lý nhạc.
- Xem tài khoản user 3. Tài liệu tham khảo
- Xoá tài khoản user [1] Bùi ngọc khải. N ghiên cứu, phát
o Quản lý comment triển ứng dụng web với công nghệ ajax. Khoá
- Xem comment luận tốt nghiệp đại học chính quy, Đại học
- Xoá comment Công nghệ, ĐHQG Hà N ội 2007
¾ Sử dụng website [2] Phan Anh Tu. Xây dựng hệ thống
o Tìm bài hát đấu giá trực tuyến trên Internet. Khoá luận tốt
o Upload file nhạc nghiệp đại học chính quy, Đại học Công nghệ,
o Tạo playlist ĐHQG Hà N ội 2007
- Thêm bài hát vào playlist [3] Lee Babin. Beginning Ajax with
- Xoá bài hát khỏi plalist PHP, from N ovice to Professional. 2007
o Gửi comment [4] Sang Shin, Java Technology
Giải pháp công nghệ Architect Sun Microsystems. AJAX Basics.
Sử dụng tổ hợp công nghệ Ajax với 2006
chức năng của các công nghệ bên trong như [5] Justin Gehtland, Ben Galbraith, Dion
sau: Almaer. Pragmatic Ajax, A Web 2.0 Primer
• XHTML+CSS với vai trò hiển thị [6]
thông tin http://www.aptech.vn/news/laptrinhvien/693/
• Mô hình tương tác và hiển thị động N hập môn AJAX (1-14).
DOM (Document Object Model) [7] http://vietnamnet.vn . 15 năm lịch sử
• Trao đổi và truy cập/tác động lên phát triển web, những dấu mốc quan trọng.
thông tin sử dụng XML và XSLT [8] http://nguoitapviet.info Ajax –
• N hận thông tin không đồng bộ với tương lai của ứng dụng web
đối tượng XMLHttpRequest [9] http://w3schools.com/ajax và
• Javascript với vai trò kết hợp 4 công http://w3schools.com/php
nghệ trên lại với nhau [10] http://en.wikipedia.org/wiki/Web_2
2.4. Thực nghiệm [11] http://vnexpress.net. Toàn cảnh
Tôi đã cài đặt thử nghiệm website lữu Web 2.0 qua 8 định nghĩa.
trữ, tìm kiếm và xử lý nhạc. Kết quả thực
nghiệm cho thấy bài toán phân tích thiết kề phù
hợp với quy trình thiết kế, có giá trị thực tế cao
giúp người dùng có thể giải trí qua mạng, tương
tác và góp phần làm phong phú cho website.
2.5 Kết luận
Sau thời gian nghiên cứu về Web 2.0 tôi
đã nắm được các công nghệ trong ứng dụng

-8-
NGHIÊN CỨU VỀ CÔNG NGHỆ PORTAL
Phạm Thị Chung Cán bộ hướng dẫn : TS. Nguyễn Việt Hà
MSV: 04020030 Cán bộ đồng hướng dẫn :ThS.Trần Vũ Việt Anh

1. Giới thiệu 2.2. Kiến trúc của portal


Ngày nay với sự bùng nổ của Internet và Các ứng dụng Portal hầu hết đều được xây
lượng thông tin đồ sộ đã làm thay đổi bộ mặt thế dựng trên cở sở kiến trúc 3 tầng sau :
giới web cũng như thói quen duyệt web của người Tầng trình diễn: Cung cấp một khung nhìn
dùng. Những năm gần đây, nhiều trang thông tin hợp nhất cho các ứng dụng nghiệp vụ.
điện tử (website) của các tổ chức, cá nhân ra đời Tầng phục vụ ứng dụng: đóng vai trò là bộ
dẫn đến hệ quả là quá tải thông tin. Mỗi wesite não của portal. Tầng này cung cấp hầu hết các
thường cung cấp những dịch vụ và ứng dụng khác chức năng chính của một portal.
nhau gây phiền toái và mệt mỏi cho người dùng
Tầng dịch vụ thông tin là tầng cung cấp hạ
khi họ phải nhớ quá nhiều tên và mật khNu để có
tầng thông tin của tổ chức.
thể truy xuất thông tin hoặc sử dụng dịch vụ của
2.3. Một số tiêu chuẩn về Portal
các hệ thống khác nhau. Hơn nữa, các website
JSR 168 : Đây là tiêu chuNn do hiệp hội Java
hiện nay yêu cầu tính tương tác và tùy biến cao
Community Process công bố, hiện tại chủ yếu
của người dùng, tạo khả năng tương tác tối đa
được áp dụng cho các portal xây dựng trên nền
giữa người dùng và các nguồn thông tin, giữa
tảng Java. ChuNn này chỉ ra cách tương tác giữa
người dùng với các ứng dụng tác nghiệp và giữa
portlet với portal framework.
các ứng dụng với nhau.
N hững bất cập trên cùng hàng loạt yêu cầu WSRP : ChuNn này do OASIS (Organization for
cấp thiết khác nảy sinh từ thực tế phát triển đã the Advancement of Structured Information
xuất hiện một khái niệm mới, đồng thời cũng là Standards) công bố. ChuNn này chỉ ra các thức
giao tiếp giữa một portal server với remote portlet
một xu hướng công nghệ mới là Portal.
thông Web Services.
2. 2. Tổng quan về công nghệ Portal
3. Một số tiêu chuẩn về Portal
2.1. Khái niệm về portal
2.4. JSR - 168
“Portal, tên đầy đủ là Web Portal, là một hệ
thống hoạt động trên Web, định danh và xác thực Portal xây dựng theo chuNn JSR-168 bao
người dùng đăng nhập, từ đó sẽ cung cấp một gồm các thành phần : Portlet, Portlet Container.
giao diện web để người dùng dễ dàng truy cập, • Portlet
khai thác thông tin và dịch vụ cũng như thao tác, Là một thành phần web được quản lý bởi
tuỳ biến các công việc tác nghiệp của mình một portlet container, xử lý các yêu cầu và sinh ra nội
cách nhanh chóng và đơn giản”. dung động. N ội dung sản sinh bởi 1 portlet được
gọi là 1 fragment (là 1 phần của ngôn ngữ đánh
dấu như HTML, XHTML,…) tuân thủ nghiêm

-9-
ngặt các luật và có thể kết hợp với các fragment triển internet giúp cho khả năng liên kết chia sẻ
khác tạo nên một tài liệu hoàn chỉnh. tài nguyên giữa các thư viện trở nên dễ dàng hơn.
• Portlet container Từ thực tế đó, Portal thực sự là một giải pháp mới
Portlet container chạy các portlet và cung trong việc xây dựng thư viện điện tử theo hướng
cấp cho chúng môi trường thực thi cần thiết. cho phép liên kết, chia sẻ thông tin với thư viện
Portlet container nhận các yêu cầu từ portal và điện tử khác.
thực thi các yêu cầu trên những portlet được chứa Các ca sử dụng chính của ứng dụng bao
bởi nó. gồm:
2.5. WSRP 1. Quản lý tài liệu
Kiến trúc WSRP bao gồm các tác nhân 2. Quản lý mượn tài liệu
chính sau: 3. Quản lý trả tài liệu
• producer: là một Web Service(WS), cung cấp 4. Quản lý bạn đọc
các portlet và cài đặt tập giao diện WSRP, 5. Quản lý nhân viên
cung cấp tập các phương thức chung cho các 6. Thống kê & Báo cáo
Consumer. 5. Thực nghiệm
• portlet: Là một thành phần giao diện người Ứng dụng được viết trên framework Bea
dùng sống trong Producer và được truy cập WebLogic Platform 8.1. Bộ phần mềm gồm 3 sản
thông qua giao diện được định nghĩa bởi phNm:WebLogic Portal, WebLogic Server,
Producer. WebLogic Workshop và sản phNm tùy chọn
• consumer: là một WS, gọi tới các WS mà WebLogic Integration. WebLogic Platform (WP)
producer và cung cấp môi trường cho portlet làm thành một môi trường hoàn hảo để xây dựng
hoạt động. portal và các ứng dụng chạy trên môi trường quy
Consumer có thể tương tác với các portlet mô lớn
từ xa thông qua giao diện của Producer. Mọi 4. 6. Kết luận
Producer đều phải cài đặt hai giao diện bắt buộc Khóa luận đã làm rõ bản chất và kiến trúc
là giao diện mô tả service, giao diện đánh dấu và của công nghệ Portal. Khóa luận cũng đã đi sâu
hai giao diện tùy chọn là giao diện đăng ký, giao tìm hiểu hai tiêu chuNn phổ biến về portal trên thế
diện quản lý portlet. giới là JSR 168 và WSRP.
Producer có thể xuất bản các portlet và các Khóa luận đã phân tích bài toán “ quản lý thư
Consumer có thể tìm kiếm và kết nối các portlet viện điện tử” theo công nghệ portal và triển khai
trong trang portal của mình. thực nghiệm một phần nhỏ trên Bea WebLogic
3. Ứng dụng bài toán xây dựng thư viện Platform 8.1.
Từ xưa đến nay, thư viện luôn là một trong Tài liệu tham khảo
những kho tri thức lớn của con người. Sự đa dạng [1] Dan Sullivan - Proven Portals: Best Practices for Planning,
Designing, and Developing Enterprise Portals
hóa các nguồn thông tin kéo theo yêu cầu quy mô [2] Java(TM) Portlet Specification ("Specification") Version: 1.0
ngày càng lớn hơn của thư viện. Hơn nữa, sự phát [3] Web Services for Remote Portlets Specification v1.0
[4] http://my.opera.com/Alibobo/blog/portal

- 10 -
GIẢI PHÁP KẾT NỐI NGÂN HÀNG VÀ CÔNG TY CHỨNG KHOÁN
Họ tên: Nguyễn Xuân Cường GV hướng dẫn: Ts. Trương Ninh Thuận
MSSV: 04020038
Email: cuongxn@gmail.com

1. Giới thiệu − WSDL – Web Services Description


Language
Ngày nay công nghệ web services đã và đang
được triển khai và ứng dụng trong rất nhiều lĩnh 3. Giao thức bảo mật SSL
vực khác nhau bao gồm cả những lĩnh vực nhạy Giao thức SSL cung cấp sự bảo mật truyền
cảm, đòi hỏi tính an toàn cao như tài chính, ngân thông có ba đặc tính cơ bản:
hàng, … do đó web service cần cung cấp một
− Các bên giao tiếp (nghĩa là client và
mức an toàn đủ để hỗ trợ những công việc như
server) có thể xác thực nhau bằng cách sử
thế. Bên cạnh nhưng mặt thuận lợi do web service
dụng mật mã khóa công khai.
đem lại thì việc đảm bảo an toàn, tin cậy, toàn vẹn
thông tin trao đổi trên web service cũng là một − Sự bí mật của dữ liệu được bảo vệ vì kết
điều rất quan trọng trong quá trình xây dựng web nối được mã hóa trong suốt sau khi một sự
service. thiết lập quan hệ ban đầu và sự thương
lượng khóa session đa xảy ra.
Nội dung khóa luận đi vào tìm hiểu công nghệ
web service và vấn đề bảo mật liên quan. Bài toán − Tính xác thực và tính toàn vẹn của dữ liệu
kết nối ngân hàng với công ty chứng khoán đòi cũng được bảo vệ vì các thông báo được
hỏi sự an toàn, tin cậy và toàn vẹn thông tin khi xác thực và được kiểm tra tính toàn vẹn
trao đổi, do đó tôi chọn công nghệ web service để một cách trong suốt.
giải quyết bài toán này. 4. Ứng dụng kết nối ngân hàng với công ty
2. Công nghệ Web Service chứng khoán

Webservice là một giao diện trừu tượng Kinh doanh chứng khoán là một hoạt động diễn ra
(abstract interface) được thể hiện trong HTML, khá phổ biến hiện nay, trong một bộ phận xã hội
dựa trên sự tương tác của User và Web server, nó không nhỏ, nhưng công việc giao dịch hiện nay
là một ứng dụng phần mềm được truy xuất thông vẫn chủ yếu là bằng tiền mặt, công việc này làm
qua web bởi một ứng dụng khác. mất nhiều thời gian và công sức cũng như làm hạ
thấp tính chính xác và bảo mật về thông tin cá
Các thành phần thường được sử dụng trong
nhân của nhà đầu tư.
web service thường bao gồm:
Các hoạt động chính của ứng dụng bao gồm:
− XML – eXtensible Markup Language
− SOAP – Simple Object Access Protocol − Hiển thị thông tin

- 11 -
− Đăng nhập tài khoản toán này, trong đó có sử dụng công nghệ web
service để thực hiện.
− Mua cổ phiếu
Tài liệu tham khảo
− Bán cổ phiếu
[1] David Chappell, Tyler Jewell: Java Web
− Đăng xuất Services

− Đăng ký tài khoản [2] Ethan Cerami: Web Services Essentials

− Cập nhật thông tin Distributed Applications with XML-RPC, SOAP,


UDDI & WSDL
5. Triển khai
[3] Matthew MacDonald: Microsoft® .NET
Ứng dụng được chia làm hai phần
Distributed Applications: Integrating XML Web
- Server: gồm có web service, các hàm chức Services and .NET Remoting
năng để sử lý các yêu cầu từ Client gửi
[4] Paul B. Monday: Web Service Patterns: Java
lên, cơ sở dữ liệu. Được phát triển bằng
công cụ lập trình Oracle Jdeveloper và cơ Edition
sở dữ liệu Oracle. [5] Sanjiva Weerawarana, Francisco Curbera,
- Client: hiển thị giao diện người dùng bao Frank Leymann, Tony Storey,
gồm hiển thị thông tin, đăng nhập, giao Donald F. Ferguson: Web Services Platform
dịch cổ phiếu và đăng xuất. Được phát Architecture: SOAP, WSDL, WS-Policy, WS-
triển bằng công cụ lập trình ASP.NET Addressing, WS-BPEL, WS-Reliable Messaging,
trong bộ Visual Studio .NET and More
[6] Vo Dinh Hieu: Secure Provision of Composite

6. Kết luận Services in an Insecure Networked


Khóa luận trình bày tính cần thiết của bài toán kết Environment
nối ngân hàng với công ty chứng khoán, giải pháp
sử dụng mô hình Client – Server để giải quyết bài http://www.java2s.com

- 12 -
NGHIÊN CỨU VỀ CORBA VÀ ỨNG DỤNG
Nguyễn Viết Duy Cán bộ hướng dẫn: TS.Trương Ninh
MSV:0420055 Thuận
Email:duyviet.nguyen@gmail.com Cán bộ đồng hướng dẫn: ThS. Tô Văn
Khánh

1. Giới thiệu + Common Faccilities: Các tiện ích mà


Khi công nghệ thông tin ngày càng CORBA cung cấp giúp xây dựng và
phát triển thì nhà phát triển luôn mong quản lý các thành phần trong ứng dụng,
muốn tìm được tiếng nói chung giữa cung cấp các chức năng cơ bản mà mọi
các ngôn ngữ và độc lập về nền tảng. chương trình hướng đối tượng đều cần
Vì vậy CORBA ra đời với tham vọng + Object Services: Các dịch vụ cung
của OMG là đưa ra một phương pháp cấp các chức năng cơ bản để xây dựng
để các đối tượng viết bằng các ngôn ứng dụng CORBA Các phương tiện của
ngữ khác nhau có thể triệu gọi lẫn CORBA được chia ra làm hai loại: các
nhau theo mô hình đối tượng phân tán. thành phần theo chiều ngang
Khóa luận này đi sâu nghiên cứu (horizontal) và các thành phần theo
về mô hình CORBA và ứng dụng cơ chiều dọc (vertical).
bản của mô hình này sử dụng ngôn ngữ
Java.

2. Mô hình kiến trúc CORBA


Trải qua quá trình phát triển hiện
nay CORBA đã phát triển tới phiên
bản 3.x. Phiên bản đầu tiên của
CORBA chính thức ra đời năm 1991.
Tổng quan về kiến trúc CORBA gồm
các thành phần:
+ Object Request Broker (ORB): Hình 1: Mô hình kiến trúc của CORBA
Đây là nền tảng quan trọng của kiến
trúc giúp các ứng dụng phân tán có 3. Bài toán ứng dụng
thể hiểu được nhau, là phần trung Để minh họa cho mô hình và kiến trúc
gian tạo khả năng cho các mối liên của CORBA tôi xin trình bày về các bước
hệ giữa client/server thông qua các xây dựng và biên dịch để chạy một ứng
đối tượng. dụng CORBA nói chung, với bài toán cụ
+ Interface Define Language thể: StockMarket.
(IDL): IDL giúp định nghĩa giao Mô tả bài toán: Chương trình
diện các đối tượng trong ứng dụng. CORBA trên máy khách (CORBA client)
Đây là ngôn ngữ giao diện chứ sẽ gọi đối tượng trên máy chủ. Đối tượng
không phải là ngôn ngữ thực CORBA trên máy chủ (CORBA server) sẽ
thi.Như thế là, bạn có thể viết ứng trả về giá trị đã tính toán được.
dụng trong IDL với mục đích duy Các bước tiến hành:
nhất của IDL đó là định nghĩa giao + Bước 1: Xây dựng đối tượng
diện; điều kiện cho sự thực thi của StockMarket trong đó chứa phương
các giao diện là sử dụng một vài thức getStockValue(). Được đặc tả bằng
ngôn ngữ khác. ngôn ngữ CORBA IDL. Sau khi xây
+ Application Objects: Các đối dựng xong đối tượng StockMarket ta
tượng ứng dụng được xây dựng. tiến hành biên dịch file StockMarket.idl

- 13 -
+ Bước 2: Xây dựng đối tượng Tài liệu tham khảo
StockServerImpl bằng ngôn ngữ
Java. Đối tượng này sẽ kế thừa lớp [1]. Gerald Brose, Andreas Vogel and
_StockServerImplBase được sinh ra Keith Duddy. Java programming
trong bước biên dịch ở trên. with CORBA 3rd Edition.
+ Bước 3: Cài đặt đối tượng
StockServer là đối tượng CORBA [2]. Jeremy L.Rosenberger. Teach
trên máy chủ và biên dịch. Yourself CORBA In 14 Days.
+ Bước 4: Xây dựng trình khách
[3]. Trang web: http://www.corba.org
triệu gọi đối tượng CORBA. Ở đây
là việc xây dựng đối tượng [4]. Trangweb:
StockMaketClient. Sau đó tiến hành
biên dịch đối tượng này http://www.omg.org/corba/
+ Bước 5: Khởi động dịch vụ quản
lý tên của CORBA (tnameserv), tiếp
theo chạy đối tượng CORBA server
và chạy chương trình khách.
Kết quả trên trình khách sẽ trả về
giá trị được xác định trong phương
thức getStockValue() của đối tượng
StockServer.

4. Kết luận
Khóa luân này đã đi sâu vào nghiên
cứu về mô hình CORBA. Khóa luận
này đã đề cập đến các vấn đề: Tổng
quan về CORBA và tổ chức OMG - tổ
chức xây dựng nên CORBA, các thành
phần chi tiết như chi tiết của CORBA:
Kiến trúc ORB (Object Request Broker
), ngôn ngữ IDL (Interface Definition
Language), các dịch vụ (Service) và
tiện ích (Facility) của CORBA và đưa
ra bài toán demo thể hiện việc triệu gọi
các đối tượng từ xa, với việc chỉ ra các
bước xây dựng và biên dịch để chạy
một ứng dụng CORBA nói chung.
Bên cạnh các kết quả đạt được
khóa luận còn có những vấn đề khóa
luận này chưa giải quyết hay đề cập
đến. Hy vọng khóa luận sẽ là cơ sở
giúp cho việc xây dựng các ứng dụng
phân tán.

- 14 -
XÂY DỰNG NỀN TẢNG PHÁT TRIỂN ỨNG DỤNG WEB MAP HIỆU NĂNG CAO
Chu Văn Đoàn Giáo viên hướng dẫn: TS. Trương Anh Hoàng
MSSV: 0420086
Email: doan.chuvan@gmail.com
1. Giới thiệu Chúng tôi đã đưa ra các test case để đánh giá
và thử nghiệm các giải pháp được đưa ra. Các
Web Map là là bản đồ được hiện thị trên
thử nghiệm được thực hiện trên hệ thống máy
Web. Với sự phát triển mạnh mẽ của Internet
tính IBM-PC với bộ vi xử lý Pentium 4 2.4Ghz,
cùn sự phát triển của các công nghệ Web mới,
bộ nhớ RAM 2GB. Các kết quả thử nghiệm đã
các ứng dụng Web Map ngày càng trở nên quan
chứng tỏ được hiệu quả của các giải pháp này
trọng và phổ biến đối với người sử dụng. Số
trong một số thử nghiệm cụ thể.
lượng người sử dụng nhiều dẫn đến việc các
ứng dụng Web Map phải có được hiệu năng tốt 6. Kết luận và các cải tiến trong tương lai
mới có thể đáp ứng được yêu cầu của người sử Trong luận văn này chúng tôi đã đưa ra một
dụng. chung mô hình cho các Web Map hiện nay,
Trong luận văn này chúng tôi đưa ra kiến đồng thời phát triển một số thành phần rất cần
trúc logic chung của một hệ thống Web Map và thiết cho các ứng dụng Web Map. Tuy nhiên các
phát triển một số thành phần hiệu năng cao cho thành phần này chưa hoàn thiện. Trong tương
hệ thống này. lai, chúng tôi sẽ tiếp tục phát triển và hoàn thiện
thêm các thành phần này.
2. Cách tiếp cận
Trước tiên, chúng tôi nghiên cứu các hệ Bibliography
thống Web Map hiện có trên thế giới, xem xét [1] Bast, H., Funke, S., Matijevic, D., Sanders,
các thành phần mã nguồn mở có thể để sử dụng P., Schultes, D.: In: transit to constant time
để tạo nên một hệ thống Web Map. Từ đó chúng shortest-path queries in road networks. In:
tôi xây dựng nên một mô hình ứng dụng Web
Workshop on Algorithm Engineering and
Map hiệu quả. Đồng thời chúng tôi cũng nghiên
phát triển một số thành phần hiện chưa có trong Experiments (2007)
các giải pháp mã nguồn mở, hoặc hiện giờ chưa
[2] Goldberg, A.V., Harrelson, C.: Computing
đạt được hiệu năng mong muốn
the shortest path: A* meets graph theory. In:
4. Các kết quả đạt được 16th ACM-SIAM Symposium on Discrete
Chúng tôi đã đưa ra được một mô hình hiệu Algorithms, pp. 156–165. ACM Press, New
quả cho các hệ thống Web Map. Đồng thời, York (2005)
chúng tôi cũng đã xây dựng được một số thành
phần quan trọng cho hệ thống Web Map. [3] Gutman, R.: Reach-based routing: A new
Một cơ sở dữ liệu nhỏ chứa các dữ liệu approach to shortest path algorithms optimized
không gian nằm trong bộ nhớ. for road networks. In: 6th Workshop on
Phát triển một phần mở rộng cho Algorithm Engineering and Experiments. pp.
Lucene, phần mở rộng này có nhiệm vụ thêm 100–111 (2004)
vào khả năng truy vấn không gian cho Lucene.
[4] Sanders, P., Schultes, D.: Highway
Phát triển một Routing Server có hiệu hierarchies hasten exact shortest path queries.
năng tốt. Routing Server này có nhiệm vụ tìm
In: Brodal, G.S., Leonardi, S. (eds.) ESA 2005.
kiếm đường đi trong mạng được. Hiện Server
này đạt được hiệu năng tốt hơn so với các thành LNCS, vol. 3669, pp. 568–579. Springer,
phần có sẵn như PgRouting, Pyroute. Heidelberg (2005)
5. Thử nghiệm và đánh giá [5] Virtual Earth Tilesystem – Microsoft MSDN

- 15 -
[6] Apache Lucene Documentation

[7] PostGIS Documentation

[8] Oracle Spatial Documentation

[9] Elmasri, R., Navathe B., Fundamentals of


Database Systems Addison Wesley (2003)

- 16 -
DNCH VỤ SMS VÀ ỨNG DỤNG
Nguyễn Minh Đức GV hướng dẫn
MSSV: 0420094 ThS. Đào Kiến Quốc
Email: mrdavidsminhduc@gmail.com
1. Giới thiệu 3. Giải pháp xây dựng hệ thống cung cấp
Ngày nay, sự phát triển mạnh mẽ của kỹ dịch vụ giá trị gia tăng dựa trên SMS
thuật truyền thông di động cùng với sự phổ Mục tiêu nghiên cứu của giải pháp này là xây
dụng của điện thoại di động và dịch vụ SMS đã dựng một hệ thống đóng vai trò như một trung
kéo theo nhu cầu sử dụng các dịch vụ giá trị gia tâm cung cấp dịch vụ giá trị gia tăng. Thông qua
tăng trên điện thoại di động ngày càng tăng cao. các đầu số dịch vụ 8x75 các thuê bao di động sẽ
Các dịch vụ điển hình như: tra cứu thông tin giá nhắn tin với các đầu số dịch vụ tương ứng để
cả, thời tiết, chứng khoán; tải nhạc chuông, hình yêu cầu các dịch vụ như: tra cứu kết quả xổ số,
ảnh; dịch vụ dự đoán trúng thưởng ngày càng kết quả bóng đá, trò chơi trúng thưởng…
thu hút đông đảo người tham gia và đem lại Phân tích về mặt chức năng, hệ thống này có
doanh thu đáng kể. 3 chức năng cơ bản:
Chính vì tiềm năng và sự phát triển mạnh mẽ ƒ Thứ nhất là một website cung cấp nội
của các dịch vụ SMS đã đặt ra vấn đề các nhà dung thông tin về dịch vụ. Khách hàng
cung cấp dịch vụ giá trị gia tăng cũng như các theo dõi và tìm kiếm dịch vụ còn nhà cung
nhà cung cấp dịch vụ viễn thông phải không cấp thì quản lý dịch vụ.
ngừng vận động để xây dựng những giải pháp
ứng dụng và phát triển hình thức kinh doanh ƒ Thứ hai, hệ thống đóng vai trò là trung
“màu mỡ” này. tâm quản lý tin nhắn, đảm bảo cho các tin
nhắn luôn được thực hiện thành công và
2. Cơ sở lý thuyết lưu thông giữa người dùng và nhà cung
Để tìm hiểu về dịch vụ SMS thì trước hết cần cấp.
có được những khái niệm tổng quan về công ƒ Thứ ba, hệ thống còn đóng vai trò thanh
nghệ di động, những công nghệ và mạng di toán, tính cước, đảm bảo cho việc sử dụng
động phổ biến. Đây chính là nền tảng để hình dịch vụ thực hiện hợp pháp và công bằng.
thành và phát triển dịch vụ SMS.
Thiết kế về mặt chức năng của hệ thống gồm
Trong phần tìm hiểu về dịch vụ SMS, cần 3 thành phần:
nắm được những khái niệm cơ bản, kiến trúc
mạng dịch vụ SMS, mô hình họat động và các ƒ Người dùng: chính là những thuê bao di
ứng dụng chủ yếu của SMS trong đời sống. động.
SMS có rất nhiều ứng dụng đa dạng và ƒ Nhà cung cấp dịch vụ viễn thông: có vai
phong phú, trong phạm vi nghiên cứu của luận trò trung gian, đảm bảo cho hoạt động của
văn chủ yếu đề cập tới các dịch vụ giá trị giá các dịch vụ giữa người dùng và nhà cung
tăng, loại hình dịch vụ không thuộc các dịch vụ cấp dịch vụ nội dung.
cơ bản của nhà cung cấp mạng viễn thông. Một ƒ Nhà cung cấp dịch vụ nội dung: là bộ phận
hệ thống cung cấp dịch vụ giá trị gia tăng luôn trách nhiệm xây dựng các kịch bản,
bao gồm ba thành phần chức năng cơ bản là chương trình dịch vụ nhằm mục đích thu
người dùng, nhà cung cấp dịch vụ giá trị gia hút người dùng và đạt lợi nhuận trong kinh
tăng và nhà cung cấp mạng viễn thông. doanh.
Việc tìm hiểu về thực trạng và đánh giá tiềm Thiết kế về mặt vật lý, hệ thống bao gồm 6
năng phát triển của mạng di động cũng như dịch thành phần cơ bản:
vụ SMS tại Việt Nam hiện nay cũng là một
trong những cơ sở lý thuyết để hoàn thành ƒ Thứ nhất là thuê bao di động.
nghiên cứu của luận văn.

- 17 -
ƒ Thứ hai là trung tâm dịch vụ tin ngắn nền Java, được phát triển mởi nhóm mã nguồn
SMSC (Short Message Service Center). mở Logica.
ƒ Thứ ba là công giao tiếp (SMPP Gateway) 2. Simulator: phần mềm giả lập cho phép
đảm bảo việc truyền thông (qua giao thức nhận và gửi tin nhắn với Gateway. Phần mềm
SMPP) giữa SMSC và hệ thống xử lý dịch đóng vai trò là người dùng, viết trên nền Java
vụ. phát triển bởi nhóm mã nguồn mở Logica.
ƒ Thứ tư là các Conent Provider – là các 3. SMS_Processes: phần xử lý các dịch vụ
máy chủ ứng dụng xử lý các kịch bản tạo tại máy chủ của nhà cung cấp dịch vụ nội dung
ra tương ứng với mỗi dịch vụ cung cấp. (Content Provider). Phần mềm phát triển trên
nền tảng .NET 2.0 và ngôn ngữ C#, được tác giả
ƒ Thứ năm là hệ thống WAP/Web Server
cùng nhóm phát triển của công ty Tinh Vân
cung cấp giao diện cho phép thuê bao di
cùng xây dựng và mở rộng.
động kết nối Internet để sử dụng dịch vụ.
4. Website “SMS bóng đá”: là giao diện cơ
ƒ Thứ sáu là hệ thống CDR, Billing là hệ
bản với người sử dụng dịch vụ, đồng thời cung
thống tính cước mạng di động.
cấp giao diện quản trị cho nhà quản lý dịch vụ.
Ngoài ra, việc xây dựng các giải pháp ứng Website được tác giả xây dựng bằng công nghệ
dụng của dịch vụ giá trị gia tăng còn phải dựa ASP.Net và C#.
trên nền tảng sự phát triển của công nghệ mạng
di động, tốc độ và tiềm năng phát triển của các 5. Kết luận
thuê bao di động và nhu cầu của người dùng ở Nghiên cứu của khóa luận đã khẳng định và
mỗi vùng, lĩnh vực và nhóm đối tượng khác làm rõ vai trò của SMS và các ứng dụng của nó
nhau. trong đời sống. Đồng thời nhận định các dịch vụ
giá trị gia tăng dựa trên SMS thực sự là một xu
4. Triển khai thử nghiệm ứng dụng “SMS
hướng phát triển tiềm năng ở trên thế giới cũng
bóng đá”
như Việt Nam.
a) Mục đích và yêu cầu
Trong thời gian thực hiện đề tài, tác giả đã
Kinh doanh dịch vụ giá trị gia tăng “SMS trực tiếp tham gia vào nhóm nghiên cứu của
bóng đá”. Xây dựng hệ thống dịch vụ hấp dẫn, công ty Tinh Vân. Qua đó, được trực tiếp tham
tin cậy, thu hút người dùng. gia nghiên cứu, xây dựng và phát triển hệ thống
b) Phân tích dịch vụ “SMS bóng đá”. Sản phNm mà đề tài
thực hiện là sản phNm có tính hoàn thiện tuy
Hệ thống “SMS bóng đá” có các chức năng chưa thực sự cao nhưng được đầu tư đúng thời
cơ bản sau: gian, công sức và có tính ứng dụng thực tiễn cao.
ƒ Quản lý tin nhắn 6. Tài liệu tham khảo
ƒ Quản lý dịch vụ “bóng đá” [1] N gô Văn Thứ, Đào Quốc Trung, sinh
ƒ Quản lý người dùng viên K46, Trường ĐH Công N ghệ, ĐHQG Hà
N ội, Ứng dụng công nghệ di động vào TMĐT.
c) Thiết kế
[2] Phạm Thị Thu Hiền, sinh viên K47,
Về mặt thiết kế cơ sở dữ liệu, các thông tin Trường ĐH Công N ghệ, ĐHQG Hà N ội, Xây
quản lý bao gồm thông tin về tin nhắn gửi đi và dựng hệ thống cung cấp dịch vụ SMS mở rộng
tin nhắn gửi đến, thông tin về các thuê bao sử dựa trên giao thức SMPP.
dụng dịch vụ và thông tin về dịch vụ bóng đá.
[3] http://wikipedia.org – M-Commerce,
d) Cài đặt và triển khai SMS, GSM, CDMA, SMPP,…
Các thành phần khi triển khai ứng dụng gồm [4] http://opensmpp.logica.com
có:
[5] Mobile N et – 15 năm phát triển của dịch
1. Gateway: phần mềm giả lập cổng giao vụ SMS
tiếp SMPP Gateway và trung tâm dịch vụ tin
nhắn SMSC tích hợp. Phần mềm được viết trên [6] PcWorld – Dịch vụ SMS

- 18 -
QUẢN LÝ DANH MỤC ĐẦU TƯ CHỨNG KHOÁN

Nguyễn Văn Đức Cán bộ hướng dẫn: Ths. Đào kiến quốc
MSV: 0420098 Cán bộ đồng hướng dẫn:CN.Lê Xuân Thắng
Email: ducnvna@gmail.com

1. Giới thiệu Thứ ba, giám sát theo dõi những diễn biến
Quản lý danh mục đầu tư chứng khoán là giá cả tương đối của chứng khoán trên thị
công việc rất quan trọng và phức tạp mà bất kì trường, cả mức độ rủi ro và lợi nhuận mong đợi.
môt nhà đâu tư nào cũng phải quan tâm và thực Thứ tư, điều chỉnh danh mục đầu tư phù
hiện nó. Để quản lý danh mục đầu tư chứng hợp với diễn biến của thị trường và mục tiêu của
khoán (qldmdtck) phải bắt đầu từ việc tạo tài người đầu tư.
khoản cho nhà đầu tư, tiếp theo đó là theo dõi và
3. Phân tích hệ thống quản lý danh mục
quản lý các thông tin về nhà đầu tư trong suốt
quá trình tham gia chứng khoán, lưu trữ và bảo đầu tư chứng khoán
quản các thông tin về tên tuổi, điạ chỉ …các Qua quá trình tìm hiểu nghiệp vụ tôi đã
thông tin về danh mục chứng khoán đã đầu tư tiến hành phân tích hệ thống và đưa ra được các
(mua /bán,còn lại …). Tuy nhiên, các thông tin gói UC như sau:
này đã được lưu trữ để khai thác theo các khía
1. Gói đăng ký thành viên:
cạnh tĩnh thay cho việc chép tay hằng
ngày.Quản lý danh mục đầu tư cần phải tính đến 2. Gói đăng nhập hệ thống:
các dịch vụ tích cực hơn nữa, chẳng hạn nhưng 3.Gói đăng thoát hệ thông
lấy bảng giá trực tuyến, quản lý lý thông tin của
4.Gói quản lý hệ thống
các công ty, lập cáo báo cáo, tra cứu chứng
khoán, đưa ra biểu đồ dự đoán xu hướng, tối ưu 5.Gói quản lý tài khoản đầu tư
hóa danh mục đầu tư 6. Gói khai báo ban đầu
2. Mô hình nghiệp vụ hệ thống quản lý 7.Gói quản lý công ty chứng khoán
danh mục đầu tư chứng khoán 8.Gói giao dịch tiền mặt
Quản lý danh mục đầu tư là quá trình liên 9.Gói quản lý chứng khoán
tục và có hệ thống gồm 4 bước:
10.Gói thống kê tài sản
Thứ nhất, xác định mục tiêu đầu tư. Trọng tâm
của việc xác định mục tiêu là xác định rõ mức 11.Gói biểu đồ phân tích
độ rủi ro có thể chấp nhận được của chủ đầu tư 12.Gói quản lý thành viên
và mức độ lợi nhuận mong đợi tương thích với
mức độ rủi ro đó.
4. Thiết kế hệ thống quản lý danh mục
đầu tư chứng khoán
Thứ hai, xây dựng các chiến lược phù
hợp với mục tiêu bao gồm việc lập các tiêu Hệ thống được phân tích và thiết kế theo
chuNn và phân bổ đầu tư. mô hình hướng đối tượng UML

- 19 -
Sau khi phân tích xong, tôi tiến hành thiết 6. Kết luận
kế hệ thống, vẽ các biểu đồ
Trong khóa luận này, tôi tiến hành tìm
1. Biểu đồ tuần tự đối tượng hiểu nghiệp vụ chứng khoán, đã phân tích và
2. Biểu đồ lớp thiết kế hệ thống quản lý danh mục đầu tư
chứng khoán. Đưa ra các giải pháp cho hệ thống
Qua bản thiết kế này, tôi đã chi tiết đến
ứng dụng.
từng module cần phải thực hiện và qua đó thiết
kế nên cấu trúc hệ thống trên cả hai mức độ cho Trong thời gian làm khóa luận, những kết
người dùng và người quản trị quả đã đạt được là:

5. Giải pháp công nghệ Khóa luận đã nêu rõ nghiệp vụ của quản
lý danh mục đầu tư chứng khoán, tính cần thiết
Ứng dụng được triển khai trên trên môi phải xây dựng ứng dụng. Hệ thống được phân
trường dotnet với DOTN ET Framework 2.0 của tích, thiết kế rõ ràng, dễ hiểu. Giải pháp công
Microsoft, viết bằng ngôn ngử asp.net và c#. nghệ đã được nên ra bao gồm về môi trường và
Dotnet là một framework mạnh, cung cấp giao phương pháp triển khai.
diện dễ dàng cho người lập trình, tính năng bảo
Tuy nhiên do thời gian có hạn và hệ thống
mật cao. Quản lý danh mục đầu tư chứng khoán
quản lý danh mục đầu tư khá mới mẻ và phức
là một hệ thống giúp cho nhà đầu tư có thể quản
tạp nên tôi chỉ đưa ra một phương pháp giải
lý tài khoản của mình qua mạng internet, vì vậy
quyết về chứng khoán.Các modul đã được cài
asp.net là ngôn ngữ sẽ giải quyết được vấn đề
đặt song chương trình thí nghiệm chỉ chạy trên
này.
localhost.
Sử dụng ChartDirector for .NET (bản dùng thử)
Trong tương lại, tôi sẽ tiếp tục nghiên cứu
để vẽ được biểu đồ lợi nhuận.Sau khi download
các phương pháp giải quyết tối ưu và xây dựng
và cài đặt bộ thư viện này, bạn cần phải add
hệ thống hoàn thiện hơn. Và hi vọng chương
netchartdir.dll vào project của mình. Lớp thư
trình của tối sẽ được ứng dụng rộng rãi
viên ChartDirector dùng để tạo các loại biểu đồ.
N ó dễ sử dụng cho người lập trình, có thể định Tài liệu tham khảo
dạng và chỉnh sửa các loại biểu đồ. Dữ liệu của
[1] http://www.advsofteng.com/
bản đồ được hỗ trợ bởi ChartDirector bằng cách
gọi ChartDirector API . API đảm nhận một [2] www.tinnhanhchungkhoan.vn/
mảng chứa các chuỗi dữ liệu. ChartDirector [3] www.ssc.gov.vn/
chứa đựng các thuộc tính của lớp DBTable để
[4] www.hastc.org.vn/
đưa dữ liệu vào từ cơ sở dữ liệu hoặc là bất kỳ
một đối tượng tương thích với ADO.net. Dạng [5] www.ssi.com.vn/
của biểu đồ được định dạng chuNn ảnh có đuôi [6] www.dautuchungkhoan.com/
(PN G, GIF, JPEG, BMP, WBMP) và theo
[7] www.istock.vn
chuNn của System.Drawing.Image trong dotnet.
Các biểu đồ ChartDirector có thể được xem dễ [8] Đặng Văn Đức. Phân tích thiết kế hướng
dàng trên màn hình, sao chép file và nhúng các đối tượng bằng UML. N hà xuất bản giáo
tài liệu khác dục. Hà N ôi, 2002

- 20 -
HƯỚNG TIẾP CẬN MỚI VỀ VIRUS

Sinh viên: Đỗ Thị Hà


Mã số SV: 0420108 GV hướng dẫn: Th.S. Nguyễn Cảnh Hoàng
Email: havirust@gmail.com
1. Giới thiệu Virus sau khi phát tán vào hệ thống,
Bảo mật thông tin, an toàn dữ liệu luôn chúng sẽ tự động lây lan bằng cách tự nhân
là vấn đề quan trọng trong mọi thời đại khi bản và tạo các biến thể của chính chúng.
mà công nghệ thông tin đã và đang phát Dựa trên cơ chế lây nhiễm, và lan truyền
triển như vũ bão. Khi virus máy tính xuất giữa các file, ổ đĩa trong máy tính và giữa
hiện, những người làm công tác tin học thì các máy tính với nhau, chúng ta hướng tới
băn khoăn lo lắng còn những người sử dụng một cách tiếp cận mới về virus nhằm xây
máy tính thì lo sợ khi dữ liệu, chương trình dựng một chương trình phát hiện virus dựa
và máy tính của mình bị phá hoại. trên tần xuất xuất hiện của nó.
Virus xuất hiện quá nhiều và quá nhanh 3. Quan niệm mới về Virus
dưới mọi hình thức và không phải lúc nào N hững file mà xuất hiện quá n lần, gây
chúng ta cũng nhận biết được sự có mặt của hại cho các chương trình hoặc hệ thống,
chúng. Chúng phát tán và Nn mình trong các chúng phá hủy dữ liệu, phá hủy phần cứng,
chương trình máy tính để phá hoại các làm mất mát chương trình, … đều được coi
chương trình, lấy cắp thông tin mật, gây tổn là virus.
thất không nhỏ cho người sử dụng. Trong N hững file mà xuất hiện quá n lần nhưng
khi đó, các chương trình diệt virus (anti- không hề gây hại cho hệ thống, cho chương
virus) luôn ra đời sau đó. Các chương trình trình, cho dữ liệu của người dùng hoặc
AV này ra đời không thể diệt được tất cả không có bất cứ hành vi làm ảnh hưởng tới
mọi loại virus, cũng không thể ngăn ngừa hệ thống và người dùng cũng đều được coi
được sự xuất hiện của virus mà chúng xuất là virus.
hiện để giảm bớt những thiệt hại do virus N hững file mà xuất hiện quá n lần trong
gây ra một cách thấp nhất có thể. hệ thống, không hề có hại, thậm trí còn có
Xây dựng một chương trình mới có thể ích cho hệ thống hoặc cho người dùng trong
phát hiện được mọi virus là điều cần thiết: một số trường hợp nhất định cũng đều được
phát hiện virus dựa trên tần xuất xuất hiện coi là virus.
của chúng. Phương pháp này dựa trên đặc Tóm lại: bất kỳ file nào xuất hiện quá n lần,
tính lây nhiễm rồi phát tán vào máy tính của bất kể có hại, không có hại hoặc thậm trí có
virus. lợi cho hệ thống và cho người dùng đều
2. Cơ sở lý thuyết được xếp là virus.
N ăm 1948, John Von N eumann đã đề 4. Hướng giải quyết
xuất ý tưởng về một hệ thống tự sao chép: 1. Can thiệp vào các lời gọi hàm của hệ
Mô hình mô tả việc sao chép trạng thái thống
nguyên thủy của các máy tự động. Và nó đã Lời gọi hệ thống cung cấp giao diện giữa
được phát triển ở nhiều nước trên thế giới. tiến trình và hệ điều hành. Là cách mà một
Dựa trên lý thuyết về việc tạo ra các bản tiến trình sử dụng để yêu cầu một hành động
sao từ các máy tự động mà John Von của hệ điều hành.
N eumann đã đưa ra, virus cũng sử dụng một Virus lợi dụng những lời gọi này để gọi
số luật để có thể tự nhân bản và phát tán vào tới chương trình của nó để kích hoạt thực thi
các hệ thống máy tính. N hững luật này do rồi sau đó mới trả lại quyền điều khiển cho
chính người tạo ra virus lập lên. chương trình chính.
Khả năng tự sao chép của virus phụ Do vậy, phải ngăn chặn được các lời gọi
thuộc vào môi trường mà nó tồn tại và phụ hàm API của virus:
thuộc vào cách mà nó được lập trình. Để lây + Lấy địa chỉ các hàm API theo tên bằng
lan, chúng tự sao chép chính đoạn mã của cách sử dụng hàm do windows cung cấp:
mình vào các file thực thi của hệ điều hành GetProcAddress()
bằng cách sửa header của file thực thi đó.

- 21 -
+ Khi đã có địa chỉ của kernel ta đối Việc tiến hành phân tích virus được thực
chiếu với Import Table để đọc địa chỉ của hiện bởi một số chuyên gia phân tích virus
các hàm API theo tên và kiểm soát được các trong nước và trên thế giới.
lời gọi hàm này. Để phân tích những virus này, người ta
+ Kiểm soát được máy tính ở chế độ sử dụng các công cụ debug dịch ngược virus
protected mode từ dạng mã máy sang dạng assemble. Từ đó
2. Can thiệp vào các ngắt của hệ thống đọc và phân tích nguyên lý hoạt động của
Để có thể can thiệp vào hệ điều hành, virus. Đặc biệt là đoạn code đã mã hóa vì
virus chiếm các ngắt và điều khiển tòan bộ đây là điểm quan trọng nhất để giải mã và
chương trình. Do vậy chúng ta phải thiết kế hiểu được nội dung của virus.
để có thể điều khiển được các ngắt. 6. Thực nghiệm
+ Thiết kế được các chương trình để Đã xây dựng và cài đặt hệ thống với bài
chặn bắt được các ngắt, từ đó có thể can toán đơn giản là tìm kiếm các file trong hệ
thiệp được vào các đoạn mã virus. thống theo quan niệm mới về virus để từ đó
+ Sử dụng các bảng vector ngắt để thay đưa ra được cái nhìn khái quát về quan niệm
đổi con trỏ trỏ tới ngắt muốn chặn. mới này.
3. Giải pháp xây dựng chương trình tìm + Xác định các file xuất hiện quá 3 lần
kiếm virus trong hệ thống.
Viết các modul để thực thi một số chức + Lưu lại những địa chỉ file này để kiểm
năng chính như: tra, phân tích nó.
+ Đọc các thư mục trong hệ điều hành. + Hiển thị các và kiểm tra các file đã
Với mỗi thư mục này, lấy full path của nó. phát hiện sau mỗi lần quét.
+ Lấy tất cả các tên file có trong đường Thực nghiệm cho thấy, khả năng để xây
dẫn thư mục. N ếu file có số lần xuất hiện dựng một chương trình hoàn thiện xác định
lớn hơn 2 thì đưa nó vào danh sách virus. virus dựa trên tần xuất xuất hiện của có là
+ Tiến hành cập nhật để phân tích file hòan tòan có thể thực thi được. Điều quan
đó. trọng là ta phải nghiên cứu kỹ và tìm hiểu
Khi virus lây nhiễm vào hệ thống, thông cách lây lan, lưu trú của virus trên hệ thống
thường, chúng sử dụng kỹ thuật lưu trú để để từ đó tìm kiếm chúng một cách có hiệu
Nn các file đó đi. Và khi đó, chúng ta không quả. Khi chương trình được xây dựng thành
thể tìm hiện được các file Nn bằng chức năng công, nó sẽ giải quyết được một vấn đề lớn
show hidden file của hệ thống. về virus, từ đó có thể xây dựng được bộ dữ
Yêu cầu là thiết một modul để lấy được liệu phong phú về virus và hướng tới xây
những file Nn này. dựng một chương trình diệt virus có hiệu
Hệ điều hành cũng có chức năng tự Nn quả cao nhất.
các file quan trọng của nó, do vậy, yêu cầu 7. Kết luận
của modul thiết kế phải tìm được tất cả các N ội dung chính của khóa luận là đã đưa
file Nn, và phân biệt nó với những file Nn của ra được cách tiếp cận mới về virus: Phát
hệ điều hành. hiện virus dựa trên tần xuất xuất hiện của
Việc thiết kế được moudul này, yêu cầu chúng. Từ đó, chúng ta có thể tiến hành xây
người lập trình phải có kiến thức về kiến dựng một chương trình demo tìm kiếm các
trúc máy tính với yếu tố quan trọng là hệ file có số lần xuất hiện lớn hơn 3 trong hệ
điều hành để từ đó tìm ra thuật giải xác định thống.
những file Nn mà virus tạo ra. Khóa luận cũng đưa ra được hướng giải
5. Xử lý với những virus đã phát hiện quyết và thuật toán để hướng tới xây dựng
được một hệ thống tìm kiếm virus hoàn chỉnh,
Lưu lại các file này trong cơ sở dữ liệu làm nền để xây dựng các chương trình diệt
để tiến hành phân tích, cập nhật chữ ký của virus có hiệu quả.
nó. Từ đó cung cấp thông tin để xây dựng 8. Tài liệu tham khảo
các phần mềm diệt virus có hiệu quả. [1] http://vi.wikipedia.org/wiki/Virus
[2] Peter Szor. The art of Computer virus
research and defense.

- 22 -
XÂY DỰNG CÔNG CỤ MÔ PHỎNG MẠCH ĐIỆN
Sinh viên: Giáo viên hướng dẫn:
-Nguyễn Thị Thanh Hằng – Mã SV: 0420124 Ths. Nguyển Cảnh Hoàng
-Nguyễn Anh Tuấn – Mã SV: 0420439
Lớp: K49CD

1. Giới thiệu dùng cho vẽ hình cơ bản và soạn thảo văn bản
nhiều định dạng (Rich Text Format). Ngoài ra,
Ngày nay, công nghệ thông tin đã có những sự Violet còn cung cấp sẵn nhiều mẫu bài tập chuNn
phát triển vượt bậc với tiềm năng vô cùng to lớn, thường được sử dụng trong các sách giáo khoa và
được ứng dụng trong hầu như tất cả các lĩnh vực sách bài tập, công cụ vẽ đồ thị, dựng hình hình
của cuộc sống và đã có những đóng góp rất đáng học,… Kết lại, Violet là một phần mềm dễ sử
kể, đặc biệt là trong giáo dục. dụng mà lại hỗ trợ rất mạnh mẽ cho giáo viên phổ
thông giúp tạo ra những bài giảng sinh động, trực
Khóa luận tốt nghiệp với đề tài “Xây dựng công quan và dễ hiểu.
cụ thiết kế mạch điện” cung cấp công cụ thiết kế
mạch điện cho phép vẽ được tất cả các loại mạch Mục đích của chúng em khi tạo ra công cụ này
điện trong chương trình phổ thông như mạch song này là giúp giáo viên có thể mô phỏng và giải các
song, mạch nối tiếp, mạch kết hợp, mạch cầu,… loại mạch điện trong chương trình sách giáo khoa
với các thiết bị điện như: nguồn một chiều, nguồn Vật lý phổ thông, nhờ đó giáo viên có thể đem
xoay chiều, điện trở, biến trở, cuộn cảm, tụ điện, đến cho học sinh những ví dụ trực quan, hiệu quả
vôn kế, ampe kế, đèn, công tắc,… dưới dạng các và chính xác hơn trong các bài toán liên quan tới
ký hiệu như quy định trong Sách Giáo Khoa hoặc mạch điện. Đồng thời, công cụ được xây dựng
các hình ảnh giống thật, sinh động. Đồng thời theo hướng tích hợp vào phần mềm Violet dưới
cung cấp công cụ giải mạch để học sinh có thể dạng một plugin để giáo viên có thể gộp chung
quan sát một cách trực quan, thực hành và thu các mạch điện mô phỏng đó vào trong bài giảng
được kết quả với số liệu thực tế. Hơn nữa, công điện tử của mình một cách tiện lợi. Trong luận
cụ này có thể được tích hợp vào phần mềm Violet văn này, nội dung xây dựng của plugin mạch điện
- một phần mềm Việt Nam hỗ trợ mạnh mẽ cho là cung cấp khả năng thiết kế và giải được bất kỳ
giáo viên trong việc tạo ra các bài giảng điện tử - một loại mạch điện nào trong chương trình Vật lý
nhằm giúp cho giáo viên có thể tạo ra các bài phổ thông như mạch song song, mạch nối tiếp,
giảng Vật lý về mạch điện với những ví dụ sinh mạch kết hợp, mạch cầu,… với các loại thiết bị
động chứ không điện cơ bản như: nguồn một chiều, nguồn xoay
chiều, điện trở, biến trở, cuộn cảm, tụ điện, vôn
2. Tổng quan về phần mềm VIOLET và công kế, ampe kế, đèn, công tắc,… dưới dạng các ký
cụ thiết kế mạch điện hiệu như quy định trong sách giáo khoa hoặc các
hình ảnh giống thật, sinh động. Giá trị của các
Violet được xây dựng dựa trên nền tảng Flash thiết bị điện có thể thay đổi được trong lúc trình
cung cấp đầy đủ các chức năng cần thiết để tạo chiếu bài giảng, biến trở và công tắc có thể tương
các trang bài giảng như: cho phép nhập các dữ tác được như thật, đèn có thể sáng hoặc tắt khi có
liệu văn bản, công thức, các file dữ liệu hoặc không có dòng điện, đặc biệt các thiết bị đo
multimedia (hình ảnh, âm thanh, phim, hoạt hình như vôn kế hay ampe kế sẽ luôn chỉ đúng giá trị
Flash...), sau đó lắp ghép các dữ liệu, sắp xếp thứ thực tế bất kể mạch như thế nào. Chính vì vậy
tự, căn chỉnh hình ảnh, tạo các hiệu ứng chuyển công cụ thiết kế mạch điện sẽ rất hữu ích trong
động và biến đổi, thực hiện các tương tác với việc kiểm chứng kết quả của các bài toán mạch
người dùng... Violet cũng có các module công cụ điện, hướng dẫn thí nghiệm lắp mạch điện.

- 23 -
3. Thuật toán giải mạch 2 2
U= ux +u y
Mạch điện được tổ chức bao gồm các nút (đỉnh)
và các thiết bị (hoặc dây) nối giữa mỗi cặp đỉnh. Trong phần này cũng cung cấp thuật toán rút gọn
Chương trình sẽ biểu diễn mạch dưới dạng một đồ mạch điện, nhằm giảm bớt số đỉnh xuống còn
thị rời rạc, trong đó nút điện là các đỉnh, dây và khoảng 1 nửa, nhờ đó số lượng phương trình phải
các thiết bị điện là các cạnh, sau đó áp dụng định viết cũng giảm đi 1 nửa giúp cho tốc độ tính toán
luật Kirchhoff 1 về dòng điện để giải mạch: nhanh hơn rất nhiều. Cách rút gọn rất đơn giản:
tìm các đoạn dây trong mạch và triệt tiêu đoạn
Tổng đại số của tất cả các dòng đến và rời một dây đó đi bằng cách nhập 2 đầu dây vào thành 1
nút nào đó của mạch điện bằng không. nút. Thuật toán và các trường hợp đặc biệt trong
quá trình rút gọn đã được nêu cụ thể trong luận
∑I
i
i
=0 văn.

4. Thực nghiệm
Dựa vào công thức trên, với dòng điện xoay chiều
có hai thành phần dòng điện Ix, Iy ta có thể biến Chương trình xây dựng dựa trên ngôn ngữ lập
đổi và thu được 2 công thức về hiệu điện thế cho trình chuyên biệt của Flash là ActionScript, có thể
mỗi nút điện: được chạy một cách riêng biệt trên Flash Player
như một sản phNm phần mềm hoặc chạy dưới
u cosα − u sin α dạng một plugin được tích hợp vào phần mềm
∑ x

Z
y
=0
Violet.

5. Kết luận
u sin α + u cosα
∑ x

Z
y
=0
Trong phạm vi của luận văn này, chúng em đã tìm
hiểu và xây dựng thành công chương trình thiết
Từ 2 công thức trên ta viết được 2 phương trình kế mạch điện theo như mục đích và yêu cầu ban
cho mỗi nút điện với 2 Nn là các thành phần Ux, đầu đặt ra (cung cấp khả năng thiết kế và giải
Uy. N hư vậy với một đồ thị n nút điện, ta sẽ lập được mạch điện với các loại thiết bị cơ bản như
được một hệ phương trình gồm 2*n phương trình trong chương trình Vật lý phổ thông). Chương
và 2*n Nn. Trong quá trình lập hệ phương trình trình cũng đã được tích hợp vào phần mềm Violet
cần chú ý trường hợp khi nút là một đầu của dưới dạng một plugin và hiện đang là một phần
nguồn hoặc được nối với nguồn thông qua một trong phiên bản Violet 1.5. Qua đánh giá ban đầu
chuỗi thiết bị không có điện kháng thì ta không của một số người dùng, plugin chạy khá ổn định
viết phương trình dựa theo công thức của định và hầu như không có lỗi. Tuy nhiên để xây dựng
luật Kirchhoff (bởi vì nguồn là một thiết bị có được một công cụ thật sự thuận tiện và đáp ứng
Z=0 nên không áp dụng công thức được) mà được tất cả các bài toán về giải mạch trong sách
loang để tính toán trực tiếp giá trị điện thế của các giáo khoa Vật lý là một điều rất khó nên plugin sẽ
nút, từ đó lập phương trình của các điểm đó. còn phải được chỉnh sửa và bổ sung thêm nhiều.
Sau khi giải hệ phương trình vừa lập, ta có được Tài liệu tham khảo
giá trị các thành phần Ux, Uy tại mỗi nút điện, từ
đó có thể tính được hiệu điện thế giữa mỗi cặp nút [1] http://bachkim.vn/violet.asp
i, j theo công thức:
[2] N XB Giáo dục. Vật lý 11
uijx = Uix – Ujx [3] N XB Giáo dục. Vật lý 12
uijy = Uiy – Ujy
[4] Đinh Hải Minh. Phần mềm “Mô phỏng mạch
điện”

- 24 -
HỆ QUẢN TRN NỘI DUNG VÀ ỨNG DỤNG

Vũ Khắc Hiếu Cán bộ hướng dẫn:


MSSV: 0420131 PGS.TS Nguyễn Ngọc Bình
Email: hieuvk@gmail.com

1. Giới thiệu audio, tài liệu điện tử, tệp văn bản... Do vậy khi
Chúng ta đang sống trong kỷ nguyên của nhắc đến CMS, người ta phải nhắc đến các yếu
nền kinh tế tri thức với sự ra đời và phát triển tố cấu thành nội dung nằm trong phạm vi mà hệ
mạnh mẽ của internet mà qua đó mọi người có CMS đề cập tới cũng như những đặc điểm trong
thể dễ dàng tìm kiếm, khai thác và trao đổi thông các chu trình quản lý nội dung đó.
tin. Làm thế nào để chúng ta có thể quản trị nội Một cách chính xác nhất, CMS là hệ thống
dung cũng như khai thác, trao đổi thông tin khi quản lý việc khởi tạo nội dung và quá trình xử lý
các website xuất hiện liên tục và ngày càng nội dung đó cho đến khi nó được xuất bản phân
nhiều ?. Đây là câu hỏi lớn đang đặt ra cho các phối tới người dùng
nhà quản lý. Những giải pháp quản trị nội dung CMS= “Khởi tạo nội dung + Quản lý quá
Internet đang được phát triển và ngày càng được trình xử lý nội dung đó + Phân phối tới người
chuNn hóa giúp cho các các nhân, tổ chức, doanh dùng”
nghiệp...thuận tiện dễ dàng hơn trong việc xuất
bản cũng như khai thác thông tin.
Xây dựng và phát triển hệ quản trị nội
dung (CMS – Content Management System)
chính là giải pháp cho câu hỏi của chúng ta.
Trong phạm vi khóa luận tốt nghiệp này,
tôi tập trung trình bày, nghiên cứu về các đặc
trưng của một CMS và sau đó áp dụng xây dựng
một ứng dụng web CMS
2. Khái niệm về hệ quản trị nội dung
(CMS)
Có nhiều định nghĩa khác nhau về CMS
(Content Management System) và nhiều định
nghĩa cũng chưa thật thỏa đáng. Một cách đơn
giản nhất CMS – Hệ quản trị nội dung là một hệ
thống quản lý các thành phần làm nên nội dung
của một website. Tuy nhiên “nội dung” là một
khái niệm rất rộng, bao gồm: các tệp ảnh, tệp

- 25 -
CMS cung cấp cho bạn - N gười quản trị dung thông tin: Tác giả, tiêu đề, từ
website với những bộ công cụ mà bạn cần nhằm khóa, thời gian
tạo ra nội dung của website một cách tiện lợi b. Yêu cầu trong quá trình quản lý nội
nhất. Một CMS làm điều này thật dễ dàng, các dung
thao tác: thêm, cập nhật, xóa, chỉnh sửa... nội
• Quản lý phiên bản tài liệu, quản lý
dung được thông qua một password bảo vệ vùng
lưu trữ.
điều khiển của bạn và những thay đổi này sẽ
ngay tức khắc xuất hiện trên website cho khách • Quản lý quy trình biên tập và phê
hàng của bạn nhìn thấy duyệt nội dung thông tin
3. Đặc điểm của một CMS
• Đảm bảo tính bảo mật cao
Một CMS bao gồm những đặc điểm cơ bản
c. Yêu cầu trong quá trình xuất bản thông
sau:
tin
ƒ Tạo và thay đổi nội dung trực tuyến
ƒ Giao diện tương tác tức thời • Đồng nhất khả năng trình bày với
ƒ Quản lý người dùng những loại dữ liệu giống nhau.
ƒ Tìm kiếm và lập chỉ mục
• Cung cấp các biểu mẫu, định dạng
ƒ Tùy biến giao diện, hỗ trợ đa ngôn ngữ
(template) giúp xuất bản nội dung
ƒ Quản lý hình ảnh, liên kết, văn bản
ƒ Hỗ trợ lịch biểu bình chọn... một cách nhanh chóng thuận lợi.
4. Các yêu cầu đối với CMS d. Yêu cầu công nghệ
Trong môi trường điện toán phức tạp như
• Hệ thống phải tiện dụng, thân thiện
hiện nay, thông tin không còn là thực thể riêng lẻ
nữa, nó là một phần trong hệ thống thông tin lớn với người dùng, tương thích, dễ mở
hơn, luôn cần có sự kết hợp, cập nhật, trao đổi, rộng, tuân theo các chuNn xuất bản
liên thông với nhau. Chính vì vậy yêu cầu được 5. Chọn lựa công nghệ xây dựng CMS
đặt ra cho một CMS bao gồm các đặc trưng cơ Luận văn tập trung vào CMS trên nền web
bản: dó đó chúng ta sẽ nói đến những công nghệ xây
a. Yêu cầu trong quá trình khởi tạo nội dựng một Web CMS. CMS của chúng ta cần
dung
phải viết tập trung trong môi trường web, phải
• Cho phép nhiều người sử dụng, làm
có khả năng tích hợp với cơ sở dữ liệu và các file
việc trên một tài liệu.
hệ thống. Có một số cách tiếp cận sử dụng đa
• Có cơ chế phân quyền, phân cấp cho
dạng các nền tảng và công nghệ dưới đây:
từng người dùng trong quá trình
khởi tạo nội dung ASP /ASP.NET
• Cung cấp khả năng quản lý các JSP
thuộc tính khác liên quan đến nội PHP/MySql
Mã nguồn mở (Open Source)

- 26 -
6. Ứng dụng
Sau khi tìm hiểu về CMS và nghiên cứu kỹ Tài liệu tham khảo
các công nghệ xây dựng nên CMS. Chương trình [1] Roger S.Pressman, Ph.D.. Software
ứng dụng thực hiện trong khóa luận này sử dụng
Engineering A PRACTITION ER’S
công nghệ dựa trên PHP/MySQL và kết hợp với
CSS, JavaScript xây dựng một web CMS quảng APPROACH – 5th
bá cho công ty cổ phần đầu tư xây dựng VKH. [2] N guyễn N gọc Bình. Bài giảng môn học
Ứng dụng đã xây dựng cả phía người quản
Kỹ nghệ Phần mềm 2007.
trị và phía người dùng. Test tốt trên cả server của
hệ điều hành Linux, lẫn Window và các trình [4] N guyễn Văn Vỵ. Giáo trình phân tích
duyệt Firefox, IE7, IE6.
thiết kế hệ thống thông tin 2004
7. Kết luận
Với phạm vi của một khóa luận tốt nghiệp [5] Phạm Hữu Khang. Xây dựng ứng dụng
tôi đã hoàn thành và tìm hiểu được các đặc trưng Web bằng PHP & MySQL 2005.
cơ bản nhất của một CMS. Các hoạt động và các
công nghệ xây dựng nên một CMS. Để rồi áp [6] Trang web: http://en.wikipedia.org.
dụng những kiến thức nghiên cứu được đi xây
dựng một web CMS.
Vì lý do thời gian có hạn và kiến thức
cũng như kinh nghiệm còn nhiều hạn chế nên
luận văn không tránh khỏi những thiếu sót. Rất
mong nhận được sự góp ý của thầy cô và toàn
thể các bạn.

- 27 -
KỸ NGHỆ WEB VÀ ỨNG DỤNG TRONG XÂY DỰNG CMS
CHO TRANG TIN TỨC

Nguyễn Khắc Hiệp Người hướng dẫn: PGS.TS Nguyễn Ngọc Bình
MSV: 04020134
Email: inlydplasma@gmail.com

1. Giới thiệu hình, và cần một kiến trúc ứng dụng có tính
Quy mô của các ứng dụng trên nền web chuyên dụng cao, điều đó tạo ra những yêu cầu
ngày càng được mở rộng. Sự mở rộng về quy cần thiết về mặt thiết kế. Vì những ứng dụng
mô của các ứng dụng trên nền web tất yếu sẽ trên nền web, nội dung thường bị chi phối rất
kéo theo sự gia tăng về độ phức tạp của các nhiều bởi tính thNm mỹ, điều này thích hợp với
ứng dụng loại này. Điều đó đã đặt ra không ít những hoạt động phát triển sẽ được hoạch định
khó khăn cho các nhà phát triển. Sự gia tăng về trong quá trình kỹ nghệ web trong đó đội phát
quy mô và độ phức tạp của các ứng dụng đồng triển sẽ bao gồm những kỹ thuật viên công
nghĩa với độ rủi ro ngày càng cao. Vậy làm thế nghệ và những người thiết kế mỹ thuật.
nào để tránh và giảm thiểu các rủi ro ấy? Câu 3. Tổng quan về CMS
trả lời là cần có một quy trình phát triển chặt CMS là chữ viết tắt của Content
chẽ và được kiểm định nghiêm ngặt. Tuy nhiên Management System – Hệ quản trị nội dung.
các hệ thống và ứng dụng trên nền web có
Phần này giới thiệu về các đặc trưng, quá
những đặc trưng rất riêng do đó không thể áp
trình phát triển của CMS trên thế giới, về nhu
dụng quy trình kỹ nghệ phần mềm truyền thống
cầu sử dụng CMS trong các doanh nghiệp, và
vào quá trình phát triển các ứng dụng trên nền
các tiêu chí để lựa chọn một CMS.
web mà cần có một quy trình phát triển riêng
cho nó. Trong khóa luận này tôi tập trung vào CMS là một hệ thống hỗ trợ người sử dụng
nghiên cứu quy trình kỹ nghệ trên web và ứng trong việc quản lý nội dung của một trang web.
dụng để xây dựng CMS cho một trang tin tức. CMS bao gồm hai thành phần: thành phần thứ
nhất là ứng dụng quản trị nội dung (CMA –
1. Kỹ nghệ web Content Management Application) và thành
Phần này tập trung vào tìm những đặc trưng phần thứ hai là ứng dụng trình bày nội dung
của các hệ thống và ứng dụng trên nền web và (CDA–Content Delivery Application). CMA là
quy trình kỹ nghệ web. thành phần cho phép tất cả mọi người kể cả
Những đặc trưng của hệ thống và ứng dụng những người không biết về ngôn ngữ đánh dấu
trên trên nền web có ảnh hưởng sâu sắc đến quá quản lý, tạo mới, sửa đổi, loại bỏ các thành
trình kỹ nghệ web. Tính tức thì và tiến hóa sẽ phần nội dung trong trang web một cách dễ
tạo ra sự lặp đi lặp lại và gia tăng mô hình xử dàng. CDA là thành phần sử dụng và biên tập
lý. Các ứng dụng trên nền web một có một số những thông tin để cập nhật cho trang web.
lượng người sử dụng đầu cuối rất đa dạng và 4. Xây dựng CMS
tần số truy cập ứng dụng cao do đó tạo ra
Phần này phân tích và đặc tả yêu cầu cho hệ
những yêu cầu đặc biệt về mặt suy luận và mô
quản trị nội dung .

- 28 -
Các chức năng chính của CMS: rất nhanh chóng và đạt được không ít thành
à Quản lý nội dung bao gồm: quản lý tựu.
chuyên mục, quản lý sự kiện,quản lý tin Trong phạm vi của luận văn, chúng tôi đã
tức, quản lý tin ảnh, quản lý quảng cáo, xây dựng thành công CMS cho trang tin tức tuy
quản lý tỷ giá, quản lý thời tiết, quản lý chưa thật hoàn thiện nhưng về cơ bản nó đã đáp
Header & Footer. ứng được các nhu cầu của một trang tin tức.
à Quản lý đối thoại: quản lý bạn đọc viết,
Tài liệu tham khảo
quản lý phản hồi về trang web.
[1] Roger S.Pressman, Ph.D.. Software
à Quản lý thành viên: quản lý danh sách Engineering A PRACTITION ER’S
các quản trị viên, quản lý phân quyền, APPROACH – 5 .th

quản lý thông tin các nhân.


[2] N guyễn N gọc Bình. Bài giảng môn học
à Quản lý hệ thống: quản lý cơ sở dữ liệu,
Kỹ nghệ Phần mềm 2007.
quản lý thống kê, quản lý logfile.
[3] N guyễn Văn Vỵ – N guyễn Việt Hà.
5. Công nghệ sử dụng Giáo trình kỹ nghệ phần mềm 2006.
Phần này trình bày về các công nghệ sử
[4] N guyễn Văn Vỵ. Giáo trình phân tích
dụng xây dựng CMS cho trang tin tức: công
thiết kế hệ thống thông tin 2004.
nghệ Ajax, PHP và MySQL các đặc điểm và
các tính năng vượt trội của các công nghệ này. [5] Phil Ballard. Teach Yourself Ajax in 10
Minutes 2006.
Ajax ( Asychronous Javascript and XML –
Javascript và XML không đồng bộ) là tập hợp [6] Bruce W. Perry. Ajax Hacks 2006.
của nhiều công nghệ phát triển web được sử [7] N guyễn N am Hải. Bài giảng môn học
dụng để tạo ra các ứng dụng web tương tác. Lập trình trên nền Web 2007.
PHP là một ngôn ngữ lập trình server-side [8] Phạm Hữu Khang. Xây dựng ứng dụng
miễn phí được phát triển theo chuNn mã nguồn Web bằng PHP & MySQL 2005.
mở chạy được trong cả hai môi trường Linux
[9] http://www.cmsreview.com.
và Windows.
[10]http://www.e-consultancy.com/forum
Là một hệ quản trị cơ sở dữ liệu miễn phí
được phát triển theo chuNn mã nguồn mở có thể [11]http://en.wikipedia.org.
chạy được trong cả hai môi trường Linux và
Windows.

6. Kết luận
Trong quá trình tìm hiểu về quá trình kỹ
nghệ web, chúng tôi nhận thấy tầm quan trọng
của quá trình kỹ nghệ web. Kỹ nghệ web tuy
vẫn còn là một lĩnh vực tương đối mới nhưng
nó được xây dựng trên nền tảng của kỹ nghệ
phần mềm truyền thống nên đã có sự phát triển

- 29 -
QUẢN LÝ CẤU HÌNH PHẦN MỀM

Sinh viên: Nguyễn Thị Hoa


Mã số SV: 04020142 Người hướng dẫn: Th.S. Đào Kiến Quốc
Email: lilytrang05@gmail.com

1. Giới thiệu • Check out: Lấy ra một thực thể


Ngày nay, nền công nghiệp phần mềm cấu hình từ nơi lưu trữ vào trong
ngày càng phát triển và việc quản lý cấu một thư viện được kiểm soát
hình phần mềm giữ một vai trò rất quan • Check in: Cập nhật lại một thực
trọng trong phát triển phần mềm. Quản lý thể cấu hình vào nơi lưu trữ sau
cấu hình giúp cho đội phát triển kiểm soát, khi check out.
theo dõi các thay đổi của một hệ thống phần e. Các tiến trình trong quản lý cấu
mềm và các phiên bản khác nhau của phần hình
mềm đó. Vì vậy, quản lý cấu hình tốt sẽ • Định danh đối tượng
mang lại những lợi ích rất lớn cho nhà phát • Quản lý thay đổi
triển như: tiết kiệm thời gian, tiết kiệm chi • Quản lý phiên bản
phí, nâng cao chất lượng sản phNm…Quản • Kiểm định cấu hình
lý cấu hình phần mềm là một tiến trình rất Trong đó, quản lý phiên bản là
quan trọng trong các dự án lớn. một khâu rất quan trọng trong quản
lý cấu hình.
2. Tống quan về quản lý cấu hình phần
mềm 3. Quản lý phiên bản phần mềm
a. Khái niệm a. Khái niệm
Quản lý cấu hình phần mềm là tiến Quản lý phiên bản kết hợp các quy
trình kiểm soát, theo dõi các thay đổi của trình và các công cụ để quản lý các phiên
một hệ thống phần mềm và các phiên bản bản khác nhau của các đối tượng cấu hình
khác nhau của phần mềm đó được tạo ra trong quá trình phát triển phần
b. Lợi ích của quản lý cấu hình mềm. Quản lý phiên bản chú trọng vào
Quản lý cấu hình tốt sẽ giải quyết quản lý mã nguồn, nên còn được gọi là
được hàng loạt các khó khăn trong các dự quản lý mã nguồn.
án, thông qua việc cho phép các thành viên b. Thuật toán trong quản lý phiên
trong dự án có thể cập nhật đồng thời, chia bản
sẻ mã nguồn, và giúp quản lý tốt các phiên Quản lý mã nguồn bao gồm hai
bản. Quản lý cấu hình mang lại nhiều lợi vấn đề chính: Quản lý các thay đổi giữa
ích: tiết kiệm được thời gian và chi phí, nâng hai hay nhiều mã nguồn và tích hợp hai
cao chất lượng sản phNm. hay nhiều mã nguồn.
c. Khi nào phải quản lý cấu hình
• Thuật toán Diff: So sánh hai hay
Quản lý cấu hình là một hoạt động nhiều file mã nguồn.
xuyên suốt trong quá trình phát triển phần
• Thuật toán Merge: Tích hợp hai
mềm.
hay nhiều file mã nguồn.
d. Các khái niệm cơ bản
Có hai mô hình hệ thống quản lý
• Cấu hình cơ sở (Baseline): Là phiên bản chính: hệ thống quản lý phiên
một tập hợp các yêu cầu, thiết kế,
bản tập trung và hệ thống quản lý phiên
mã nguồn, tài liệu người dùng…
bản phân tán.
được nhóm lại và gán cho một
c. Phân tích và so sánh ưu, nhược
tên duy nhất.
điểm của hai mô hình hệ thống: mô hình
• Thực thể cấu hình: Một sản phNm tập trung và mô hình phân tán. Hai loại mô
công việc trung gian, một thành hình này đã xây dựng nên nhiều hệ thống
phần hoặc một sản phNm được quản lý phiên bản hoạt động khá hiệu quả.
đặt dưới sự quản lý cấu hình. Tuy nhiên, hai loại mô hình này đều có

- 30 -
nhược điểm chung là: chưa có công cụ hỗ
trợ biên dịch và chạy các tích hợp của hai mô hình tập trung và mô hình phân tán,
hay nhiều mã nguồn sau khi nó được thay so sánh ưu nhược điểm của chúng, từ đó
đổi. Do vậy, cần phải có một tiến trình đưa ra giải pháp xây dựng một loại mô
build tự động các chương trình, thành hình mới – mô hình tích hợp. Khóa luận
phần sau khi đã được tích hợp và người đã đưa ra những phân tích thiết kế chi
phát triển đã tạo ra những thay đổi đó phải tiết cho hệ thống này.
được thông báo kết quả. Hướng phát triển :
d. Đưa ra giải pháp: Xây dựng một • Hoàn thiện chương trình
hệ thống quản lý phiên bản mới: Tích hợp • Mở rộng thêm chức năng test tự
công cụ build tự động với hệ thống quản động các file mã nguồn sau khi
lý phiên bản. được tích hợp.
Do thời gian có hạn và thiếu kinh
4. Nội dung và kết quả nghiên cứu nghiệm nên khóa luận không thể tránh
a. Phân tích và giải pháp khỏi nhiều thiếu sót, rất mong được sự
• Tổng quan về hệ thống mới góp ý của các thầy cô và toàn thể các
• Một số chức năng hướng tới bạn.
trong hệ thống mới
b. Phân tích thiết kế hệ thống mới 6. Tài liệu tham khảo
[1] RogerS. Fressman.Software Engineering
5. Kết luận A Practitioner’s Approach
Trong khuôn khổ của khóa luận [2] Paul Duvall, Steve Matyas, Andrew
này, tôi đã nghiên cứu một cách tổng Glover. Continuos Integration: Improving
quát về quản lý cấu hình phần mềm và Software Quality and Reducing Risk.
nghiên cứu chi tiết về quản lý phiên bản [3] http://www.versioncontrolblog.com
phần mềm. Dựa trên những nghiên cứu [4]
này, khóa luận đã tìm hiểu hai mô hình http://en.wikipedia.org/wiki/Distributed_Ver
quản lý phiên bản chính: sion_Control_System
[5]
http://en.wikipedia.org/wiki/Continuous_Int
egration

- 31 -
NGHIÊN CỨU PHÂN ĐOẠN ẢNH CHO NHẬN DẠNG VĂN BẢN
Nguyễn Đức Huy Cán bộ Hướng dẫn: TS. Nguyễn Việt Hà
MSSV: 0420169 TS. Lê Anh Cường
Email: huynd2412@gmail.com
1. Giới thiệu tiền xử ảnh có nhiệm vụ khử nhiễu, tăng cường
chất lượng ảnh và xác định góc nghiêng văn
Nhận dạng văn bản[10] là bài toán xuất hiện
bản[2][3].
cách đây khá lâu và vẫn luôn thu hút được nhiều
sự quan tâm, nghiên cứu của các nhà khoa học. Các giai đoạn tách dòng, tách từ, và tách ký
Nhận dạng văn bản được áp dụng trong quá tự sẽ lần lượt chia ảnh văn bản scan thành các
trình tự động hoá các công việc văn phòng như dòng, chia các dòng thành các từ, và các từ
nhập liệu, lưu trữ văn bản, sách báo, phân loại thành các ký tự. Ở đây chúng tôi đề xuất
thư tín, …, những công việc đòi hỏi nhiều thời phương pháp tách dòng dựa vào thành phân liên
gian của con người. thông, việc tách dòng thành các từ được thực
hiện dựa vào biểu đồ tần suất xuất hiện khoảng
Phân đoạn ảnh là công đoạn đầu tiên của một
trắng[4], sử dụng kết hợp phương pháp sử dụng
hệ thống nhận dạng văn bản nói chung, nhiệm
thành phần liên thông và biểu đồ histogram để
vụ chính ở đây là từ một ảnh văn bản đầu vào
tách ký tự. Với mỗi ký tự chúng đôi đưa ra giải
phải tách văn bản đó ra được thành các dòng,
pháp tách ký tự thành ba phần TOP, BODY,
các từ, và các ký tự để chuyển sang cho bộ nhận
BOTTOM để nhận dạng.
dạng xử lý. Phân đoạn ảnh có một vai trò hết
sức quan trọng trong hệ thống nhận dạng, nếu Để nhận dạng một từ chúng tôi ghép thử các
việc đoạn ảnh thực hiện không chính xác thì các vị trí cắt lại để nhận dạng và lưu lại danh sách
công đoạn nhận dạng về sau không thể chính các ứng viên có độ chắc chắn cao nhất. Kế tiếp
xác được, và làm giảm đi độ chính xác của toàn sẽ sử dụng HMM và N-Gram để lựa chọn ứng
hệ thống. Do tầm quan trọng đó của việc phân viên tốt nhất.
đoạn ảnh, nội dung chính của khóa luận này đề
4. Thực nghiệm
cập tới các lý thuyết cơ bản về phân đoạn ảnh,
một số phương pháp thường gặp, từ đó áp dụng Ở đây chúng tôi tiến hành các thực nghiệm
vào bài toán nhận dạng văn bản tiếng Việt. xây dựng cơ sở dữ liệu, xây dựng bộ dữ liệu test
chuNn, các thực nghiệm về phân đoạn ảnh và
2. Kiến thức cơ sở cho phân đoạn ảnh thực nghiệm của hệ thống nhận dạng văn
Quá trình phân đoạn ảnh làm việc hoàn toàn bản[1].
trên ảnh nhị phân, sử dụng biểu đồ histogram và Kết quả thực nghiệm thu được trên văn bản
thành phần liên thông để tách dòng, tách từ và chữ in là rất khả quan. Các thao tác tách dòng,
tách ký tự. tách từ có độ chính xác lần lượt là 99,2% và
Chương này sẽ lần lượt trình bày những khái 99,4%. Hệ nhận dạng văn bản có độ chính xác
niệm về ảnh nhị phân[5], biểu đồ histogram[2], là 90,3% khi không dùng HMM[6][7] và N -
các thành phần liên thông, các thuật toán áp Gram[8][9], là 93,2% khi sử dụng HMM và N -
dụng để tạo ảnh nhị phân, xác định biểu đồ Gram.
histogram và xác định các thành phần liên thông
Các cài đặt thực nghiệm được thử nghiệm
trong một ảnh nhị phân[11].
trên hệ điều hành Windows XP SP2, máy tính
3. Phân đoạn ảnh cho nhận dạng văn bản Laptop tốc độ 1.73GHz x 2 bộ nhớ 2GB RAM.
Phân đoạn ảnh gồm có bốn giai đoạn chính 5. Kết luận và hướng nghiên cứu sau này
đó là tiền xử lý ảnh, tách dòng, tách từ và tách Trong khóa luận này chúng tôi đã trình bày
ký tự.
những lý thuyết cơ bản về phân đoạn ảnh,
Do ảnh văn bản thu được qua máy scanner nghiên cứu và so sánh một số kỹ thuật phổ biến
thường có nhiễu và chất lượng ảnh là không cao, sử dụng trong phân đoạn ảnh cho nhận dạng, từ
và có thể bị nghiêng một góc nào đó. Giai đoạn

- 32 -
đó áp dụng vào bài toán nhận dạng chữ in tiếng hidden Markov model, IEEE
Việt. Transactions on Signal Processing,
Để nâng cao chất lượng trong quá trình phân 48(2):517-33, February 2000.
đoạn ảnh nhằm tăng chất lượng tổng thể của hệ
thống nhận dạng, chúng tôi đã đề xuất phương
[7] Olivier Cappé, Eric Moulines, Tobias
pháp tách dòng dựa vào thành phần liên thông, Rydén. Inference in Hidden Markov
đối với mỗi ký tự sẽ chia ra làm ba phần TOP, Models, Springer, 2005. ISBN 0-387-
BODY, và bottom để nhận dạng. Kết quả thu 40264-0.
được là rất khả quan.
[8] Christopher D. Manning, Hinrich
Trong tương lai chúng tôi sẽ tiếp tục nghiên
cứu và phát triển để nâng cao chất lượng hệ Schütze, Foundations of Statistical
thống cả về độ chính xác và tốc độ. Đối với khó Natural Language Processing, MIT
khăn khi cắt ký tự làm ba phần sẽ giải quyết Press: 1999. ISBN 0-262-13360-1.
theo hướng xác định các vị trí cắt có thể và tiến
hành giống với quá trình tách từ. Qua đó mở [9] Ted Dunning, Statistical Identification of
rộng nghiên cứu và thực nghiệm trên các văn Language. Computing Research
bản chữ viết tay tiếng Việt. Laboratory Memorandum (1994)
Tài liệu tham khảo MCCS-94-273.
[1] N gô Tiến Đạt.Mô hình tích hợp cho [10] http://en.wikipedia.org/wiki/Optical_cha
nhận dạng văn bản tiếng Việt, khóa luận racter_recognition#References
tốt nghiệp đại học, Trường Đại học [11] http://homepages.inf.ed.ac.uk/rbf/HIPR2
Công nghệ, 2008. /connect.htm.

[2] D. X. Le, G. Thoma, H. Weschler,


Automated Page Orientation and Skew
Angle Detection for Binary Document
Images, Pattern Recognition, Volume
27, N umber 10, pp. 1325-1344, October
1994.
[3] D. X. Le, G. Thoma, Document Skew
Angle Detection Algorithm, Proc. SPIE
Symposium on Aerospace and Remote
Sensing, Visual Information Processing
II, Orlando, FL April 14-16, 1993 Vol.
1961, pp. 251-262.
[4] A. Marcolino, V. Ramos, M Ramalho,
J.Caldas Pinto, Line and Word Matching
in Old Documents, IDMEC/IST -
Technical University of Lisbon
[5] William K.Pratt, Digital Image
Processing, John Wiley & Sons 2001.
[6] J. Li, A. N ajmi, R. M. Gray, Image
classification by a two dimensional

- 33 -
PORTAL MẠNG TRỢ GIÚP VIỆT NAM – VIETNAMF1
Nguyễn Duy Hưng Cán bộ hướng dẫn:
MSV: 0420186 Ths.Nguyễn Cảnh Hoàng
Email: htcorp68@gmail.com

I. Giới thiệu Khóa luận nghiên cứu cách


Ngày nay việc ứng dụng công thức xây dựng một cổng
nghệ thông tin đã trở thành thông tin điện tử (portal) dựa
một phần tất yếu của cuộc trên những kết quả nghiên
sống. Cùng với sự phát triển cứu về sản phẩm Joomla!
mạnh mẽ của công nghệ Khóa luận đã giải quyết bài
thông tin, đặc biệt trong sự toán cụ thể là xây dựng portal
phát triển của các dịch vụ mạng thông tin trợ giúp Việt
cung cấp trên internet, nhu Nam – vietnamf1 sử dụng mã
cầu cập nhật, tìm kiếm thông nguồn mở joomla.
tin qua mạng ngày càng nâng II. Cơ sở lý thuyết
cao.Bằng internet, con người • Cổng thông tin điện tử:
trên khắp thế giới đã liên kết Cổng thông tin điện tử
với nhau hơn, bỏ qua mọi rào (Portal) là một khái niệm chỉ
cản về khoảng cách địa lý để các hệ thống website có một
đi đến một xu thế mới – xu số chức năng bao gồm: khả
thế toàn cầu hóa. Sử dụng năng cá nhân hóa, khả năng
internet, chúng ta thực hiện tích hợp nhiều loại thông tin,
được nhiều công việc nhanh khả năng xuất thông tin theo
hơn và chi phí thấp hơn nhiều nhiều định dạng, khả năng hỗ
so với cách thức truyền thống. trợ nhiều môi trường hiển thị,
Đối với lĩnh vực du lịch, việc khả năng đăng nhập một lần,
quảng bá và giới thiệu đến khả năng quản trị nội dung,
bạn bè thế giới một hình ảnh khả năng mở rộng chức năng,
Việt Nam hòa bình và tươi tùy biến giao diện và hỗ trợ
đẹp thông qua mạng internet đa ngôn ngữ. Có rất nhiều
đóng một vai trò rất quan portal khác nhau nhưng đều
trọng. Nếu tận dụng tốt có chung một kiến trúc, do đó
chúng ta sẽ mất rất ít chi phí portal đã dần trở thành một
mà hiệu quả lại vô cùng to chuẩn. Việc phát triển các ứng
lớn, bình chọn cho Vịnh Hạ dụng sử dụng công nghệ
Long trở thành kỳ quan thiên portal là việc phát triển các
nhiên thế giới là một ví dụ chức năng tùy biến có thể gắn
điển hình cho một phương vào khung portal để trở thành
thức quảng bá hữu hiệu thông một ứng dụng đa chức năng
qua moi trường mạng. hoàn chỉnh.

- 34 -
• Giới thiệu Joomla! liên quan từ các nghiên cứu
Joomla! Là một hệ quản trị của nhiều tác giả trong và
nội dung mã nguồn mở ngoài nước.
(CMS), được viết bằng ngôn - Đưa ra được cách thức để
ngữ PHP và kết nối tới cơ sở triển khai các chức năng trên
dữ liệu My SQL, cho phép nền tảng mã nguồn mở
người sử dụng có thể dễ dàng Joomla
xuất bản các nội dung của họ - Xây dựng được một portal
lên internet hoặc intranet. vietnamf1 hoàn chỉnh bao
Joomla có đa tính năng: quản gồm nhiều thành phần:
lý cơ sở dữ liệu, hệ thống xuất
bản nội dung, đa ngôn ngữ, V. Kết luận
hệ thống các component,
template, module dễ dàng Trong phạm vi khóa luận, tôi đã
được mở rộng, trình soạn trình bày cách thức xây dựng ứng
thảo WYSIWYG cho việc soạn dụng mạng thông tin trợ giúp sử
thảo nội dung…Với các tính dụng giải pháp cổng thông tin
năng này, việc sử dụng điện tử. Hy vọng khóa luận sẽ
Joomla để tạo ra một ứng giúp cho mọi người có một giải
dụng portal là hoàn toàn khả pháp tốt trong việc tìm kiếm
thi. thông tin về đất nước Việt Nam
và các doanh nghiệp về du lịch có
III. Bài toán thể tìm được một giải pháp phát
triển mã nguồn mở trong quá
Khóa luận giải quyết bài toán cụ trình kinh doanh của mình.
thể là xây dựng một mạng thông
tin Việt Nam trợ giúp cho tất cả Tài liệu tham khảo:
mọi người trong nước cũng như
quốc tế. Bất kỳ ai khi cần các [1] Trang chính Joomla:
thông tin như lịch sử, văn hóa, www.joomla.org
pháp luật, đất nước, cuộc sống [2] Diễn đàn Joomla Việt Nam:
con người Việt Nam, thời tiết, du www.joomlaviet.org/forum
lịch… đều có thể tìm kiếm tại [3] Nguyễn Văn Vỵ “Giáo trình Phân
website. tích thiết kế hệ thống thông tin” -
NXB Nông nghiệp – 2003.
IV. Kết quả xây dựng và [4] “Joomla! User Manual for
triển khai V1.0.11”, Steve White –
Trong quá trình làm khóa luận tôi websdezined.com and Andy Wallace.
đạt được những kết quả sau: [5] Bộ môn công nghệ phần mềm
- Đưa ra khái niệm Cổng thông ĐH Công nghệ, ĐH Quốc gia Hà Nội.
tin điện tử và các khái niệm Slide UML.

- 35 -
REFACTORING-AWARE VERSION CONTROL
Nguyen Viet Hung Supervisor: Dao Kien Quoc, M.Sc.
Student No: 04020188
1. Introduction therefore, the overall goal of this thesis to
propose such a solution.
Today, team development is common in
software projects. Developers use version 3. Approach and Implementation
control systems to cooperate and share their The refactoring-aware merging method
work. However, existing text-based version proposed in this thesis uses a semantics-based
control systems do not handle refactorings well. merging technique. Since the semantics of the
While refactorings are necessary for software program are taken into account, it produces
maintenance, they cause changes to many parts automatic merges with the least compile and
of the system and result in merge conflicts. This run-time errors. First, this approach requires that
thesis proposes an algorithm for software previous refactorings are accessible at the time
merging with less conlicts and better code of merging, that is the development
evolution while preserving the correctness of environment not only performs refactorings but
the program. Unlike traditional text-based records them as well. This technique is named
version control systems, the algorithm uses an operation-based [3]. Second, depending on these
operation-based approach and treats refactoring refactoring operations and other normal code
operations effectively. Future implementation of edits, the proposed algorithm will choose an
the algorithm as a plug-in to the Eclipse intelligent way to either merge them
Platform is also discussed. Since refactorings automatically or notify potential program errors.
are frequent, the results of this research make
software development more productive and For the ideas to have practical applications, I
reliable. plan to implement them as a plug-in to the
Eclipse environment. Eclipse is a powerful
2. Motivation software development platform, which had an
The primary weaknesses of current text- estimated number of 2.3 million users
based version control systems in the presence of worldwide in 2006 [4]. Its extensible framework
refactoring operations can be summarized as allows us to create custom tools and contribute
follows: new functionality. However, developing a
refactoring-aware merging tool requires a team
• When they detect merge conflicts, some of
of skilled programmers working for months. It
them are unnecessary and should be
is not feasible within the scope of this
automatically resolved.
graduation thesis. Nevertheless, I include a
• When they do not detect merge conflicts, chapter to outline the next best steps to
there are still potential errors of the implement my proposed algorithm.
program after merging.
4. Contributions
• In both cases, they fail to keep the history
This thesis makes the following
of program entities when methods or
contributions:
classes are moved from one place to
another. • Evaluating the shortcomings of current text-
based SCM systems.
According to Tammo Freese [2], between
releases of four APIs2 (Eclipse, Mortgage, • Proposing an algorithm to solve existing
Struts, and log4j), about 81% to 97% of the problems of merging programs that have
changes were refactorings. Since refactorings refactor actions.
take place frequently, it is of great importance • Planning future steps to implement a
that the above drawbacks of current text-based refactoring-aware merging tool as an
SCM systems be studied and resolved. It is, extension plug-in to Eclipse.

- 36 -
5. Conclusions and Future Work
After explaining the refactoring-aware
merging algorithm, the thesis also presented a
prototype to show how it can be integrated
reasonably into a popular development
environment like Eclipse. To evaluate the
correctness and performance of the plug-in tool,
I intend to analyze concurrent development in
some small Eclipse applications (such as the one
described in [1], but with more developers
working in parallel). An alternative way to
examine whether users are more productive
with my plug-in than without is to provide it as
a free release on the Internet and open for
comments. Users' feedbacks will then be used to
accommodate the future growth of the plugin
through software re_nement and additional
analysis. Bene_ting from the powerful
extensibility of Eclipse, the plug-in also serves
as the starting point for further extensions and
improvements.
Since Eclipse has a large customer base, I am
con_dent that such a useful plug-in will have a
signi_cant impact on the productivity of Eclipse
team projects. Future work will realize the
planned implementation of the plug-in and
evaluate to what extent it makes software easier
to develop and maintain.
6. References
[1] Danny Dig, Kashif Manzoor, Ralph
Johnson, and Tien N. Nguyen.Refactoring-
aware configuration management for object-
oriented programs. In ICSE '07: Proceedings of
the 29th International Conference on Software
Engineering, pages 427{436, Washington, DC,
USA, 2007. IEEE Computer Society.
[2] Tammo Freese. Refactoring-aware
version control. In ICSE '06: Pro-ceedings of
the 28th International Conference on Software
Engineering, pages 953 - 956, New York, NY,
USA, 2006. ACM.
[3] Tammo Freese. Operation-based merging
of development histories. In First Workshop on
Refactoring Tools (WRT'07), pages 47 - 48, TU
Berlin, Germany, July 2007.
[4] Karen Lilla. IBM unveils new offerings
for the open source community.
http://www01.ibm.com/software/swnews/swne
ws.nsf/n/sdsd6t7kyd?OpenDocument&site=Soft
ware, September 2006.

- 37 -
FINDING HEAP BOUNDS OF JAVA CARD APPLETS
Phạm Tuấn Hưng Supervisors: Dr. Trương Ninh Thuận
MSSV: 0420192 Dr. Trương Anh Hoàng
Email: hungpt43@gmail.com
1. Introduction 3. Approach
Java Card is a technology that allows First, we build a control flow graph (CFG) of
programmers to develop applets that can run on the input bytecode stream. The nodes of the
smart cards with very limited memory and CFG are instructions. If two instructions can be
processing power. Since applets can come from adjacently executed, we create a directed edge
third parties, they can cause memory overflows from the former to the latter.
when they are executed, and this may result in Then, we make a heap-preserving
lost of data in smart cards and even destruction transformation from the CFG into a rooted,
of the cards. It is therefore necessary for a smart directed tree (RDT). In the transformation, we
card to have a program to check the maximum remove join nodes and collapse cycles in the
heap memory of new applications that are going CFG without changing heap cost.
to be installed on the card, and the checker itself
should run fast and have a small memory Finally, we transform the RDT into a syntax
footprint to be suitable for cards. tree (also called parse tree [1]) of the SCL. We
reuse their type inference in [17] to compute an
The approach presented here improves the upper bound of heap cost of Java Card applets.
one introduced in our previous work [14] to find
an algorithm for computing heap bounds of Java By optimizing these steps, we obtain a linear-
Card applets. Our method transforms bytecodes time algorithm that takes the bytecode stream of
of Java Card applets into equivalent programs a method of Java Card applets as input and
that already have a type system for finding the returns a heap bound function of method
sharp upper bounds of resource use. We then arguments as output.
point out a linear-time algorithm to compute the 4. Experimental results
maximum heap units of Java Card applets. To
validate our ideas, we have implemented and We have implemented a prototype tool that
tested our tool on several sample applications, compute the heap bounds of Java Card applets
and then compared the bounds found by our tool using our proposed algorithm. The input data of
with the actual heap bounds of the programs. this tool is an applet and the output is the
maximum heap space that its main method uses.
2. Background We tested this tool on Sun's applets and our
This chapter briefly introduces smart cards, samples. The obtaned results are good. They
Java Card applets, Java Card virtual machine, show that our tool not only return an upper
and the simplified component language (SCL) bound of heap memory but also can find the
that we based on to develop our algorithm. least upper bounds of heap cost in many cases.
According to Rankl and Cox [15], we define The experiments were executed on an Intel
a smart card as a card that contains a P4 2.4 GHz with 1GB of RAM.
microprocessor. The applications run on smart 5. Related works
cards are called applets. Java Card virtual
machine is the virtual machine used for the The most relevant works to ours seem to be
smart card environment. The SCL is a [3, 6, 8, 9, 10, 18]. Unnikrishnan et al. [18]
simplified version of the abstract component propose a model analysis for inferring
language in the approach by Truong and Bezem maximum size of live heap space of programs
[17] which already has a type system that can written in garbage-collected languages. In a
infer the maximum number of simultaneously similar vein, Hofmann and Jost [10] point out a
active instances of a well-type program. method to count the memory used for object
allocation and deallocation in Java-like

- 38 -
languages by extending the ideas of the static [5] Zhiqun Chen. Java Card Technology for
prediction in [9]. Since these techniques are Smart Cards: Architecture and Programmer’s
performed at source-level, it is difficult to applyGuide. Prentice Hall, 2000.
them to the context of Java Card environment [6] Wei-Ngan Chin, Huu Hai Nguyen,
where source code is not available. Shengchao Qin, and Martin Rinard. Memory
usage verification for OO programs. In SAS,
Giambiagi and Schneider [8] analyze
2005.
memory consumption by an algorithm that finds
[7] Thomas H. Cormen, Charles E. Leiserson,
all potential loops and (mutually) recursive
Ronald L. Rivest, and Clifford Stein.
methods of Java Card applets. In contrast to our
Introduction to Algorithms, 2nd Edition. The
linear-time algorithm, the complexity of this one
MIT Press, September 2001.
is still high. It thus needs more optimizations to
[8] Pablo Giambiagi and Gerardo Schneider.
be actually fit into smart cards.
Memory consumption analysis of java smart
The most closely related work to our cards. In proceedings of CLEI’05, 2005.
approach is Albert et al. [3] that relies on heap [9] Martin Hofmann and Steffen Jost. Static
space cost relations generated at compile-time prediction of heap space usage for first-order
to infer heap bound of an input Java bytecode functional programs. In proceedings of
program. Unlike ours, the technique takes long POPL’03, 2003.
time to run, especially for the abstract- [10] Martin Hofmann and Steffen Jost. Type-
interpretation based size analysis. Therefore, it based amortised heap-space analysis (for an
is unsuitable for Java Card applets. object-oriented language). In proceedings of
6. Conclusion and Future Works ESOP 2006.
[11] Sun Microsystems. Application
We have presented an approach to compute Programming Interface, Java Card Platform,
an upper bound of heap consumption of a Java v3.0, Classic Edition. March 2008.
Card applet in linear time and low space [12] Sun Microsystems. Virtual Machine
complexity. To put the theory into practice, we Specification, Java Card Platform, v3.0, Classic
have implemented a prototype tool and tested it Edition. March 2008.
on several samples. The experiments show that [13] Sun Microsystems. Virtual Machine
our tool not only runs fast but also requires Specification, Java Card Platform, v3.0,
small memory footprint to execute. Connected Edition. March 2008.
For future works, we plan to compute stack [14] Tuan-Hung Pham, Anh-Hoang Truong,
memory bounds and extend our approach to and Ninh-Thuan Truong. Computing heap space
verify resources in games of cell phones. cost of Java Card applets. In RIVF’08, 2008.
[15] Wolfgang Rankl and Kenneth Cox.
Bibliography Smart Card Applications: Design models for
[1] Alfred V. Aho, Monica S. Lam, Ravi using and programming smart cards. John
Sethi and Jeffrey D. Ullman. Compilers: Wiley & Sons, 2007.
Principles, Techniques, and Tools (2nd Edition). [16] Wolfgang Rankl and Wolfgang Effing.
Addison Wesley, August 2006. Smart Card Handbook, 3rd edition. John Wiley
[2] Elvira Albert, Puri Arenas, Samir Genaim, & Sons, 2003.
Germán Puebla, and Damiano Zanardini. Cost [17] Hoang Truong and Marc Bezem.
analysis of java bytecode. In proceedings of Finding resource bounds in the presence of
ESOP 2007. explicit deallocation. In proceedings of ICTAC
[3] Elvira Albert, Samir Genaim, and Miguel 2005.
Gomez-Zamalloa. Heap space analysis for java [18] Leena Unnikrishnan, Scott D. Stoller,
bytecode. In proceedings of ISMM’07, 2007. and Yanhong A. Liu. Optimized live heap bound
[4] David Cachera, Thomas Jensen, David analysis. In proceedings of VMCAI 2003
Pichardie, and Gerardo Schneider. Certified [19] Bill Venners. Inside the Java Virtual
Memory Usage Analysis. In FM’05, 2005. Machine. McGraw-Hill, 2000.

- 39 -
Hiển thị thông tin chứng khoán
trực tuyến sử dụng công nghệ AJAX

Vũ Tiến Hưng
MSV: 04020196 Cán bộ hướng dẫn : Ths. Lê Hồng Hải
Ngày sinh: 28/02/1986 (Bộ môn Hệ Thống Thông Tin)
Email: hunter.coltech@gmail.com

1. Mở đầu những thông tin được thay đổi, còn giữ nguyên
các phần khác. Vì thế, khi duyệt một trang hỗ
Trong những năm gần đây, có rất nhiều trợ AJAX, người sử dụng không bao giờ nhìn
công nghệ mới ra đời cũng với sự phát triển của thấy một cửa sổ trắng và biểu tượng đồng hồ
Internet. Những công nghệ mới này góp phần cát - dấu hiệu cho thấy máy chủ đang thực hiện
tạo nên sự ra đời của web 2.0. Đóng một vai trò nhiệm vụ. Ví dụ, trong một website ảnh, với
then chốt trong giai đoạn phát triển thứ hai của ứng dụng truyền thống, toàn bộ trang chứa các
web là tổ hợp công nghệ Ajax (Asynchronous ảnh sẽ phải mở lại từ đầu nếu có một thay đổi
JavaScript and XML). Ajax đã giúp giải quyết nào đó trên trang. Còn khi áp dụng AJAX,
được vấn đề tương tác người dùng của các ứng DHTML chỉ thay thế đoạn tiêu đề và phần vừa
dụng web. chỉnh sửa, do vậy tạo nên các giao dịch trơn tru,
Nội dung khóa luận này sẽ tìm hiểu về nhanh chóng.
Ajax, các đặc điểm, cách thức làm việc của
b. Công nghệ Ajax và thư viện phát
Ajax, sự kết hợp giữa Ajax và Webservice. Và
triển
từ đó đưa ra giải pháp hợp lý cho bài toán
“Hiển thị thông tin chứng khoán trực tuyến sử Dựa trên nền tảng Ajax, Microsoft cũng
dụng công nghệ Ajax”. phát triển một thư viện Asp.net Ajax cho người
lập trình có thể lập trình dễ dàng hơn. Thư viện
2. Cơ sở lý thuyết hỗ trợ cả mô hình lập trình phát triển tập chung
a. Vì sao lại sử dụng AJAX phía máy khách và mô hình tập trung phía chủ.
Thông thường, tác động của người sử Thư viện Asp.net Ajax cũng cũng cấp
dụng lên website ví dụ như nhấn vào một phím một nền tảng cho phép có thể tương tác với
trên form và gửi một yêu cầu HTTP tới máy webservice một cách dễ dàng từ máy khách.
chủ. Máy chủ thực hiện một số khâu xử lý như Tiếp theo ta tìm hiểu về JSON, một loại
lấy lại dữ liệu, tính toán, kiểm tra sự hợp lệ của định dạng trao đổi dữ liệu thường được sử dụng
thông tin, sửa đổi bộ nhớ, sau đó gửi lại một để truyền các dữ liệu phức tạp, ví dụ như các
trang HTML mới hoàn chỉnh tới máy khách. Về đối tượng, xuống máy khách.
mặt kỹ thuật, phương pháp này nghe có vẻ hợp
lý nhưng cũng khá bất tiện và mất thời gian, bởi Trong khóa luận đã trình bày thêm các
khi server đang thực hiện vai trò của nó thì ví dụ cụ thể và kèm theo các hình ảnh trực
người dùng sẽ làm gì? Tất nhiên là chờ đợi. quan.

Để khắc phục hạn chế trên, các chuyên 3. Bài toán


gia phát triển giới thiệu hình thức trung gian -
a. Thực tế hiện nay
cơ chế xử lý AJAX - giữa máy khách và máy
chủ. Điều này giống như việc tăng thêm một Tốc độ thay đổi thông tin trên sàn giao
lớp giữa cho ứng dụng để giảm quá trình "đi dịch chứng khoán là rất nhanh. Các nhà đầu tư
lại" của thông tin và giảm thời gian đáp ứng. không phải lúc nào cũng có thể thường trực trên
Thay vì tải lại toàn bộ một trang, nó chỉ nạp các sàn giao dịch. Chính vì vậy hiện tại các

- 40 -
công ty chứng khoán có hỗ trợ các nhà đầu tư • Phát triển thêm module vẽ biểu đồ
hình thức đặt lệnh giao bán từ xa chủ yếu là cho phép người dùng theo dõi tốt
qua điện thoại. Các nhà đầu tư lúc này có thể ở hơn và trực quan hơn.
bất cứ nơi đâu cập nhật thông tin qua mạng
• Phát triển thêm module hỗ trợ người
internet và ra các quyết định bán ra hay mua
dùng tối đa trong việc tùy biến giao
vào. Đây là thời điểm cần đến các website cập
diện hơn nữa.
nhật thông tin nhanh chóng và chính xác.
Tuy nhiên hiện nay, các trang web về
hiển thị bảng chứng khoán điện tử thường sử Tài liệu tham khảo
dụng cách tải toàn bộ trang web (refesh) theo
một thời gian nhất định về cách này chưa thực [1] Shelley Powers. Learning
sự tối ưu. Các trang web này cũng mới chỉ JavaScript, (NXB: O'Reilly)
dừng lại ở chỗ hiển thị thông tin mà chưa có
các chức năng hỗ trợ người xem như sắp xếp, [2] Alessandro Gallo, David Barkol,
giao diện chưa hỗ trợ nhiều cho người xem,.... and Rama Vavilala . ASP.NET AJAX
in Action
b. Giải pháp [3] Nicholas C. Zakas. Professional
Javascript for web deverlopers
Qua thực trạng hiện nay về vấn đề “hiển
thị thông tin chứng khoán trực tuyến”, nếu sử
[4] Atlas: Ajax kiểu Microsoft
dụng công nghệ web thông thường thì khó có
http://pcworld.com.vn/
thể đáp ứng được nhu cầu cập nhật thông tin
thay đổi một cách nhanh chóng. Luận văn sẽ sử
dụng công nghệ Ajax để giải quyết các hạn chế
còn tồn tại của bài tóan này.
Website còn cung cấp một số chức năng
hỗ trợ ngừơi dùng trong việc theo dõi thị trường
như có thể sắp xếp các chứng khoán theo các
lựa chọn khác nhau ví dụ như theo khối lựơng
giao dich, hay số lượng khớp lệnh …. Cung cấp
cho người xem khả năng tùy chọn các chứng
khoán mà ngừoi xem quan tâm. Bên cạnh đó,
cung cấp cho người dùng chức năng hiển thị
biểu đồ thay đổi của chứng khoán giúp người
xem có thể theo dõi tốt hơn.

4. Kết luận, xu hứơng phát triển


Khóa luận đã giới thiệu về công nghệ
Ajax và ứng dụng công nghệ Ajax trong việc
giải quyết bài toán “Hiển thị thông tin chứng
khóan trực tuyến ”.
Một số hướng phát triển tiếp theo của
luận văn:
• Phát triển web tổng hợp, và hiển thị
nhanh tỷ giá vàng, ngoại tệ của các
ngân hàng sử dụng công nghệ Ajax
và Webservice.

- 41 -
Xây dựng giải pháp cho hiệp hội Khách sạn Việt Nam trên nền tảng web 2.0

Sinh viên : Đoàn Trọng Khôi


Lớp K49 CNPM
Giáo viên hướng dẫn : Thạc sỹ Nguyễn Nam Hải

Tóm tắt khóa luận

Hiện nay, ngành du lịch nước ta ngày càng phát triển, lượng du khách du lịch tại Việt
Nam tăng dần qua từng năm. Không chỉ có du khách nước ngoài mà nhu cầu du lịch của
du khách trong nước tới những vùng miền, các danh lam thắng cảnh của nước ta cũng
ngày một lớn. Mỗi du khách đều có những nhu cầu, thói quen khác nhau và để đáp ứng
được phần lớn những du khách ấy là điều không hề dễ dàng

Làm thế nào để thu hút khách du lịch trong và ngoài nước đến với các thắng cảnh
rất phong phú ở Việt Nam là điều mà các nhà lãnh đạo và quản lý rất quan tâm.

Một phần không thể thiếu của mỗi chuyến đi là dịch vụ khách sạn, nhà nghỉ và các
dịch vụ liên quan như Nm thực, vui chơi, mua sắm… Du khách luôn rất quan tâm đến
điều này và mong muốn tìm được cho mình nơi dừng chân nghỉ ngơi thuận tiện về nhiều
mặt. Thực tế là hiện nay, để tìm được một chỗ nghỉ như ý khi du lịch tại Việt N am là một
điều không phải dễ dàng đối với khách hàng. Đối với khách hàng trong nước thì khó
khăn về sự khác biệt vùng miền, về địa lý, về tập quán… là những rào cản để họ có thể
được tìm được khách sạn, nhà nghỉ giá cả hợp lý, thuận tiện cho việc đi lại, dịch vụ…
Còn đối với du khách nước ngoài, họ còn gặp khó khăn nhiều hơn vì thêm một rào cản
ngôn ngữ.

Hiện tại, các khách sạn lớn trong nước đã tham gia vào một số hiệp hội khách sạn
với quy mô lớn và chuyên nghiệp như hotel club, nhằm đưa đến cho khách hàng sự thuận
tiện khi đặt phòng, thanh toán…, và nâng cao chất lượng phục vụ. Tuy nhiên, những
khách sạn nhỏ hơn thì chưa đủ điều kiện để tham gia do hiệp hội này hướng đến khách
hàng ở trên khắp thế giới, vì thế du khách trong nước, ít nhiều chưa biết đến nó và khó
khăn khi tiếp cận với dịch vụ mà hiệp hội cung cấp.

- 42 -
Để nâng cao chất lượng dịch vụ, nhằm phục vụ tốt hơn các du khách trong nước và
du khách nước ngoài khi du lịch tại Việt N am, để các khách sạn, nhà nghỉ trung bình và
nhỏ có cơ hội giới thiệu mình đến du khách, với mong muốn góp phần xây dựng hình ảnh
đẹp của Việt N am trong con mắt du khách nước ngoài, cần xây dựng một giải pháp để
thực hiện những mục tiêu trên

Web 2.0 dựa trên nền tảng công nghệ ajax đang phát triển mạnh mẽ và hứa hẹn sẽ là
định hướng phát triển ứng dụng, dịch vụ web chủ đạo trong tương lai. Web 2.0 cho phép
người dùng đưa nội dung lên và chia sẻ với những người dùng khác một cách dễ dàng với
những giao diện phong phú.

Luận văn của em thiết kế một giải pháp là một website cho hiệp hội khách sạn
Việt N am. Giải pháp này sẽ giúp các khách sạn trong nước giải quyết được những vấn đề
trên, cho phép du khách tìm được khách sạn như ý, hỗ trợ họ chủ động đặt phòng. N goài
ra, website này còn cho phép người dùng chia sẻ thông tin đa dạng với những người dùng
khác, chỉ cần họ kết nối internet. Website sẽ thiết kế theo định hướng web 2.0 với sữ hỗ
trợ của công nghệ ajax nhằm mang lại cho người dùng một giao diện thân thiện, cải thiện
hiệu năng hệ thống, giảm thời gian chờ đợi, tạo ra môi trường trao đổi thông tin hữu ích
và dễ dàng

- 43 -
CÁC PHƯƠNG PHÁP NHẬN DẠNG CHỮ
VIẾT TAY TIẾNG VIỆT TRỰC TUYẾN
 
Sinh viên: Nguyễn Duy Khương
Mã số: 04020219   GV hướng dẫn: TS. Bùi Thế Duy
Email: khuongND@gmail.com
Nhận dạng chữ viết tay là một bài toán khó
trong số các bài toán nhận dạng. Đây là một bài
toán đầy ít nghĩa vì đa số thông tin trao đổi của
con người với con người bằng chữ viết.
Trong khóa luận này, tôi tóm tắt lại một số
hướng tiếp cận trong quá trình nhận dạng chữ
viết tay. Sau đó, đưa ra một phương pháp trích
chọn đặc trưng hiệu quả đối với tiếng Việt.
Tiếp đó, giới thiệu các phương pháp học được
sử dụng trong nhận dạng theo hướng tiếp cận Hình 1 Sơ đồ một hình nhận dạng chữ viết tay
lựa chọn đặc trưng trên. Cuối cùng, là những c. Các phương pháp trích chọn đặc trưng
kết quả, bình luận và đánh giá theo các hướng Hiện nay, có rất nhiều phương pháp trích
tiếp cận này. chọn đặc trưng được sử dụng trong nhận dạng
chữ viết tay tiếng Việt. Chúng được chia thành
1. Giới thiệu tổng quan về nhận dạng các loại sau:
chữ viết tay o Sự biến đổi toàn cục và những thuộc
Trong phần này tôi tóm tắt những nội dung tính khai triển thành chuỗi: Biến đổi Fourier,
Biến đổi DCT, Biến đổi Walsh-Hadamard, Biến
bao quát nhất trong trong nhận dạng chữ viết.
đổi Rapid, Biến đổi Hough, Biến đổi Gabor,
Nó bao gồm các nội dụng cơ bản sau: Biến đổi Wavelets, Khai triển Karhunen-Loeve
a. Phân loại bài toán Expansion, Moments.
Ở mức khái quát nhất, nhận dạng chữ viết o Những thuộc tính theo xác suất: Nó
tay được chia làm hai loại: nhận dạng chữ viết gồm các phương pháp theo vùng, nơi đặc trưng,
tay trực tuyến và gián tuyến. Ngoài biết thông giao và khoảng cách.
tin về các điểm ảnh như chữ viết tay gián tuyến, o Những thuộc tính hình học và topo: Dựa
chữ viết tay trực tuyến biết thêm thông tin về nét bút, hướng của nét bút và những đường lồi,
các nét bút và thứ tự các điểm trong mỗi nét sự mã hóa theo 8 và 4 hướng cơ bản, số lượng
bút. giao điểm tự cắt trong kí tự, tỉ lệ giữa chiều
b. Mô hình tổng quát của nhận dạng chữ rộng và chiều cao, Số lượng đường cong mở về
viết tay trên dưới, phải trái,..
Để nhận dạng chữ viết tay cần trải quả hai d. Những kỹ thuật huấn luyện và nhận
giai đoạn. Giai đoạn đầu là giai đoạn huấn dạng: Các kỹ thuật nhận dạng chữ viết tay
thường được chia làm ba phương pháp: Phương
luyện hay còn gọi là giai đoạn học, nhiệm vụ pháp dựa theo thống kê, Phương pháp dựa theo
của giai đoạn này là đưa ra mô hình học cho cú pháp, Phương pháp dựa theo học máy
giai đoạn nhận dạng, giai đoạn sử dụng các kết 2. Phương pháp trích chọn đặc trưng
quả của giải đoạn huấn luyện để nhận dạng chữ Phần này, sẽ giới thiều một phương pháp
viết tay, xem Hình 1. trích chọn đặc trưng sử dụng biển đổi Cosine

- 44 -
rời rạc. Nó biến đổi một dãy số tuần hoàn về
hàm xấp xỉ gồm tổng các hàm Cosine cơ bản,
hay xấp xỉ một dãy số bằng một tập các hàm
Cosine tuần hoàn hay còn là phổ của chúng.
Các đặc trưng chọn được sẽ xấp xỉ các nét bút.
Biến đổi này loại bỏ nhiễu và các biến đổi
tuyến tính. Đồng thời nó có sự tập trưng năng
lượng cao vào một ít các hệ số nên nó là
phương pháp tốt cho nhận dạng chữ viết tay
trực tuyến. Hình 2 Hệ thống nhận dạng chữ viết tay tiếng
Việt
3. Các phương pháp học máy để nhận
dạng chữ viết tay tiếng Việt
5. Kết luận:
Phần này, giới thiệu một số phương pháp
Trên đây, tôi đã trình một số phương pháp
học máy được sử dụng trong thực nghiệm để
trong phân lớp nhằm nhận dạng chữ viết tay
nhận dạng chữ viết tay tiếng Việt trực tuyến. tiếng Việt. Tôi đã đưa ra phương pháp trích
Nó bao gồm các phương pháp: Mạng nơ ron, chọn đặc trưng tốt, cùng kỹ thuật học máy hiệu
máy vector hỗ trợ, chương trình tiến hóa quả để nhận dạng chữ viết tay tiếng Việt bước
4. Kết quả thực nghiệm và thảo luận đầu có những kết quả nhất định.
Dựa vào đặc thù của ngôn ngữ tiếng Việt, và
những tính chất của phương pháp trích chọn Tài liệu tham khảo:
đặc trưng. Tôi sử dụng thiết kế hệ thống nhận
dạng chữ viết tay tiếng Việt gồm có ba tầng [1] N. Ahmed, T. Natarajan, and K. R. Rao.
chính: Discrete cosine transform. IEEE Trans.
- Tầng thứ nhất giúp phân biệt các kí tự Computers, C-23(1), January 1974
chính giống như bảng chữ cái tiếng Anh a..z [2] J. F. Hebert, M. Parizeau, and N. Ghazzali.
(không tính dấu và mũ). A new fuzzy geometric representation for on-
- Tầng thứ hai dùng cho việc nhận biết line isolated character recognition. In
các mũ trên kí tự. Proceedings of the 14th International
- Tầng ba giúp nhận biết các thanh điệu Conference on Pattern Recognition, 1998
xuất hiện cùng các nguyên âm. Với mỗi kí tự, [4] Tom M. Mitchell, Machine Learning,
biến đổi DCT của nó là dữ liệu đầu vào của hệ McGraw-Hill, 1997.
thống . [5] Diego Andina, Duc Truong Pham,
Computational Intelligence, 2007 Springer
Bảng tóm tắt kết quả: [6] Wolfgang Banzhaf, Peter Nordin, Robert E.
Keller, Frank D. Francone, Genetic
Phương pháp Chữ cái Dấu mũ Dấu
Programming An Introduction, Morgan
GP Chưa Chưa Chưa
Kaufmann Publishers, 1998
NN 84.50 >82.00 >83.00
SVM 93.01 >92.00 >95.00

- 45 -
XÂY DỰNG HỆ THỐNG ĐỒ HỌA 3D HỖ TRỢ GIAO DIỆN ZUI DỰA
TRÊN OPENGL ES

Nguyễn Văn Lâm Cán bộ hướng dẫn:

MSV: 04020229 ThS. Vũ Quang Dũng

Email: lamnv86@yahoo.com ThS. Trần Thị Mai Thương

1. Giới thiệu hơn, khó kiểm soát hơn. Điều này đã thúc đNy sự
phát triển của kiểu giao diện mới. Là một bước kế
Các thiết bị di động thường có cấu hình thấp tiếp từ giao diện máy tính truyền thống, giao diện
và màn hình kích thước nhỏ. Vì thế phát triển các ZUI (zoomable user interface), đôi khi được gọi
ứng dụng đồ họa trên các thiết bị di động có nhiều là giao diện người dùng multi-scale, đã khắc phục
khó khăn, khác biệt so với trên PC. Để đơn giản được những hạn chế của kiểu giao diện truyền
hóa quá trình phát triển các ứng dụng đồ họa 3D thống. Giao diện ZUI tạo nên môi trường làm việc
trên các thiết bị di động với màn hình kích thước có khả năng tùy biến cao hơn và có tính động
nhỏ, khóa luận nghiên cứu xây dựng một hệ thống hơn. ZUI sử dụng khái niệm mặt phẳng hai chiều
đồ họa 3D hỗ trợ một cách tự động giao diện ZUI vô hạn để trình diễn không gian làm việc của
sử dụng công nghệ OpenGL ES. Hệ thống được người dùng. Tầm nhìn của người dùng có thể thay
xây dựng sẽ cung cấp giao diện lập trình đồ họa ở đổi ở cả vị trí và quy mô thông qua hiệu ứng
mức cao hơn, nhờ đó lập trình viên không cần panning (trải ra theo các hướng) và zooming
phải quan tâm đến quá trình xử lý ở mức thấp với (phóng to thu nhỏ). Mô hình này tạo ra không
các câu lệnh OpenGL ES. Khi sử dụng hệ thống, gian làm việc cho phép trình diễn tất cả các đối
lập trình viên tương tác với các đối tượng C++ tượng dữ liệu.
được quản lý bởi một cấu trúc phân cấp. Với cấu
trúc khung cảnh cùng với các chức năng như xử 3. Môi trường phát triển đồ họa 3D trên
lý trước hiển thị, xử lý các mức chi tiết, xử lý thiết bị di động
hình ảnh được cung cấp bởi hệ thống, lập trình
viên có thể xây dựng nhanh các ứng dụng đồ họa Thiết bị di động thường được chia ra thành
3D phức tạp như phim hoạt hình hay các ứng hai loại là thiết bị hỗ trợ hệ điều hành mobile mở
dụng game. và thiết bị hỗ trợ hệ điều hành mobile đóng. Phát
triển ứng dụng đồ họa 3D thường được thực thi
2. Giao diện ZUI dựa trên các nền tảng đồ họa 3D. Hai API chính
dành cho phát triển ứng dụng đồ họa 3D trên PC
Khoảng ba mươi năm trở lại đây giao diện là OpenGL và DirectX đều có các phiên bản cải
người dùng WIMP (windows, icons, menus, tiến dành cho hệ thống nhúng. Phiên bản cải tiến
pointes) đã biến máy tính trở thành công cụ hữu của OpenGL được gọi là OpenGL ES hiện được
ích tiện lợi cho những người dùng thông thường. hỗ trợ bởi một số thiết bị cầm tay có hệ điều hành
Tuy nhiên, những năm gần đây, những ứng dụng mobile mở. Truy cập trực tiếp các API của
dựa trên kiểu giao diện này ngày cảng trở nên lớn

- 46 -
OpenGL ES là cần thiết đối với các ứng dụng có bản(như hình cầu, hình hộp chữ nhật), hình ảnh
yêu cầu về tối ưu hóa tốc độ. và nguồn sáng. Sử dụng hệ thống này người dùng
có thể dễ dàng dựng nên khung cảnh 3D với nhiều
4. Thiết kế hệ thống đồ họa thành phần khác nhau mà không cần phải quan
tâm đến những xử lý đồ họa ở mức thấp với các
Các hệ thống đồ họa có cấu trúc thường được
câu lệnh OpenGL ES.
thiết kế theo hai hướng là hướng polylithic và
hướng monolithic. Khác biệt chính giữa hai N goài ra với thiết kế có tính mở, người dùng
hướng thiết kế này là cách thức để gắn kết và cũng có thể tự định nghĩa các lớp mới để biểu
thêm vào các thành phần mới. Mỗi hướng thiết kế diễn các kiểu đối tượng mới bằng cách kế thừa từ
có những ưu điểm và nhược điểm riêng, một hệ những lớp đã có sẵn của hệ thống.
thống tối ưu thường kết hợp hài hòa hai hướng
thiết kế trên. Bên cạnh những kết quả đã đạt được hệ thống
còn tồn tại một số hạn chế. Đối với các thiết bị có
Thiết kế tương tác cho giao diện ZUI bao bàn phím, hệ thống đã cung cấp khá đầy đủ giao
gồm thiết kế tương tác với bàn phím và thiết kế diện ZUI. Tuy nhiên đối với các hệ thống có màn
tương tác với bút đối với màn hình cảm ứng. hình cảm ứng, hệ thống mới chỉ xử lý được sự
kiện nhấn bút để thực hiện phóng to khung cảnh
Đối với hệ thống hỗ trợ giao diện ZUI thì
và thay đổi góc nhìn.
người dùng có thể điều khiển không gian thông
tin để lựa chọn thành phần nào được trình diễn và N goài ra các kiểu đối tượng được hỗ trợ bởi
phạm vi trình diễn bằng cách thực hiện các thao hệ thống vẫn còn ít và còn khá đơn giản. Hệ
tác zooming và panning. N hư vậy hệ thống cần thống cũng chưa cài đặt được chức năng xử lý
xây dựng được một cấu trúc dữ liệu để quản lý tăng giảm độ phân giải đối với các mô hình mạng
các đối tượng cũng như thực hiện những xử lý cần lưới.
thiết để đáp ứng các sự kiện zooming và panning.
Phần này sẽ trình bày phương pháp biểu diễn các Tài liệu tham khảo
đối tượng và quản lý các đối tượng trong một cấu
trúc phân cấp, giải pháp cài đặt camera để tạo [1] Thorsten Büring: Zoomable User Interface on
hiệu ứng zooming và panning, phương pháp xử lý Small Screens.
tối ưu hóa quá trình hiển thị và phương pháp xử lý [2] Benjamin B.Bederson, Jesse Grosjean, Jon
tăng giảm độ phân giải khi phóng to thu nhỏ đối Meyer: Toolkit Design for Interactive Structured
tượng. Graphics.
5. Cài đặt hệ thống [3] Mikael Gustavsson: 3D Game Engine Design
for Mobile Phones with OpenGL ES 2.0.
Phần này trình bày chi tiết mô hình cài đặt
của hệ thống. Các lớp, phương thức và thuộc tính [4] Erich Gamma, Richard Helm, Ralph Johnson, John
tiêu biểu sẽ được trình bày. Vlissides: Design Patterns
Elements of Reusable Object-Oriented Software.
6. Kết luận
[5] Khronos Group: OpenGL ES Specification.
Khóa luận đã xây dựng được một khung cảnh
3D hỗ trợ giao diện ZUI một cách tự động. Khung [6] http://glprogramming.com/red/
cảnh 3D bao gồm các đối tượng hình học cơ [7] http://www.zeuscmd.com/tutorials/opengles/

- 47 -
HỆ QUẢN LÝ GIAO VIỆC ỨNG DỤNG CÔNG NGHỆ
WORKFLOW VÀ CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG

Doãn Đình Lương Cán bộ hướng dẫn:


MSV: 04020240 PGS.TS Nguyễn Văn Vỵ
Email: doanluong@gmail.com

1. Giới thiệu Quản lý thông tin người dùng hệ thống.


Hoạt động giao việc và điều hành xử lý Các công việc chính bao gồm: cập nhật người
công việc là một hoạt động chủ đạo trong hầu dùng và phân quyền sử dụng các chức năng
hết các tổ chức, doanh nghiệp. Để tổ chức và của hệ thống.
theo dõi điều hành một công việc thực hiện 3.4 Quản trị bản gốc
qua nhiều người, nhiều cấp, trên nhiều giai Quản lý mượn và trả tài liệu (công văn).
đoạn thời gian khác nhau gặp rất nhiều khó 4. Cài đặt thử nghiệm
khăn. Từ nhu cầu thực tiễn đó, tôi đã xây
Lựa chọn công nghệ thiết kế ứng dụng
dựng hệ thống quản lý giao việc nhằm hỗ trợ
Môi trường cài đặt: Hệ thống được cài đặt
cho công tác quản lý giao việc được khoa học
trên nền web theo mô hình client/server.
và dễ dàng hơn.
Ngôn ngữ sử dụng: Ngôn ngữ PHP.
2. Cơ sở lý thuyết
Cơ sở dữ liệu: MySQL.
Hệ thống được xây dựng theo phương
pháp phân tích, thiết kế hướng đối tượng sử 5. Kết luận
dụng công cụ Rational Rose và ngôn ngữ Khoá luận đã trình bày về Hệ quản lý
UML. Đây là một công nghệ mới rất hiệu quả giao việc ứng dụng workflow và công nghệ
hỗ trợ rất tốt cho quá trình phân tích và thiết hướng đối tượng.
kế. Trong khoá luận này, tôi đã thực hiện
3. Tổ chức Hệ quản lý giao việc được những công việc sau:
Hệ thống thực hiện những chức năng Vận dụng phương pháp phân tích,
chính sau: thiết kế hướng đối tượng sử dụng công cụ
Rational Rose và ngôn ngữ UML để phân
3.1 Quản lý công văn
tích, thiết kế và xây dựng hệ thống ứng dụng
Quản lý các thông tin về công văn, nhân
có kết quả.
viên, phòng ban. Các công việc chính bao
Hệ thống được xây dựng đã đáp ứng
gồm: xem và cập nhật thông tin liên quan.
được hầu hết các yêu cầu đặt ra của đề tài và
3.2 Quản lý công việc
đã chạy thử nghiệm trên một số dữ liệu.
Quản lý các thông tin về công việc. Các
Hướng phát triển tiếp theo của hệ thống
công việc chính bao gồm: cập nhật đầu mục
trong tương lai:
công việc, phân công việc, cập nhật chỉ đạo
Hoàn thiện các chức năng đã có.
giải quyết công việc và giải quyết công việc.
Nghiên cứu và áp dụng khung làm
3.3 Quản trị người dùng
việc cho phép lập lịch giải quyết công việc.

- 48 -
Nghiên cứu phát triển chức năng tạo [5] Nguyễn Văn Vỵ (2002), Phân tích thiết kế
và tổ chức, giải quyết công việc thông qua mô các hệ thống thông tin hiện đại hướng cấu
hình đồ hoạ. trúc và hướng đối tượng, Nhà xuất bản Thống
Tài liệu tham khảo kê, Hà Nội.
Tài liệu Tiếng Việt [6] Nguyễn Văn Vỵ (2004), Bài giảng Phân
[1] Đặng Văn Đức (2002), Phân tích thiết kế tích thiết kế phần mềm theo hướng đối tượng.
hướng đối tượng bằng UML, Nhà xuất bản Các trang web
Giáo Dục, Hà Nội. [7] htttp://www.uml.org/
[2] Nguyễn Nam Hải (2007), Bài giảng môn [8] htttp://www.rational.com/uml
Lập trình trên nền Web. Bộ công cụ
[3] Phạm Hữu Khang (2005), Xây dựng ứng [9] IBM Rational Rose Enterprise Edition –
dụng web bằng PHP & MySQL, Nhà xuất bản Rational Suite Enterprise for Windows 2005.
Phương Đông. [10] Bộ soạn thảo PHP – Dreamweaver8.
[4] Trương Ninh Thuận (2007), Bài giảng và
Slide môn Ngôn ngữ mô hình hoá UML.

- 49 -
NGHIÊN CỨU VỀ XỬ LÝ ẢNH TRONG XÂY DỰNG BẢN ĐỒ

Vũ Thị Lý Cán bộ hướng dẫn: ThS. Nguyễn Việt Hà.


MSSV: 04020244 TS. Nguyễn Hoài Sơn.
Email: v_ly_cn@yahoo.com

1. Giới thiệu dãn giữa các đối tượng ở gần vùng trùng nhau
không giống nhau. Ở một phần trùng, tỉ lệ giữa
Ngày nay, có rất nhiều ứng dụng bản đồ số
đem lại nhiều lợi ích và tiện dụng cho người hai đối tượng giống nhau, nhưng càng ra xa điểm
dùng, như Google Earth, Google Maps, Yahoo trung tâm của ảnh thì tỉ lệ các đối tượng không
Maps… Trong ứng dụng như Google Maps, bạn khớp càng tăng cao. Do đó, các ảnh phải được
có thể xem xét địa hình dưới mặt đất ở nhiều mức thực hiện quy đổi về các mô hình hình học đồng
độ, từ trên vệ tinh, có thể nhìn thấy vùng đất của nhất. Sau đó các ảnh được ghép với nhau dựa trên
các quốc gia, hay đi vào mức độ chi tiết hơn, có sự ước lượng căn chỉnh. Để thực hiện ghép các
thể nhìn thấy bản đồ đường phố tại một thành đối tượng ảnh [3] một cách tự động, thì vấn đề
phố, quốc gia nào đó … tìm ra sự tương ứng giữa các ảnh gần nhau và
trùng một phần lên nhau cũng phải được xử lý.
Để xây dựng một bản đồ nào đó, các ứng Quá trình tìm sự tương ứng giữa các ảnh dùng
dụng phải xây dựng bản đồ lớn dựa vào các bức phương pháp dựa vào các đặc trưng , thông qua
ảnh chụp chi tiết hơn, xử lý các ảnh này sao cho mô hình chuyển động biến đổi hình học, hoặc dựa
bản đồ tổng thể mô phỏng một cách chính xác vào các mô tả bất biến [6]. Sau khi quá trình ghép
nhất. Những bức ảnh dùng trong tạo bản đồ ảnh thực hiện xong, một giai đoạn làm mờ các
thường được chụp bởi các thiết bị chuyên dụng cạnh ghép được thực hiện để loại bỏ vết nối giữa
như vệ tinh, robot … với các số đo và sự điều các ảnh. Để nâng cao chất lượng ảnh thì quá trình
chỉnh tinh xảo. Với hệ thống thu nhận ảnh từ vệ xử lý còn phải thực hiện thêm các một số kĩ thuật
tinh, các ảnh chụp có thể được bỏ qua các sai số thực hiện vi chỉnh đối với ảnh thu được.
nhỏ, mức độ chi tiết không cao. Nhưng đối với
ứng dụng cần sự chi tiết, như tạo bản đồ trong 3. Bài toán tạo bản đồ
nông nghiệp, dùng trong địa phương, hoặc từng a. Phát hiện các đặc trưng
quốc gia thì yêu cầu về mức độ chi tiết cao hơn. Đặc trưng được chọn trong bài toán này là các
Do đó, hệ thống thu nhận ảnh trong trường hợp vùng, tương ứng với các đối tượng. Ưu điểm của
này thường dùng scanner, đặt trên máy bay. Đối việc chọn đặc trưng là vùng, là các đối tượng này
với hệ thống thu nhận kiểu này, ảnh thu được khá bất biến đổi với một số phép biến đổi, như phép tỉ
chi tiết, nhưng sai số ảnh hưởng khá rõ nét tới ảnh lệ, phép quay. Đơn vị đo để phân cụm, tách các
thu được. đối tượng là sự kết hợp của màu sắc, kết cấu [1].
Luận văn sẽ tâp trung vào vấn đề xử lý ảnh Để thực hiện phân vùng, không bị ảnh hưởng của
để tạo bản đồ dựa trên tập các ảnh thu được do hệ việc đổ bóng của đối tượng, thì công thức được áp
thu nhận scanner đặt trên máy bay trực thăng. Các dụng là:
^
ảnh được chụp ở các lần chụp gần nhau có các S ( x, y ) = Gabor{log E ( x, y )}
phần, vùng chung nhau. ^
Sλ ( x, y ) = Gabor{log E λ ( x, y )}
2. Tổng quan quá trình xử lý ảnh
^
Quá trình xử lý tạo bản đồ bao gồm các thao S λλ ( x, y ) = Gabor{log Eλλ ( x, y )}
tác phức tạp hơn. Các ảnh mặc dù khi ghép một Trong đó hàm E là hàm đo mật độ năng lượng tại
cách đơn giản dựa vào độ dịch chuyển thì tỉ lệ độ điểm ảnh (x,y) với bước sóng λ.

- 50 -
Thuật toán được sử dụng để phân cụm là thuật thông tin điểm ảnh xử lý quá lớn, nên một số kết
toán K-means [8], giả định ảnh bao gồm k cụm quả không đạt được như mong muốn. Và quá
được phân vùng, và dựa vào đơn vị đo kết hợp trình cài đặt cần thêm thời gian và đầu tư để đạt
giữa màu sắc-kết cấu, để phân vùng. Trong quá được hiệu quả về thời gian, và hiệu năng xử lý tốt
trình phát hiện các đặc trưng này, thì nguyên lý hơn.
phân tích các thành phần [5] được áp dụng để
5. Kết luận
giảm bớt thông tin phải xử lý do quá trình áp
dụng lọc Gabor gây ra. Trong quá trình nghiên cứu nhiều loại tài
b. Tìm sự tương ứng giữa các đặc trưng liệu khác nhau, bao gồm cả các văn bản tiếng Việt
Sau khi các vùng được phát hiện ở trên, và tiếng Anh và việc nghiên cứu nhiều thuật toán
thì sẽ lưu lại vị trí trọng tâm của các vùng đó, gọi khác nhau, tôi đã lựa chọn, áp dụng để đưa ra
là các điểm điều khiển. Các điểm điều khiển này được một số các giải pháp và cài đặt thử nghiệm
sẽ được áp dụng mô hình chuyển động, bao gồm các thuật toán để ghép các ảnh.
phép dịch chuyển, quay và lấy tỉ lệ để tìm sự Các công việc cần được nghiên cứu tiếp:
tương ứng. Các cặp điểm điều khiển này sẽ dùng
để chuyển các ảnh về mô hình đồng nhất, và ước • Nhận ra sự tương ứng giữa các cặp
lượng sự căn chỉnh giữa các ảnh tương ứng. ảnh từ một tập ảnh không xác định
Hàm ánh xạ giữa các điểm điều khiển thứ tự.
tương ứng của hai ảnh được dùng để xác định để • Thực hiện các vi chỉnh với ảnh sau
ước lượng sự căn chỉnh [4]. khi được ghép, điều chỉnh độ sáng,
c. Ghép ảnh vào mặt phẳng tối, màu sắc.
Bề mặt tham chiếu để thể hiện tập các đối • Cải thiện hiệu năng, thời gian tính
tượng ảnh ở đây là mặt phẳng. Các ảnh được xác toán.
định để ánh xạ vào mặt này. Với các phần trùng Tài liệu tham khảo
nhau, các điểm pixel được chọn theo trọng số, [1] Minh A. Hoang, Jan-Mark Geusebroek,
ứng với trung bình lũy thừa bận n với khoảng Arnold W.M. Smeulders, “Color texture
cách tới viền chung của hai hay nhiều ảnh. Sau đó measurement and segmentation”. Signal
ảnh được thực hiện một số biện pháp làm mờ các Processing 85, page 265-275.2005
vết nối giữa các ảnh ở các phần trùng nhau [4]. [2] Lindsay I Smith. “A tutorial on Principal
d. Phụ lục Components Analysis”. February, 2002.
Phần này nêu ra một số công thức hình [3] Heung-Yeung Shum, Richard Szeliski
học không gian [5,7], tính vị trí tọa độ của camera .“Panoramic Image Mosaics”. Technical
tại mỗi điểm chụp ảnh, và vị trí của các điểm góc Report MSR-TR-97-23, Microsoft
ứng với mỗi lần chụp. Các thông tin này dùng để Research.
xem xét độ chính xác của quá trình thu nhận ảnh, [4] Richard Szeliski. “Image Alignment and
và phần nào giúp giảm quá trình tính toán, giới Stiching: A tutorial”. Computer Graphics
hạn vùng cần xử lý ở mỗi ảnh. and Vision, Vol. 2, No 1. Microsoft
4. Kết quả Research, 2006.
Luận văn đưa ra những giải pháp đề xuất [5] John Vince. Mathematics for Computer
cho quá trình ghép ảnh và các bước cơ bản để Graphics. Springer, 2004.
hoàn thành quá trình đó. [6] Barbara Zitová, Jan Flusser. “Image
Registration methods: a survey”.Image
Thuật toán được thực nghiệm trên
and Vision Computing 21, page 977-
MATLAB, mô phỏng một số kĩ thuật cơ bản của
1000.2003.
việc biến đổi các pixel tương ứng về đơn vị đo
[7] http://www.euclideanspace.com/maths/g
màu sắc-kết cấu. Thứ hai, là việc áp dụng thuật
eometry/index.htm.
toán K-means để phân vùng. Cuối cùng là quá
[8] http://en.wikipedia.org/wiki/Segmentatio
trình ghép ảnh và xử lý chung đối với ảnh thu
n_(image_processing)
được. Trong quá trình cài đặt, do khối lượng

- 51 -
WORKFLOW NỀN TẢNG CHO CÁC ỨNG DỤNG PHẦN MỀM
Thực hiện: Lục Quang Mạnh Người hướng dẫn: TS.Bùi Thế Duy
Mã số sinh viên: 04020247 Đồng hướng dẫn: TS.Lê Sỹ Vinh
Email: manhlq@gmail.com

1 Giới thiệu 2 Tổng quan về Workflow và


Hiện nay, mọi công việc trong thực tế UIPAB
đều có quy trình nghiệp vụ để giải quyết Một workflow là tập hợp cá đơn vị cơ
công việc. Ví dụ, một dự án phần mềm bản được gọi là các activities (các hoạt
phải trải qua các công đoạn: xác định động) được lưu trữ như là mô hình phản
yêu cầu, phân tích, thiết kế, cài đặt, ánh một tiến trình thế giới thực.
kiểm thử, chuyển giao, bảo trì. Trong tư Workflow cung cấp một cách trình bày
duy giải quyết bài toán, ta cũng suy nghĩ thứ tự thực hiện và quan hệ phụ thuộc
theo hướng luồng công việc. Chúng ta giữa các phần công việc đang thực thực
chia bài toán thành các bước thực hiện thi. Các công việc này được biểu diễn
sau đó giải quyết từng bước này. Như thông qua mô hình từ khi bắt đầu cho tới
vậy Workflow là nền tảng cho việc giải khi kết thúc, và các hoạt động này phải
quyết công việc trong thực thế. được thực hiện bởi con người hoặc các
Khi tin hóa các hệ thống, chúng ta thực chức năng hệ thống.
hiện mô hình hóa cách giải quyết của hệ UIPAB là một Framework mã nguồn
thống thực tế vào trong ứng dụng phần mở do Microsoft phát triển nhằm quản
mềm. Việc làm này chính là đưa luồng
lý tiến trình giao diện. UIPAB chia
công việc vào trong hệ thống phần mềm.
thành hai phần:
Như vậy luồng công việc đã chuyển từ
thực tế vào trong ứng phần mềm, qua đó • UIC (User Inteface Componet): Đó
ta thấy được Workflow là nền tảng của là các thành phần giao diện sử dụng.
ứng dụng phần mềm. Nhiệm vụ của nó là hiển thị thông tin
Để thuận tiện cho việc chuyển các luồng và lấy thông tin từ người sử dụng để
công việc thực tế vào trong ứng dụng,
chuyển xuống cho tầng sử lý nghiệp
chúng ta cần xây dựng một Framework
vụ. Thể hiện của UIC đó là các Form
hỗ trợ Workflow để việc ánh xạ
Workflow thực tế vào Workflow của trên ứng dụng Desktop, các Web
phần mềm trở nên dễ dàng hơn. Page cho ứng dụng Web.

- 52 -
• UIP (UI Process Componet): Đó là Giải pháp là ta đưa dữ liệu qua State.
quy trình xuất hiện các UIC. Nó thực Tuy nhiên dữ liệu này có thể phải sử
hiện điều khiển sự xuất hiện của các lý nghiệp vụ nào đó rồi mới chuyển
UIC trong ứng dụng phần mềm. cho State. Do đó ta cần bổ xung
Như vậy ta thấy được rằng UIPAB và logicFunction vào trạng thái chuyển
Workflow có sự giống nhau. Workflow và xây dựng cơ chế triệu gọi
logicFunction này.
có hai phần chính đó là:
• Các công việc: Đó là một đơn vị 4 Xây dựng công cụ quản trị
thực hiện giải quyết công việc. Workflow
• Các hoạt động: Đó là việc ghép nối Ta thấy thông tin luồng công việc lưu ở
các công việc để thành luồng công trong CSDL rất an toàn. Tuy nhiên
việc.
muốn thay đổi luồng công việc ta phải
Như vậy có thể biểu diễn mỗi một đơn
thực hiện bằng các lệnh SQL là biện
công việc thực hiện trên một UIC. Việc
pháp không thể chấp nhận được. Chính
quản lý sự xuất hiện các UIC này tương
vì lý do đó ta phải xây dựng công cụ
ứng với luồng công việc sẽ do UIP đảm
quản trị Workflow giúp người quản lý
nhiệm. Từ đây ta có thể kết luận UIPAB
có thể trực quan trong việc tạo lập luồng
là một Framework hỗ trợ Workflow.
công việc.
3 Thiết kế Framework hỗ trợ
5 Tài liệu tham khảo
Workflow
[1] Nguyễn Văn Ba, Phát triển hệ thống
Như trên ta kết luận UIPAB là một
hướng đối tượng với UML 2.0 và C++,
Framework hỗ trợ Workflow. Tuy nhiên Nhà xuất bản đại học Quốc Gia Hà nội,
vẫn còn một số hạn chế cần khắc phục: 2005.368 tr.
• Thông tin mô tả luồng công việc ở [2] Naveen Yajaman, Edwardo Jeziesky,
Mohammad Al-Sabt, Blaine Wastell,
file cấu hình không mã hóa do đó dễ
Thoughtworks: User Interface Process
bị thay đổi làm mất an toàn cho ứng Application Block Version 2.0.
dụng. Do đó cần thiết kế lại bộ phận Microsoft 2004.123 tr.
quản lý cấu hình cho UIPAB lấy [3] Rockford Lhotka, Expert VB 2005
Business Object, Second Edition,
thông tin từ CSDL.
Apress, 2005.696 tr.
• Khi chuyển trạng thái giữa hai UIC
thì phải truyền thông tin cho nhau.

- 53 -
XÂY DỰNG PHẦN MỀM QUẢN LÝ CỔ ĐÔNG, CỔ TỨC VÀ HỖ TRỢ BẦU CỬ CHO CÔNG
TY CỔ PHẦN NAPHACO

Trịnh Đức Minh Cán bộ hướng dẫn:


MSSV: 04020252 PGS.TS Nguyễn Văn Vỵ
Email: vua_co_86@yahoo.com

1. Giới thiệu Chương 1 giới thiệu về công ty cổ phần


dược phNm N aphaco và hiện trạng công tác
Trong những năm qua chính phủ đã đưa ra
quản lý cổ đông, cổ tức và bầu cử của công ty.
nhiều cơ chế, chính sách thích hợp, kịp thời
nhằm đNy mạnh hơn nữa quá trình cổ phần hóa Chương 2 khảo sát và tìm hiểu yêu cầu của
tại các doanh nghiệp nhà nước với mục tiêu là phần mềm.
đổi mới doanh nghiệp nâng cao hiệu quả sự Chương 3 phân tích, thiết kế và xây dựng
dụng vốn của nhà nước tại doanh nghiệp phần mềm.
Tuy nhiên, quá trình cổ phần hóa cũng đặt
ra nhiều thách thức với công việc chuyển từ 3. Những chức năng của phần mềm
doanh nghiệp nhà nước sang công ty cổ phần - Cập nhật cổ đông
đồng nghĩa với việc chuyển đổi hình thức pháp
lý và môi trường kinh doanh của doanh nghiệp. Khi công ty có thêm một cổ đông mới thì
Một số vấn đề nảy sinh là quản lý danh sách cổ chức năng cập nhật cổ đông sẽ tạo ra trong cơ
đông sao cho chặt chẽ, chi trả cổ tức thật chính sở dữ liệu cổ đông một bản ghi mới gồm các
xác, phải tiến hành bầu của Hội đồng quản trị thông tin mà cổ đông đó mới cung cấp.
theo định kỳ. Ở nhiều doanh nghiệp việc quản Khi một cổ đông của hệ thống muốn sửa
lý chưa khoa học sẽ dẫn đến hiện tượng chồng đổi, thêm, xóa hay nói chung là cập nhật các
chéo, thông tin đưa ra không nhất quán và thông tin của mình thì chức năng cập nhật cổ
chính xác đông thực hiện công việc này.
Khi một cổ đổng của công ty bị xóa bỏ thì
Đề tài: “ Xây dựng phần mềm hỗ trợ bầu chứng năng cập nhật cổ đông sẽ làm việc này
cử và quản lý cổ đông, cổ tức cho công ty cổ bằng cách xoa đi bản ghi lưu thông tin của cổ
phần Naphaco” nhằm mục đích: đông này trong cơ sở dữ liệu cổ đông.
Hỗ trợ cho việc tập hợp số liệu bầu cử một
cách nhanh chóng và chính xác, đảm bảo tính - Cập nhật thay đổi cổ phiếu
minh bạch và khoa học của số liệu trong biên Khi cổ đông trong công ty muốn thay đổi
bản bầu cử. số cổ phần của mình trong công ty như mua,
Theo dõi danh sách các cổ đông của công bán, cho, tặng…Chức năng cập nhật thay đổi
ty, các quá trình chia, tách, điều chuyển, tăng cổ phiếu sẽ thực hiện chức năng này.
giảm cổ phần và chi trả cổ tức hàng năm của - Tính cổ tức
công ty.
Lập báo cáo, tổng hợp các thông tin một Khi Hội đồng quản trị ra quyết định tính cổ
cách nhanh chóng chính xác, dữ liệu đựơc lưu tức. Chức năng tính cổ tức được sử dụng các
trữ qua nhiều năm, dễ dàng truy cập, tìm kiếm thông tin trong quyết định của hội đồng quản
trị như lãi suất và thông tin khác để tính cổ tức
2 . Cấu trúc của khóa luận cho toàn bộ cổ đông.
N ội dung khóa luận chia làm 3 phần tương - Lập báo cáo
ứng với 3 chương.
Hội đồng quản trị yêu cầu hệ thống lập rất
nhiều báo cáo. N hư báo cáo thông tin cổ đông,

- 54 -
số cổ phần và loại cổ phần cổ đông nắm giữ, - Trong thời gian tới, tôi sẽ xây dựng hệ thống
báo cáo chuyển nhượng cổ phần, thông tin về theo hướng cập nhật thay đổi cổ phiếu trực
chi trả cổ tức… tuyến, mỗi cổ đông có khả năng tự chuyển
- Hỗ trợ bầu cử nhượng cổ phiếu. Việc bNu cử sẽ được diễn
Hai năm một lần công ty cổ phần dược trực tuyến, cổ đông không cần trực tiếp tham
gia vào bầu cử, thậm chí dùng điện thoại di
phNm N am Hà N aphaco tổ chức đại hội cổ
đông. Chức năng hỗ trợ cho các đại hội cổ động để tham gia bầu cử.
đông tiến hành công việc bầu cử nhanh chóng Tài liệu tham khảo
và chính xác hơn với các chức năng trợ giúp
[1] PGS-TS N guyễn Văn Vỵ. Giáo trình
như in phiếu bầu, nhập phiếu đã bầu, tổng hợp
phân tích thiết kế hệ thống thông tin.
phiếu bầu và thông báo kết quả bầu cử. [2] Ths Đào Kiến Quốc. Giáo trình phân
Đầu vào: Danh sách các ứng viên bầu vào
tích thiết kế hệ thống thông tin
vị trí ban kiểm soát, hội đồng quản trị. Danh
sách cổ đông tham gia bầu cử và số cổ phần
tương ứng với mỗi cổ đông, phiếu bầu ứng với
mỗi cổ đông.
Đầu ra : Các báo cáo như kết quả bầu cử,
thống kê phiếu đã nhập, phiếu hợp lệ.
Kết quả bầu cử gồm: Kết quả kiểm phiếu (
số phiếu phát ra, số phiếu thu về, số phiếu hợp
lệ, số phiếu không hợp lệ, số cổ đông đi bầu cử
trực tiếp, số cổ đông ủy quyền đi bầu cử, kết
quả kiểm phiếu theo % ứng với từng ứng viên
trong danh sách phiếu bầu, kết quả bầu cử
được sắp xếp giảm dần theo số phiếu nhận
được.
Thống kê phiếu đã nhập: Kiểm soát tình
hình nhập phiếu bầu, như số phiếu đã phát ra,
số phiếu đã nhập, số phiếu chưa nhập đối với
từng loại cổ phiếu.
Kết quả kiểm phiếu chi tiết: Hiển thị chi
tiết việc cổ đông bầu cho từng ứng cử viên bao
nhiêu, phiếu hợp lệ và không hợp lệ.
- Thông báo kết quả kinh doanh
Khi kết thúc năm tài chính, hội đồng quản
trị sẽ công bố tình kết quả kinh doanh của công
ty trong năm tài chính vừa qua. Chức năng
thông báo kết quả kinh doanh dùng để thông
báo kết quả kinh doanh của công ty.
4. Kết luận
- Trong khóa luận này tôi đã đựơc mô hình
nghiệp vụ, mô hình thực thể chức năng, mô
hình quan hệ dữ liệu và thiết kế dữ liệu vật lý.
Bản cài đặt của tôi được đánh giá đúng đầy đủ
tất cả các chức năng yêu cầu, ngoài ra còn
đựơc đánh giá có giao diện đẹp, dễ sử dụng,
tạo hiệu quả cao.

- 55 -
ỨNG DỤNG LÝ THUYẾT MÃ HÓA THÔNG TIN TRONG VIỆC
XÂY DỰNG HỆ THỐNG BẦU CỬ ĐIỆN TỬ

Sinh viên: Trương Bảo Nam Giáo viên hướng dẫn:


Mã số sinh viên: 04020264 PGS.TS Nguyễn Ngọc Bình

1.Giới thiệu về bài toán bầu cử: Trong luận văn sẽ đề cập đến các
Hiện nay , bầu cử là một hoạt động hướng tiếp cận nhằm mục đích xây
không thể thiếu trong xã hội , là một dựng một hệ thống bỏ phiếu điện tử
biện pháp quản lý hữu hiệu của thay thế cho cách thức bầu cử kiểu
chính phủ , nhằm tập hợp thông tin cũ. Luận văn cũng trình bày những
từ nhân dân trên một diện rộng một khía cạnh đặc thù của bài toán đảm
cách nhanh chóng về một vấn đề bảo an ninh cho công tác bầu cử và
đưa ra. Một cuộc bầu cử được thực các lý thuyết mã hóa được đưa ra để
hiện khách quan , chính xác và tiện thỏa mãn yêu cầu này. Cuối cùng ,
lợi đối với các cử tri sẽ góp phần từ những kết quả thu được, sẽ xây
tăng thêm tính dân chủ trong xã hội dựng một ứng dụng thử nghiệm về
và góp phần nâng cao vai trò của một hệ thống bầu cử điện tử có áp
người dân trong quản lý bộ máy nhà dụng các lý thuyết mã hóa.
nước.
Chính vì lẽ đó, mục đích tiến hành 2. Nội dung
việc tin học hóa quá trình bầu cử đã Cấu trúc luận văn gồm 3 phần
được đề ra từ rất lâu , đặc biệt trong chính:
giai đoạn 20 năm trở lại đây đã Phần 1 : Nêu các vấn đề liên quan
được nghiên cứu và tiến hành thực của bài toán bầu cử điện tử:
nghiệm một cách nghiêm túc. Các • Giới thiệu và đặc tả về bài
hệ thống bầu cử điện tử được đưa ra toán bầu cử.
đem lại lợi ích cho nhà quản lý và • Những yêu cầu đặt ra đối với
sự thuận tiện từ phía cử tri.Với việc xây dựng một hệ thống
những tính chất đặc thù của mình , bầu cử điện tử.
vấn đề mà một hệ thống bầu cử đặt • Các lý thuyết mã hóa và an
ra là cần phải đảm bảo được tính toàn thông tin liên quan đến
chính xác và an toàn thông tin cho đảm bảo an ninh cho hệ
hệ thống khi triển khai. Bài toán bầu thống.
cử cũng như các bài toán quản lý Phần 2 : Giới thiệu về các hướng
khác đã và đang là đối tượng nghiên tiếp cận xây dựng một hệ thống bầu
cứu của lý thuyết an toàn và mã hóa phiếu điện tử và các mô hình bỏ
thông tin. phiếu tiêu biểu của mỗi loại. Cụ thể

- 56 -
, có thể chia thành 3 hướng tiếp cận các yêu cầu giao tiếp truyền thông
chính. và an ninh của thông điệp trên
• Hướng tiếp cận dựa trên sơ mạng.
đồ mã hóa sử dụng chữ kí
mù với lá phiếu của cử tri. Ta 3. Tài liệu tham khảo:
sẽ phân tích dựa trên sơ đồ [1] Phan Đình Diệu, Lý thuyết mật
mã hóa FOO. mã và an toàn thông tin, N hà xuất
• Hướng tiếp cận dựa trên việc bản Đại học Quốc gia Hà N ội
xây dựng kênh truyền Nn [2] Menezes , Handbook Of
danh an toàn giữa cử tri và Applied Cryptography.
ban quản trị. Ta sẽ phân tích [3]N guyễn Văn Vỵ, Phân tích thiết
một hệ mạng trộn phiếu kế hệ thống thông tin , N hà xuất bản
nhằm cung cấp đặc tính Nn Đại học Quốc gia Hà N ội
danh cho kênh truyền. [4] Tập bài giảng khoa Hệ thống
• Hướng tiếp cận dựa trên việc thông tin, Đại học Công nghệ.
áp dụng lý thuyết mã hóa
đồng cấu và chia sẻ thông tin
mật giữa bên quản trị với
phía cử tri. Sơ đồ mã hóa đưa
ra dựa trên việc sử dụng lý
thuyết mã hóa đồng cấu
nhằm đảm bảo việc tránh lợi
dụng phiếu bầu trong các
thực thể hệ thống.
Cả ba cách tiếp cận trên nhằm tăng
cường tính tin cậy và bảo mật cho
hệ thống trong trường hợp bị tấn
công và phát hiện các gian lận có
thể nảy sinh trong quá trình bầu cử.
Trong mỗi hướng , chúng ta tiến
hành phân tích các điểm mạnh cũng
như điểm yếu của hệ thống bầu cử
đưa ra.
Phần 3: Tiến hành xây dựng và cài
đặt thử nghiệm một hệ thống bỏ
phiếu qua mạng. Sơ đồ đưa ra có áp
dụng các lý thuyết mã hóa cơ sở từ
mô hình OMFOO99 để chuNn hóa

- 57 -
NGHIÊN CỨU VỀ KIỂM CHỨNG PHẦN MỀM DỰA TRÊN ASPECT
Nguyễn Thùy Nhung
MSV 0420280 Cán bộ hướng dẫn : TS. Nguyễn Việt Hà
Email: nhungnt.it@gmail.com

1. Giới thiệu – được định nghĩa là : “công nghệ mới dùng để


phân tích vấn đề trong phát triển phần mềm, cho
Khóa luận được thực hiện theo đề tài:
Nghiên cứu phương pháp kiểm chứng phần mềm phép đơn thể hóa những vấn đề đan nhau của hệ
dựa trên Aspect. Đây là một đề tài mang ý nghĩa thống phần mềm”
thực tiễn, nhất là trong thời điểm hiện nay, khi AOP được xây dựng dựa trên các phương
mà yêu cầu về chất lượng phần mềm ngày càng pháp lập trình khác như lập trình hướng đối
cao. Nội dung của khóa luận trình bày kiến thức tượng, lập trình hướng thủ tục và có bổ sung
cơ bản xung quanh các vấn đề: kiểm chứng phần thêm các khái niệm, các tổ chức mới nhằm mô
mềm; thiết kế phần mềm với UML (Unified đun hóa các mối quan tâm cắt ngang. AOP được
Modeling Language) và OCL (Object Constraint sử dụng kết hợp với các phương pháp lập trình
Language); phương pháp lập trình hướng khía truyền thống, tức là với các mối quan tâm chính
cạnh (AOP) và ứng dụng AOP vào bài toán kiểm ta có thể cài đặt bằng phương pháp lập trình
chứng. Trên cơ sở đó, chúng tôi phân tích, làm rõ chính đã chọn (ví dụ như OOP,...), còn với các
lợi ích và quy trình thực hiện kiểm chứng phần mối quan tâm cắt ngang sử dụng phương pháp
mềm theo phương pháp “Kiểm chứng phần mềm lập trình hướng khía cạnh.
dựa trên Aspect”. Trong nội dung chính của khóa AOP phân chia trách nhiệm rõ ràng giữa
luận, chúng tôi trình bày phương pháp xây dựng các mô đun riêng lẻ, AOP làm tăng tính mô đun
Aspect kiểm chứng các ràng buộc OCL cơ bản
hóa của hệ thống, Với AOP hệ thống dễ dàng
của chương trình hướng đối tượng và tiến hành được mở rộng, Tăng tính tái sử dụng…
cài đặt thử nghiệm các Aspect kiểm chứng ràng
buộc bất biến (invariant), điều kiện trước (pre- Quy trình xây dựng một ứng dụng AOP
condition), điều kiện sau (post-condition) trên gồm 3 bước cơ bản: Phân rã bài toán theo khía
một số ví dụ đơn giản. cạnh - Cài đặt các mối quan tâm - Tích hợp các
khía cạnh.
2. UML & OCL
AspectJ là ngôn ngữ hướng khía cạnh có
Ngôn ngữ mô hình hóa thống nhất UML là khả năng ứng dụng lớn, dễ dàng cài đặt vào các
ngôn ngữ được sử dụng rộng rãi nhất hiện nay
môi trường phát triển phổ biến như
trong việc thiết kế và đặc tả thiết kế các hệ thống Eclipse,...Aspectj được xây dưng trên cơ sở mở
phần mềm. Hỗ trợ cho UML, ngôn ngữ ràng buộc rộng ngôn ngữ lập trình java, thêm vào các thành
OCL ra đời nhằm mô tả một cách rõ ràng và
phần mới hỗ trợ AOP
chính xác các ràng buộc đối với các đối tượng,
các thuộc tính và phương thức của các lớp trong Các khái niệm cơ bản trong AspectJ : thực
mô hình UML. thi cắt ngang tĩnh, thực thi cắt ngang động,
joinpoint, pointcut, advice, Aspect
OCL định nghĩa 4 loại ràng buộc cơ bản:
bất biến (invariant), điều kiện trước (pre- 4. Phương pháp kiểm chứng phần mềm dựa
condition), điều kiện sau (post-condition) và trên Aspect
guard. “Phương pháp kiểm chứng phần mềm dựa
3. Lập trình hướng khía cạnh và AspectJ trên Aspect” là phương pháp kiểm chứng trong đó
công việc kiểm chứng được tách biệt hoàn toàn
Phương pháp lập trình hướng khía cạnh với việc phát triển mã nguồn. Các Aspect chứa
(Aspect Oriented Programming)– viết tắt là AOP

- 58 -
mã kiểm chứng được xây dựng độc lập với Sử dụng AspectJ cài đặt Aspect kiểm chứng bất
chương trình nguồn, sau đó các Aspect này được biến, điều kiện trước, điều kiện sau, của đối
tự động đan vào chương trình chính để tạo thành tượng Java trong thời gian chạy.
hệ thống cuối cùng có khả năng tự kiểm chứng
Phương pháp kiểm chứng này có nhiều lợi ích:
Tài liệu tham khảo
Theo dõi chặt chẽ chương trình trong thời gian
chạy, có thể xây dựng mã kiểm chứng độc lập với [1] Nguyễn Thị Thu Trang. Mô hình hóa và kiểm
phát triển mã nguồn, hứa hẹn khả năng lớn trong chứng Aspect, Luận văn thạc sĩ khoa học.
việc tự động hóa,... Trường Đại học Bách Khoa Hà Nội. Năm
2007, tr.60-81.
Các bước thực hiện:
[3] G. Booch, J. Rumbaugh, and I. Jacopson. The
Bước 1: Mã nguồn được được lập trình viên cài
Unified Modeling Language User Guide, 2nd
đặt theo đúng thiết kế edition. Addison-Wesley, 2005.
Bước 2: Song song với việc phát triển mã nguồn, [4] OMG. Object Constraint Language. OMG,
mã kiểm chứng được cài đặt trong các Aspect. Version 1.5 March 2003.
Tùy theo khía cạnh cần kiểm chứng, các Aspect
sẽ có nội dung khác nhau. [5] Ho Tat Thanh, Nguyen Thi Thu Trang,
Truong Ninh Thuan, Nguyen Viet Ha. An
Bước 3: Đan Aspect vào chương trình nguồn để
approach for verifying invariants of Java
tạo thành hệ thống thống nhất có khả năng tự objects at runtime. In Proceeding of the
kiểm chứng
Japan- Vietnam Workshop on Software
Áp dụng “Phương pháp kiểm chứng phần mềm Engineering IoIT, Ha Noi, 2007
dựa trên Aspect” để kiểm chứng ràng buộc OCL
của các chương trình hướng đối tượng, sơ đồ các
bước kiểm chứng như sau:

Trong đó các aspect kiểm chứng ràng buộc OCL


được xây dựng theo 3 bước:
Bước 1: Xác định các quy tắc đan
Bước 2: Xác định các hành vi đan vào hệ thống
Bước 3: Tổng hợp Aspect
5. Thực nghiệm

- 59 -
WEB SERVICES VÀ AJAX TRONG BÀI TOÁN MASHUP VỚI BẢN ĐỒ
Cán bộ hướng dẫn: TS. Trương Anh Hoàng
Nguyễn Trọng Quyền
MSV: 0420308
Email: blacknight1005@gmail.com
1. Giới thiệu JavaScript, theo công nghệ AJAX đã góp
phần quan trọng vào các ứng dụng Mashup,
Khóa luận đã nghiên cứu cách xây dựng nhất là chiếm vị trí quan trọng trong các ứng
để cung cấp một giao diện lập trình ứng dụng GIS Mashup.
dụng (API) trên nền Web thể hiện bản đồ,
được gọi là widget, xây dựng dựa trên công XML đã trở thành nền tảng cơ bản trong
nghệ AJAX, cho phép từ đó tạo ra các ứng môi trường mạng với việc trao đổi dữ liệu.
dụng GIS Mashup, tức thể hiện dữ liệu tổng Cùng với các trang bản đồ, các chuNn trao
hợp từ các nguồn khác nhau kết hợp với bản đổi thông tin địa lý cũng xuất hiện, dựa trên
đồ. Widget có các hàm chức năng thích hợp XML như là GeoRSS, KML, CSV,
cho phép tạo ra một khung ảnh bản đồ Microformats và Metatag cho HTML. Các
nhúng, nhận các dịch vụ cơ bản về bản đồ định dạng dữ liệu này thường là thông tin về
như định vị, tìm đường, cũng như thể hiện dữ liệu kèm theo trường địa chỉ tương ứng,
thông tin lên trên. Để thể nghiệm, khóa luận như là tọa độ địa lý (kinh độ, vĩ độ).
cũng tiến hành xây dựng một ứng dụng
Mashup cho phép dùng widget đấy hiện bản Đối với xây dựng API cho bản đồ sử
đồ và các thông tin lên đấy. dụng AJAX, thư viện YUI là một toolkit
DHTML rất hữu ích. Đây là công nghệ phía
2. Mashup và các công nghệ Web client nên có thể kết hợp với các server chạy
trên các công nghệ khác nhau. Từ thư viện
Mashup, là một từ có nguồn gốc trong YUI, cho phép ta thể hiện được bản đồ với
âm nhạc, có ý nghĩa là sự thể hiện một bài hiệu ứng đồ họa mạnh, xử lý sự kiện tốt,
hát mới tạo ra từ các phần khác nhau đã tồn giúp cho tương tác với người dùng hiệu quả.
tại. Trong công nghệ thông tin, một trang Thêm vào đó, thư viện YUI quản lý sự
Mashup có nghĩa là một ứng dụng web kết truyền thông không đồng bộ qua sử dụng đối
hợp, phối hợp dữ liệu từ nhiều nguồn tài tượng XMLHttpRequest, hay nhúng đối
nguyên về một mối, với sự thể hiện và xử lý tượng JSON do server trả về vào mã
khác. Mà trong đó, xu hướng Mashup JavaScript.
thường thấy là kết hợp bản đồ với nhiều loại
dữ liệu khác liên quan tới không gian địa lý. 3. Kiến trúc WebGIS
Mashup dựa trên nền tảng kỹ thuật hiện WebGIS là một hệ thống thông tin địa lý
có như JavaScript, XML và DHTML, Web được phân bố qua môi trường mạng máy
Services, với việc áp dụng rộng rãi các tính để tích hợp, phân phối và truyền tải
chuNn Web cho phép trao đổi thông tin như thông tin trực diện trên WWW thông qua
XML, SOAP, REST, JSON , hay như các Internet.
giao thức gọi hàm từ xa như XML-RPC.
Các widget của các trang Web cho phép Ở chương này, khóa luận tập trung vào
cung cấp một API được viết bằng tìm hiểu một số kiến thức về bản đồ, tọa độ

- 60 -
địa lý, các phép chiếu, tính toán vị trí một 5. Thiết kế một ứng dụng Gis Mashup
điểm trên Trái Đất và thể hiện theo tọa độ
tương ứng trên màn hình vi tính. Sử dụng Web Map API, tạo ra bản đồ
nhúng vào trang web có sẵn, hiển thị dữ liệu
Tiếp đó, hệ thống WebGIS được phân thống kê liên quan tới vùng, miền. Ứng
tích, đưa ra kiến trúc WebGIS với các thành dụng nhỏ cũng cho phép gọi các hàm từ xa,
phần: DMS (hệ quản trị cơ sở dữ liệu), Web hay lấy thông tin không gian như thông tin
Server, Map Server, Client Browser. thời tiết vùng từ các nguồn thích hợp và thể
hiện trên bản đồ.
Trong quá trình xử lý truy vấn từ người
dùng, thao tác render ảnh do Map Server 6. Kết luận:
cung cấp có thể mất nhiều thời gian. N ên hệ
thống WebGIS cải tiến đã sử dụng Map Trong khóa luận, tôi đã nghiên cứu về
Server render sẵn tất cả các ảnh nền bản đồ WebGIS, về AJAX và một số chuNn về Web
theo các mức tỉ lệ bản đồ, chia thành các tile Services, từ đó tạo ra thư viện Web Map
ảnh nhỏ và lưu trữ ở Tile Server thích hợp. API cho phép sử dụng xây dựng các trang
GIS Mashup. Cũng như thử nghiệm xây
4. Thiết kế Web Map API dựng ứng dụng GIS Mashup thử nghiệm sử
dụng thư viện ấy.
Web Map API ở nội dung khóa luận
được xây dựng dựa trên ngôn ngữ JavaScript Hướng phát triển tiếp theo: ứng dụng GIS
chạy trên trình duyệt, sử dụng công nghệ Mashup có thể được phát triển trên nền tảng
AJAX trao đổi thông tin với Web Server, thư viện Web Map API được thiết kế, và
cung cấp những chức năng thao tác với bản đưa tới xây dựng một Map Wiki Pedia.
đồ.
Tài liệu tham khảo:
Web Map API được xây dựng như một
widget, sử dụng thư viện YUI của Yahoo, [1] http://developer.yahoo.com/yui/ (tài liệu
cho phép giải quyết các vấn đề đối với về thư viện YUI)
DHTML ví dụ như sự không tương thích
[2]
của các trình duyệt khác nhau, xử lý đồ họa
http://code.google.com/apis/maps/document
và sự kiện mạnh, truy vấn không đồng bộ tới
ation/ (tài liệu về Google Map API)
server.
[3]
Web Map API cung cấp các chức năng:
http://developer.yahoo.com/maps/ajax/index
- Cho phép tạo ra đối tượng map hiển
.html (tài liệu về Yahoo! Map API)
thị bản đồ.
- Cho phép xử lý các sự kiện phóng to, [4] John E. Harmon and Steven J. Anderson:
thu nhỏ bản đồ, kéo bản đồ tới nơi The Design and Implementation of
hiển thị mong muốn (zoom và pan). Geographic Information Systems.
- Cho phép hiển thị dữ liệu điểm,
đường thẳng, đa giác lên bản đồ cùng [5] Raymond Yee: Apress Pro Web 2.0
với thông tin liên quan. Mashups: Remixing Data and Web Services.
- Cung cấp các cơ chế xử lý sự kiện
trên bản đồ cho các trang Mashup sử [6] Eric N ewcomer: Understanding Web
dụng. Services - XML WSDL SOAP And UDDI
- Truy vấn tới server không đồng bộ,
gọi các dịch vụ như geocode, routing.

- 61 -
NGHIÊN CỨU CÀI ĐẶT OPENGL ES TRÊN JAVA ME

Lê Nguyễn Tuấn Thành Cán bộ hướng dẫn:

MSV: 04020341 ThS. Vũ Quang Dũng

Email: daidungsi@yahoo.com ThS. Trần Thị Mai Thương

1. Giới thiệu Binding for OpenGL ES (JSR 239). Mobile 3D


graphics API (viết tắt là M3G) là giao diện do
Trong khoảng chục năm nay, các ứng dụng Sun phát triển theo tư tưởng của OpenGL dành
3D dành cho thiết bị nhúng, thiết bị cầm tay cho các thiết bị nhúng. Tuy nhiên, M3G được
ngày càng phổ biến, thu hút sự quan tâm của theo dựng theo hướng đối tượng, quản lý đối
nhiều nhà phát triển. Với sự hỗ trợ của phần tượng một cách tổng thể, chung nhất thông qua
cứng, các chuNn đồ họa cũng được hoàn thiện một scenegraph. N gười dùng định nghĩa các đối
dần. Khóa luận tập trung nghiên cứu về tượng, thuộc tính của các đối tượng và tương
OpenGL ES 2.0 kết hợp với nền tảng Java ME tác giữa các đối tượng. Khác với M3G, Java
dành cho thiết bị nhúng. Với mục đích nghiên Binding for OpenGL ES cài đặt các đặt tả của
cứu công nghệ 3D, khóa luận hướng tới xây OpenGL ES 1.x bằng ngôn ngữ Java, cho phép
dựng một nền tảng đồ họa 3D hỗ trợ OpenGL các lập trình viên đã quen thuộc với OpenGL
ES 2.0 trên ngôn ngữ Java, cho phép phát triển trên các ngôn ngữ khác có thể phát triển các
các ứng dụng đồ họa 3D dễ dàng. ứng dụng tương tự trên Java. Tuy nhiên cài đặt
OpenGL ES trên Java yêu cầu phần cứng phải
2. Tổng quan về OpenGL ES 2.0
hỗ trợ OpenGL ES 1.0.
OpenGL được coi là một đối thủ cạnh
4. Hướng cài đặt OpenGL ES 2.0 trên
tranh với DirectX của Windows trong lĩnh vực
đồ họa. Phần này giới thiệu tổng quan các kiến Java ME
thức liên quan đến OpenGL, OpenGL ES, EGL, Hiện tại, phần cứng hỗ trợ OpenGL ES 2.0
GLSL, những thành phần không thể thiếu được vẫn đang trong quá trình phát triển và sẽ xuất
trong quá trình tìm hiểu về đặc tả đồ họa 3D. hiện trong vài năm tới. Phần này đề cập đến
Đồng thời, khóa luận cũng nêu lên những cải cách cài đặt OpenGL ES 2.0 trên Java ME. Do
tiến, ưu việt của OpenGL ES 2.0 so với các OpenGL ES 2.0 sử dụng GLSL, một ngôn ngữ
phiên bản trước đó. OpenGL ES 2.0 cho phép gần giống như C/C++ nên trước tiên phải xây
phát triển các ứng dụng 3D nhanh hơn, hiệu dựng một bộ biên dịch để diễn dịch các câu
quả tốt hơn do tính chuyên môn hóa và sự tham lệnh của GLSL. Tiếp đó, một bộ liên kết sẽ tiến
gia của nhiều công ty vào quá trình phát triển. hành liên kết các mã đã được biên dịch với bộ
thư viện để tạo ra các mã có thể thực thi. Lập
3. Cài đặt đồ họa 3D trên Java ME
trình viên chỉ quan tâm đến việc tạo các hiệu
Hiện tại, Sun cung cấp 2 giao diện đồ họa ứng cho các mô hình đồ họa đã được dựng sẵn
3D: Mobile 3D graphics API (JSR 184) và Java bằng các chương trình phần mềm chuyên dùng

- 62 -
để tạo mô hình. Việc liên kết các mô hình và Khóa luận hướng tới nghiên cứu OpenGL
mã nguồn do lập trình viên viết sẽ do engine ES 2.0 và cài đặt trên ngôn ngữ Java để tạo nên
của OpenGL ES 2.0 đảm nhiệm. một thư viện cho phép lập trình viên phát triển
các ứng dụng 3D bằng cách sử dụng các mô
5. Thực hành hình có sẵn.
Tiến hành thử nghiệm các kết quả lý thuyết Tài liệu tham khảo
thu được bằng các công cụ có sẵn. Khóa luận
sử dụng bộ toolkit của Sun : Java Wireless [1] JohnKessenich, DaveBaldwin, RandiRost :
Toolkit 2.5.2 để thực hành các chương trình The OpenGL Shading Language Specification
OpenGL ES 1.x (do bộ toolkit này chưa cài đặt (2004).
OpenGL ES 2.0). Để thực hành các chương
[2] Morgan Kaufmann : Mobile 3D Graphics
trình shader của OpenGL ES 2.0, khóa luận sử
dụng Shader Designer của TyphoonLabs. with OpenGL ES and M3G.
Chương trình cho phép viết các chương trình [3] Randi J.Rost : OpenGL Shading Language,
shader tạo hiệu ứng cho các mô hình dựng sẵn. Second Edition.
Hiện tại, AMD cung cấp bộ RenderMonkey
IDE 1.81 cho phép viết thử nghiệm các ứng [4] CrE-Me 4.12
dụng OpenGL ES 2.0 trên các thiết bị nhúng sẽ (http://www.nsicom.com/Default.aspx?tabid=1
được AMD phát hành trong thời gian tới. 59).

6. Porting lên thiết bị [5] Khronos Group


(http://www.khronos.org/opengles)
Với mục đích đưa OpenGL ES và Java lên
thiết bị thực, khóa luận đã tiến hành thử nghiệm [6] OpenGL Programming Guide
với thiết bị EMBEST PXA270DB. Thiết bị (http://glprogramming.com/red/index.html)
được thiết kế với kiến trúc ARM thích hợp cho [7] Zeus CMD
việc phát triển các ứng dụng cho PDA, hệ thống (http://www.zeuscmd.com/tutorials/opengles/in
nhận dạng giọng nói, thiết bị điều khiển… dex.php)
EMBEST PXA270DB được cài đặt sẵn môi
trường Windows CE.net 4.2. Khóa luận sử
dụng máy ảo CrE-ME 4.12 được phát triển bới
N SIcom để thử nghiệm các kết quả trên môi
trường Java.

7. Kết quả đạt được


Thử nghiệm đưa OpenGL ES 1.x chạy
thành công trên thiết bị thực Embest
PXA270DB. Thử nghiệm đưa máy ảo Java
CrE-ME lên thiết bị và chạy demo.

8. Hướng phát triển trong tương lai

- 63 -
HỆ THỐNG QUẢN LÝ BẤT ĐỘNG SẢN ỨNG DỤNG
CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG
Nguyễn Phương Thảo
MSV : 0420346 Người hướng dẫn : PGS.TS Nguyễn Văn Vỵ
Email : thaonp_86@yahoo.com

1. Giới thiệu - Tiếp tục thực hiện giao dịch này


Năm 2007 là năm thị trường bất động và phân công cán bộ nghiệp vụ tư
sản (BĐS) có sự tăng trưởng vượt bậc với 5 tỷ vấn theo dõi giao dịch.
USD vốn đầu tư tạo đà cho thị trường BĐS - Chuyển giao dịch tư vấn sang
2008 tiếp tục tăng trưởng. Do lợi nhuận cao giao dịch đầu tư.
nên có rất nhiều công ty đã chuyển sang đầu - Yêu cầu hiệu chỉnh.
tư vào lĩnh vực BĐS. Hoạt động của một - Từ chối giao dịch.
công ty kinh doanh BĐS khá phức tạp, số Trong quá trình thực hiện giao dịch,
lượng giao dịch nhiều nên công việc quản lý cán bộ nghiệp vụ tư vấn sẽ cập nhật thông tin
rất khó khăn. Vì vậy, cần phải có hệ thống liên quan đến giao dịch, quản lý lịch hẹn với
giúp quản lý công việc từ khâu tiếp nhận giao khách hàng, cập nhật kết quả giao dịch. Trong
dịch, thực hiện giao dịch và kết xuất báo cáo. quá trình này, người quản lý cũng có thể
Mục đích của khóa luận này là phân tích thiết chuyển giao dịch sang giao dịch đầu tư.
kế hệ thống quản lý BĐS ứng dụng công nghệ
hướng đối tượng và xây dựng hệ thống thử 3.2. Chức năng hệ thống
nghiệm. Hệ thống gồm các chức năng chính
sau :
2. Cơ sở lý thuyết 1. Quản lý khách hàng
Phân tích thiết kế (PTTK) là bước đầu a. Thêm khách hàng
tiên trong quá trình xây dựng hệ thống. Nó có b. Sửa thông tin khách hàng
vai trò quan trọng quyết định đến sự thành c. Xóa khách hàng
công của cả dự án. Quá trình PTTK sẽ mô tả d. Tìm kiếm khách hàng
chi tiết hệ thống trước khi đưa vào triển khai. e. Kết xuất báo cáo khách hàng
Hiện nay phương pháp PTTK theo công nghệ 2. Quản lý danh mục
hướng đối tượng đã rất phổ biến và có thể giải a. Quản lý danh mục BĐS
quyết hầu hết các bài toán. Trong khóa luận - Thêm BĐS
này tôi sử dụng ngôn ngữ mô hình hóa UML - Sửa BĐS
để thực hiện PTTK. - Xóa BĐS
- Tìm kiếm BĐS
3. Phân tích thiết kế hệ thống - Kết xuất báo cáo
BĐS
3.1. Nghiệp vụ bài toán
b. Quản lý danh mục tỉnh thành
Hoạt động quản lý BĐS gồm có: tiếp
- Thêm tỉnh thành
nhận giao dịch tư vấn BĐS, duyệt giao dịch
- Sửa tỉnh thành
tư vấn, cập nhật thông tin giao dịch trong quá
- Xóa tỉnh thành
trình thực hiện và lập báo cáo. Khi khách
c. Quản lý danh mục quận huyện
hàng đến yêu cầu một giao dịch, cán bộ tiếp
- Thêm quận huyện
nhận sẽ cập nhật thông tin về giao dịch, khách
- Sửa quận huyện
hàng, BĐS sau đó sẽ trình duyệt giao dịch tư
- Xóa quận huyện
vấn lên người quản lý. Trong quá trình duyệt
3. Quản lý giao dịch
giao dịch tư vấn, người quản lý có thể quyết
a. Thêm giao dịch
định :
b. Sửa giao dịch
c. Xóa giao dịch

- 64 -
d.Tìm kiếm giao dịch thống sử dụng mô hình client – server , .N et
e.Trình duyệt giao dịch FrameWork v1.1, ngôn ngữ sử dụng : C#,
f.Duyệt giao dịch CSDL SQL server 2005.
g.Cập nhật giao dịch
h.Quản lý lịch hẹn 5. Kết luận
- Thêm lịch hẹn Qua khóa luận này, tôi nhận thấy việc
- Sửa lịch hẹn ứng dụng CN TT vào quản lý đã giúp giảm rất
- Xóa lịch hẹn nhiều các thao tác thủ công, thực hiện công
- Tìm kiếm lịch hẹn việc nhanh chóng, chính xác.
i. Kết xuất báo cáo giao dịch Các kết quả đạt được :
4. Quản lý người dùng - Hiểu được nghiệp vụ của hệ thống
a. Quản lý phòng ban quản lý BĐS.
- Thêm phòng ban - N ắm được phương pháp PTTK hệ
- Sửa phòng ban thống theo công nghệ hướng đối tượng.
- Xóa phòng ban - Cơ bản đã phân tích được các chức
b. Quản lý nhân viên năng chủ yếu của hệ thống
- Thêm nhân viên - Cài đặt một số chức năng thử nghiệm.
- Sửa nhân viên Hạn chế :
- Xóa nhân viên - Chưa cài đặt hết các chức năng theo
- Tìm kiếm nhân viên yêu cầu
5. Quản trị hệ thống - Giao diện chưa thực sự thân thiện.
a. Quản lý tài khoản Hướng phát triển :
- Tạo tài khoản - Hoàn thiện nốt các chức năng của hệ
- Sửa tài khoản thống.
- Xóa tài khoản - Chỉnh sửa lại giao diện.
- Tìm kiếm tài khoản - Xây dựng thêm hệ con giúp cho phép
- Đổi mật khNu khách hàng có thể đăng kí giao dịch
- Phân quyền với công ty thông qua Internet.
- Đăng nhập
- Đăng thoát Tài liệu tham khảo :
b. Quản lý nhóm quyền
- Thêm nhóm quyền [1] N guyễn Văn Vỵ, Phân tích thiết kế hệ
- Sửa nhóm quyền
- Xóa nhóm quyền thống thông tin: Hướng cấu trúc và hướng
đối tượng , N XB Thống kê, Hà N ội, 2002.
4. Cài đặt hệ thống thử nghiệm [2] Nhập môn UML – N XB Thống kê.
Dựa vào bản PTTK ở trên, tôi đã cài [3] Phân tích thiết kế hệ thống hướng đối
đặt thử nghiệm một số chức năng của hệ tương bằng UML – N XB Giáo dục.

- 65 -
NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH WCET TRONG HỆ THỐNG THỜI
GIAN THỰC CỨNG ( HARD REAL-TIME SYSTEM)

Dương Đình Toan Cán bộ hướng dẫn:

MSV: 04020400 ThS. Vũ Quang Dũng

Email:toandd83@gmail.com ThS. Trần Thị Mai Thương

1. Giới thiệu hoạt động của hệ thống như thế nào, phụ thuộc
vào các yếu tố nào trong vấn đề chạy thời gian
Cùng với sự phát triển nhanh chóng của các thực, về các nhiệm vụ chính của các tiến trình hệ
phương tiện, thiết bị được điều khiển bởi hệ thống thống chạy như thế nào.
máy tính trong thời gian thực, sự mất chính xác
của một vài hệ thống thời gian thực có thể gây Chương 2: WCET trong hệ thống hard
thiệt hại lớn đến cuộc sống con người và nền kinh
tế. Đây là một sự đòi hỏi cho sự phát triển các real-time
phương thức mà ổ đĩa đạt tới sự tối đa nhỏ nhất
của các lỗi gây ra. Một nguyên nhân phổ biến của Khái niệm về WCET: WCET là sự giới
sự gây lỗi này là các vấn đề về thời gian. hạn cao hơn (upper bound) trong sự thực thi một
phần tách rời riêng biệt của mã chương trình.
Trong thực tế có nhiều phương pháp để tìm
ra nguyên nhân gây lỗi do vấn đề về thời gian, thì Trong chương này , tôi đã tổng kết tất cả
có một kỹ thuật đã được phát triển trong một vài các khái niệm liên quan đến vấn đề WCET trong
năm trở lại đây . Đó là giải pháp phân tích WCET hệ thống thời gian thực , đặc biệt trong hệ thống
trong hệ thống thời gian thực cứng.
thời gian thực cứng (hard real-time systems). Lúc
Mục đích chính của việc phân tích WCET này chúng ta đã hiểu những vấn đề liên quan đến
là để cung cấp một thư viện thông tin về thời gian WCET một cách tổng quát về các phương pháp
thực thi, có khả năng xấu nhất của mã chương ước lượng, và sự khác nhau giữa hai phương pháp
trình trước khi được sử dụng trong hệ thống.
phân tích động và phương pháp phân tích ước
2.Cấu trúc khóa luận gồm 4 chương: lượng tĩnh

Chương 1: Hệ thống thời gian thực Chương 3: Phương pháp phân tích tĩnh
trong hard real-time system
Định nghĩa hệ thống thời gian
thực(real-time system):Một hệ thống thời gian Bài toán: Từ một chương trình có mã
thực là một hệ thống máy tính ở đó không chỉ có nguồn làm thế nào để tính được thời gian thực thi
các kết quả là quan trọng, ngoài ra ta cần phải có khả năng xấu nhất.
quan tâm tới thời gian cần thiết để nhận được kết
quả đó. Giải pháp: Trong kỹ thuật phân tích tĩnh
hard real-time system là chia chương trình thành
Trong chương này, tôi đã trình bày tổng những miếng code nhỏ , chúng độc lập với nhau
quan về hệ thống thời gian thực, về phương thức để tính toán.

- 66 -
Mục đích của sự tính toán là để tính ra ước
lượng WCET cuối cùng cho chương trình, được
gửi bởi luồng chương trình (flow analysis) và kết
quả của sự phân tích mức độ thấp (low-level
Cách phân tích miếng code theo các bước analysis).Và cũng là kết quả cuối cùng của
sau: chương trịnh theo phương pháp kỹ thuật này.

Chương 4:Tổng kết


Chương này tổng kết những kết quả đạt được và
chưa đạt được trong quá trình nghiên cứu,và định
hướng mở sau này trong tương lai công nghệ phát
triển hệ thống thời gian thực của bản thân tôi.

3.Kết luận:Kết quả nghiên cứu của tôi tuy vẫn


còn nhỏ, nhưng đây cũng là định hướng mới trong
giải pháp công nghệ hệ thống thời gian thực về
Hình 1:các bước phân tích WCET
tính an toàn cao đối với đời sống con người. Đặc
Bước 1:phân tích luồng(flow analysis) biệt trong giải pháp công nghệ của nước nhà trong
quá trình hội nhập.Vấn đề này cũng giúp tôi học
Mục đích của sự phân tích luồng chương hỏi được rât nhiều bổ ích, và cũng là giải pháp mà
trình là để xác định các đường đi có thể thực hiện tôi định hướng nghiên cứu tiếp về việc tối ưu hóa
được thông qua một chương trình. thời gian thực trong hệ thống nhúng..
Kết quả của sự phân tích luồng là các 4.Tài liệu tham khảo
thông tin mà các hàm lấy được gọi bao nhiêu thời
gian các vòng lặp được đi lặp lại, nếu ở đó sự phụ [1] ] N. Bermudo, J. Gustafsson, B. Lisper, C. Sandberg:
thuộc giữa sự trình bày khác nhau của các đoạn if. A Tool for Auto- matic Flow Analysis of C-programs for
WCET Calculation. In 8th IEEE International Workshop
Bước 2:phân tích mức thấp(low – level on Object-oriented Real-time Dependable Systems, 2003.
analysis) [2] Daniel Sandell: Evaluating Static Worst -Case Execution-
Time Analysis for a Commercial Real-Time Operating
Mục đích là để giải thích nguyên nhân gây System,july 2004.
ra sự tác động của phần cứng trên thời gian thực
thi. [3] Daniel Sehlberg Dept: Static WCET Analysis of Task-
Oriented Code for Construction Vehicles , September 2005.
Sự phân tích mức thấp được chia nhỏ ra
thành hai phần: global low-level analysis và local [4] J. Engblom: Processor Pipelines and Static Worst-Case
low-level analysis. Execution Time Analysis, PhD thesis, Uppsala University,
2002.
Kết quả ,phân tích mức thấp này cho ta ra [5] A. Ermedahl: A Modular Tool Architecture for Worst –
số liệu về thời gian của các nhánh ,các nút ,các Case Execution Time Analysis, PhD thesis, Uppsala
cạnh của chương trình mà ta được phân tích thành University, 2003.
cấu trúc cây(tree). [6] Isabell Puaut : WCET-centric soft ware-controlled
Instruction Caches for Hard Real-Time Systems.In Proc,of
Bước 2:Tính toán(computation)
ECRTS,July 2006.

- 67 -
NGHIÊN CỨU CÔNG NGHỆ EJB VÀ ỨNG DỤNG

Vũ Thu Trang Cán bộ hướng dẫn : TS. Trương Ninh Thuận


MSV : 04020408 Cán bộ đồng hướng dẫn : ThS. Tô Văn Khánh
Email : trangvt26@gmail.com

1. Giới thiệu dụng, các thành phần EJB, các thành phần Web,
Trong nhiều năm qua, các công ty lớn đều các thành phần thích ứng tài nguyên. Tất cả các
chú trọng ứng dụng công nghệ thông tin bằng thành phần của Java EE đều chạy trên môi trường
cách triển khai các phần mềm theo mô hình ứng được gọi là các trình chứa. Các trình chứa quản lý
dụng client/server. Tuy nhiên, môi trường mạng các dịch vụ như quản lý vòng đời, bảo mật, triển
không đồng nhất sẽ gây khó khăn trong quản lý khai và sinh luồng. Nền tảng Java EE cũng hỗ trợ
tích hợp, chi phí quản trị hệ thống trở nên quá các dịch vụ : truy cập cơ sở dữ liệu, giao dịch, xử
cao, mục tiêu truy cập dữ liệu chung một cách an lý XML, các dịch vụ đặt tên và thư mục, đánh dấu
toàn, linh hoạt là khó thực hiện với mô hình này. siêu văn bản và các hệ thống thông tin doanh
Ngoài ra, nhu cầu của người dùng mỗi lúc một nghiệp. Các ứng dụng được xây dựng trên nền
cao, đòi hỏi khả năng phục vụ của ứng dụng phải tảng Java EE thường là các ứng dụng có độ phức
được tăng cường để phục vụ số lượng lớn kèm tạp cao, truy cập cơ sở dữ liệu từ nhiều nguồn tài
theo chất lượng dịch vụ cao. Các ứng dụng này nguyên khác nhau và là các ứng dụng phân tán
phải đáp ứng được : cho nhiều trình khách.
- Khả năng tăng cường và quản trị tốt 3. Công nghệ Enterprise JavaBeans
- Khả năng phân chia công việc theo nhiều (EJB)
mức Enterprise JavaBean (EJB) là một trong số
- Khả năng mở rộng, tính uyển chuyển và các Java API trên nền Java phiên bản Enterprise
sẵn sàng Edition - Java EE. EJB là thành phần phía máy
chủ đóng gói lớp nghiệp vụ logic của một ứng
- Tính bảo mật, khả năng chịu lỗi của hệ
dụng. Ban đầu EJB được phát triển bởi hãng Sun
thống và dữ liệu trong môi trường kết nối mạng
MicroSystems (EJB 1.0 và EJB 1.1), sau đó phát
Tất cả những yêu cầu trên đã làm phát sinh triển bởi hãng Java Community Process với JSR
mô hình phát triển ứng dụng đa tầng.Trong đó, 19 (EJB 2.0), JSR 153 (EJB 2.1) và JSR 220 (EJB
Sun Microsystems đã đưa ra mô hình JavaEE bao 3.0)
gồm các công nghệ nền như JDBC, JNDI, EJB,
Đặc tả về EJB cho biết chi tiết làm thế nào
RMI, JSP, Java Servlet,..
một máy chủ cung cấp :
Khoá luận tập trung nghiên cứu vào công
nghệ EJB. Đây là môi trường nền tảng để triển - Tính bền vững
khai các thành phần xử lý logic phân tán tới các - Việc xử lý các giao dịch
client, nhờ đó giảm thiểu quá trình phát triển các - Tự kiểm soát trùng lặp
ứng dụng phục tạp, các đối tượng sẽ được sự hỗ - Các sự kiện sử dụng Java Message Service.
trợ tối đa của môi trường nó tồn tại.
- Dịch vụ thư mục và đặt tên (JNDI)
2. Tổng quan về công nghệ nền tảng
- Bảo mật (JCE và JAAS)
Java EE
- Triển khai các thành phần phần mềm trên
Nền tảng Java EE giới thiệu một mô hình
máy chủ ứng dụng
lập trình đơn giản hơn cho nhà phát triển với việc
cung cấp một tổ hợp API mạnh mẽ. Nó hỗ trợ - Gọi thủ tục từ xa sử dụng RMI-IIOP hoặc
những loại thành phần : applet, trình khách ứng CORBA

- 68 -
Đặc tả về EJB còn định nghĩa vai trò của Các mô đun chính của website ứng dụng :
trình chứa EJB và các enterprise bean phải làm Đối với khách hàng :
như thế nào để triển khai trên một trình chứa.
- Lấy thông tin mặt hàng, tìm kiếm mặt hàng
Enterprise bean được triển khai trong một - Xem và quản lý giỏ hàng
trình chứa EJB trên máy chủ ứng dụng. Các đặc tả - Xem thông tin khách hàng, quản lý tài
này mô tả làm thế nào một enterprise bean có thể khoản cá nhân
tương tác với bản thân trình chứa đó và làm thế
- Tạo đơn hàng
nào để mã nguồn máy khách tương tác với tổ hợp
trình chứa/enterprise bean. Các lớp enterprise Đối với người quản trị phía tầng web :
bean được các ứng dụng sử dụng trong gói - Quản lý mặt hàng
javax.ejb (gói javax.ejb.spi là giao diện của nhà - Quản lý đơn hàng
cung cấp dịch vụ chỉ sử dụng bởi sự triển khai các - Quản lý khách hàng
trình chứa EJB). Các mô đun được lựa chọn xây dựng trên các
Khái niệm Enterprise JavaBeans : bean phiên phi trạng thái hay lưu vết trạng thái
Một enterprise bean là một thành phần phần phụ thuộc vào nhu cầu áp dụng của nó. Ví dụ,
mềm phía máy chủ có thể được triển khai cho môi việc lấy thông tin mặt hàng, được thiết kế với một
trường đa tầng phân tán. Một bean được triển khai bean phiên phi trạng thái để đáp ứng yêu cầu chia
trên trình chứa EJB. Trình chứa EJB cung cấp sẻ tài nguyên và số lượng yêu cầu tăng nhanh.
bean với nhiều dịch vụ khác nhau như quản lý Trong khi đó, mỗi một khách hàng có các giỏ
vòng đời, bảo mật, quản lý giao tác…Trình khách hàng tồn tại trong nhiều phiên giao dịch, trạng
của EJB có thể là một servlet, trang JSP, ứng thái các phiên giao dịch được lưu lại mỗi lần
dụng Java độc lập, applet, một trình khách Web khách hàng lựa chọn một món hàng nên nó được
service với SOAP, hoặc thậm chí là một thiết kết thông qua bean phiên lưu vết trạng thái.
enterprise bean khác. 5. Kết luận
Các loại bean : các enterprise bean được Khoá luận làm rõ kiến trúc, mô hình hoạt động
chia thành 3 loại của công nghệ nền EJB. Từ đó, giúp cho việc phát
- Bean phiên triển các ứng dụng phân tán đa tầng một cách có
- Bean thực thể hệ thống, dễ dàng hơn.
- Bean hướng thông điệp
4. Phân tích bài toán ứng dụng bán Tài liệu tham khảo
hàng qua mạng dựa trên kiến trúc đa [1] Bill Bruce, Richard Monson-Heafel.
tầng Java EE với EJB Enterprise JavaBeans 3.0. O’Reilly 2006.
Hệ thống ứng dụng bán hàng qua mạng là một [2] Rima Patel Sriganesh, Gerald Brose, Micah
ứng dụng thương mại điện tử điển hình. Ứng Silverman. Mastering Enterprise JavaBeans 3.0.
dụng có nhu cầu kết nối với nhiều nguồn dữ liệu Wiley Publishing 2006.
và nhiều hệ thống khác như : ngân hàng, hệ thống [3] Sun Microsystems. Java EE 5 Tutorial. Sun
kho, các nhà cung cấp khác nhau…Hơn nữa, nó 2007.
phải có khả năng phục vụ được một số lượng lớn [4] Phát triển các hệ thống phân tán dựa trên
khách hàng cùng một lúc, đáp ứng yêu cầu chia sẻ kiến trúc phần mềm ba tầng. Luận án thạc sỹ. Hà
tài nguyên và số lượng yêu cầu tăng nhanh. Vì Nội, 2004.
vậy, ứng dụng thích hợp để lựa chọn triển khai [5] Website : http://java.sun.com
trên môi trường phân tán đa tầng. Khoá luận chỉ
đi sâu nghiên cứu kiến trúc của website ứng dụng.

- 69 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ VĂN BẢN VÀ HỒ SƠ CÔNG VIỆC

Bùi Quốc Trung Cán bộ hướng dẫn: ThS Nguyễn Cảnh Hoàng.
MSSV: 0420415
Email: buiquoctrung@gmail.com

1. Giới thiệu d. Trả lại văn bản không hợp lệ


Hầu hết các cơ quan, các tổ chức chính e. Tiếp nhận văn bản đến đích danh cần xử lý
phủ và phi chính phủ đề có những hoạt động f. Xử lý văn bản đích danh
quản lý văn bản. Công việc này chưa được tin
học hóa nên có rất nhiền hạn chế. Nhận thức g. Giao xử lý văn bản đến
được tầm quan trọng của tin học hóa hoạt động h. Xử lý văn bản đến
quả lý văn bản, tôi đã mạnh dạn xây dựng hệ
thống Quản Lý văn bản và Hồ sơ công việc 3.2 Nhóm chức năng văn bản dự thảo
Mục đích của hệ thống là xây dựng một a. Tạo mơi văn bản dự thảo
hệ thống quản lý các văn bản đến, văn bản dự
thảo, văn bản nội bộ , văn bản đi và các chức b. Xử lý văn bản dự thảo
năng khác. Hệ thống này sẽ giúp công tác quản c. Chuyển, phát hành văn bản
lý văn bản thật sự khoa học, dễ dàng.
d. xem danh sách những văn bản đã chuyển, phát
2. Cấu trúc khóa luận hành.
Nội dung khóa luận chia làm 4 phần: 3.3 Nhóm chức năng văn bản đi
Giới thiệu hệ thống, Mô tả hệ thống, Phân tích
a. Vào sổ công văn đi
hệ thống và Đánh giá hệ thống.
Chương 1 trình bày mục đích của hệ b. Phát hành văn bản đi
thống, các căn cứ pháp lý của hệ thống và một 3.4 Nhóm chức năng văn bản nội bộ
số yêu cầu của hệ thống
Chương 2 mô tả hệ thế, cụ thể là trình a. Vào sổ văn bản nội bộ
bày mô hình nghiệp vụ và mô hình phân rã chức b. Phát hành văn bản nội bộ
năng của hệ thống
Chương 3 đi sâu vào phân tích hệ thống. c. Xem văn bản nội bộ
Phân tích hệ thống được thể hiện qua biểu đồ d. Tạo phiếu yêu cầu
UseCase và mô tả luồng sự kiện qua các
e. Xử lý các yêu cầu nội bộ
UseCase, các biểu đồ lớp và phân tích thế kế dữ
liệu. f. Tạo phiếu trình
Chương 4 trình bày những đóng góp của g. Xem, xử lý phiếu trình
khóa luận, nhưng phương hướng phát triển tiếp
hệ thống để hệ thống đi vào thực tế sâu rộng 3.5 Nhóm hồ sơ công việc
hơn. a. Tạo hồ sơ công việc
3. Chức năng chính của hệ thống b. Sửa thông tin hồ sơ công việc
3.1 Nhóm chức năng văn bản đến c. Tập hợp các văn bản vào hồ sợ
a.Tiếp nhận văn bản d. Xóa văn bản đính kèm trong hồ sơ
b. Vào sổ công văn e. Gán quyền xem hồ sơ
c. Sửa đổi thông tin trong công văn

- 70 -
f. Xem các hồ sơ. mô hình thực thể chức năng, mô hình quan hệ dữ
3.6 Nhóm chức năng theo dõi hồi báo liệu, thiết kế mô hình dữ liệu vật lý và giao diện
a. Nhập văn bản hồi báo của hệ thống. Khi đọc các tài liệu này có thể
hiểu được toàn bộ hệ thống.
b. Xem danh sách văn bản hồi báo
Hệ thống tôi đã phân tích đáp ứng được
3.7 Chức năng đính kèm văn bản
đầy đủ các nghiệp vụ đề ra, tất cả các nghiệp đã
3.8 Nhóm chức năng báo cáo thống kê được tin học hóa.
a. Báo cáo thống kê tổng hợp
Cũng đưa ra được nhiều giải pháp tốt như
b. Báo cáo kết quả xử lý. có thể kiếm soát được tình hình xử lý văn bản,
3.9 Chức năng tìm kiếm, xem, quản lý văn bản qua đó có thể quy trách nhiệm cho từng nút xử
và xem luồng xử lý công việc lý…
a. Xem văn bản gốc Sắp tới sẽ cài đặt toàn bộ hệ thống.
b. Tìm kiếm văn bản Chỉnh sửa hệ thống cho phù hợp với nhiều tổ
chức hành chính cụ thể. Phát triển chức năng
c. Kiểm tra quyền xem văn bản nhắc nhở công việc tới các nhân viên qua email
d. Gán quyền đọc văn bản và điện thoại di động. Khi có công việc mới
hoặc sắp kết thúc một công việc, hệ thống nhắn
e. Tạo , sửa đổi, xóa các văn bản thông dụng sẽ gửi một email hoặc gửi tin nhắn đến điện
f. Xem luồng xử lý công văn thoại di động để nhắc nhở.
3.10 Chức năng quản trị danh mục cơ quan
Tài liệu tham khảo
ngoài
[1] PGS-TS Nguyễn Văn Vỵ. Giáo trình
3.11 Nhóm chức năng quản trị phân quyền.
phân tích thiết kế hệ thống thông tin.
4. Kết luận [2] Kim Hamilton, Russell Miles Learning
UML 2.0
Đã xây dựng được đầy đủ các tài liệu như
[3] Ths Đào Kiến Quốc. Giáo trình phân
biểu đồ UseCase và biểu đồ Lớp là hai biểu đồ tích thiết kế hệ thống thông tin
quan trọng nhất theo UML, đã xây dựng được

- 71 -
ỨNG DỤNG CÔNG NGHỆ AJAX
TRONG HIỂN THN TIN NHANH VÀ CÁ NHÂN HÓA

Nguyễn Văn Trung


MSV: 0420417 Cán bộ hướng dẫn : Ths. Lê Hồng Hải
Ngày sinh: 01/01/1985 (Bộ môn Hệ Thống Thông Tin)
Email: trungfx@live.com

1. Mở đầu tải qua siêu liên kết). Nguyên tắc của kỹ thuật
web truyền thống này có vẻ rất hợp lí và chặt chẽ,
Đề tài kỹ thuật vốn luôn khô khan và không
nhưng nó lại có hạn chế nảy sinh: Dư thừa dữ
mấy thú vị, nhưng những câu chuyện về quá trình
liệu (do việc máy chủ luôn phải gửi lại toàn bộ
phát triển của Ajax (Asynchronous JavaScript
trang web sau khi xử lí xong về phía client). Thời
and XML) trong không gian ứng dụng Internet đã
gian chết (Trong khi server đang xử lí thì người
tạo nên sức hút khó tin xuyên suốt trong những
dùng chỉ trong trạng thái chờ đợi và chỉ tiếp tục
năm gần đây(TheoVnexpress).
thao tác được khi đã nhận toàn bộ kết quả từ
Để tìm hiểu về chủ đề này, với đề tài “Ứng server. Hạn chế nữa là làm “mất ngữ cảnh” khi
dụng công nghệ Ajax trong hiển thị tin nhanh bấm chuột vào một liên kết hay chức năng gì đó
và cá nhân hóa” - khóa luận sẽ trình bày những làm trang web bị tải lại toàn bộ và ngữ cảnh của
khái niệm, phân tích từ cơ bản đến chi tiết về trang bị sắp xếp lại khiến người dùng khó định vị
Ajax cùng sự kết hợp với việc xây dựng một ứng được vùng dữ liệu cần tìm. Chính những hạn chế
dụng web cụ thể nhằm minh họa rõ nét những lý đó mà công nghệ Ajax đã ra đời và tạo ra những
thuyết đưa ra, tiếp cận với khóa luận sẽ giúp thành quả đầy thú vị.
người đọc nắm bắt được kỹ thuật lập trình web
2.2. Bài toán ứng dụng và giải pháp
hiện đại - kỹ thuật Ajax và sự phát triển của công
nghệ web với những ứng dụng nổi bật mà nó Bài toàn ứng dụng được trình bày trong
mang lại. khóa luận là việc xây dựng một website hiển thị
tin nhanh và cá nhân hóa với nội dung “Thu thập
2. Giới thiệu và đặt vấn đề bài toán, những và hiển thị thông tin trên sàn chứng khoán OTC”.
hạn chế và giải pháp Do chứng khoán nói chung và OTC nói riêng thì
2.1 Giới thiệu kỹ thuật web truyền thống và yêu cầu quan trọng nhất chính là thông tin phải
hạn chế được cập nhật một cách nhanh chóng, chính xác
với số lượng nhiều. Đống thời bài toán có xây
Những năm cuối của thập kỷ 80, world
dựng thêm một chức năng cá nhân hóa giúp người
wide web đã ra đời và đánh dấu một bước phát
dùng có thể theo dõi được những biến đổi về
triển mới cho website và internet.
thông tin chứng khoán mà mình quan tâm.
Ban đầu là chuyển HTML được công bố và
Với những yêu cầu bài toán như vậy thì việc
nó tạo điều kiện cho nội dung web phát triển. Sau
sử dụng công nghệ web truyền thống là không tối
đó rất nhiều các ngôn ngữ lập trình web mới ra
ưu. Do vậy mà việc nghiên cứu, tìm hiểu và vận
đời trên nhiều nền tảng: ASP.NET, PHP, JSP... đã
dụng công nghệ Ajax vào phát triển ứng dụng này
tạo ra những đột phát mới trong công nghệ phát
là một trong những giải pháp khả thi có thể tiền
triển web.
hành.
Tuy nhiên chúng vẫn dựa vào một kỹ thuật
Chính vì vậy khóa luận sẽ đi sâu vào việc
web truyền thống theo nguyên tắc rằng tất cả các
nghiên cứu, trình bày về công nghệ Ajax và phân
thao tác phải được thực hiện thông qua HTTP
tích vận dụng trong ứng dụng của bài toán.
(HyperText Transfer Protocol - Giao thức truyền

- 72 -
3. Kỹ thuật Ajax và ứng dụng công nghệ nghiên cứu về Ajax nhằm phát triển ứng dụng
web hiệu quả nhất.
Tìm hiểu về Ajax và những ứng dụng của 4.2 Ajax và bài toán ứng dụng
nó là một quá trình đầy hấp dẫn và lí thú. Để có Mục đích của việc xây dựng bài toán ứng
thể nắm bắt được những kiến thức về kỹ thuật dụng này ngoài việc thiết lập một website còn là
thời thượng này. Khóa luận đi từ việc xem xét một ví dụ minh họa chứng minh và củng cố
khái niệm đến việc phân tích các nguyên tắc làm những phần lí thuyết ajax đã được trình bày.
việc, cũng như đi chi tiết vào lập trình Ajax và
giới thiệu các phương pháp hỗ trợ phát triển ứng Những chức năng mà bài toán ứng dụng làm thực
dụng Ajax: hiện:

• Giới thiệu Ajax và ứng dụng công nghệ - Chức năng thu thập và hiển thị nhanh
web mới thông tin chứng khoán OTC (từ sàn OTC trực
- Khái niệm : Ajax là gì ? tuyến - sanotc.com). Quá trình thu thập và tách
- Ajax hoạt động như thế nào : Giải thích thông tin dữ liệu từ Sàn OTC được thực hiện
nguyên tắc làm việc của ứng dụng web ajax thông qua việc đọc dữ liệu và dùng Xpath để phân
và so sánh với kỹ thuật web truyền thống tích XML rồi đNy lên Webservice một cách nhanh
trước đó. chóng thậm chí còn nhanh hơn dữ liệu trên một số
- Các ứng dụng web ajax nổi tiếng : server của Sàn OTC (tuy nhiên không đi sâu vào
Google Maps, Google Suggest, Yahoo Mail phần này vì mục tiêu của khóa luận muốn đề cập
Beta, Flickr, Gmail… và xu hướng phát sâu hơn là ajax và ứng dụng của nó). Sau khi dữ
triển mạnh mẽ của web ajax liệu thu thập được đNy lên webservice, Ứng dụng
• Bản chất của lập trình Ajax (đối tượng sẽ dùng Ajax để đọc dữ liệu và hiển thị lên
XMLHttpRequest) : Chi tiết về bản chất website một cách không đồng bộ và tốc độ nhanh.
lập trình ajax và các ví dụ mã nguồn Dùng Ajax giúp cho việc có ngay những dữ liệu
minh họa. mới để hiển thị mà không hề làm gián đoạn hay
tải lại cả trang web mà chỉ chèn vào những dữ
• Các kỹ thuật xử lí XML (DOM, SAX,
liệu mới.
XPath..), ngôn ngữ chủ yếu dùng trong
việc truyền tải dữ liệu trong ứng dụng - Chức năng cá nhân hóa: Song song với
Ajax việc thu thập và hiển thị dữ liệu nhanh, website có
• Tìm hiểu JSON : một cách tiếp cận khác đưa thêm một chức năng cá nhân hóa, giúp cho
trong truyền tải dữ liệu dạng đối tượng người dùng (đặc biệt là các nhà đầu tư chứng
mà không cần XML. khoán) theo dõi được các thông tin chứng khoán
mà mình quan tâm. Dữ liệu ở các bảng danh sách
quan tâm cũng được đNy vào một cách tự động
4. Ứng dụng Ajax trong bài toán ứng dụng mà không cần tới bất kỳ thao tác nào của người
Như yêu cầu và giải pháp của bài toán trong dùng.
phần đầu, việc sử dụng kỹ thuật ajax để xây dựng - Chức năng thông báo khi có dữ liệu mới
và phát triển ứng dụng web sẽ là một lựa chọn tốt. mới bằng message hoặc hiển thị nhấp nháy cửa sổ
4.1 Nền tảng công nghệ trình duyệt.
Dự trên nền tảng Microsft .NET với Trong phần này, khóa luận sẽ giới thiệu
ASP.NET và C# thì Microsoft còn cung cấp cho các hình ảnh trực quan của ứng dụng cũng như
cộng đồng phát triển Ajax một thư viện Ajax (MS nêu và giải thích các hàm xử lí quan trọng, giúp
AJAX Library) rất phong phú giúp cho quá trình cho việc hiểu về bài toán ứng dụng hơn.
phát triển các ứng dụng web ajax một cách nhanh
chóng và hiệu quả. Tận dụng những điểm mạnh
đó, bài toán đã sử dụng: ASP.NET, Microsoft
Ajax Libray, Webservice… kết hợp với những

- 73 -
5. Kết luận và hướng phát triển Tài liệu tham khảo
Khóa luận đã xây dựng được một hệ thống [1] AJAX Tutorial tại:
các lý thuyết cơ sở về Ajax và trình bày các công http://www.w3schools.com/Ajax/
cụ phát trỉển ứng dụng web ajax. Hy vọng khóa [2] AJAX technology introduced by
luận này sẽ có ích cho những ai đam mê tìm hiểu Microsoft at www.asp.net/ajax/
về ajax và công nghệ web, là nền tảng cơ bản cho [3] Chris Ullman & Lucinda Dykes:
những người bắt bước đầu khám phá công nghệ Beginning Ajax
hấp dẫn này. [4] Shelley Powers (N XB: O'Reilly)
Cùng với việc tìm hiểu và nghiên cứu các Learning JavaScript
[5] Bài viết Ajax sự kết hợp kỳ diệu của
vấn đề lý thuyết, khóa luận cũng đi vào việc xây
dựng một ứng dụng website cụ thể gắn liền với lý công nghệ web trên Vnexpress.net:
thuyết Ajax “Ứng dụng Ajax trong hiển thị tin http://www.vnexpress.net/Vietnam/Vi-
tinh/2006/03/3B9E7D49/
nhanh và cá nhân hóa”. Từ đó giúp cho vấn đề
trình bày càng trở nên gần gũi và dễ dàng hơn, [6] Trang http://nguoitapviet.info
[7] Ajax trong Wikipedia Tiếng Việt:
đồng thời trong quá trình phát triển ứng dụng này,
http://vi.wikipedia.org/wiki/Ajax_%28l
khóa luận giới thiệu thêm một vài công cụ, thư
%E1%BA%ADp_tr%C3%ACnh%29
viện tốt và mới nhất hiện nay.
Một số hướng phát triển:
• Xây dựng hệ thống Chat cho các thành
viên trên nền tảng ajax, giúp việc quan
hệ và trao đổi thông tin các thành viên dễ
dàng và linh hoạt.
• Xây dựng thêm module chức năng vẽ
biểu đồ giúp cho nhà đầu tư dễ dàng
quan sát, thống kê các số liệu một cách
trực quan.
• Bổ sung thêm các ứng dụng bảng giá
chứng khoán điện tử trên sách sàn giao
dịch.

- 74 -
TÍCH HỢP WEB SERVICE
Phạm Văn Trường Cán bộ hướng dẫn: TS. Nguyễn Việt Hà

MSSV: 04020423 THS. Võ Đình Hiếu

Email: truongpv85@gmail.com

1. Giới thiệu Tìm hiểu khái niệm về Web service và


các công nghệ liên quan như: XML, SOAP,
Một thực trạng đáng lo ngại cho ngành
WSDL, UDDI và phân tích các lợi ích của việc
công nghệ phần mềm hiện nay là các hệ thống
sử dụng Web service.
được xây dựng ngày một trở lên phức tạp và
cồng kềnh hơn. Công nghệ tích hợp web service Đưa ra hướng tiếp cận và các bước xây
dựa trên kiến trúc hướng dịch vụ SOA (Service dựng, triển khai một Web service.
oriented Architecture)[3][5] sẽ là một lựa chọn
3. Công nghệ tích hợp web service
tối ưu để khắc phục vấn đề này. Đó cũng là đề
tài nghiên cứu trong khóa luận của chúng tôi. Trình bày khái niệm về tích hợp web
service. Đưa ra mô hình tích hợp web service.
Khóa luận sẽ tìm hiểu cách thức giao tiếp
Đánh giá một số công nghệ tích hợp Web
và làm việc của Web service [6], các công nghệ
service hiện có và phân tích sự khả quan trong
của Web service như: XML, SOAP, UDDI,
việc giao tiếp giữa các ứng dụng viết trên .Net
WSDL [5][6], ...Từ những cơ sở kiến thức đó,
và J2EE. Từ đó đi đến việc lựa chọn và tìm hiểu
chúng tôi tiếp cận với công nghệ tích hợp Web
về công nghệ tích hợp dựa trên ngôn ngữ BPEL.
service. Tích hợp Web service là một đề tài khá
[4][5].
mới mẻ. Hiện nay có hai phương pháp để tích
hợp Web service: phương pháp thủ công (dùng 4. Phát triển bài toán Search Engine
ngôn ngữ hướng đối tượng Java, C#), phương trên công nghệ tích hợp Web service
pháp này sẽ gặp nhiều khó khăn khi các Chương này giới thiệu và phát triển bài
composited service phức tạp và sự thay đổi nhỏ toán Search engine để tìm kiếm tài liệu tham
của composited service cũng dẫn đến vấn để khảo cho sinh viên trong các hệ thống thư viện
phải xử lý lại composite service [4]. Vì thế trong điện tử dựa trên công nghệ tích hợp Web
khóa luận này, chúng tôi đưa ra một phương án service. Phân tích mục tiêu, yêu cầu cho bài
hoàn hảo hơn cho vấn đề tích hợp Web service toán “Tìm kiếm tài liệu trong thư viện điện tử”
bằng việc sử dụng thêm một tầng tích hợp và thiết kế mô hình tổng quát cho bài toán.
(composite engine) dựa trên công nghệ mới của
5. Thực nghiệm
BPEL.
Chương này xây dựng một chương trình
2. Công nghệ Web service
demo dựa trên mô hình phân tích bài toán
Chương này phân tích một số mô hình Search engine. Cụ thể là : xây dựng hai web
phân tán và đi đến kết luận việc lựa chọn SOA service là hai dịch vụ tìm kiếm tài liệu thư viện
với tâm điểm là Web service để giải quyết cho cho hai trường đại học khác nhau. Chương này
vấn đề công nghệ phần mềm hiện nay. nêu rõ các yêu cầu cần cài đặt, cách xây dưng và

- 75 -
triển khai các web service và dùng BPEL để tạo Tài liệu tham khảo
composite service ra sao. Triển khai hai service
[1] David Chappel, Tyler Jewell, Java
đó trên hai server chạy Windows và Linux. Sau
Web services, March 2002.
đó xây dựng một dịch vụ tích hợp cho phép tìm
kiếm tài liệu trong cả hai thư viện của trường [2] Ethan Cerami, Web services
Đại học trên nhờ công nghệ tích hợp Web Essentials Distributed Application with XML-
service. RPC, SOAP, UDDI & WSDL, February, 2002.

6. Kết luận [3] Jamers P.Lawler, H.Howell-Baber,


Service-Oriented Architecture SOA Strategy,
Khóa luận đã trình bày một cách tổng
Methodology and Technology, January 2008.
quát về mô hình hệ phân tán qua việc tiếp cận
của kiến trúc hướng dịch vụ SOA, đưa ra cái [4] Vo Dinh Hieu, Sercure Provision of
nhìn rõ ràng hơn về công nghệ Web service, Composite services in an Isecure Networked
cách xây dựng, triển khai và sử dụng lại Web Environment, 2005.
service như thế nào. Đặc biệt là công nghệ tích [5]Sanjiva Weerawarana,
hợp Web service sử dụng cho xây dựng các hệ Francisco Curbera, Frank Leymann,Tony Storey,
thống phân tán với tính năng sử dụng lại dịch vụ Donald F. Ferguson, Web services Platform
một cách mềm dẻo. Architecture: SOAP, WSDL, WS-Policy,
Chúng tôi đã phân tích bài toán tìm kiếm WS-Addressing, WS-BPEL, WS-Reliable
tổng quát Search engine dựa trên công nghệ tích Messaging, and More, March 22, 2005.
hợp Web service. Từ bài toán tổng quát Search [6] Gerhard Wiehler, Web service and
engine, trong chương thực nghiệm chúng tôi đã Service Oriented Architectures, FeBruary,
xây dựng một ứng dụng demo với chức năng 2004.
tìm kiếm tài liệu trong thư viện điện tử các
trường Đại học. Ứng dụng sử dụng công nghệ
tích hợp để tạo ra môt composite service từ hai
Web service được xây dựng sẵn và chạy trên hai
server khác nhau với hai hệ điều hành khác
nhau.

Trong xu hướng phát triển phần mềm cao


cấp như hiện nay, công nghệ tích hợp Web
service đang ngày một được sử dụng nhiều và vấn
đề bảo mật là một hướng phát triển của đề tài.

- 76 -
KIỂM CHỨNG SỰ TUÂN THEO GIỮA MÃ THỰC THI VÀ ĐẶC TẢ PSM

Trương Đình Trường Người hướng dẫn:


MSV: 04020425 TS. Trương Ninh Thuận
Email: truongvuitinh_bn2005@yahoo.com ThS. Trần Thị Mai Thương

Thông thường, chúng ta sẽ sử dụng những


1. Giới thiệu
biểu đồ trạng thái bình thường để hiển thị những
Ngày nay, việc ứng dụng công nghệ thông chuỗi hành vi bên trong cho tất cả các đối tượng
tin vào trong các ngành, các lĩnh vực của cuộc của một lớp. Tuy nhiên, đôi khi chúng ta muốn
sống đang trở thành một nhu cầu cấp thiết, cùng hiển thị một giao thức phức tạp (thiết lập những
với đó là các yêu cầu về phần mềm cũng ngày quy tắc điều khiển truyền thông) khi sử dụng
một tăng lên như: phần mềm phải tin cậy, mạnh một giao diện cho một lớp. Ví dụ, khi chúng ta
mẽ, tính thích nghi…. Kĩ nghệ phần mềm đang thiết kế các lớp mà truy cập một database
hướng thành phần ra đời giúp chúng ta dễ dàng cho ứng dụng của chúng ta, chúng ta cần sử
hơn trong việc phát triển một hệ thống phần dụng những thao tác chung như: Open, Close và
mềm hướng thành phần. Một hệ thống hướng Query một Database. Nhưng những thao tác này
thành phần có thể được mô tả một cách dễ dàng phải được gọi theo đúng thứ tự. Chúng ta không
bởi biểu đồ PSM (Protocol stata machine). Tuy thể truy vấn Database nếu như bạn chưa mở nó.
nhiên, chúng ta không thể biết chắc thứ tự thực
2.2. Những chỉ thị mà JVM gọi phương
thi của những phương thức trong thành phần của
hệ thống phần mềm có đúng với đặc tả của biểu thức ở trong Java
đồ PSM hay không. Để đáp ứng được yêu cầu Cũng giống như các ngôn ngữ lập trình
trên, khóa luận này đã nghiên cứu và đề xuất khác thì Java cũng có hai kiểu phương thức cơ
một mô hình kiểm tra thứ tự thực thi của các bản đó là phương thức của đối tượng (instance
phương thức trong một thành phần với đặc tả methods) và các phương thức chung của một
ban đầu của nó. Thự tự thực thi của chương lớp (class method), hay còn được gọi là phương
trình cài đặt được lấy từ mã Java bytecode, một thức tĩnh.
trung gian giữa mã nguồn và mã máy. Thứ tự • Để gọi được các phương thức của đối
thực thi này, do những người lập trình viết ra, sẽ tượng thì trước hết bạn phải tạo ra được
được kiểm tra xem có đúng với các đặc tả PSM một đối tượng cụ thể. Còn đối với các
do những người thiết kế lập ra hay không? phương thức của lớp thì không cần tạo
2. Cơ sở lý thuyết ra đối tượng.
• Các phương thức của đối tượng sử
2.1. Tổng quát về biểu đồ PSM dụng sự liên kết động (dynamic
Chúng ta thường sử dụng ký pháp UML binding), còn các phương thức của lớp
để tạo ra những biểu đồ trạng thái hành vi để sử dụng sử dụng sự liên kết tĩnh.Khi
hiển thị chuỗi những sự kiện của đối tượng. máy ảo Java gọi một phương thức của
Những biểu đồ trạng thái như vậy có những cặp lớp (class method), nó lựa chọn phương
sự kiện/hành động, những hành động vào, hành thức được gọi dựa vào kiểu của đối
động kết thúc,..Hầu hết các biểu đồ trạng thái, tượng tham chiếu, kiểu này luôn luôn
chúng ta đều sử dụng những tính năng này . được biết tại thời gian biên dịch. Khi
Trên thực tế chúng là các máy hành vi. Tuy JVM gọi một phương thức của đối
nhiên, đôi khi chúng ta chỉ muốn hiển thị một tượng (instance method), nó lựa chọn
chuỗi các sự kiện cụ thể mà đối tượng đáp ứng phương thức được gọi dựa vào lớp thực
và khi nó có thể đáp ứng mà không cần phải chỉ sự của đối tượng, mà chỉ có thể biết
ra hành vi của nó. Một chuỗi cụ thể như vậy vào thời gian chạy (run-time).
được gọi là môt giao thức sự kiện. Trong UML JVM (Java virtual machine) sử dụng 4 chỉ
2.0, chúng ta có thể hiển thị các giao thức sự lệnh khác nhau để gọi những kiểu phương thức
kiện bởi biểu đồ “Protocol State Machine”. khác nhau ở trong Java. Những chỉ lệnh đó là:

- 77 -
• Invokevirtual: Sử dụng để gọi các phép vẽ một biểu đồ PSM đơn giản, công cụ
phương thức của đối tượng. Trước khi cũng cho phép vừa vẽ biểu đồ vừa có thể sinh ra
phương thức được gọi thì đối tượng file lưu trữ cấu trúc thông tin cho biểu đồ PSM.
phải được tạo. Chỉ lệnh này sử dụng Từ file đặc tả này và chuỗi lời gọi hàm được
liên kết động, chỉ biết được tại thời sinh ra từ mã Java bytecode tôi có thể kiểm tra
điểm chạy. được một thành phần, chương trình có viết đúng
• Invokestatic: Sử dụng để gọi các đặc tả so với biểu đồ PSM hay không. Công cụ
phương thức của lớp. Các phương thức của tôi đã kiểm tra được tính chính xác thứ tự
này được gọi mà không cần tạo đối thực thi của những phương thức trong một thành
tượng. Chỉ lệnh này sử dụng liên kết phần có thỏa mãn đặc tả PSM hay không.
tĩnh, chúng ta chỉ biết được tại thời Tuy nhiên, kết quả nghiên cứu vẫn chưa
điểm biên dịch. giải quyết được vấn đề kiểm tra chương trình có
• Invokespecial: Sử dụng để gọi một số các câu lệnh rẽ nhánh và việc thực thi song song
phương thức đặc biệt như: Phương giữa các luồng. Đây là các vấn đề rất khó bởi vì
thức khởi tạo, phương thức riêng, và chúng ta sử dụng phương thức kiểm tra ở đây là
phương thức của lớp cha. kiểm tra tĩnh mã Java bytecode, trong khi các
• Invokeinterface: Sử dụng để các điều kiện rẽ nhánh thì lại diễn ra một cách động.
phương thức thực thi các giao diện Mặc dù nghiên cứu vẫn còn nhiều điểm
(interface). hạn chế chưa khắc phục nhưng nó vẫn có những
ứng dụng nhất định. Tôi nhận thấy mã MSIL
3. Giải pháp của ngôn ngữ .NET tương đối giống với mã
Từ chương trình gồm các lớp (tương ứng Java bytecode của ngôn ngữ lập trình Java, do
với các thành phần khi đặc tả) sẽ sinh ra mã đó tôi nghĩ rằng phương pháp của mình có thể
“Java bytecode” tương ứng. Bằng việc sử dụng áp dụng cho việc kiểm chứng mã MSIL so với
các chỉ lệnh “invokestatic, invokevirtual, đặc tả UCM. Việc phát triển và mở rộng đề tài
invokespecial, invokeinterface” trong máy ảo với các ngông ngữ khác nhau sẽ góp phần tăng
Java ta sẽ xác định được chuỗi các lời gọi khả năng phát hiện lỗi và năng cao chất lượng
phương thức trong thành phần được sinh ra bởi phần mềm.
chương trình. Từ đặc tả PSM sẽ sinh ra file lưu
trữ thông tin về biểu đồ PSM. Từ đó, chương Tài liệu tham khảo
trình kiểm tra mà đầu vào là chuỗi các lời gọi [1] Bill Venners. “Inside the Java Virtual
phương thức do mã Java bytecode sinh ra và file Machine”. In Chapter Nineteen: Method
lưu trữ cấu trúc thông tin cho biểu đồ PSM thì Invocation and Return and Chapter V: The
sẽ thu được “Kết quả” là dãy các phương thức Java Virtual Machine and Chapter Eight:
được sinh ra từ mã Java bytecode có đúng theo The Linking Model and Chapter VII: The
đặc tả PSM hay không. Đối với việc kiểm tra Lifetime of a Class. Inc, 1997.
PSM thì chương trình sẽ kiểm tra xem các điều [2] R.J.A. Buhr and R.S. “Casselman Use
kiện của trạng thái có được thỏa mãn hay Case Maps for Object-Oriented Systems”,
không. Nếu điều kiện được thỏa mãn lời gọi Inc, 1995.
hàm đó sẽ hợp lệ và giá trị của các biến trạng [3] Michael Jesse Chonoles, James A. Schardt
thái sẽ được cập nhật phục vụ cho lời gọi hàm . “UML 2.0 for Dummies”. In Chapter18
sau. Nếu không hợp lệ thì chương trình sẽ báo of Part V: Avoid States of Confusion. Inc,
lỗi và chúng ta xác định được chính xác phương 2003.
thức nào gây ra lỗi. [4] Tom Pender, Wiley Publishing. UML 2.0
4. Kết luận Bible.In Chapter 11 of Part III: Modeling
Trong khóa luận này, tôi đã tìm hiểu về an Object’s Lifecycle in UML 2.0. Inc,
mã Java bytecode, biểu đồ PSM , các chỉ lệnh 2003.
trong Java bytecode và ý nghĩa của chúng. Từ [5] Sun Microsystems, JavaBeans 1.01
các thành phần này tôi cũng đã xây dựng được Specification,
biểu đồ PSM để đặc tả yêu cầu người dùng. http://java.sun.com/beans.
Ngoài ra tôi đã xây dựng được công cụ cho [6] http://www.omg.org.
[7] http://www.usecasemaps.org/.

- 78 -
NGHIÊN CỨU VỀ WEB SERVICE VÀ ỨNG DỤNG
Họ tên: Vũ Minh Tuấn Cán bộ hướng dẫn: TS. Nguyễn Việt Hà
Mã số sinh viên: 04020443 Cán bộ đồng hướng dẫn: ThS. Trần Vũ Việt Anh

khả năng tương tác giữa các ứng dụng trên các
1. Giới thiệu
máy tính khác nhau thông qua môi trường mạng
Cùng với sự phát triển ngày càng lớn mạnh Internet. Điểm khác biệt của Web Service so với
của mạng máy tính toàn cầu Internet, là sự ra đời các công nghệ khác là Web Service kết hợp sử
và phát triển của các ứng dụng, hệ thống phân tán. dụng những công nghệ đã có như XML, SOAP,
Rất nhiều công nghệ đã được phát triển để phục WSDL, UDDI để tạo ra các dịch vụ trên nền web
vụ cho các ứng dụng này như RMI, DCOM, cho phép các ứng dụng có thể tương tác với nhau
CORBA, ... Tuy nhiên các công nghệ trên đều qua môi trường mạng Internet mà không phụ
gặp khó khăn khi đối mặt với sự khác biệt phần thuộc vào ngôn ngữ lập trình hay môi trường hệ
cứng, phần mềm hay ngôn ngữ lập trình khi xây điều hành chạy các ứng dụng đó. Điểm này làm
dựng các ứng dụng phân tán. Một yêu cầu đặt ra nổi bật vai trò và khả năng vượt trội của Web
là làm sao để các ứng dụng, các hệ thống phân Service
tán, có thể giao tiếp được với nhau một cách dễ
dàng ngay cả khi chúng được xây dựng và phát 3. Ứng dụng web service đặt vé xem phim trực
triển trên những hệ thống phần cứng, phần mềm tuyến.
và ngôn ngữ lập trình khác nhau. Chính yêu cầu N gày nay việc đến các trung tâm chiếu phim
đó đã thúc đNy việc nghiên cứu và cho ra đời công là một hoạt động giải trí, một nhu cầu phổ biến
nghệ Web Service. Một công nghệ mang tính của rất nhiều các bạn trẻ. Tuy nhiên việc mua vé
cách mạng, cho phép xây dựng và phát triển các và bán vé vẫn chỉ được thực hiện theo phương
ứng dụng phân tán độc lập cả về phần cứng, phần thức truyền thống. Khách hàng phải đến mua vé
mềm, hệ điều hành cũng như ngôn ngữ lập. tại các quầy bán vé của trung tâm chiếu phim và
Với mục đích mang lại những hiểu biết sâu sử dụng tiền mặt để thanh toán, hoạt động này gây
sắc hơn về công nghệ Web Service, luận văn này mất khá nhiều thời gian và công sức của khách
sẽ trình bày từ những cái nhìn tổng quan cho đến hàng. Hơn nữa gười xem cũng gặp khá nhiều khó
khăn và bất tiện trong việc tìm kiếm các thông tin
tìm hiểu, nghiên cứu chi tiết các khái niệm, cấu
trúc và các công nghệ thành phần, cấu thành nên chi tiết về lịch chiếu phim của các trung tâm chiếu
Web Service. Cuối cùng sẽ là phân tích và phát phim cũng như giá vé xem của từng bộ phim. Vì
triển một ứng dụng cụ thể sử dụng công nghệ vậy một yêu cầu đặt ra là xây dựng một web
service cung cấp dịch vụ đặt mua vé xem phim
Web Service.
trực tuyến và một website sử dụng web service đó
2. Công nghệ Web Service để cung cấp các giao diện cho phép khách hàng
Web Service tạm dịch là dịch vụ trên web, là tham khảo lịch chiếu phim cũng như đặt mua vé
một hệ thống phần mềm được thiết kế để hỗ trợ xem phim cho các bộ phim yêu thích.

- 79 -
Các chức năng chính mà hệ thống cung cấp Tài liệu tham khảo
bao gồm: xác thực người dụng, hiển thị lịch chiếu [1] Phạm Quang Hoà. Tạo Web Service với
phim, hiển thị thông tin tài khoản của người dùng, Visual Studio 2005
cho phép người dùng sau khi đặt nhập hệ thống có “http://hoapq.wordpress.com/2007/01/29/t
thể tiến hành đặt mua vé xem phim trên website %e1%ba%a1o-web-service-
của trung tâm và đăng xuất khỏi hệ thống. v%e1%bb%9bi-visual-studio-2005-da-
4. Triển khai c%e1%ba%adp-nh%e1%ba%adt/”
[2] Trịnh Quốc Sơn. Công nghệ web services -
Ứng dụng được phát triển bằng việc sử dụng
Ứng dụng xây dựng search engine tích hợp
bộ công cụ lập trình Visual Studio 2005 của
web service của Google - Phần 1
Microsoft, hệ quản trị cơ sở dữ liệu Microsoft
“http://ity.vnuit.edu.vn/congnghe/000011/in
SQL 2000, ngôn ngữ lập trình ASP.N ET và được
dex.htm”
triển khai trên môi trường mạng Internet.
[3] Diễn đàn Java Việt N am
Ứng dụng được chia làm hai phần “http://www.javavietnam.org/javavn/mvnfo
- Web service cung cấp các chức năng xác rum/printthread?thread=13988”
thực người dùng, hiển thị lịch chiếu phim [4] XML, kỹ thuật tin học nòng cốt trong tương
và tài khoản người dùng. lại.
“http://www.vovisoft.com/xml/drhong/x
- Website tham chiếu đến web service đã
xây dựng ở trên, sử dụng các phương thức mltechnology.htm”
mà web service cung cấp để cung cấp các [5] David Chappell Tyler Jewell. Java web
chức năng của hệ thống đến người dùng service, Tr. 6-9.
qua giao diện web. [6] Ethan Cerami. web services Essentials, Tr.
6-53, 102-143.
6. Kết luận
[7] Learn XML web services Devolopment.
Khoá luận đã làm rõ được những nét cơ bản
[8] Prentice Hall PTR. web services Platform
về web service như khái niệm, đặc điểm, kiến
Architecture: SOAP, WSDL, WS-Policy,
trúc. Đồng thời cũng chỉ ra được những ưu điểm
WS-Addressing, WS-BPEL, WS-Reliable
vượt trội của công nghệ web service so với các
Messaging, and More, Chapter 8. Universal
công nghệ khác. Đưa ra những đánh giá về khuyết
Description, Discovery, and Integration
điểm, tồn tại của công nghệ này.
(UDDI).
Làm rõ được các khái niệm về các công
nghệ là nền tảng tạo nên web service. Đưa ra
[9] Vo Dinh Hieu. Secure Provision of
Composite ervices in an Insecure
được cái nhìn từ tổng quan đến chi tiết về các
N etworked Environment, Tr. 6-10.
công nghệ này.
Phân tích thiết kế và xây dựng thành công [10] Wikipedia. Web service.
ứng dụng đặt vé xem phim trực tuyến sử dụng “http://en.wikipedia.org/wiki/Web_service”
công nghệ web service. [11] W3School. “http://www.w3schools.com”.

- 80 -
KIỂM CHỨNG SỰ TUÂN THEO GIỮA MÃ THỰC THI VÀ ĐẶC TẢ UCM

Phạm Văn Tùng Người hướng dẫn:


MSV: 04020455 TS. Trương Ninh Thuận
Email: matlua@yahoo.com ThS. Trần Thị Mai Thương

• Thanh (bar): Thông thường là một


1. Giới thiệu
hình chữ nhật dọc tô đen. Một bar dùng
Kĩ nghệ phần mềm hướng thành phần để biểu diễn điểm kết thúc của một
(Component Based Software Engineering - path hoặc đánh dấu một điểm là nơi mà
CBSE) ra đời cho phép chúng ta dễ dàng hơn các đoạn đường song song bắt đầu hoặc
trong việc phát triển một hệ thống phần mềm kết thúc.
phức tạp. Trong CBSE việc mô hình hóa các • Các điểm đáp ứng: là những mô tả tên
hành vi giữa các thành phần của hệ thống có thể ngắn gọn của các hành động mang tính
thực hiện dễ dàng bằng biểu đồ ca sử dụng (Use cục bộ mà hệ thống cần thực thi.
case map-UCM). Việc kiểm tra tính đúng đắn • Hướng (tùy chọn): Hướng được chỉ rõ
giữa thứ tự thực thi của chương trình so với đặc bởi vị trí của điểm bắt đầu và điểm kết
tả UCM là một nhiệm vụ quan trọng giúp chúng thúc nhưng thỉnh thoảng nó cũng được
ta phát hiện các lỗi về sự tuân theo giữa thực thi dùng để thể hiện hướng cục bộ trong
do người lập trình viết so với bản đặc tả, thiết kế một biểu đồ phức tạp hoặc một phần
của phần mềm hướng thành phần, từ đó có thể của một biểu đồ lớn.
làm giảm những rủi ro khi đưa phần mềm vào
hoạt động và tăng cường độ tin cậy cho hệ 2.2. Tổng quan về mã Java bytecode
thống. Chính vì yêu cầu này, tôi đề xuất đề tài Ngôn ngữ Java sử dụng kết hợp giữa biên
nghiên cứu kiểm chứng sự tuân theo giữa dịch và thông dịch để biên dịch chương trình
chương trình thực thi (cụ thể ở đây là mã Java sang ngôn ngữ máy. Khi bạn viết xong một
bytecode) so với đặc tả UCM của chương trình. chương trình java , bạn dùng trình biên dịch để
biên dịch nó sang một ngôn ngữ dành cho một
2. Cơ sở lý thuyết loại máy không tồn tại (người ta gọi là máy ảo
2.1. Tổng quát về biểu đồ UCM Java - Java Virtual Machine). Ngôn ngữ cho
Mô hình UCM là một mô hình thiết kế ở máy ảo đó được gọi là Java bytecode. . Java
mức cao giúp cho con người thể hiện và giải bytecode sẽ tiếp tục được trình thông dịch biên
thích về một mẫu hành vi của các thành phần dịch sang ngôn ngữ của chính loại máy đang sử
trong một hệ thống Các phần tử cơ bản trong dụng trình trình thông dịch đó đó. Như vậy về
biểu đồ UCM: bản chất bytecode là dạng thể hiện trung gian
• Đường (Path): Path là một đường của chương trình java. Các chỉ lệnh gọi hàm
cong liên tục xuyên suốt hệ thống. Nó trong mã Java bytecode bao gồm:
biểu diễn các hành vi của một kịch bản • Invokevirtual: Sử dụng để gọi các
trong hệ thống từ thời điểm bắt cho đến phương thức của đối tượng. Trước khi
khi kết thúc kịch bản (kết quả của tác phương thức được gọi thì cần tạo đối
nhân). tượng. Chỉ lệnh sử dụng liên kết động,
• Điểm đợi: Điểm đợi là một hình tròn và chúng ta chỉ biết được tại thời điểm
được tô đen. Thông thường nó biểu chạy.
diễn điểm bắt đầu của một path hay nói • Invokestatic: Sử dụng để gọi các
cách khác là tác nhân kích thích. phương thức của lớp. Các phương thức
• Một bộ định thời gian (timer): Nó là này được gọi mà không cần tạo đối
tổng quát hóa của điểm đợi, nó dùng để tượng. Chỉ lệnh này sử dụng liên kết
thể hiện rằng có ràng buộc về mặt thời tĩnh, và chúng ta chỉ biết được tại thời
gian đối với điểm đợi. điểm biên dịch.
• Invokespecial: Sử dụng để gọi một số
phương thức đặc biệt như: Phương thức

- 81 -
khởi tạo, phương thức riêng, và phương Tài liệu tham khảo
thức với từ khóa là super.
[1] Sun Microsystems, JavaBeans 1.01
• Invokeinterface: Sử dụng để các
Specification,
phương thức thực thi các giao diện
http://java.sun.com/beans.
3. Giải pháp [2] http://www.omg.org.
Từ chương trình gồm các lớp (tương ứng [3] http://www.usecasemaps.org/.
với các component khi đặc tả) sẽ sinh ra mã [4] Tom Pender, Wiley Publishing. UML 2.0
“Java bytecode” tương ứng. Bằng việc sử dụng Bible.In Chapter 11 of Part III: Modeling
các chỉ lệnh “invokestatic, invokevirtual, an Object’s Lifecycle in UML 2.0. Inc,
invokespecial, invokeinterface” trong máy ảo 2003.
Java ta sẽ xác định được chuỗi các lời gọi [5] Michael Jesse Chonoles, James A. Schardt
phương thức giữa các thành phần được sinh ra . “UML 2.0 for Dummies”. In Chapter18
bởi chương trình. Bây giờ làm thế nào để kiểm of Part V: Avoid States of Confusion. Inc,
chứng được dãy các phương thức được sinh ra 2003.
phù hợp với giao thức của đặc tả UCM. Để giải [6] Bill Venners. “Inside the Java Virtual
quyết vấn đề này tôi đưa ra giải pháp như sau: Machine”. In Chapter Nineteen: Method
Tôi sẽ xây dựng một chương trình giúp từ đặc tả Invocation and Return and Chapter V: The
UCM sẽ sinh ra file lưu trữ thông tin về biểu đồ Java Virtual Machine and Chapter Eight:
dưới cấu trúc XML. Sau đó chuỗi các lời gọi The Linking Model and Chapter VII: The
hàm do mã Java bytecode sinh ra sẽ được so Lifetime of a Class. Inc, 1997.
khớp với đặc tả UCM ở trong file lưu trữ cấu [7] R.J.A. Buhr and R.S. “Casselman Use
trúc XML. Kết quả là dãy các phương thức Case Maps for Object-Oriented
được sinh ra từ mã Java bytecode có đúng theo Systems”, Inc, 1995.
đặc tả UCM.
4. Cài đặt
Để minh họa đề xuất hướng tiếp cận trên,
chúng tôi đưa ra một mô hình Client-Server của
“Hệ thống báo điểm thi đại học”. Hệ thống này
được thiết kế bởi 3 thành phần: Database (DB),
Server, Client. Tôi đã tạo biểu đồ UCM cho hệ
thống này. Sau đó tôi đã kiểm tra mã Java
bytecode do chương trình sinh ra có đúng với
đặc tả sinh ra từ biểu đồ UCM hay không. Kết
quả có được cho thấy chương trình chạy chính
xác.
5. Kết luận
Nghiên cứu của tôi đã kiểm tra được chính
xác một chương trình được thực thi một cách
tuần tự có thoả mãn đặc tả UCM hay không.
Tuy nhiên, kết quả nghiên cứu vẫn chưa giải
quyết được vấn đề kiểm tra chương trình có các
câu lệnh rẽ nhánh và việc thực thi song song
giữa các luồng. Tôi nhận thấy mã MSIL của
ngôn ngữ .NET tương đối giống với mã Java
bytecode của ngôn ngữ lập trình Java, do
phương pháp này có thể áp dụng cho việc kiểm
chứng mã MSIL so với đặc tả UCM. Việc phát
triển và mở rộng đề tài với các ngôn ngữ khác
nhau sẽ góp phần tăng khả năng phát hiện lỗi và
năng cao chất lượng phần mềm.

- 82 -
Ứng dụng web 2.0 theo định hướng tích hợp vào portal cá nhân
Netvibes với ứng dụng lịch trình chạy tàu

Sinh viên : Nguyễn Minh Tường

Lớp : K49CNPM

Giáo viên hướng dẫn : Thạc sỹ Phùng Chí Dũng

Đồng hướng dẫn : Thạc sỹ Nguyễn Nam Hải

Ngày nay, thế giới đang được chứng kiến những thay đổi tuyệt vời do công nghệ
thông tin mang lại. Sự phát triển mạnh mẽ của hệ thống thông tin toàn cầu Internet đã
làm thay đổi cách sống, cách làm việc của tất cả chúng ta. Các công cụ như thư điện tử,
các diễn đàn, các mạng xã hội, giải trí trực tuyến, giáo dục trực tuyến, v.v…đã và đang,
làm cho xã hội tốt đẹp hơn. Cùng với đó là việc máy tính cá nhân đã không còn vị trí độc
tôn như cũ. Máy tính bỏ túi, các loại điện thoại di động thế hệ mới như Blackberry,
iPhone v.v… đang dần thắng thế nhờ sự tiện lợi đối với người sử dụng.

Rõ ràng, xu hướng của công nghệ thông tin trong những năm đầu của thiên niên
kỷ mới là “kết nối, ở bất cứ đâu”. Và ý tưởng xây dựng “máy tính cá nhân trực tuyến”
đã được nhiều công ty triển khai, trong đó phải kể đến iGoogle.com, Live.com,
Netvibes.com. Trong khuôn khổ luận văn này, người viết sẽ tập trung mô tả khung của
một ứng dụng được phát triển để tích hợp vào Netvibes.com, đi kèm là một ứng dụng để
demo.

Netvibes là một portal cá nhân cho phép người dùng tùy chọn các thành phần trên
portal đó. Các thành phần này được gọi là widget, là ứng dụng web chạy trên một nền
tảng nào đó. Widget có thể truy cập đến cơ sở dữ liệu riêng, và hoạt động độc lập với
Netvibes.

Kiến trúc, cách xây dựng các widget do đó cũng được công bố công khai. Mọi cá
nhân hoặc tổ chức đều có thể xây dựng widget của mình dựa trên các chuNn đã được công
bố. Với N etvibes, chuNn để xây dựng các thành phần có thể tích hợp lên
www.netvibes.com là N etvibes Universal Widget API

- 83 -
Trong khuôn khổ luận văn, tôi sẽ xây dựng một widget theo dõi giờ tàu chạy.
Widget này cho phép truy cập vào cơ sở dữ liệu chạy tàu, đưa ra các chuyến tàu phù hợp
với yêu cầu người dùng. Widget sẽ được tích hợp vào www.netvibes.com và cho phép
người dùng truy cập mọi lúc, mọi nơi.

Các chức năng của ứng dụng:

• Liệt kê danh sách giờ tàu trong ngày

• Cho phép người dùng tìm kiếm thông tin về địa điểm, giá cả, lịch trình, đặc biệt là
thời gian chạy tàu. Khi tìm kiếm thông tin theo thời gian chạy tàu, ứng dụng sẽ hỗ
trợ tìm kiếm theo giờ xuất phát, giờ kết thúc chuyến đi. Hỗ trợ tìm kiếm cả trong
trường hợp phải chuyển tàu.

• Cho phép người có thNm quyển cập nhật cơ sở dữ liệu

• Cho phép người dùng đăng kí nhận email báo giờ tàu

Nội dung nghiên cứu


• Netvibes Widget : N ghiên cứu các chuNn phải tuân theo khi xây dựng widget.
Tìm hiểu thư viện UWA API của N etvibes, các hàm cần thiết và hay dùng trong
ứng dụng.

• AJAX : Vì tất cả dữ liệu trao đổi giữa client và server đều thông qua các phương
thức của JavaScript và Ajax, một nghiên cứu đầy đủ về AJAX để thực hiện luận
văn này là hết sức cần thiết.

• JSON (JavaScript Object Notation) : đang nổi lên như là một sự thay thế cho
XML. ChuNn này được N etvibes hỗ trợ trực tiếp thông qua phương thức
UWA.Data.getFeed(). Phương thức này sẽ trả về một đối tượng JSON , có thể
truy cập tương tự một đối tượng trong JavaScript Advanced. Do đó, để xây dựng
một widget chuNn, cần phải nghiên cứu kĩ càng về định dạng dữ liệu mới này.

- 84 -

You might also like