+ Common Faccilities: Các tiện ích mà CORBA cung cấp giúp xây dựng và quản lý các thành phần trong ứng dụng, cung cấp các chức năng cơ bản mà mọi chương trình hướng đối tượng đều cần +
Trang 1ĐẠ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
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN
TÓM TẮT KHÓA LUẬN TỐT NGHIỆP CHUYÊN NGÀNH CÔNG NGHỆ PHẦN MỀM
HÀ NỘI - 2008
Trang 3-1-
3 Giải pháp kết nối ngân hàng và công ty chứng khoán
Nguyễn Xuân Trường ……… 11
4 Nghiên cứu về CORBA và ứng dụng
Nguyễn Viết Duy ……… 13
5 Xây dựng nền tảng phát triển ứng dụng web map hiệu năng cao
Chu Văn Đoàn ……… 17
9 Xây dựng công cụ mô phỏng mạch điện
Nguyễn Thị Thanh Hằng – Nguyễn Anh Tuấn ……… 25
10 Hệ quản trị nội dung và ứng dụng
Trang 4-2-
13 Nghiên cứu phân đoạn ảnh cho nhận dạng văn bản
Nguyễn Đức Huy ……… 34
14 Portal mạng trợ giúp Việt Nam – VietnamF1
Nguyễn Duy Hưng ……… 36
15 Refactoring aware version control
Nguyễn Việt Hưng ……… 38
16 Finding heap bounds of Java card applets
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
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
Trang 5-3-
27 Web services và Ajax trong bài toán Mashup với bản đồ
Nguyễn Trọng Quyền ……… 60
28 Nghiên cứu cài đặt OpenGL|ES trên Java ME
Lê Nguyễn Tuấn Thành ……… 62
29 Hệ thống quản lý bất động sản ứng dụng công nghệ hướng đối tượng
Nguyễn Phương Thảo ……… 64
30 Nghiên cứu kỹ thuật phân tích WCET trong hệ thống thời gian thực cứng
Dương Đình Toan ……… 66
31 Nghiên cứu công nghệ EJB và ứng dụng
Vũ Thu Trang ……… 68
32 Phân tích thiết kế hệ thống quản lý văn bản và hồ sơ công việc
Bùi Quốc Trung ……… 70
33 Ứng dụng công nghệ AJAX trong hiển thị tin nhanh và cá nhân hóa
Nguyễn Văn Trung ……… 72
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
Trang 6-4-
Trang 7-5-
Danh sách cán bộ Bộ môn Công nghệ phần mềm
Danh sách cán bộ giảng dạy
Chủ nhiệm Bộ môn CNPM
Email: hanv@vnu.edu.vn
NC & PT CNPM
Email: quocdk@vnu.edu.vn
Danh sách nghiên cứu sinh
Danh sách thực tập sinh
Trang 8-6-
Danh sách cán bộ tham gia hướng dẫn
Trang 9WEB 2.0 VÀ ỨNG DỤNG WEBSITE LƯU TRỮ, TÌM KIẾM VÀ XỬ LÝ NHẠC
Họ tên: Nguyễn Thị Châm Cán bộ hướng dẫn: Th.S Nguyễn Nam Hải
1 Giới thiệu
Có thể nói những năm gần đây Web 2.0
đã trở nên quen thuộc với những ai đã và đang
quan tâm đến sự phát triển của web Sự ra đời
và phát triển của Web 2.0 vẫn đang hấp dẫn và
được nghiên cứu bởi nhiều nhà phát triển trên
thế giới
Được xem là một cuộc cách mạng trên
thế giới mạng, thế hệ web mới có những thay
đổi quan trọng không chỉ ở nền tảng công nghệ
mà còn cả ở cách thức sử dụng - hình thành nên
môi trường cộng đồng, ở đó mọi người cùng
tham gia đóng góp cho xã hội "ảo" chứ không
chỉ "duyệt và xem" Thực chất, Web 2.0 có
nghĩa là sử dụng web đúng với bản chất và khả
năng của nó
Thế hệ Web 2.0 đang được mong đợi sẽ
thay đổi những hạn chế mà Web 1.0 chưa làm
được Nó hình thành nên những khả năng tương
tác chưa có hoặc còn quá sơ sài ở Web 1.0
Khả năng tương tác được hoàn thiện trên nhiều
phương diện: công nghệ, chuNn, người dùng,
ứng dụng, nhằm tăng cường tính năng chia sẻ
vốn có của Web 1.0
Với những ưu điểm của mình, tổ hợp
công nghệ Ajax ngày càng đóng vai trò chủ
chốt trong thế hệ web thứ hai này
2 Nội dung khoá luận
Web 2.0
Trình bày tổng quan về web 2.0 Các
động lực để phát triển Web 2.0 như đường
truyền tốc độ cao, băng thông rộng, sự lớn
mạnh của Internet, gia tăng số lượng người truy
cập…Tìm hiểu về các công nghệ dùng trong
Web 2.0 như là RSS, SOA, Ajax…trong đó
công nghệ Ajax đóng vai trò then chốt
2.2 Tổ hợp công nghệ Ajax
Trình bày về lịch sử ra đời, khái niệm của Ajax, miền hữu dụng, nhược điểm cũng như các trình duyệt hỗ trợ Đi sâu vào nghiên cứu N guyên lý hoạt động và các thành phần bên trong công nghệ Ajax như CSS, Javascript, mô hình Dom, XML đặc biệt là đối tượng XMLHttpRequest Chỉ ra cách thức tương tác của Ajax và sự khác biệt so với cách thức tương tác truyền thống
2.3 Xây dựng ứng dụng Website lưu trữ, tìm kiếm và xử lý nhạc
N gày nay khi ứng dụng CN TT đã được
đi sâu vào đời sống nhân dân, đặc biệt khi internet đang được phát triển nhanh chóng như bây giờ Các hình thức giải trí của con người không chỉ là TV, hay đi đến một nơi giải trí nào
đó Với ưu điểm của Internet con người có thể
có các hình thức giải trí, tìm kiếm thông tin,.v.v…ngay tại nhà mình Để phục vụ các nhu cầu trên của người dùng internet, rất nhiều các website tìm kiếm, giới thiệu sản phNm, bán hàng trực tuyến v.v… phục vụ cho nhu cầu tìm hiểu và giải trí của người dùng đã ra đời Cũng nhằm mục đích đánh vào thị hiếu người dùng, với mong muốn thu hút nhiều người truy cập vào website, Chúng tôi đã quyết định xây dựng một website tìm kiếm, lưu trữ và xử lý nhạc phục vụ cho nhu cầu giải trí của người sử dụng Internet
Phân rã chức năng của website :
¾ Quản lý website
o Quản lý tài khoản admin
- Thêm tài khoản
- Sửa tài khoản
- Xoá tài khoản
o Quản lý file nhạc
Trang 10- Thêm file nhạc
- Sửa file nhạc
- Xoá file nhạc
o Quản lý user
- Xem tài khoản user
- Xoá tài khoản user
- Thêm bài hát vào playlist
- Xoá bài hát khỏi plalist
o Gửi comment
Giải pháp công nghệ
Sử dụng tổ hợp công nghệ Ajax với
chức năng của các công nghệ bên trong như
sau:
• XHTML+CSS với vai trò hiển thị
thông tin
• Mô hình tương tác và hiển thị động
DOM (Document Object Model)
• Trao đổi và truy cập/tác động lên
thông tin sử dụng XML và XSLT
• N hận thông tin không đồng bộ với
đối tượng XMLHttpRequest
• Javascript với vai trò kết hợp 4 công
nghệ trên lại với nhau
2.4 Thực nghiệm
Tôi đã cài đặt thử nghiệm website lữu
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
web, đặc điểm chung của Web 2.0 và đi sâu nghiên cứu về tổ hợp công nghệ Ajax Cùng với kiến thức đó tôi đã xây dựng được ứng dụng Website lưu trữ, tìm kiếm và xử lý nhạc
3 Tài liệu tham khảo
[1] Bùi ngọc khải N ghiên cứu, phát triển ứng dụng web với công nghệ ajax Khoá luận tốt nghiệp đại học chính quy, Đại học Công nghệ, ĐHQG Hà N ội 2007
[2] Phan Anh Tu Xây dựng hệ thống đấu giá trực tuyến trên Internet Khoá luận tốt nghiệp đại học chính quy, Đại học Công nghệ, ĐHQG Hà N ội 2007
[3] Lee Babin Beginning Ajax with PHP, from N ovice to Professional 2007
[4] Sang Shin, Java Technology Architect Sun Microsystems AJAX Basics
[8] http://nguoitapviet.info Ajax – tương lai của ứng dụng web
[9] http://w3schools.com/ajax và
http://w3schools.com/php
[10] http://en.wikipedia.org/wiki/Web_2
[11] http://vnexpress.net Toàn cảnh Web 2.0 qua 8 định nghĩa.
Trang 11NGHIÊN CỨU VỀ CÔNG NGHỆ PORTAL
1 Giới thiệu
Ngày nay với sự bùng nổ của Internet và
lượng thông tin đồ sộ đã làm thay đổi bộ mặt thế
giới web cũng như thói quen duyệt web của người
dùng Những năm gần đây, nhiều trang thông tin
điện tử (website) của các tổ chức, cá nhân ra đời
dẫn đến hệ quả là quá tải thông tin Mỗi wesite
thường cung cấp những dịch vụ và ứng dụng khác
nhau gây phiền toái và mệt mỏi cho người dùng
khi họ phải nhớ quá nhiều tên và mật khNu để có
thể truy xuất thông tin hoặc sử dụng dịch vụ của
các hệ thống khác nhau Hơn nữa, các website
hiện nay yêu cầu tính tương tác và tùy biến cao
của người dùng, tạo khả năng tương tác tối đa
giữa người dùng và các nguồn thông tin, giữa
người dùng với các ứng dụng tác nghiệp và giữa
các ứng dụng với nhau
N hững bất cập trên cùng hàng loạt yêu cầu
cấp thiết khác nảy sinh từ thực tế phát triển đã
xuất hiện một khái niệm mới, đồng thời cũng là
một xu hướng công nghệ mới là Portal
2 2 Tổng quan về công nghệ Portal
2.1 Khái niệm về portal
“Portal, tên đầy đủ là Web Portal, là một hệ
thống hoạt động trên Web, định danh và xác thực
người dùng đăng nhập, từ đó sẽ cung cấp một
giao diện web để người dùng dễ dàng truy cập,
khai thác thông tin và dịch vụ cũng như thao tác,
tuỳ biến các công việc tác nghiệp của mình một
cách nhanh chóng và đơn giản”
2.2 Kiến trúc của portal
Các ứng dụng Portal hầu hết đều được xây dựng trên cở sở kiến trúc 3 tầng sau :
Tầng trình diễn: Cung cấp một khung nhìn hợp nhất cho các ứng dụng nghiệp vụ
Tầng phục vụ ứng dụng: đóng vai trò là bộ não của portal Tầng này cung cấp hầu hết các chức năng chính của một portal
Tầng dịch vụ thông tin là tầng cung cấp hạ tầng thông tin của tổ chức
2.3 Một số tiêu chuẩn về Portal
JSR 168 : Đây là tiêu chuNn do hiệp hội Java
Community Process công bố, hiện tại chủ yếu được áp dụng cho các portal xây dựng trên nền tảng Java ChuNn này chỉ ra cách tương tác giữa portlet với portal framework
WSRP : ChuNn này do OASIS (Organization for
the Advancement of Structured Information Standards) công bố ChuNn này chỉ ra các thức giao tiếp giữa một portal server với remote portlet thông Web Services
3 Một số tiêu chuẩn về Portal
Trang 12ngặt các luật và có thể kết hợp với các fragment
khác tạo nên một tài liệu hoàn chỉnh
• Portlet container
Portlet container chạy các portlet và cung
cấp cho chúng môi trường thực thi cần thiết
Portlet container nhận các yêu cầu từ portal và
thực thi các yêu cầu trên những portlet được chứa
bởi nó
2.5 WSRP
Kiến trúc WSRP bao gồm các tác nhân
chính sau:
• producer: là một Web Service(WS), cung cấp
các portlet và cài đặt tập giao diện WSRP,
cung cấp tập các phương thức chung cho các
Consumer
• portlet: Là một thành phần giao diện người
dùng sống trong Producer và được truy cập
thông qua giao diện được định nghĩa bởi
Producer
• consumer: là một WS, gọi tới các WS mà
producer và cung cấp môi trường cho portlet
hoạt động
Consumer có thể tương tác với các portlet
từ xa thông qua giao diện của Producer Mọi
Producer đều phải cài đặt hai giao diện bắt buộc
là giao diện mô tả service, giao diện đánh dấu và
hai giao diện tùy chọn là giao diện đăng ký, giao
diện quản lý portlet
Producer có thể xuất bản các portlet và các
Consumer có thể tìm kiếm và kết nối các portlet
trong trang portal của mình
3 Ứng dụng bài toán xây dựng thư viện
Từ xưa đến nay, thư viện luôn là một trong
những kho tri thức lớn của con người Sự đa dạng
hóa các nguồn thông tin kéo theo yêu cầu quy mô
ngày càng lớn hơn của thư viện Hơn nữa, sự phát
triển internet giúp cho khả năng liên kết chia sẻ tài nguyên giữa các thư viện trở nên dễ dàng hơn
Từ thực tế đó, Portal thực sự là một giải pháp mới trong việc xây dựng thư viện điện tử theo hướng cho phép liên kết, chia sẻ thông tin với thư viện điện tử khác
Các ca sử dụng chính của ứng dụng bao gồm:
1 Quản lý tài liệu
2 Quản lý mượn tài liệu
3 Quản lý trả tài liệu
4 Quản lý bạn đọc
5 Quản lý nhân viên
6 Thống kê & Báo cáo
5 Thực nghiệm
Ứng dụng được viết trên framework Bea
phNm:WebLogic Portal, WebLogic Server,
WebLogic Workshop và sản phNm tùy chọn WebLogic Integration WebLogic Platform (WP)
làm thành một môi trường hoàn hảo để xây dựng portal và các ứng dụng chạy trên môi trường quy
Tài liệu tham khảo [1] Dan Sullivan - Proven Portals: Best Practices for Planning,
Designing, and Developing Enterprise Portals [2] Java(TM) Portlet Specification ("Specification") Version: 1.0 [3] Web Services for Remote Portlets Specification v1.0 [4] http://my.opera.com/Alibobo/blog/portal
Trang 13GIẢI PHÁP KẾT NỐI NGÂN HÀNG VÀ CÔNG TY CHỨNG KHOÁN
MSSV: 04020038
1 Giới thiệu
Ngày nay công nghệ web services đã và đang
được triển khai và ứng dụng trong rất nhiều lĩnh
vực khác nhau bao gồm cả những lĩnh vực nhạy
cảm, đòi hỏi tính an toàn cao như tài chính, ngân
hàng, … do đó web service cần cung cấp một
mức an toàn đủ để hỗ trợ những công việc như
thế Bên cạnh nhưng mặt thuận lợi do web service
đem lại thì việc đảm bảo an toàn, tin cậy, toàn vẹn
thông tin trao đổi trên web service cũng là một
điều rất quan trọng trong quá trình xây dựng web
service
Nội dung khóa luận đi vào tìm hiểu công nghệ
web service và vấn đề bảo mật liên quan Bài toán
kết nối ngân hàng với công ty chứng khoán đòi
hỏi sự an toàn, tin cậy và toàn vẹn thông tin khi
trao đổi, do đó tôi chọn công nghệ web service để
giải quyết bài toán này
2 Công nghệ Web Service
Webservice là một giao diện trừu tượng
(abstract interface) được thể hiện trong HTML,
dựa trên sự tương tác của User và Web server, nó
là một ứng dụng phần mềm được truy xuất thông
qua web bởi một ứng dụng khác
Các thành phần thường được sử dụng trong
web service thường bao gồm:
− Sự bí mật của dữ liệu được bảo vệ vì kết nối được mã hóa trong suốt sau khi một sự thiết lập quan hệ ban đầu và sự thương lượng khóa session đa xảy ra
− Tính xác thực và tính toàn vẹn của dữ liệu cũng được bảo vệ vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt
4 Ứng dụng kết nối ngân hàng với công ty chứng khoán
Kinh doanh chứng khoán là một hoạt động diễn ra khá phổ biến hiện nay, trong một bộ phận xã hội không nhỏ, nhưng công việc giao dịch hiện nay vẫn chủ yếu là bằng tiền mặt, công việc này làm 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á nhân của nhà đầu tư
Các hoạt động chính của ứng dụng bao gồm:
− Hiển thị thông tin
Trang 14− Đăng nhập tài khoản
Ứng dụng được chia làm hai phần
- Server: gồm có web service, các hàm chức
năng để sử lý các yêu cầu từ Client gửi
lên, cơ sở dữ liệu Được phát triển bằng
công cụ lập trình Oracle Jdeveloper và cơ
sở dữ liệu Oracle
- Client: hiển thị giao diện người dùng bao
gồm hiển thị thông tin, đăng nhập, giao
dịch cổ phiếu và đăng xuất Được phát
triển bằng công cụ lập trình ASP.NET
trong bộ Visual Studio NET
6 Kết luận
Khóa luận trình bày tính cần thiết của bài toán kết
nối ngân hàng với công ty chứng khoán, giải pháp
sử dụng mô hình Client – Server để giải quyết bài
toán này, trong đó có sử dụng công nghệ web service để thực hiện
Tài liệu tham khảo
[1] David Chappell, Tyler Jewell: Java Web
Services
[2] Ethan Cerami: Web Services Essentials
Distributed Applications with XML-RPC, SOAP, UDDI & WSDL
Distributed Applications: Integrating XML Web Services and NET Remoting
[4] Paul B Monday: Web Service Patterns: Java
Edition
Donald F Ferguson: Web Services Platform
Architecture: SOAP, WSDL, Policy, Addressing, WS-BPEL, WS-Reliable Messaging, and More
WS-[6] Vo Dinh Hieu: Secure Provision of Composite
Services in an Insecure Networked Environment
http://www.java2s.com
Trang 15NGHIÊN CỨU VỀ CORBA VÀ ỨNG DỤNG
Nguyễn Viết Duy
Khi công nghệ thông tin ngày càng
phát triển thì nhà phát triển luôn mong
muốn tìm được tiếng nói chung giữa
các ngôn ngữ và độc lập về nền tảng
Vì vậy CORBA ra đời với tham vọng
của OMG là đưa ra một phương pháp
để các đối tượng viết bằng các ngôn
ngữ khác nhau có thể triệu gọi lẫn
nhau theo mô hình đối tượng phân tán
Khóa luận này đi sâu nghiên cứu
về mô hình CORBA và ứng dụng cơ
bản của mô hình này sử dụng ngôn ngữ
Java
2 Mô hình kiến trúc CORBA
Trải qua quá trình phát triển hiện
nay CORBA đã phát triển tới phiên
bản 3.x Phiên bản đầu tiên của
CORBA chính thức ra đời năm 1991
Tổng quan về kiến trúc CORBA gồm
các thành phần:
+ Object Request Broker (ORB):
Đây là nền tảng quan trọng của kiến
trúc giúp các ứng dụng phân tán có
thể hiểu được nhau, là phần trung
gian tạo khả năng cho các mối liên
hệ giữa client/server thông qua các
đối tượng
+ Interface Define Language
(IDL): IDL giúp định nghĩa giao
diện các đối tượng trong ứng dụng
Đây là ngôn ngữ giao diện chứ
không phải là ngôn ngữ thực
thi.Như thế là, bạn có thể viết ứng
dụng trong IDL với mục đích duy
nhất của IDL đó là định nghĩa giao
diện; điều kiện cho sự thực thi của
các giao diện là sử dụng một vài
ngôn ngữ khác
+ Application Objects: Các đối
tượng ứng dụng được xây dựng
+ Common Faccilities: Các tiện ích mà
CORBA cung cấp giúp xây dựng và quản lý các thành phần trong ứng dụng, cung cấp các chức năng cơ bản mà mọi chương trình hướng đối tượng đều cần
+ Object Services: Các dịch vụ cung cấp các chức năng cơ bản để xây dựng ứng dụng CORBA Các phương tiện của CORBA được chia ra làm hai loại: các thành phần theo chiều ngang (horizontal) và các thành phần theo chiều dọc (vertical)
Hình 1: Mô hình kiến trúc của CORBA
3 Bài toán ứng dụng
Để minh họa cho mô hình và kiến trúc của CORBA tôi xin trình bày về các bước xây dựng và biên dịch để chạy một ứng dụng CORBA nói chung, với bài toán cụ thể: StockMarket
Mô tả bài toán: Chương trình
CORBA trên máy khách (CORBA client)
sẽ gọi đối tượng trên máy chủ Đối tượng CORBA trên máy chủ (CORBA server) sẽ trả về giá trị đã tính toán được
Các bước tiến hành:
+ Bước 1: Xây dựng đối tượng
StockMarket trong đó chứa phương thức getStockValue() Được đặc tả bằng ngôn ngữ CORBA IDL Sau khi xây dựng xong đối tượng StockMarket ta tiến hành biên dịch file StockMarket.idl
Trang 16+ Bước 2: Xây dựng đối tượng
StockServerImpl bằng ngôn ngữ
Java Đối tượng này sẽ kế thừa lớp
_StockServerImplBase được sinh ra
trong bước biên dịch ở trên
+ Bước 3: Cài đặt đối tượng
StockServer là đối tượng CORBA
trên máy chủ và biên dịch
+ Bước 4: Xây dựng trình khách
triệu gọi đối tượng CORBA Ở đây
là việc xây dựng đối tượng
StockMaketClient Sau đó tiến hành
biên dịch đối tượng này
+ 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
Trang 17XÂ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
Email: doan.chuvan@gmail.com
1 Giới thiệu
Web Map là là bản đồ được hiện thị trên
Web Với sự phát triển mạnh mẽ của Internet
cùn sự phát triển của các công nghệ Web mới,
các ứng dụng Web Map ngày càng trở nên quan
trọng và phổ biến đối với người sử dụng Số
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
mới có thể đáp ứng được yêu cầu của người sử
dụng
Trong luận văn này chúng tôi đưa ra kiến
trúc logic chung của một hệ thống Web Map và
phát triển một số thành phần hiệu năng cao cho
hệ thống này
2 Cách tiếp cận
Trước tiên, chúng tôi nghiên cứu các hệ
thống Web Map hiện có trên thế giới, xem xét
các thành phần mã nguồn mở có thể để sử dụng
để tạo nên một hệ thống Web Map Từ đó chúng
tôi xây dựng nên một mô hình ứng dụng Web
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
các giải pháp mã nguồn mở, hoặc hiện giờ chưa
đạt được hiệu năng mong muốn
4 Các kết quả đạt được
Chúng tôi đã đưa ra được một mô hình hiệu
quả cho các hệ thống Web Map Đồng thời,
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
Một cơ sở dữ liệu nhỏ chứa các dữ liệu
không gian nằm trong bộ nhớ
Phát triển một phần mở rộng cho
Lucene, phần mở rộng này có nhiệm vụ thêm
vào khả năng truy vấn không gian cho Lucene
Phát triển một Routing Server có hiệu
năng tốt Routing Server này có nhiệm vụ tìm
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
phần có sẵn như PgRouting, Pyroute
5 Thử nghiệm và đánh giá
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 thử nghiệm được thực hiện trên hệ thống máy tính IBM-PC với bộ vi xử lý Pentium 4 2.4Ghz,
bộ nhớ RAM 2GB Các kết quả thử nghiệm đã chứng tỏ được hiệu quả của các giải pháp này trong một số thử nghiệm cụ thể
6 Kết luận và các cải tiến trong tương lai
Trong luận văn này chúng tôi đã đưa ra một chung mô hình cho các Web Map hiện nay, đồng thời phát triển một số thành phần rất cần thiết cho các ứng dụng Web Map Tuy nhiên các thành phần này chưa hoàn thiện Trong tương 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
Bibliography
[1] Bast, H., Funke, S., Matijevic, D., Sanders,
P., Schultes, D.: In: transit to constant time
shortest-path queries in road networks In:
Workshop on Algorithm Engineering and Experiments (2007)
[2] Goldberg, A.V., Harrelson, C.: Computing
the shortest path: A* meets graph theory In:
16th ACM-SIAM Symposium on Discrete Algorithms, pp 156–165 ACM Press, New York (2005)
[3] Gutman, R.: Reach-based routing: A new
approach to shortest path algorithms optimized for road networks In: 6th Workshop on
Algorithm Engineering and Experiments pp 100–111 (2004)
[4] Sanders, P., Schultes, D.: Highway
hierarchies hasten exact shortest path queries
In: Brodal, G.S., Leonardi, S (eds.) ESA 2005 LNCS, vol 3669, pp 568–579 Springer, Heidelberg (2005)
[5] Virtual Earth Tilesystem – Microsoft MSDN
Trang 18[6] Apache Lucene Documentation
[7] PostGIS Documentation
[8] Oracle Spatial Documentation
[9] Elmasri, R., Navathe B., Fundamentals of
Database Systems Addison Wesley (2003)
Trang 19DNCH 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
Ngày nay, sự phát triển mạnh mẽ của kỹ
thuật truyền thông di động cùng với sự phổ
dụng của điện thoại di động và dịch vụ SMS đã
kéo theo nhu cầu sử dụng các dịch vụ giá trị gia
tăng trên điện thoại di động ngày càng tăng cao
Các dịch vụ điển hình như: tra cứu thông tin giá
cả, thời tiết, chứng khoán; tải nhạc chuông, hình
ảnh; dịch vụ dự đoán trúng thưởng ngày càng
thu hút đông đảo người tham gia và đem lại
doanh thu đáng kể
Chính vì tiềm năng và sự phát triển mạnh mẽ
của các dịch vụ SMS đã đặt ra vấn đề các nhà
cung cấp dịch vụ giá trị gia tăng cũng như các
nhà cung cấp dịch vụ viễn thông phải không
phong phú, trong phạm vi nghiên cứu của luận
văn chủ yếu đề cập tới các dịch vụ giá trị giá
tăng, loại hình dịch vụ không thuộc các dịch vụ
cơ bản của nhà cung cấp mạng viễn thông Một
hệ thống cung cấp dịch vụ giá trị gia tăng luôn
bao gồm ba thành phần chức năng cơ bản là
người dùng, nhà cung cấp dịch vụ giá trị gia
tăng và nhà cung cấp mạng viễn thông
Việc tìm hiểu về thực trạng và đánh giá tiềm
năng phát triển của mạng di động cũng như dịch
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
nghiên cứu của luận văn
3 Giải pháp xây dựng hệ thống cung cấp dịch vụ giá trị gia tăng dựa trên SMS
Mục tiêu nghiên cứu của giải pháp này là xây dựng một hệ thống đóng vai trò như một trung tâm cung cấp dịch vụ giá trị gia tăng Thông qua các đầu số dịch vụ 8x75 các thuê bao di động sẽ nhắn tin với các đầu số dịch vụ tương ứng để yêu cầu các dịch vụ như: tra cứu kết quả xổ số, kết quả bóng đá, trò chơi trúng thưởng…
Phân tích về mặt chức năng, hệ thống này có
3 chức năng cơ bản:
Thứ nhất là một website cung cấp nội dung thông tin về dịch vụ Khách hàng theo dõi và tìm kiếm dịch vụ còn nhà cung cấp thì quản lý dịch vụ
Thứ hai, hệ thống đóng vai trò là trung 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à lưu thông giữa người dùng và nhà cung cấp
Thứ ba, hệ thống còn đóng vai trò thanh toán, tính cước, đảm bảo cho việc sử dụng dịch vụ thực hiện hợp pháp và công bằng Thiết kế về mặt chức năng của hệ thống gồm
Nhà cung cấp dịch vụ nội dung: là bộ phận trách nhiệm xây dựng các kịch bản, chương trình dịch vụ nhằm mục đích thu hút người dùng và đạt lợi nhuận trong kinh doanh
Thiết kế về mặt vật lý, hệ thống bao gồm 6 thành phần cơ bản:
Thứ nhất là thuê bao di động
Trang 20 Thứ hai là trung tâm dịch vụ tin ngắn
SMSC (Short Message Service Center)
Thứ ba là công giao tiếp (SMPP Gateway)
đảm bảo việc truyền thông (qua giao thức
SMPP) giữa SMSC và hệ thống xử lý dịch
vụ
Thứ tư là các Conent Provider – là các
máy chủ ứng dụng xử lý các kịch bản tạo
ra tương ứng với mỗi dịch vụ cung cấp
Thứ năm là hệ thống WAP/Web Server
cung cấp giao diện cho phép thuê bao di
động kết nối Internet để sử dụng dịch vụ
Thứ sáu là hệ thống CDR, Billing là hệ
thống tính cước mạng di động
Ngoài ra, việc xây dựng các giải pháp ứng
dụng của dịch vụ giá trị gia tăng còn phải dựa
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
thuê bao di động và nhu cầu của người dùng ở
mỗi vùng, lĩnh vực và nhóm đối tượng khác
Về mặt thiết kế cơ sở dữ liệu, các thông tin
quản lý bao gồm thông tin về tin nhắn gửi đi và
tin nhắn gửi đến, thông tin về các thuê bao sử
dụng dịch vụ và thông tin về dịch vụ bóng đá
d) Cài đặt và triển khai
Các thành phần khi triển khai ứng dụng gồm
có:
1 Gateway: phần mềm giả lập cổng giao
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
nền Java, được phát triển mởi nhóm mã nguồn
mở Logica
2 Simulator: phần mềm giả lập cho phép nhận và gửi tin nhắn với Gateway Phần mềm đóng vai trò là người dùng, viết trên nền Java phát triển bởi nhóm mã nguồn mở Logica
3 SMS_Processes: phần xử lý các dịch vụ tại máy chủ của nhà cung cấp dịch vụ nội dung (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ả cùng nhóm phát triển của công ty Tinh Vân cùng xây dựng và mở rộng
4 Website “SMS bóng đá”: là giao diện cơ bản với người sử dụng dịch vụ, đồng thời cung cấp giao diện quản trị cho nhà quản lý dịch vụ Website được tác giả xây dựng bằng công nghệ ASP.Net và C#
5 Kết luận
Nghiên cứu của khóa luận đã khẳng định và làm rõ vai trò của SMS và các ứng dụng của nó 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 hướng phát triển tiềm năng ở trên thế giới cũng như Việt Nam
Trong thời gian thực hiện đề tài, tác giả đã trực tiếp tham gia vào nhóm nghiên cứu của công ty Tinh Vân Qua đó, được trực tiếp tham gia nghiên cứu, xây dựng và phát triển hệ thống 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 chưa thực sự cao nhưng được đầu tư đúng thời gian, công sức và có tính ứng dụng thực tiễn cao
6 Tài liệu tham khảo
[1] N gô Văn Thứ, Đào Quốc Trung, sinh 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 [2] Phạm Thị Thu Hiền, sinh viên K47, Trường ĐH Công N ghệ, ĐHQG Hà N ội, Xây dựng hệ thống cung cấp dịch vụ SMS mở rộng dựa trên giao thức SMPP
[3] http://wikipedia.org – M-Commerce, SMS, GSM, CDMA, SMPP,…
[4] http://opensmpp.logica.com [5] Mobile N et – 15 năm phát triển của dịch
vụ SMS [6] PcWorld – Dịch vụ SMS
Trang 21QUẢ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
Quản lý danh mục đầu tư chứng khoán là
công việc rất quan trọng và phức tạp mà bất kì
môt nhà đâu tư nào cũng phải quan tâm và thực
hiện nó Để quản lý danh mục đầu tư chứng
khoán (qldmdtck) phải bắt đầu từ việc tạo tài
khoản cho nhà đầu tư, tiếp theo đó là theo dõi và
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
quản các thông tin về tên tuổi, điạ chỉ …các
thông tin về danh mục chứng khoán đã đầu tư
(mua /bán,còn lại …) Tuy nhiên, các thông tin
này đã được lưu trữ để khai thác theo các khía
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
các dịch vụ tích cực hơn nữa, chẳng hạn nhưng
lấy bảng giá trực tuyến, quản lý lý thông tin của
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
hóa danh mục đầu tư
2 Mô hình nghiệp vụ hệ thống quản lý
danh mục đầu tư chứng khoán
Quản lý danh mục đầu tư là quá trình liên
tục và có hệ thống gồm 4 bước:
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
độ rủi ro có thể chấp nhận được của chủ đầu tư
và mức độ lợi nhuận mong đợi tương thích với
mức độ rủi ro đó
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
chuNn và phân bổ đầu tư
Thứ ba, giám sát theo dõi những diễn biến giá cả tương đối của chứng khoán trên thị trường, cả mức độ rủi ro và lợi nhuận mong đợi Thứ tư, điều chỉnh danh mục đầu tư phù hợp với diễn biến của thị trường và mục tiêu của người đầu tư
3 Phân tích hệ thống quản lý danh mục đầu tư chứng khoán
Qua quá trình tìm hiểu nghiệp vụ tôi đã tiến hành phân tích hệ thống và đưa ra được các gói UC như sau:
1 Gói đăng ký thành viên:
2 Gói đăng nhập hệ thống:
3.Gói đăng thoát hệ thông 4.Gói quản lý hệ thống 5.Gói quản lý tài khoản đầu tư
6 Gói khai báo ban đầu 7.Gói quản lý công ty chứng khoán 8.Gói giao dịch tiền mặt
9.Gói quản lý chứng khoán 10.Gói thống kê tài sản 11.Gói biểu đồ phân tích 12.Gói quản lý thành viên
4 Thiết kế hệ thống quản lý danh mục đầu tư chứng khoán
Hệ thống được phân tích và thiết kế theo
mô hình hướng đối tượng UML
Trang 22Sau khi phân tích xong, tôi tiến hành thiết
kế hệ thống, vẽ các biểu đồ
1 Biểu đồ tuần tự đối tượng
2 Biểu đồ lớp
Qua bản thiết kế này, tôi đã chi tiết đến
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
người dùng và người quản trị
5 Giải pháp công nghệ
Ứng dụng được triển khai trên trên môi
trường dotnet với DOTN ET Framework 2.0 của
Microsoft, viết bằng ngôn ngử asp.net và c#
Dotnet là một framework mạnh, cung cấp giao
diện dễ dàng cho người lập trình, tính năng bảo
mật cao Quản lý danh mục đầu tư chứng khoán
là một hệ thống giúp cho nhà đầu tư có thể quản
lý tài khoản của mình qua mạng internet, vì vậy
asp.net là ngôn ngữ sẽ giải quyết được vấn đề
này
Sử dụng ChartDirector for NET (bản dùng thử)
để vẽ được biểu đồ lợi nhuận.Sau khi download
và cài đặt bộ thư viện này, bạn cần phải add
netchartdir.dll vào project của mình Lớp thư
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
dạng và chỉnh sửa các loại biểu đồ Dữ liệu của
bản đồ được hỗ trợ bởi ChartDirector bằng cách
gọi ChartDirector API API đảm nhận một
mảng chứa các chuỗi dữ liệu ChartDirector
chứa đựng các thuộc tính của lớp DBTable để
đư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
của biểu đồ được định dạng chuNn ảnh có đuôi
(PN G, GIF, JPEG, BMP, WBMP) và theo
chuNn của System.Drawing.Image trong dotnet
Các biểu đồ ChartDirector có thể được xem dễ
dàng trên màn hình, sao chép file và nhúng các
tài liệu khác
6 Kết luận
Trong khóa luận này, tôi tiến hành tìm hiểu nghiệp vụ chứng khoán, đã phân tích và 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 ứng dụng
Trong thời gian làm khóa luận, những kết quả đã đạt được là:
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 phải xây dựng ứng dụng Hệ thống được phân tích, thiết kế rõ ràng, dễ hiểu Giải pháp công nghệ đã được nên ra bao gồm về môi trường và phương pháp triển khai
Tuy nhiên do thời gian có hạn và hệ thống quản lý danh mục đầu tư khá mới mẻ và phức tạp nên tôi chỉ đưa ra một phương pháp giải quyết về chứng khoán.Các modul đã được cài đặt song chương trình thí nghiệm chỉ chạy trên localhost
Trong tương lại, tôi sẽ tiếp tục nghiên cứu các phương pháp giải quyết tối ưu và xây dựng
hệ thống hoàn thiện hơn Và hi vọng chương trình của tối sẽ được ứng dụng rộng rãi
Tài liệu tham khảo
Trang 23HƯỚNG TIẾP CẬN MỚI VỀ VIRUS
Sinh viên: Đỗ Thị Hà
Mã số SV: 0420108 GV hướng dẫn: Th.S Nguyễn Cảnh Hoàng Email: havirust@gmail.com
1 Giới thiệu
Bảo mật thông tin, an toàn dữ liệu luôn
là vấn đề quan trọng trong mọi thời đại khi
mà công nghệ thông tin đã và đang phát
triển như vũ bão Khi virus máy tính xuất
hiện, những người làm công tác tin học thì
băn khoăn lo lắng còn những người sử dụng
máy tính thì lo sợ khi dữ liệu, chương trình
và máy tính của mình bị phá hoại
Virus xuất hiện quá nhiều và quá nhanh
dưới mọi hình thức và không phải lúc nào
chúng ta cũng nhận biết được sự có mặt của
chúng Chúng phát tán và Nn mình trong các
chương trình máy tính để phá hoại các
chương trình, lấy cắp thông tin mật, gây tổn
thất không nhỏ cho người sử dụng Trong
khi đó, các chương trình diệt virus
(anti-virus) luôn ra đời sau đó Các chương trình
AV này ra đời không thể diệt được tất cả
mọi loại virus, cũng không thể ngăn ngừa
được sự xuất hiện của virus mà chúng xuất
hiện để giảm bớt những thiệt hại do virus
gây ra một cách thấp nhất có thể
Xây dựng một chương trình mới có thể
phát hiện được mọi virus là điều cần thiết:
phát hiện virus dựa trên tần xuất xuất hiện
của chúng Phương pháp này dựa trên đặc
tính lây nhiễm rồi phát tán vào máy tính của
virus
2 Cơ sở lý thuyết
N ăm 1948, John Von N eumann đã đề
xuất ý tưởng về một hệ thống tự sao chép:
Mô hình mô tả việc sao chép trạng thái
nguyên thủy của các máy tự động Và nó đã
được phát triển ở nhiều nước trên thế giới
Dựa trên lý thuyết về việc tạo ra các bản
sao từ các máy tự động mà John Von
N eumann đã đưa ra, virus cũng sử dụng một
số luật để có thể tự nhân bản và phát tán vào
các hệ thống máy tính N hững luật này do
chính người tạo ra virus lập lên
Khả năng tự sao chép của virus phụ
thuộc vào môi trường mà nó tồn tại và phụ
thuộc vào cách mà nó được lập trình Để lây
lan, chúng tự sao chép chính đoạn mã của
mình vào các file thực thi của hệ điều hành
bằng cách sửa header của file thực thi đó
Virus sau khi phát tán vào hệ thống, chúng sẽ tự động lây lan bằng cách tự nhân bản và tạo các biến thể của chính chúng Dựa trên cơ chế lây nhiễm, và lan truyền giữa các file, ổ đĩa trong máy tính và giữa các máy tính với nhau, chúng ta hướng tới một cách tiếp cận mới về virus nhằm xây dựng một chương trình phát hiện virus dựa trên tần xuất xuất hiện của nó
3 Quan niệm mới về Virus
N hững file mà xuất hiện quá n lần, gây hại cho các chương trình hoặc hệ thống, chúng phá hủy dữ liệu, phá hủy phần cứng, làm mất mát chương trình, … đều được coi
là virus
N hững file mà xuất hiện quá n lần nhưng không hề gây hại cho hệ thống, cho chương trình, cho dữ liệu của người dùng hoặc không có bất cứ hành vi làm ảnh hưởng tới
hệ thống và người dùng cũng đều được coi
là virus
N hững file mà xuất hiện quá n lần trong
hệ thống, không hề có hại, thậm trí còn có ích cho hệ thống hoặc cho người dùng trong một số trường hợp nhất định cũng đều được coi là virus
Tóm lại: bất kỳ file nào xuất hiện quá n lần, bất kể có hại, không có hại hoặc thậm trí có lợi cho hệ thống và cho người dùng đều được xếp là virus
4 Hướng giải quyết
1 Can thiệp vào các lời gọi hàm của hệ thống
Lời gọi hệ thống cung cấp giao diện giữa tiến trình và hệ điều hành Là cách mà một tiến trình sử dụng để yêu cầu một hành động của hệ điều hành
Virus lợi dụng những lời gọi này để gọi tới chương trình của nó để kích hoạt thực thi rồi sau đó mới trả lại quyền điều khiển cho chương trình chính
Do vậy, phải ngăn chặn được các lời gọi hàm API của virus:
+ Lấy địa chỉ các hàm API theo tên bằng cách sử dụng hàm do windows cung cấp: GetProcAddress()
Trang 24+ Khi đã có địa chỉ của kernel ta đối
chiếu với Import Table để đọc địa chỉ của
các hàm API theo tên và kiểm soát được các
lời gọi hàm này
+ Kiểm soát được máy tính ở chế độ
protected mode
2 Can thiệp vào các ngắt của hệ thống
Để có thể can thiệp vào hệ điều hành,
virus chiếm các ngắt và điều khiển tòan bộ
chương trình Do vậy chúng ta phải thiết kế
để có thể điều khiển được các ngắt
+ Thiết kế được các chương trình để
chặn bắt được các ngắt, từ đó có thể can
thiệp được vào các đoạn mã virus
+ Sử dụng các bảng vector ngắt để thay
đổi con trỏ trỏ tới ngắt muốn chặn
3 Giải pháp xây dựng chương trình tìm
kiếm virus
Viết các modul để thực thi một số chức
năng chính như:
+ Đọc các thư mục trong hệ điều hành
Với mỗi thư mục này, lấy full path của nó
+ Lấy tất cả các tên file có trong đường
dẫn thư mục N ếu file có số lần xuất hiện
lớn hơn 2 thì đưa nó vào danh sách virus
+ Tiến hành cập nhật để phân tích file
đó
Khi virus lây nhiễm vào hệ thống, thông
thường, chúng sử dụng kỹ thuật lưu trú để
Nn các file đó đi Và khi đó, chúng ta không
thể tìm hiện được các file Nn bằng chức năng
show hidden file của hệ thống
Yêu cầu là thiết một modul để lấy được
những file Nn này
Hệ điều hành cũng có chức năng tự Nn
các file quan trọng của nó, do vậy, yêu cầu
của modul thiết kế phải tìm được tất cả các
file Nn, và phân biệt nó với những file Nn của
hệ điều hành
Việc thiết kế được moudul này, yêu cầu
người lập trình phải có kiến thức về kiến
trúc máy tính với yếu tố quan trọng là hệ
điều hành để từ đó tìm ra thuật giải xác định
những file Nn mà virus tạo ra
5 Xử lý với những virus đã phát hiện
được
Lưu lại các file này trong cơ sở dữ liệu
để tiến hành phân tích, cập nhật chữ ký của
nó Từ đó cung cấp thông tin để xây dựng
các phần mềm diệt virus có hiệu quả
Việc tiến hành phân tích virus được thực hiện bởi một số chuyên gia phân tích virus trong nước và trên thế giới
Để phân tích những virus này, người ta
sử dụng các công cụ debug dịch ngược virus
từ dạng mã máy sang dạng assemble Từ đó đọc và phân tích nguyên lý hoạt động của virus Đặc biệt là đoạn code đã mã hóa vì đây là điểm quan trọng nhất để giải mã và hiểu được nội dung của virus
6 Thực nghiệm
Đã xây dựng và cài đặt hệ thống với bài toán đơn giản là tìm kiếm các file trong hệ thống theo quan niệm mới về virus để từ đó đưa ra được cái nhìn khái quát về quan niệm mới này
+ Xác định các file xuất hiện quá 3 lần trong hệ thống
+ Lưu lại những địa chỉ file này để kiểm tra, phân tích nó
+ Hiển thị các và kiểm tra các file đã phát hiện sau mỗi lần quét
Thực nghiệm cho thấy, khả năng để xây dựng một chương trình hoàn thiện xác định virus dựa trên tần xuất xuất hiện của có là 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 cách lây lan, lưu trú của virus trên hệ thống
để từ đó tìm kiếm chúng một cách có hiệu quả Khi chương trình được xây dựng thành công, nó sẽ giải quyết được một vấn đề lớn
về virus, từ đó có thể xây dựng được bộ dữ liệu phong phú về virus và hướng tới xây dựng một chương trình diệt virus có hiệu quả cao nhất
7 Kết luận
N ội dung chính của khóa luận là đã đưa
ra được cách tiếp cận mới về virus: Phát hiện virus dựa trên tần xuất xuất hiện của chúng Từ đó, chúng ta có thể tiến hành xây dựng một chương trình demo tìm kiếm các file có số lần xuất hiện lớn hơn 3 trong hệ thống
Khóa luận cũng đưa ra được hướng giải quyết và thuật toán để hướng tới xây dựng một hệ thống tìm kiếm virus hoàn chỉnh, làm nền để xây dựng các chương trình diệt virus có hiệu quả
8 Tài liệu tham khảo
[1] http://vi.wikipedia.org/wiki/Virus
[2] Peter Szor The art of Computer virus research and defense
Trang 25XÂY DỰNG CÔNG CỤ MÔ PHỎNG MẠCH ĐIỆN
Ngày nay, công nghệ thông tin đã có những sự
phát triển vượt bậc với tiềm năng vô cùng to lớn,
được ứng dụng trong hầu như tất cả các lĩnh vực
của cuộc sống và đã có những đóng góp rất đáng
kể, đặc biệt là trong giáo dục
Khóa luận tốt nghiệp với đề tài “Xây dựng công
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
điện trong chương trình phổ thông như mạch song
song, mạch nối tiếp, mạch kết hợp, mạch cầu,…
với các thiết bị điệ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 kế, ampe kế, đèn, công tắc,… dưới dạng các
ký hiệu như quy định trong Sách Giáo Khoa hoặc
các hình ảnh giống thật, sinh động Đồng thời
cung cấp công cụ giải mạch để học sinh có thể
quan sát một cách trực quan, thực hành và thu
được kết quả với số liệu thực tế Hơn nữa, công
cụ này có thể được tích hợp vào phần mềm Violet
- một phần mềm Việt Nam hỗ trợ mạnh mẽ cho
giáo viên trong việc tạo ra các bài giảng điện tử -
nhằm giúp cho giáo viên có thể tạo ra các bài
giảng Vật lý về mạch điện với những ví dụ sinh
động chứ không
2 Tổng quan về phần mềm VIOLET và công
cụ thiết kế mạch điện
Violet được xây dựng dựa trên nền tảng Flash
cung cấp đầy đủ các chức năng cần thiết để tạo
các trang bài giảng như: cho phép nhập các dữ
liệu văn bản, công thức, các file dữ liệu
multimedia (hình ảnh, âm thanh, phim, hoạt hình
Flash ), sau đó lắp ghép các dữ liệu, sắp xếp thứ
tự, căn chỉnh hình ảnh, tạo các hiệu ứng chuyển
động và biến đổi, thực hiện các tương tác với
người dùng Violet cũng có các module công cụ
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, Violet còn cung cấp sẵn nhiều mẫu bài tập chuNn thường được sử dụng trong các sách giáo khoa và sách bài tập, công cụ vẽ đồ thị, dựng hình hình học,… Kết lại, Violet là một phần mềm dễ sử 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 quan và dễ hiểu
Mục đích của chúng em khi tạo ra công cụ này này là giúp giáo viên có thể mô phỏng và giải các loại mạch điện trong chương trình sách giáo khoa Vật lý phổ thông, nhờ đó giáo viên có thể đem đến cho học sinh những ví dụ trực quan, hiệu quả
và chính xác hơn trong các bài toán liên quan tới mạch điện Đồng thời, công cụ được xây dựng theo hướng tích hợp vào phần mềm Violet dưới dạng một plugin để giáo viên có thể gộp chung các mạch điện mô phỏng đó vào trong bài giảng điện tử của mình một cách tiện lợi Trong luận văn này, nội dung xây dựng của plugin mạch điện
là cung cấp khả năng thiết kế và giải được bất kỳ một loại mạch điện nào trong chương trình Vật lý phổ thông như mạch song song, mạch nối tiếp, mạch kết hợp, mạch cầu,… với các loại thiết bị đ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
kế, ampe kế, đèn, công tắc,… dưới dạng các ký 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 thiết bị điện có thể thay đổi được trong lúc trình chiếu bài giảng, biến trở và công tắc có thể tương tác được như thật, đèn có thể sáng hoặc tắt khi có hoặc không có dòng điện, đặc biệt các thiết bị đo như vôn kế hay ampe kế sẽ luôn chỉ đúng giá trị thực tế bất kể mạch như thế nào Chính vì vậy công cụ thiết kế mạch điện sẽ rất hữu ích trong việc kiểm chứng kết quả của các bài toán mạch điện, hướng dẫn thí nghiệm lắp mạch điện
Trang 263 Thuật toán giải mạch
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
Chương trình sẽ biểu diễn mạch dưới dạng một đồ
thị rời rạc, trong đó nút điện là các đỉnh, dây và
các thiết bị điện là các cạnh, sau đó áp dụng định
luật Kirchhoff 1 về dòng điện để giải mạch:
Tổng đại số của tất cả các dòng đến và rời một
nút nào đó của mạch điện bằng không
i Ii 0
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
đổi và thu được 2 công thức về hiệu điện thế cho
mỗi nút điện:
0sincos
=
+
∑ ux α Zuy α
Từ 2 công thức trên ta viết được 2 phương trình
cho mỗi nút điện với 2 Nn là các thành phần Ux,
Uy N hư vậy với một đồ thị n nút điện, ta sẽ lập
được một hệ phương trình gồm 2*n phương trình
và 2*n Nn Trong quá trình lập hệ phương trình
cần chú ý trường hợp khi nút là một đầu của
nguồn hoặc được nối với nguồn thông qua một
chuỗi thiết bị không có điện kháng thì ta không
viết phương trình dựa theo công thức của định
luật Kirchhoff (bởi vì nguồn là một thiết bị có
Z=0 nên không áp dụng công thức được) mà
loang để tính toán trực tiếp giá trị điện thế của các
nút, từ đó lập phương trình của các điểm đó
Sau khi giải hệ phương trình vừa lập, ta có được
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
4 Thực nghiệm
Chương trình xây dựng dựa trên ngôn ngữ lập trình chuyên biệt của Flash là ActionScript, có thể đượ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 dạng một plugin được tích hợp vào phần mềm Violet
và hầu như không có lỗi Tuy nhiên để xây dựng được một công cụ thật sự thuận tiện và đáp ứng được tất cả các bài toán về giải mạch trong sách giáo khoa Vật lý là một điều rất khó nên plugin sẽ còn phải được chỉnh sửa và bổ sung thêm nhiều
Tài liệu tham khảo
[1] http://bachkim.vn/violet.asp [2] N XB Giáo dục Vật lý 11
[3] N XB Giáo dục Vật lý 12
[4] Đinh Hải Minh Phần mềm “Mô phỏng mạch
điện”
Trang 27HỆ QUẢN TRN NỘI DUNG VÀ ỨNG DỤNG
Chúng ta đang sống trong kỷ nguyên của
nền kinh tế tri thức với sự ra đời và phát triển
mạnh mẽ của internet mà qua đó mọi người có
thể dễ dàng tìm kiếm, khai thác và trao đổi thông
tin Làm thế nào để chúng ta có thể quản trị nội
dung cũng như khai thác, trao đổi thông tin khi
các website xuất hiện liên tục và ngày càng
nhiều ? Đây là câu hỏi lớn đang đặt ra cho các
nhà quản lý Những giải pháp quản trị nội dung
Internet đang được phát triển và ngày càng được
chuNn hóa giúp cho các các nhân, tổ chức, doanh
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
audio, tài liệu điện tử, tệp văn bản Do vậy khi nhắc đến CMS, người ta phải nhắc đến các yếu
tố cấu thành nội dung nằm trong phạm vi mà hệ CMS đề cập tới cũng như những đặc điểm trong các chu trình quản lý nội dung đó
Một cách chính xác nhất, CMS là hệ thống quản lý việc khởi tạo nội dung và quá trình xử lý nội dung đó cho đến khi nó được xuất bản phân phối tới người dùng
CMS= “Khởi tạo nội dung + Quản lý quá
trình xử lý nội dung đó + Phân phối tới người dùng”
Trang 28CMS cung cấp cho bạn - N gười quản trị
website với những bộ công cụ mà bạn cần nhằm
tạo ra nội dung của website một cách tiện lợi
nhất Một CMS làm điều này thật dễ dàng, các
thao tác: thêm, cập nhật, xóa, chỉnh sửa nội
dung được thông qua một password bảo vệ vùng
đ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
hàng của bạn nhìn thấy
3 Đặc điểm của một CMS
Một CMS bao gồm những đặc điểm cơ bản
sau:
Tạo và thay đổi nội dung trực tuyến
Giao diện tương tác tức thời
Quản lý người dùng
Tìm kiếm và lập chỉ mục
Tùy biến giao diện, hỗ trợ đa ngôn ngữ
Quản lý hình ảnh, liên kết, văn bản
Hỗ trợ lịch biểu bình chọn
4 Các yêu cầu đối với CMS
Trong môi trường điện toán phức tạp như
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
hơn, luôn cần có sự kết hợp, cập nhật, trao đổi,
liên thông với nhau Chính vì vậy yêu cầu được
đặt ra cho một CMS bao gồm các đặc trưng cơ
bản:
a Yêu cầu trong quá trình khởi tạo nội
dung
• Cho phép nhiều người sử dụng, làm
việc trên một tài liệu
• Có cơ chế phân quyền, phân cấp cho
từng người dùng trong quá trình
khởi tạo nội dung
• Cung cấp khả năng quản lý các
thuộc tính khác liên quan đến nội
dung thông tin: Tác giả, tiêu đề, từ khóa, thời gian
b Yêu cầu trong quá trình quản lý nội dung
• Quản lý phiên bản tài liệu, quản lý lưu trữ
• Quản lý quy trình biên tập và phê duyệt nội dung thông tin
• Đảm bảo tính bảo mật cao
c Yêu cầu trong quá trình xuất bản thông tin
• Đồng nhất khả năng trình bày với
những loại dữ liệu giống nhau
• Cung cấp các biểu mẫu, định dạng (template) giúp xuất bản nội dung
một cách nhanh chóng thuận lợi
d Yêu cầu công nghệ
• Hệ thống phải tiện dụng, thân thiện với người dùng, tương thích, dễ mở rộng, tuân theo các chuNn xuất bản
5 Chọn lựa công nghệ xây dựng CMS
Luận văn tập trung vào CMS trên nền web
dó đó chúng ta sẽ nói đến những công nghệ xây dựng một Web CMS CMS của chúng ta cần phải viết tập trung trong môi trường web, phải
có khả năng tích hợp với cơ sở dữ liệu và các file
hệ thống Có một số cách tiếp cận sử dụng đa dạng các nền tảng và công nghệ dưới đây:
ASP /ASP.NET JSP
PHP/MySql
Mã nguồn mở (Open Source)
Trang 296 Ứng dụng
Sau khi tìm hiểu về CMS và nghiên cứu kỹ
các công nghệ xây dựng nên CMS Chương trình
ứng dụng thực hiện trong khóa luận này sử dụng
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
bá cho công ty cổ phần đầu tư xây dựng VKH
Ứng dụng đã xây dựng cả phía người quản
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
duyệt Firefox, IE7, IE6
7 Kết luận
Với phạm vi của một khóa luận tốt nghiệp
tôi đã hoàn thành và tìm hiểu được các đặc trưng
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
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
Trang 30KỸ NGHỆ WEB VÀ ỨNG DỤNG TRONG XÂY DỰNG CMS
CHO TRANG TIN TỨC
Quy mô của các ứng dụng trên nền web
ngày càng được mở rộng Sự mở rộng về quy
mô của các ứng dụng trên nền web tất yếu sẽ
kéo theo sự gia tăng về độ phức tạp của các
ứng dụng loại này Điều đó đã đặt ra không ít
khó khăn cho các nhà phát triển Sự gia tăng về
quy mô và độ phức tạp của các ứng dụng đồng
nghĩa với độ rủi ro ngày càng cao Vậy làm thế
nào để tránh và giảm thiểu các rủi ro ấy? Câu
trả lời là cần có một quy trình phát triển chặt
chẽ và được kiểm định nghiêm ngặt Tuy nhiên
các hệ thống và ứng dụng trên nền web có
những đặc trưng rất riêng do đó không thể áp
dụng quy trình kỹ nghệ phần mềm truyền thống
vào quá trình phát triển các ứng dụng trên nền
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
nghiên cứu quy trình kỹ nghệ trên web và ứng
dụng để xây dựng CMS cho một trang tin tức
1 Kỹ nghệ web
Phần này tập trung vào tìm những đặc trưng
của các hệ thống và ứng dụng trên nền web và
quy trình kỹ nghệ web
Những đặc trưng của hệ thống và ứng dụng
trên trên nền web có ảnh hưởng sâu sắc đến quá
trình kỹ nghệ web Tính tức thì và tiến hóa sẽ
tạo ra sự lặp đi lặp lại và gia tăng mô hình xử
lý Các ứng dụng trên nền web một có một số
lượng người sử dụng đầu cuối rất đa dạng và
tần số truy cập ứng dụng cao do đó tạo ra
những yêu cầu đặc biệt về mặt suy luận và mô
hình, và cần một kiến trúc ứng dụng có tính chuyên dụng cao, điều đó tạo ra những yêu cầu cần thiết về mặt thiết kế Vì những ứng dụng trên nền web, nội dung thường bị chi phối rất nhiều bởi tính thNm mỹ, điều này thích hợp với những hoạt động phát triển sẽ được hoạch định trong quá trình kỹ nghệ web trong đó đội phát triển sẽ bao gồm những kỹ thuật viên công nghệ và những người thiết kế mỹ thuật
3 Tổng quan về CMS
CMS là chữ viết tắt của Content Management System – Hệ quản trị nội dung Phần này giới thiệu về các đặc trưng, quá trình phát triển của CMS trên thế giới, về nhu cầu sử dụng CMS trong các doanh nghiệp, và các tiêu chí để lựa chọn một CMS
CMS là một hệ thống hỗ trợ người sử dụng trong việc quản lý nội dung của một trang web 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 – Content Management Application) và thành phần thứ hai là ứng dụng trình bày nội dung (CDA–Content Delivery Application) CMA là thành phần cho phép tất cả mọi người kể cả những người không biết về ngôn ngữ đánh dấu quản lý, tạo mới, sửa đổi, loại bỏ các thành phần nội dung trong trang web một cách dễ dàng CDA là thành phần sử dụng và biên tập những thông tin để cập nhật cho trang web
4 Xây dựng CMS
Phần này phân tích và đặc tả yêu cầu cho hệ quản trị nội dung
Trang 31Các chức năng chính của CMS:
à Quản lý nội dung bao gồm: quản lý
chuyên mục, quản lý sự kiện,quản lý tin
tức, quản lý tin ảnh, quản lý quảng cáo,
quản lý tỷ giá, quản lý thời tiết, quản lý
Header & Footer
à Quản lý đối thoại: quản lý bạn đọc viết,
quản lý phản hồi về trang web
à Quản lý thành viên: quản lý danh sách
các quản trị viên, quản lý phân quyền,
quản lý thông tin các nhân
à Quản lý hệ thống: quản lý cơ sở dữ liệu,
quản lý thống kê, quản lý logfile
5 Công nghệ sử dụng
Phần này trình bày về các công nghệ sử
dụng xây dựng CMS cho trang tin tức: công
nghệ Ajax, PHP và MySQL các đặc điểm và
các tính năng vượt trội của các công nghệ này
Ajax ( Asychronous Javascript and XML –
Javascript và XML không đồng bộ) là tập hợp
của nhiều công nghệ phát triển web được sử
dụng để tạo ra các ứng dụng web tương tác
PHP là một ngôn ngữ lập trình server-side
miễn phí được phát triển theo chuNn mã nguồn
mở chạy được trong cả hai môi trường Linux
và Windows
Là một hệ quản trị cơ sở dữ liệu miễn phí
được phát triển theo chuNn mã nguồn mở có thể
chạy được trong cả hai môi trường Linux và
Windows
6 Kết luận
Trong quá trình tìm hiểu về quá trình kỹ
nghệ web, chúng tôi nhận thấy tầm quan trọng
của quá trình kỹ nghệ web Kỹ nghệ web tuy
vẫn còn là một lĩnh vực tương đối mới nhưng
nó được xây dựng trên nền tảng của kỹ nghệ
phần mềm truyền thống nên đã có sự phát triển
rất nhanh chóng và đạt được không ít thành tựu
Trong phạm vi của luận văn, chúng tôi đã xây dựng thành công CMS cho trang tin tức tuy chưa thật hoàn thiện nhưng về cơ bản nó đã đáp ứng được các nhu cầu của một trang tin tức
Tài liệu tham khảo
[1] Roger S.Pressman, Ph.D Software Engineering A PRACTITION ER’S APPROACH – 5th
[2] N guyễn N gọc Bình Bài giảng môn học
[8] Phạm Hữu Khang Xây dựng ứng dụng Web bằng PHP & MySQL 2005
[9] http://www.cmsreview.com [10]http://www.e-consultancy.com/forum[11]http://en.wikipedia.org
Trang 32QUẢN LÝ CẤU HÌNH PHẦN MỀM
Sinh viên: Nguyễn Thị Hoa
Mã số SV: 04020142 Người hướng dẫn: Th.S Đào Kiến Quốc Email: lilytrang05@gmail.com
1 Giới thiệu
Ngày nay, nền công nghiệp phần mềm
ngày càng phát triển và việc quản lý cấu
hình phần mềm giữ một vai trò rất quan
trọng trong phát triển phần mềm Quản lý
cấu hình giúp cho đội phát triển kiểm soát,
theo dõi các thay đổi của một hệ thống phần
mềm và các phiên bản khác nhau của phần
mềm đó Vì vậy, quản lý cấu hình tốt sẽ
mang lại những lợi ích rất lớn cho nhà phát
triển như: tiết kiệm thời gian, tiết kiệm chi
phí, nâng cao chất lượng sản phNm…Quản
Quản lý cấu hình phần mềm là tiến
trình kiểm soát, theo dõi các thay đổi của
một hệ thống phần mềm và các phiên bản
khác nhau của phần mềm đó
b Lợi ích của quản lý cấu hình
Quản lý cấu hình tốt sẽ giải quyết
được hàng loạt các khó khăn trong các dự
án, thông qua việc cho phép các thành viên
trong dự án có thể cập nhật đồng thời, chia
sẻ mã nguồn, và giúp quản lý tốt các phiên
bản Quản lý cấu hình mang lại nhiều lợi
ích: tiết kiệm được thời gian và chi phí, nâng
cao chất lượng sản phNm
c Khi nào phải quản lý cấu hình
Quản lý cấu hình là một hoạt động
xuyên suốt trong quá trình phát triển phần
mềm
d Các khái niệm cơ bản
• Cấu hình cơ sở (Baseline): Là
một tập hợp các yêu cầu, thiết kế,
mã nguồn, tài liệu người dùng…
được nhóm lại và gán cho một tên duy nhất
• Thực thể cấu hình: Một sản phNm
công việc trung gian, một thành phần hoặc một sản phNm được đặt dưới sự quản lý cấu hình
• Check out: Lấy ra một thực thể cấu hình từ nơi lưu trữ vào trong một thư viện được kiểm soát
• Check in: Cập nhật lại một thực thể cấu hình vào nơi lưu trữ sau khi check out
e Các tiến trình trong quản lý cấu hình
• Định danh đối tượng
• Quản lý thay đổi
• Quản lý phiên bản
• Kiểm định cấu hình Trong đó, quản lý phiên bản là một khâu rất quan trọng trong quản
lý cấu hình
3 Quản lý phiên bản phần mềm
a Khái niệm Quản lý phiên bản kết hợp các quy trình và các công cụ để quản lý các phiên bản khác nhau của các đối tượng cấu hình được tạo ra trong quá trình phát triển phần mềm Quản lý phiên bản chú trọng vào quản lý mã nguồn, nên còn được gọi là quản lý mã nguồn
b Thuật toán trong quản lý phiên bản
Quản lý mã nguồn bao gồm hai vấn đề chính: Quản lý các thay đổi giữa hai hay nhiều mã nguồn và tích hợp hai hay nhiều mã nguồn
• Thuật toán Diff: So sánh hai hay nhiều file mã nguồn
• Thuật toán Merge: Tích hợp hai hay nhiều file mã nguồn
Có hai mô hình hệ thống quản lý phiên bản chính: hệ thống quản lý phiên bản tập trung và hệ thống quản lý phiên bản phân tán
c Phân tích và so sánh ưu, nhược điểm của hai mô hình hệ thống: mô hình tập trung và mô hình phân tán Hai loại mô hình này đã xây dựng nên nhiều hệ thống quản lý phiên bản hoạt động khá hiệu quả Tuy nhiên, hai loại mô hình này đều có
Trang 33nhượ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
hay nhiều mã nguồn sau khi nó được thay
đổi Do vậy, cần phải có một tiến trình
build tự động các chương trình, thành
phần sau khi đã được tích hợp và người
phát triển đã tạo ra những thay đổi đó phải
được thông báo kết quả
d Đưa ra giải pháp: Xây dựng một
hệ thống quản lý phiên bản mới: Tích hợp
công cụ build tự động với hệ thống quản
Trong khuôn khổ của khóa luận
này, tôi đã nghiên cứu một cách tổng
quát về quản lý cấu hình phần mềm và
nghiên cứu chi tiết về quản lý phiên bản
phần mềm Dựa trên những nghiên cứu
này, khóa luận đã tìm hiểu hai mô hình
quản lý phiên bản chính:
mô hình tập trung và mô hình phân tán,
so sánh ưu nhược điểm của chúng, từ đó đưa ra giải pháp xây dựng một loại mô hình mới – mô hình tích hợp Khóa luận
đã đưa ra những phân tích thiết kế chi tiết cho hệ thống này
Hướng phát triển :
• Hoàn thiện chương trình
• Mở rộng thêm chức năng test tự động các file mã nguồn sau khi được tích hợp
Do thời gian có hạn và thiếu kinh nghiệm nên khóa luận không thể tránh khỏi nhiều thiếu sót, rất mong được sự góp ý của các thầy cô và toàn thể các bạn
6 Tài liệu tham khảo
[1] RogerS Fressman.Software Engineering
A Practitioner’s Approach [2] Paul Duvall, Steve Matyas, Andrew Glover Continuos Integration: Improving Software Quality and Reducing Risk
[3] http://www.versioncontrolblog.com [4]
http://en.wikipedia.org/wiki/Distributed_Version_Control_System
[5]
http://en.wikipedia.org/wiki/Continuous_Integration
Trang 34NGHIÊ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
Nhận dạng văn bản[10] là bài toán xuất hiện
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
Nhận dạng văn bản được áp dụng trong quá
trình tự động hoá các công việc văn phòng như
nhập liệu, lưu trữ văn bản, sách báo, phân loại
thư tín, …, những công việc đòi hỏi nhiều thời
gian của con người
Phân đoạn ảnh là công đoạn đầu tiên của một
hệ thống nhận dạng văn bản nói chung, nhiệm
vụ chính ở đây là từ một ảnh văn bản đầu vào
phải tách văn bản đó ra được thành các dòng,
các từ, và các ký tự để chuyển sang cho bộ nhận
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
việc đoạn ảnh thực hiện không chính xác thì các
công đoạn nhận dạng về sau không thể chính
xác được, và làm giảm đi độ chính xác của toàn
hệ thống Do tầm quan trọng đó của việc phân
đoạn ảnh, nội dung chính của khóa luận này đề
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
vào bài toán nhận dạng văn bản tiếng Việt
2 Kiến thức cơ sở cho phân đoạn ảnh
Quá trình phân đoạn ảnh làm việc hoàn toàn
trên ảnh nhị phân, sử dụng biểu đồ histogram và
thành phần liên thông để tách dòng, tách từ và
tách ký tự
Chương này sẽ lần lượt trình bày những khái
niệm về ảnh nhị phân[5], biểu đồ histogram[2],
các thành phần liên thông, các thuật toán áp
dụng để tạo ảnh nhị phân, xác định biểu đồ
histogram và xác định các thành phần liên thông
trong một ảnh nhị phân[11]
3 Phân đoạn ảnh cho nhận dạng văn bản
Phân đoạn ảnh gồm có bốn giai đoạn chính
đó là tiền xử lý ảnh, tách dòng, tách từ và tách
ký tự
Do ảnh văn bản thu được qua máy scanner
thường có nhiễu và chất lượng ảnh là không cao,
và có thể bị nghiêng một góc nào đó Giai đoạn
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 bản[2][3]
Các giai đoạn tách dòng, tách từ, và tách ký
tự sẽ lần lượt chia ảnh văn bản scan thành các dòng, chia các dòng thành các từ, và các từ thành các ký tự Ở đây chúng tôi đề xuất phương pháp tách dòng dựa vào thành phân liên 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 trắng[4], sử dụng kết hợp phương pháp sử dụng thành phần liên thông và biểu đồ histogram để tách ký tự Với mỗi ký tự chúng đôi đưa ra giải pháp tách ký tự thành ba phần TOP, BODY, BOTTOM để nhận dạng
Để nhận dạng một từ chúng tôi ghép thử các
vị trí cắt lại để nhận dạng và lưu lại danh sách các ứng viên có độ chắc chắn cao nhất Kế tiếp
sẽ sử dụng HMM và N-Gram để lựa chọn ứng viên tốt nhất
4 Thực nghiệm
Ở đây chúng tôi tiến hành các thực nghiệm 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à thực nghiệm của hệ thống nhận dạng văn bản[1]
Kết quả thực nghiệm thu được trên văn bản chữ in là rất khả quan Các thao tác tách dòng, tách từ có độ chính xác lần lượt là 99,2% và 99,4% Hệ nhận dạng văn bản có độ chính xác
là 90,3% khi không dùng HMM[6][7] và N Gram[8][9], là 93,2% khi sử dụng HMM và N -Gram
-Các cài đặt thực nghiệm được thử nghiệm trên hệ điều hành Windows XP SP2, máy tính Laptop tốc độ 1.73GHz x 2 bộ nhớ 2GB RAM
5 Kết luận và hướng nghiên cứu sau này
Trong khóa luận này chúng tôi đã trình bày những lý thuyết cơ bản về phân đoạn ảnh, nghiên cứu và so sánh một số kỹ thuật phổ biến
sử dụng trong phân đoạn ảnh cho nhận dạng, từ
Trang 35đó áp dụng vào bài toán nhận dạng chữ in tiếng
Việt
Để nâng cao chất lượng trong quá trình phân
đ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
pháp tách dòng dựa vào thành phần liên thông,
đối với mỗi ký tự sẽ chia ra làm ba phần TOP,
BODY, và bottom để nhận dạng Kết quả thu
được là rất khả quan
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ệ
thống cả về độ chính xác và tốc độ Đối với khó
khăn khi cắt ký tự làm ba phần sẽ giải quyết
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ở
rộng nghiên cứu và thực nghiệm trên các văn
bản chữ viết tay tiếng Việt
Tài liệu tham khảo
[1] N gô Tiến Đạt.Mô hình tích hợp cho
nhận dạng văn bản tiếng Việt, khóa luận
tốt nghiệp đại học, Trường Đại học
Công nghệ, 2008
[2] D X Le, G Thoma, H Weschler,
Automated Page Orientation and Skew
Angle Detection for Binary Document
Images, Pattern Recognition, Volume
27, N umber 10, pp 1325-1344, October
1994
[3] D X Le, G Thoma, Document Skew
Angle Detection Algorithm, Proc SPIE
Symposium on Aerospace and Remote
Sensing, Visual Information Processing
II, Orlando, FL April 14-16, 1993 Vol
1961, pp 251-262
[4] A Marcolino, V Ramos, M Ramalho,
J.Caldas Pinto, Line and Word Matching
in Old Documents, IDMEC/IST -
Technical University of Lisbon
[5] William K.Pratt, Digital Image
Processing, John Wiley & Sons 2001
[6] J Li, A N ajmi, R M Gray, Image
classification by a two dimensional
hidden Markov model, IEEE
Transactions on Signal Processing,
48(2):517-33, February 2000
[7] Olivier Cappé, Eric Moulines, Tobias
Rydén Inference in Hidden Markov
Models, Springer, 2005 ISBN 40264-0
0-387-[8] Christopher D Manning, Hinrich
Schütze, Foundations of Statistical
Natural Language Processing, MIT
Press: 1999 ISBN 0-262-13360-1
[9] Ted Dunning, Statistical Identification of
Language Computing Research
Laboratory Memorandum (1994) MCCS-94-273
[10] http://en.wikipedia.org/wiki/Optical_cha
racter_recognition#References
[11] http://homepages.inf.ed.ac.uk/rbf/HIPR2
/connect.htm
Trang 36PORTAL 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
cung cấp trên internet, nhu
cầu cập nhật, tìm kiếm thông
tin qua mạng ngày càng nâng
cao.Bằng internet, con người
trên khắp thế giới đã liên kết
với nhau hơn, bỏ qua mọi rào
cản về khoảng cách địa lý để
đi đến một xu thế mới – xu
thế toàn cầu hóa Sử dụng
internet, chúng ta thực hiện
được nhiều công việc nhanh
hơn và chi phí thấp hơn nhiều
so với cách thức truyền thống
Đối với lĩnh vực du lịch, việc
quảng bá và giới thiệu đến
bạn bè thế giới một hình ảnh
Việt Nam hòa bình và tươi
đẹp thông qua mạng internet
điển hình cho một phương
thức quảng bá hữu hiệu thông
qua moi trường mạng
Khóa luận nghiên cứu cách thức xây dựng một cổng thông tin điện tử (portal) dựa trên những kết quả nghiên cứu về sản phẩm Joomla! Khóa luận đã giải quyết bài toán cụ thể là xây dựng portal mạng thông tin trợ giúp Việt Nam – vietnamf1 sử dụng mã nguồn mở joomla
II Cơ sở lý thuyết
• Cổng thông tin điện tử:
Cổng thông tin điện tử (Portal) là một khái niệm chỉ các hệ thống website có một
số chức năng bao gồm: khả năng cá nhân hóa, khả năng tích hợp nhiều loại thông tin, khả năng xuất thông tin theo nhiều định dạng, khả năng hỗ trợ nhiều môi trường hiển thị, khả năng đăng nhập một lần, khả năng quản trị nội dung, khả năng mở rộng chức năng, tùy biến giao diện và hỗ trợ
đa ngôn ngữ Có rất nhiều portal khác nhau nhưng đều
có chung một kiến trúc, do đó portal đã dần trở thành một chuẩn Việc phát triển các ứng dụng sử dụng công nghệ portal là việc phát triển các chức năng tùy biến có thể gắn vào khung portal để trở thành một ứng dụng đa chức năng hoàn chỉnh
Trang 37• Giới thiệu Joomla!
Joomla! Là một hệ quản trị
nội dung mã nguồn mở
(CMS), được viết bằng ngôn
ngữ PHP và kết nối tới cơ sở
dữ liệu My SQL, cho phép
người sử dụng có thể dễ dàng
xuất bản các nội dung của họ
lên internet hoặc intranet
Joomla có đa tính năng: quản
lý cơ sở dữ liệu, hệ thống xuất
bản nội dung, đa ngôn ngữ,
hệ thống các component,
template, module dễ dàng
được mở rộng, trình soạn
thảo WYSIWYG cho việc soạn
thảo nội dung…Với các tính
năng này, việc sử dụng
Joomla để tạo ra một ứng
dụng portal là hoàn toàn khả
thi
III Bài toán
Khóa luận giải quyết bài toán cụ
thể là xây dựng một mạng thông
tin Việt Nam trợ giúp cho tất cả
mọi người trong nước cũng như
quốc tế Bất kỳ ai khi cần các
thông tin như lịch sử, văn hóa,
pháp luật, đất nước, cuộc sống
con người Việt Nam, thời tiết, du
lịch… đều có thể tìm kiếm tại
website
IV Kết quả xây dựng và
triển khai
Trong quá trình làm khóa luận tôi
đạt được những kết quả sau:
- Đưa ra khái niệm Cổng thông
tin điện tử và các khái niệm
liên quan từ các nghiên cứu của nhiều tác giả trong và ngoài nước
- Đưa ra được cách thức để triển khai các chức năng trên nền tảng mã nguồn mở Joomla
- Xây dựng được một portal vietnamf1 hoàn chỉnh bao gồm nhiều thành phần:
V Kết luận
Trong phạm vi khóa luận, tôi đã trình bày cách thức xây dựng ứng dụng mạng thông tin trợ giúp sử dụng giải pháp cổng thông tin điện tử Hy vọng khóa luận sẽ giúp cho mọi người có một giải pháp tốt trong việc tìm kiếm thông tin về đất nước Việt Nam
và các doanh nghiệp về du lịch có thể tìm được một giải pháp phát triển mã nguồn mở trong quá trình kinh doanh của mình
Tài liệu tham khảo:
[1] Trang chính Joomla: www.joomla.org
[2] Diễn đàn Joomla Việt Nam:
[3] Nguyễn Văn Vỵ “Giáo trình Phân tích thiết kế hệ thống thông tin” - NXB Nông nghiệp – 2003 [4] “Joomla! User Manual for V1.0.11”, Steve White – websdezined.com and Andy Wallace [5] Bộ môn công nghệ phần mềm
ĐH Công nghệ, ĐH Quốc gia Hà Nội Slide UML
Trang 38REFACTORING-AWARE VERSION CONTROL
Student No: 04020188
1 Introduction
Today, team development is common in
software projects Developers use version
control systems to cooperate and share their
work However, existing text-based version
control systems do not handle refactorings well
While refactorings are necessary for software
maintenance, they cause changes to many parts
of the system and result in merge conflicts This
thesis proposes an algorithm for software
merging with less conlicts and better code
evolution while preserving the correctness of
the program Unlike traditional text-based
version control systems, the algorithm uses an
operation-based approach and treats refactoring
operations effectively Future implementation of
the algorithm as a plug-in to the Eclipse
Platform is also discussed Since refactorings
are frequent, the results of this research make
software development more productive and
reliable
2 Motivation
The primary weaknesses of current
text-based version control systems in the presence of
refactoring operations can be summarized as
follows:
• When they detect merge conflicts, some of
them are unnecessary and should be
automatically resolved
• When they do not detect merge conflicts,
there are still potential errors of the
program after merging
• In both cases, they fail to keep the history
of program entities when methods or
classes are moved from one place to
another
According to Tammo Freese [2], between
releases of four APIs2 (Eclipse, Mortgage,
Struts, and log4j), about 81% to 97% of the
changes were refactorings Since refactorings
take place frequently, it is of great importance
that the above drawbacks of current text-based
SCM systems be studied and resolved It is,
therefore, the overall goal of this thesis to propose such a solution
3 Approach and Implementation
The refactoring-aware merging method proposed in this thesis uses a semantics-based merging technique Since the semantics of the program are taken into account, it produces automatic merges with the least compile and run-time errors First, this approach requires that previous refactorings are accessible at the time
of merging, that is the development environment not only performs refactorings but records them as well This technique is named operation-based [3] Second, depending on these refactoring operations and other normal code edits, the proposed algorithm will choose an intelligent way to either merge them automatically or notify potential program errors For the ideas to have practical applications, I plan to implement them as a plug-in to the Eclipse environment Eclipse is a powerful software development platform, which had an estimated number of 2.3 million users worldwide in 2006 [4] Its extensible framework allows us to create custom tools and contribute new functionality However, developing a refactoring-aware merging tool requires a team
of skilled programmers working for months It
is not feasible within the scope of this graduation thesis Nevertheless, I include a chapter to outline the next best steps to implement my proposed algorithm
• Planning future steps to implement a refactoring-aware merging tool as an extension plug-in to Eclipse
Trang 395 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/swnews.nsf/n/sdsd6t7kyd?OpenDocument&site=Software, September 2006
Trang 40FINDING HEAP BOUNDS OF JAVA CARD APPLETS
Phạm Tuấn Hưng Supervisors: Dr Trương Ninh Thuận
Email: hungpt43@gmail.com
1 Introduction
Java Card is a technology that allows
programmers to develop applets that can run on
smart cards with very limited memory and
processing power Since applets can come from
third parties, they can cause memory overflows
when they are executed, and this may result in
lost of data in smart cards and even destruction
of the cards It is therefore necessary for a smart
card to have a program to check the maximum
heap memory of new applications that are going
to be installed on the card, and the checker itself
should run fast and have a small memory
footprint to be suitable for cards
The approach presented here improves the
one introduced in our previous work [14] to find
an algorithm for computing heap bounds of Java
Card applets Our method transforms bytecodes
of Java Card applets into equivalent programs
that already have a type system for finding the
sharp upper bounds of resource use We then
point out a linear-time algorithm to compute the
maximum heap units of Java Card applets To
validate our ideas, we have implemented and
tested our tool on several sample applications,
and then compared the bounds found by our tool
with the actual heap bounds of the programs
2 Background
This chapter briefly introduces smart cards,
Java Card applets, Java Card virtual machine,
and the simplified component language (SCL)
that we based on to develop our algorithm
According to Rankl and Cox [15], we define
a smart card as a card that contains a
microprocessor The applications run on smart
cards are called applets Java Card virtual
machine is the virtual machine used for the
smart card environment The SCL is a
simplified version of the abstract component
language in the approach by Truong and Bezem
[17] which already has a type system that can
infer the maximum number of simultaneously
active instances of a well-type program
3 Approach
First, we build a control flow graph (CFG) of the input bytecode stream The nodes of the CFG are instructions If two instructions can be adjacently executed, we create a directed edge from the former to the latter
Then, we make a heap-preserving transformation from the CFG into a rooted, directed tree (RDT) In the transformation, we remove join nodes and collapse cycles in the CFG without changing heap cost
Finally, we transform the RDT into a syntax tree (also called parse tree [1]) of the SCL We reuse their type inference in [17] to compute an upper bound of heap cost of Java Card applets
By optimizing these steps, we obtain a time algorithm that takes the bytecode stream of
linear-a method of Jlinear-avlinear-a Clinear-ard linear-applets linear-as input linear-and returns a heap bound function of method arguments as output
4 Experimental results
We have implemented a prototype tool that compute the heap bounds of Java Card applets using our proposed algorithm The input data of this tool is an applet and the output is the maximum heap space that its main method uses
We tested this tool on Sun's applets and our samples The obtaned results are good They show that our tool not only return an upper bound of heap memory but also can find the least upper bounds of heap cost in many cases The experiments were executed on an Intel P4 2.4 GHz with 1GB of RAM
5 Related works
The most relevant works to ours seem to be [3, 6, 8, 9, 10, 18] Unnikrishnan et al [18] propose a model analysis for inferring maximum size of live heap space of programs written in garbage-collected languages In a similar vein, Hofmann and Jost [10] point out a method to count the memory used for object allocation and deallocation in Java-like