Professional Documents
Culture Documents
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
HÀ NỘI - 2008
Mục lục
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
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
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
-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
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
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
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
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
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
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
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
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
Danh sách cán bộ tham gia hướng dẫn
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
-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
-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
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
- 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
- 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
- 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
- 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
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
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
- 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.
- 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
- 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.
- 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.
- 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
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
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
- 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 ĐỒ
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
- 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
- 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Ử
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
- 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:
- 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
- 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).
- 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
- 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)
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.
- 67 -
NGHIÊN CỨU CÔNG NGHỆ EJB VÀ ỨNG DỤNG
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
- 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
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à
Email: truongpv85@gmail.com
- 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.
- 76 -
KIỂM CHỨNG SỰ TUÂN THEO GIỮA MÃ THỰC THI VÀ ĐẶC TẢ PSM
- 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
- 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
Lớp : K49CNPM
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.
• 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 dùng đăng kí nhận email báo giờ tàu
• 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 -