Tải bản đầy đủ (.doc) (73 trang)

xây dựng dịch vụ phổ dụng tư vấn chọn trường và định hướng nghề nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.92 MB, 73 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG DỊCH VỤ PHỔ DỤNG TƯ VẤN
CHỌN TRƯỜNG VÀ ĐỊNH HƯỚNG NGHỀ
NGHIỆP
Sinh viên thực hiện : VŨ MẠNH HÙNG
Lớp CNPM – K51
Giáo viên hướng dẫn: TS Vũ Thị Hương Giang
HÀ NỘI 5-2011
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên: Vũ Mạnh Hùng
Điện thoại liên lạc: 01692640187 Email:

Lớp: CNPM-K51 Hệ đào tạo: Chính qui
Đồ án tốt nghiệp được thực hiện tại:
Thời gian làm ĐATN: Từ ngày 28 / 02 /2011 đến 28 / 05 /2011
2. Mục đích nội dung của ĐATN
Xây dựng dịch vụ phổ dụng “tư vấn chọn trường và định hướng nghề
nghiệp” với mục đích tạo ra 1 ứng dụng tin học dễ sử dụng, có tính truy cập cao để
hỗ trợ người dùng chọn trường và định hướng nghề nghiệp phù hợp cho tương lai.
3. Các nhiệm vụ cụ thể của ĐATN
- Công việc 1 : Xây dựng chức năng hướng nghiệp
 Hỗ trợ người dùng làm bài trắc nghiệm hướng nghiệp
 Hỗ trợ người dùng làm bài trắc nghiệm theo tính cách
 Hỗ trợ cơ sở đào tạo quản lý bài trắc nghiệm của mình


 Hỗ trợ người dùng tải các tài liệu,tìm kiếm tài liệu hướng nghiệp
 Hỗ trợ cơ sở đào tạo quản lý tài liệu hướng nghiệp của mình
 Hỗ trợ người dùng đọc tài liệu trực tiếp trên web
- Công việc 2 : xây dựng chức năng tư vấn chọn trường
 Hỗ trợ người dùng tham khảo các bài viết về tư vấn chọn trường
 Hỗ trợ người dùng trao đổi trực tuyến với người hỗ trợ qua yahoomsg
 Hỗ trợ admin quản lý thông tin tuyển sinh của các trường đại học,cao
đẳng, học viện trên toàn quốc
 Hỗ trợ admin quản lý các bài viết tư vấn chọn trường
 Hỗ trợ người dùng tra thông tin các trường đại học ,cao đẳng,học viện
trên toàn quốc
- Công việc 3 :Tạo nguồn dữ liệu
 Thêm dữ liệu cho bài trắc nghiệm,tài liệu hướng nghiệp, bài viết tư
vấn
 Crawl dữ liệu về thông tin của các trường đại học,cao đẳng, học viện
từ trang về.
- Công việc 4: Viết báo cáo

4. Lời cam đoan của sinh viên:
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
Em Vũ Mạnh Hùng cam kết ĐATN là công trình nghiên cứu của bản thân em dưới sự
hướng dẫn của TS.Vũ Hương Giang.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả ĐATN
Vũ Mạnh Hùng
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày tháng năm

Giáo viên hướng dẫn
TS Vũ Thị Hương Giang
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Mục đích của đề tài nhằm xây dựng dịch vụ phổ dụng “ tư vấn chọn trường và
định hướng nghề nghiệp”, cung cấp cho đối tượng người sử dụng có các hành vi
khác nhau có nhu cầu tìm trường phù hợp và định hướng nghề nghiệp tương lai, bao
gồm cả người bình thường và người mắc các loại khuyết tật khác nhau.
Qua tìm hiểu các lý thuyết về các mô hình hướng dịch vụ, mô hình phân tán,
chuẩn truy cập, em nhận thấy giải pháp kết hợp mô hình kiến trúc hướng dịch
vụ(Service Oriented Architecture – SOA) với chuẩn WCAG 2.0 để xây dựng ứng
dụng phù hợp với yêu cầu đặt ra. Công cụ lập trình được lựa chọn để xây dựng ứng
dụng là hệ quản trị nội dung mã nguồn mở DotNetNuke, hỗ trợ lập trình viên xây
dựng giao diện Web và tích hợp các dịch vụ lại, tạo ra một luồng thông tin nghiệp
vụ thống nhất.
Sau quá trình phát triển và thử nghiệm, dịch vụ được xây dựng theo mô hình
kiến trúc hướng dịch vụ và được triển khai tại trang . Dịch
vụ bao gồm các chức năng làm nhiệm vụ tính toán hay tương tác với cơ sở dữ liệu
để thực hiện các nghiệp vụ và được tích hợp vào website “cungkhoinghiep.net”.
Các chức năng dịch vụ cung cấp bao gồm: chức năng hỗ trợ người dùng làm bài
trắc nghiệm định hướng nghề nghiệp, tải tài liệu hướng nghiệp, tra cứu thông tin
tuyển sinh các trường đại học ,cao đẳng và học viện trên toàn quốc và đọc các bài
viết tham khảo về vấn đề chọn trường ; chức năng hỗ trợ cơ sở đào tạo quản lý bài
trắc nghiệm hướng nghiệp và tài liệu hướng nghiệp, chức năng cho quản trị quản lý
bài viết tham khảo tư vấn chọn trường.
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
ABSTRACT OF THESIS
The aim of this topic is to build up an online service, in form of “advise
university selecting and support orienting about future career ”. It provides users
with various behaviours who have demand of finding an appropriate university and

orienting future job,including normal users and disabilities.
After the process of studying the theories about service-oriented architecture
model, accessibility standard WCAG 2.0, I found the solution that combining two
theories to build application is suitable to requirements set forth. I chose content
management system DotNetNuke

as Programming tool for building applications.
DotNetNuke can support developers to build Web interfaces and integrate services,
which creates a flow of information integrally.
After the period of development and testing, service is deployed at
. The composition of service includes 2 parts: Web
Service and service integrated Website whose interface is built according to the
WCAG. Service includes functions used to calculate or interact with the database
to perform businesses and is integrated into the website "cungkhoinghiep.net."
Services also provide functions to allow users do career orientation tests,
download document related to various career fields, search enrollement
information of all universities, colleges or academies nation-wide and read articles
in selecting university. Moreover,it allows training organizations to manage theirs
own tests and documents.Finally, it gives adminitrators the function of managing
advisory aricles.
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
LỜI CẢM ƠN
Em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, Trường Đại học
Bách Khoa Hà Nội đã hỗ trợ tạo nhiều điều kiện thuân lợi cho chúng em trong quá
trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp.
Em xin bày tỏ lòng biết ơn sâu sắc đến TS Vũ Thị Hương Giang đã tận tình
hướng dẫn, định hướng và truyền đạt cho em những kiến thức quý báu cùng với
những lời động viên khuyến khích của Cô trong những lúc khó khăn, gặp trở ngại
khi thực hiện đề tài.
Em cũng xin chân thành cảm ơn các thầy cô trong bộ môn Công Nghệ Phần

Mềm đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết trong
suốt quá trình học tập và nghiên cứu.
Cuối cùng em xin gửi lời cám ơn đến bạn bè đã hỏi thăm động viên khuyến
khích và giúp đỡ em trong quá trình thực hiện đề tài.
Mặc dù em đã cố gắng hết mình để hoàn thành tốt đề tài của mình nhưng dù sao
những điều sai sót trong đề tài là không thể tránh khỏi, kính mong các Thầy Cô
thông cảm và tận tình chỉ bảo cho em, mong các bạn đóng góp ý kiến để em có thể
hoàn thiện đề tài của mình hơn.
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
Mở đầu 1
Phần 1: Đặt vấn đề và định hướng giải pháp 2
Bài toán “tư vấn chọn trường và định hướng nghề nghiệp” 2
Định hướng giải quyết 4
2.2.1Kiến trúc hướng dịch vụ SOA 5
2.2.2Khả năng sử dụng phổ quát của dịch vụ (universal usability) 11
2.2.3Xây dựng ứng dụng Web với DotNetNuke 11
Phần 2: Các kết quả đạt được 17
I.Phân tích và thiết kế dịch vụ 17
1.2.1Chức năng cho người dùng thông thường 19
1.2.2Chức năng cho người dùng đăng ký 20
1.2.3Chức năng cho cơ sở đào tạo 20
1.2.4Chức năng cho admin 23
1.4.1Các bảng lưu trữ dữ liệu của dịch vụ 26
1.4.2Các bảng liên quan đến cơ chế phân quyền của DotNetNuke framework 35
II.Cài đặt 39
III.Triển khai và thử nghiệm 45
Kết luận 58
Tài liệu tham khảo 59
Danh mục các hình vẽ
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM

Danh mục các bảng
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Bảng 1: Danh mục từ viết tắt và thuật ngữ
STT Từ viết tắt/thuật ngữ Mô tả
1 SOA Service-oriented architecture – Kiến trúc
hướng dịch vụ.
2 WCAG Web Content Accessibility Guidelines –
khuyến cáo của W3C
3 DNN DotNetNuke
4 WSDL Web Service Description Language
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
STT Từ viết tắt/thuật ngữ Mô tả
5 SOAP Simple Object Access Protocol
6 XML Extensible markup language – Ngôn ngữ
đánh dấu mở rộng
7 CSDL Cơ sở dữ liệu
8 UDDI Universal Discovery, Description, and
Integration
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
1
Mở đầu
1. Giới thiệu
Đối với các thí sinh đang đứng trước ngưỡng cửa trường đại học, phải lựa chọn
cho mình một trường để học thì không ít người chọn trường không phải vì sự quan
tâm hay niềm đam mê cá nhân mà là do sự tác động của người thân, vì địa vị xã hội,
vì trào lưu chung.Với một thực trạng thư vậy, thiết nghĩ cần phải có một cái gọi là
“Tư vấn chọn trường”.”Tư vấn chọn trường” là dựa vào sở thích, tính cách, năng
lực học tập hiện tại của mỗi cá nhân nhằm đưa ra những góp ý về những trường mà
cá nhân đó nên theo học để có thể tận dụng được tối đa năng lực bản thân.

Đi đôi với việc chọn trường là vấn đề về việc xác định nghề nghiệp,công việc trong
tương lai sẽ làm, chúng ta cần một cái gọi là “Định hướng nghề nghiệp”. Nói một
cách ngắn gọn “Định hướng nghề nghiệp” là dựa vào những đặc điểm cá nhân về
mặt sở thích, tính cách, năng lực,trình độ học vấn …để đưa ra những nghành nghề
phù hợp nhất cho cá nhân đó trong tương lai. Do đó, “Định hướng nghề nghiệp” là
một điều tối cần thiết với những người đang băn khoăn không biết lựa chọn con
đường nào để phát triển bản thân.Trong khi có rất nhiều các dịch vụ hỗ trợ tìm kiếm
việc làm, đào tạo nghề thì lại không hề có nhiều những dịch vụ hỗ trợ định hướng
nghề nghiệp. Định hướng nghề nghiệp có thể coi như là nền tảng của sự thành công
của mỗi cá nhân trong tương lai vì có sự định hướng tốt thì cá nhân mới phát triển
được tối đa thế mạnh bản thân.
Với mong muốn xây dựng một dịch vụ có thể đáp ứng được những yêu cầu về tư
vấn chọn trường và định hướng nghề nghiệp vấn đề là kiến trúc phần mềm nào hỗ
trợ tốt nhất việc xây dựng và tích hợp dịch vụ “tư vấn chọn trường và định hướng
nghề nghiệp “ với các dịch vụ hiện có.Có thể thấy rằng SOA là kiến trúc phần mềm
đang được tin tưởng hiện nay để giải quyết vấn đề đó.
SOA(Service Oriented Architecture) ,theo định nghĩa của DotNetGuru, là “khái
niệm về hệ thống trong đó mỗi ứng dụng được xem như một nguồn cung cấp dịch
vụ”. Dịch vụ là yếu tố then chốt trong SOA.Có thể hiểu như là hàm chức
năng(modun phần mềm) thực hiện một qui trình nghiệp vụ nào đó. Một cách cơ bản
,SOA là một tập hợp các dịch vụ kết nối mềm dẻo với nhau( nghĩa là một ứng dụng
có thể nói chuyện với ứng dụng khác mà không cần biết chi tiết kỹ thuật bên trong),
có giao tiếp(dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền
tảng hệ thống , và có thể tái sử dụng.SOA là cấp độ cao hơn của sự phát triển ứng
dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự
phức tạp của chi tiết kỹ thuật bên dưới.
Với những mong muốn đó, em đã chọn và thực hiện đề tài :
Xây dựng dịch vụ phổ dụng “Tư vấn chọn trường và định hướng nghề
nghiệp”.
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM

2
2. Nhiệm vụ được giao trong đề tài
1.2.1 Tìm hiểu về mô hình SOA
1.2.2 Xây dựng dịch vụ “Định hướng nghề nghiệp và tư vấn chọn trường” :
 Hỗ trợ người dùng qua làm các trắc nghiệm để có thể biết nghành
nghề phù hợp cho tương lai.
 Hỗ trợ người dùng đọc hoặc tải về các tài liệu về các bài giảng liên
quan đến các nghành nghề, các bài viết về việc tư vấn chọn
trường.
 Hỗ trợ người dùng tra cứu thông tin tuyển sinh của các trường đại
học , cao đẳng, học viện .
 Tư vấn trực tuyến qua yahoomsg: giúp người dùng có cơ hội nói
chuyện trực tiếp với các chuyên gia về tư vấn chọn trường.
1.2.3 Ứng dụng trong website có tích hợp dịch
vụ “định hướng nghề nghiệp và tư vấn chọn trường”.
3. Bố cục đồ án tốt nghiệp
Đồ án bao gồm có 4 phần chính. Trong đó, phần 1 là phần mở đầu, giới thiệu
tổng quan về đồ án và công nghệ sử dụng. Phần 2 là đặt vấn đề và định hướng
giải pháp, nêu các phương hướng phát triển cho đồ án. Phần 3 là các kết quả đạt
được trong đồ án bao gồm kết quả phân tích thiết kế dịch vụ, kết quả thực hiện
cài đặt và thử nghiệm dịch vụ, đánh giá ưu nhược điểm và khả năng sử dụng của
dịch vụ. Cuối cùng là phần 4, phần kết luận.
Phần 1: Đặt vấn đề và định hướng giải pháp
Phần thứ nhất nêu vấn đề và định hướng giải pháp của bài toán “Tư Vấn
Chọn Trường Và Định Hướng Nghề Nghiệp” và những công việc cần thực hiện và
các công cụ sử dụng để hoàn thành yêu cầu đồ án đặt ra.
Bài toán “tư vấn chọn trường và định hướng nghề nghiệp”
1.1Mô tả bài toán
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
3

Xây dựng dịch vụ phổ dụng “ tư vấn chọn trường và định hướng nghề nghiệp”,
cung cấp cho đối tượng người sử dụng có các hành vi khác nhau có nhu cầu tìm
trường phù hợp và định hướng nghề nghiệp tương lai, bao gồm cả người bình
thường và người mắc các loại khuyết tật khác nhau.
- Mục tiêu đề tài với mỗi lớp người dùng:
o Người dùng nói chung: Dịch vụ cho phép người dùng tìm kiếm thông tin
tuyển sinh của các trường đại học,học viện trên toàn quốc,tham khảo các bài
viết tư vấn chọn trường nhằm tìm trường phù hợp ; làm các bài trắc nghiệm
hướng nghiệp để tìm lĩnh vực ngành nghề phù hợp, download các tài liệu
hướng nghiệp của lĩnh vực ngành nghề mà người đó có nhu cầu học tập nâng
cao kiến thức.
o Các cơ sở đào tạo: Dịch vụ cho phép cơ sở đào tạo quản lý các bài trắc
nghiệm hướng nghiệp và tài liệu hướng nghiệp của mình.
o Người quản trị: cho phép quản trị xét duyệt các bài trắc nghiệm hướng
nghiệp,tài liệu hướng nghiệp, quản lý bài viết tham khảo tư vấn chọn trường.
- Phạm vi ứng dụng: dịch vụ được sử dụng như một dịch vụ tích hợp trong dự án
tổng thể - dự án hỗ trợ người khuyết tật khởi nghiệp.
1.2Các vấn đề cần giải quyết
1.2.1 Yêu cầu về mặt chức năng
Dịch vụ phải cung cấp các chức năng cần thiết cho người dùng với nhu cầu
tư vấn chọn trường và định hướng nghề nghiệp.Cụ thể là dịch vụ sẽ phải hỗ trợ các
chức năng sau:
A. . Người dùng:
1. Đăng nhập
2. Làm bài trắc nghiệm:
• Làm bài trắc nghiệm hướng nghiệp
• Làm bài trắc nghiệm theo tính cách (chia làm 6 thiên hướng
gồm: nghệ thuật,văn phòng,mạo hiểm,nghiên cứu, xã hội,kỹ
thuật)
3. Tư vấn trực tuyến với chuyên gia qua yahoomsg

4. Tham khảo tài liệu :
Tài liệu hướng nghiệp:
• Đọc tài liệu trực tiếp trên web
• Tìm kiếm tài liệu theo lĩnh vực nghành nghề ( Công nghệ
thông tin, Điện, Tài chính kế toán…)
• Download tài liệu hướng nghiệp
Tài liệu tư vấn chọn trường:
5. Lưu các bài viết về tư vấn chọn trường
6. Tra cứu thông tin tuyển sinh của các trường đại học,cao đẳng,học
viện.
B. Cơ sở đào tạo nghề
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
4
1. Quản lý bài trắc nghiệm định hướng
2. Quản lý tài liệu hướng nghiệp
3. Quản lý bài trắc nghiệm hướng nghiệp.
C. Quản trị
1. Xét duyệt bài trắc nghiệm định hướng
2. Xét duyệt tài liệu hướng nghiệp
3. Quản lý bài viết tư vấn chọn trường
4. Quản lý thông tin tuyển sinh của trường
1.2.2 Yêu cầu về mặt nguồn dữ liệu
Dịch vụ phải cung cấp nguồn dữ liệu phong phú cho:
• Bài trắc nghiệm định hướng nghề nghiệp
• Tài liệu hướng nghiệp
• Thông tin tuyển sinh của các trường đại học, cao đẳng, học viện trên
toàn quốc
• Bài viết tư vấn chọn trường
1.2.3 Yêu cầu về khả năng truy cập thuận tiện cho người dùng
Giao diện của dịch vụ phải được thiết kế thuận tiện cho người dùng tiện thao

tác ,tạo cảm giác thoái mái cho người dùng khi truy cập và sử dụng các chức năng
của dịch vụ.
• Hỗ trợ phím tắt để người dùng có thể thao tác nhanh với nút lệnh.
• Hỗ trợ người dùng có thể dùng phím “tab” di chuyển đến các mục trong
trang
• Có các nút “back” giúp người dùng quay lại trang trước ,để khỏi bị mắc kẹt
khi sử dụng dịch vụ.
• Bố cục giao diện bố trí đơn giản, dễ hiểu giúp người dùng có thể nhanh
chóng tìm được chức năng mong muốn.
Định hướng giải quyết
2.1Phương pháp tiếp cận
2.1.1 Vấn đề về chức năng của dịch vụ
Các chức năng trong dịch vụ phải có mối liên kết chặt chẽ về mặt nghiệp vụ,
và dịch vụ phải có khả năng tích hợp với các dịch vụ khác trong hệ thống .Trong
khi đó, kiến trúc SOA ( kiến trúc hướng dịch vụ) là nền tảng hỗ trợ rất tốt những đòi
hỏi trên.Do đó em lựa chọn kiến trúc SOA để xây dựng dịch vụ.
2.1.2 Vấn đề về nguồn dữ liệu
Để đối phó với vấn đề nguồn dữ liệu, em chọn giải pháp crawl dữ liệu từ
trang khác về.Có thể nói đây là giải pháp phổ biến hiện nay.Bằng việc gửi các
request lên server của website đang cần lấy giữ liệu và phân tích mã html trả về,ta
có thể thu được khối lượng dữ liệu rất lớn làm giàu cho nguồn dữ liệu của dịch vụ.
2.1.3 Vấn đề về đáp ứng tính truy cập thuận tiện
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
5
Giải quyết vấn đề này thực chất là tìm cách thiết kế giao diện của dịch vụ sao
cho người dùng cảm giác thoải mái, thuận tiện khi truy cập và sử dụng các chức
năng của dịch vụ. Do đó, giao diện được thiết kế tuân theo chuẩn WCAG 2.0.
2.2Cơ sở lý thuyết và công cụ để giải quyết bài toán
Phần này em sẽ trình bày lý thuyết về SOA, Universal Usability và
DotNetNuke

2.2.1 Kiến trúc hướng dịch vụ SOA
[i]
2.2.1.1. Định nghĩa
Hình 1:Mô hình dịch vụ

Dịch vụ là yếu tố then chốt và là khái niệm quan trọng nhất trong mô hình
SOA. Khái niệm dịch vụ mang đến sự truy cập chuẩn hóa vào các chức năng nghiệp
vụ chuyên biệt của các nhà cung cấp và việc chia sẻ một cách hiệu quả các thông tin
giữa người dùng và nhà cung cấp. Như minh họa trong
, các yếu tố cơ bản để định nghĩa một dịch vụ gồm:
- Tên: cho phép định danh dịch vụ.
- Giao diện (API): chỉ rõ các chức năng có thể cung cấp.
- Hướng dẫn sử dụng: chỉ rõ các ràng buộc và các đặc tính liên quan đến
các chức năng có thể cung cấp.
Khai thác dịch vụ đơn giản là gọi đến các chức năng được chỉ ra trong giao
diện lập trình dịch vụ theo đúng hướng dẫn sử dụng dịch vụ.
Việc thực hiện các lời gọi dịch vụ cũng cần đến sự góp mặt của một cơ sở hạ
tầng truyền thông cho phép các dịch vụ ứng dụng (applicative service) tương tác với
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
6
nhau. Cơ sở hạ tầng truyền thông này cũng có thể được coi như một chuỗi dịch vụ
tương tác (interactive service) và dịch vụ mạng (network service), phụ trách việc
trao đổi thông điệp giữa các máy nối mạng (Error: Reference source not found). Các
dịch vụ hạ tầng truyền thông này cung cấp một số tiêu chí cho phép tích phối các
dịch vụ ứng dụng, như là tiêu chí tương thao tác. Chúng được thiết kế dựa trên một
trong hai nguyên lý sau: nguyên lý chia sẻ dữ liệu (tạo ra cấu trúc dữ liệu chung cho
phép các dịch vụ ứng dụng truy cập và xử lý dữ liệu) và nguyên lý trao đổi thông
điệp (kiểm soát việc trao đổi thông tin giữa các dịch vụ ứng dụng.
Hình 2: Cơ sở hạ tầng truyền thông
Một cách cơ bản, Kiến trúc hướng dịch vụ (Service-oriented architecture) là

một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, chức năng. Kiến
trúc bao gồm một tập các dịch vụ thực hiện các qui trình được kết nối ‘mềm dẻo’
với nhau (nghĩa là một ứng dụng có thể ‘nói chuyện’ với một ứng dụng khác mà
không cần biết các chi tiết kỹ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch
vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng.
SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến qui trình nghiệp vụ
và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
2.2.1.2. Phân loại dịch vụ
Có nhiều cách tiếp cận để phân loại dịch vụ. Trong khuôn khổ đề tài này em
quan tâm đến 3 cách phân loại chính:
• Phân loại các dịch vụ dựa trên mục đích sử dụng hay đối tượng sử dụng
Theo cách phân loại này sẽ có:
- Các dịch vụ tiện ích (utility service): cung cấp một số chức năng cơ bản có
thể được sử dụng trong nhiều quy trình nghiệp vụ khác nhau. Ví dụ: một số
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
7
chức năng thao tác với cơ sở dữ liệu có thể được sử dụng trong các dịch vụ
hỗ trợ đào tạo nghề, định hướng nghề nghiệp. Các dịch vụ nghiệp vụ
(business services): cung cấp các chức năng nghiệp vụ cụ thể, ví dụ như chức
năng sinh bài trắc nghiệm của dịch vụ hỗ trợ NKT định hướng nghề nghiệp.
- Các dịch vụ tích phối (coordination or process services): cung cấp các tiến
trình nghiệp vụ tổng quát có sự tham gia của nhiều tác nhân khác nhau với
nhiều lớp hoạt động khác nhau, ví dụ như việc phối hợp các dịch vụ hỗ trợ
đào tạo nghề và định hướng nghề nghiệp.
• Phân loại các dịch vụ dựa trên nhiệm vụ hay đối tượng nghiệp vụ
Theo cách phân loại này sẽ có:
- Các dịch vụ hướng nhiệm vụ (task-oriented services): thực hiện các nhiệm
vụ cụ thể, ví dụ như dịch vụ giới thiệu sản phẩm do người khuyết tật làm ra.
- Các dịch vụ hướng đối tượng nghiệp vụ: gắn với các đối tượng nghiệp vụ cụ
thể, ví dụ như dịch vụ diễn đàn thông tin dành cho người khuyết tật.

• Phân loại các dịch vụ dựa trên công nghệ phát triển
Công nghệ phát triển ở đây được hiểu là kiến trúc vật lý, các chuẩn và các kỹ
thuật liên quan đến việc phát triển phần mềm dưới dạng dịch vụ. Theo cách
phân loại này sẽ có: dịch vụ dựa web (web-based service), dịch vụ web (web
service), dịch vụ dựa module, dịch vụ dựa thành phần phần mềm
(component-based service), dịch vụ dựa tác tử (agent-based service), v.v. Ta
đặc biệt quan tâm đến 2 lớp dịch vụ sau:
- Dịch vụ dựa web (web-based service): dịch vụ được phát triển bằng các công
nghệ web, cụ thể như sau:
o Tên: URI
o Chức năng, ràng buộc, đặc tính: các kỹ thuật đặc trưng cho từng ứng
dụng
o Kết nối: các giao thức trên nền HTTP và các thông điệp truyền giữa
các máy là các tài liệu XML
- Dịch vụ web (web service): dịch vụ dựa web mà cách công bố, tìm kiếm và
kết nối được chuẩn hóa
o Tên: URI, tìm kiếm dịch vụ theo UDDI
o Chức năng: đặc tả bằng ngôn ngữ WSDL
o Đặc tính, ràng buộc: đặc tả bằng lớp ngôn ngữ WS-*
Kết nối: giao thức SOAP
2.2.1.3. Các đối tượng trong SOA
[ii]
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
8
Hình 3: Các đối tượng trong mô hình SOA
Trong SOA có 3 đối tượng chính:
• Bên đăng ký và lưu trữ dịch vụ (Service Registry): Chứa thông tin về các dịch
vụ
• Bên cung cấp dịch vụ (Service Provider): Chính là phía tạo ra dịch vụ và muốn
đưa dịch vụ đến xã hội. Nhà cung cấp cần cung cấp các thông tin về dịch vụ của

mình và đăng ký tại bên lưu trữ dịch vụ(Service Registry)
Bên sử dụng dịch vụ (Service Consumer): Chính là những đối tượng sử dụng các
dịch vụ được tạo ra và triển khai bởi phía nhà cung cấp. Phía bên sử dụng sẽ phải
thực diện các giao dịch, thỏa thuận với phía nhà cung cấp để được sử dụng dịch vụ.
Bên sử dụng có thể tìm kiếm các thông tin về dịch vụ tại nơi lưu trữ( Service
Registry ).
2.2.1.4. Kĩ thuật xây dựng SOA
Kiến trúc hướng dịch vụ SOA không phải khái niệm mới. Một số kỹ thuật có
thể được sử dụng hệ thống theo kiến trúc SOA: Web service, CORBA, DCOM,
J2EE…
Hình 4: Mô hình hệ thống phân tán
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
9
Trong khuôn khỏ đề tài đồ án tốt nghiệp, em lựa chọn xây dựng kiến trúc
SOA bằng kĩ thuật Web Service trên nền asp.net 3.5. Phần dưới báo cáo em xin
trình bày 1 số khái niệm cơ bản trong Web Service và nguyên lý hoạt động các đối
tượng trong Web Service( các đối tượng đã được trình bày ở phần trên báo cáo)
2.2.1.5. Web Service Description Language(WSDL)
[iii]
WSDL là một ngôn ngữ được định nghĩa dựa trên XML, được sử dụng để
mô tả một web service. Ở mức cao, một văn bản WSDL là một bản hợp đồng giữa
bên cung cấp dịch vụ và bên sử dụng dịch vụ. Nó cho biết tất cả những thông tin
cần thiết để bên web service và bên sử dụng tương tác với nhau, như các operation
mà một web service cung cấp, các kiểu thông điệp trao đổi giữa web service và bên
liên quan, các callback operation mà bên sử dụng phải cung cấp cho web service.
2.2.1.6. Simple Object Access Protocol (SOAP)
[iv]
SOAP là một giao thức giao tiếp dùng trong Web service, được xây dựng dựa trên
XML. SOAP được sử dụng để đặc tả và trao đổi thông tin về các cấu trúc dữ liệu
cũng như các kiểu dữ liệu giữa các thành phần trong hệ thống. Sử dụng SOAP, ứng

dụng có thể yêu cầu thực thi method trên máy tính ở xa mà không cần quan tâm đến
chi tiết về platform cũng như các phần mềm trên máy tính đó.
SOAP có 2 phiên bản: SOAP 1.1(năm 2000, trong đó, SOAP là viết tắt của ‘Simple
Object Access Protocol’), SOAP 1.2(năm 2003).
 Các đặc điểm của SOAP:
• Khả năng mở rộng: Cung cấp khả năng mở rộng phục vụ cho nhu cầu đặc
thù của ứng dụng và nhà cung cấp. Các chức năng về bảo mật, tăng độ tin
cậy có thể đưa vào phần mở rộng của SOAP. Các nhà cung cấp dịch vụ khác
nhau, tùy vào đặc điểm hệ thống của mình có thể định nghĩa thêm các chức
năng mở rộng nhằm tăng thêm lợi thế cạnh tranh cũng như cung cấp thêm
tiện ích cho người sử dụng.
• Có thể hoạt động trên các network protocol đã được chuẩn hóa (HTTP,
SMTP, FTP, TCP, )
• Độc lập với platform, ngôn ngữ lập trình hay programming model được sử
dụng.
 Cấu trúc chung một thông điệp SOAP:
• Protocol Header: Cho biết thông tin về các chuẩn giao thức được sử dụng.
• SOAP Envelop: Thông tin chính của message bao gồm:
• SOAP Header: Chứa các SOAP header.
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
10
• SOAP body: Thông tin về name và data được đặc tả dưới dạng XML. Ngoài
ra còn có trường lỗi được dùng để gửi các web service exception.
Hình 5: Cấu trúc một thông điệp SOAP
2.2.1.7. Nguyên lý hoạt động các tác nhân chính tham gia vào web
service
• Bên cung cấp dịch vụ(Service Provider): Dùng Web Services Description
Language (WSDL) để mô tả dịch vụ mà mình có thể cung cấp cho Service
Registry. Bên đăng ký và lưu trữ dịch vụ(Service Registry): Lưu trữ thông tin về
các service được cung cấp bởi các Service Provider. Cung cấp chức năng tìm

kiếm hỗ trợ Service Requester (Service Consumer) trong việc xác định Service
Provider phù hợp. Thành phần chính của Service Broker là Universal Discovery,
Description, and Integration (UDDI) repositories.
• Bên sử dụng dịch vụ(Service Consumer): Dùng WSDL để đặc tả nhu cầu sử
dụng (loại service, thời gian sử dụng, resource cần thiết, mức giá ) và gửi cho
Service Registry. Bằng việc sử dụng UDDI và chức năng tìm kiếm của Service
Registry, Service Consumer có thể tìm thấy Service Provider thích hợp. Ngay
sau đó, giữa Service Consumer và Service Provider thiết lập kênh giao tiếp sử
dụng SOAP để thương lượng giá cả và các yếu tố khác trong việc sử dụng
service
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
11
2.2.2 Khả năng sử dụng phổ quát của dịch vụ (universal usability)
[v]
Dịch vụ được gọi là có khả năng sử dụng phổ quát nếu nó được thiết kế theo
hướng tất cả mọi lớp người dùng đều sử dụng được các chức năng mà nó cung cấp.
Khái niệm universal usability (được sử dụng bởi tất cả: usable by all) là tương đối
gần với khái niệm universal accessibility (truy cập tới bởi tất cả: accessible by all)
và khái niệm universal design (thiết kế cho tất cả: design for all). Ba khái niệm này
cùng nhau bao phủ 3 lĩnh vực nghiên cứu quan trọng của công nghệ xây dựng phần
mềm hướng dịch vụ.Để xây dựng được một dịch vụ có khả năng sử dụng phổ quát,
cần quan tâm đến 3 vấn đề chính sau:
• Hỗ trợ trên phạm vi rộng các loại phần cứng, phần mềm, truy cập mạng. Với
sự phát triển của công nghệ thông tin và truyền thông, 3 thành phần trên liên
tục thay đổi, và có nhiều dạng kết hợp, dạng lai khác nhau
• Thỏa mãn được các đối tượng người dùng khác nhau về tuổi tác, giới tính,
văn hóa, thu nhập, khuyết tật, … Sự khác biệt được phân làm 3 loại chính:
vật lý, nhận thức và văn hóa xã hội.
• Nối liền được khoảng cách tri thức giữa những người dùng biết và những gì
họ muốn biết về một hệ thống cụ thể.

Vấn đề mấu chốt nhất của việc thiết kế theo định hướng phổ quát là nhận ra
sự đa dạng về loại người dùng cũng như các yêu cầu của họ. Không có những user
chung chung trong những dịch vụ có khả năng sử dụng phổ quát. Có 2 cách tiếp cận
để thiết kế dịch vụ theo định hướng phổ quát : Cách thứ nhất là thiết kế một giao
diện dịch vụ duy nhất, có khả năng thỏa mãn sự đa dạng về công nghệ và sự đa
dạng về các loại người dùng của dịch vụ đó. Cách thứ 2 là áp dụng mô hình thiết kế
đa tầng (multi-layer designs): khi một thiết kế đơn chưa thỏa mãn được sự khác biệt
giữa các đối tượng người dùng, các phiên bản khác nhau, hay các sự điều chỉnh về
các điều khiển phải được cung cấp cho từng loại đối tượng. Ví dụ như, với người
mới bắt đầu, các lựa chọn sẽ được đưa ra ít, chủ yếu là các lựa chọn cơ bản nhất.
Sau đó, khi người dùng đã tích lũy đủ kinh nghiệm, cảm thấy tự tin, có thể chọn các
mức cao hơn, và giao diện khi đó sẽ có sự điều chỉnh cho phù hợp.
2.2.3 Xây dựng ứng dụng Web với DotNetNuke
[vi]
2.2.3.1 Định nghĩa hệ quản trị nội dung mã nguồn mở
Hệ quản trị nội dung mã nguồn mở hay hệ thống quản lý nội dung ( Content
Management System viết tắt là CMS) là một hệ thống quản lý phần mềm ứng dụng
được sử dụng để quản lý luồng công việc liên quan đến nhau như tạo mới, chỉnh
sửa, xét duyệt, đánh giá chỉ mục, tìm kiếm, xuất bản và lưu trữ các thông tin điện
tử, các tệp tin truyền thông đa phương tiện.
2.2.3.2 DotNetNuke
DotNetNuke là một hệ thống quản lí nội dung mã nguồn mở viết bằng
VB.Net trên nền tảng asp.net. Đây là một hệ thống mở, tùy biến giao diện dựa trên
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
12
các skin và tùy biến chức năng dựa trên module chức năng. DotNetNuke có thể
được sử dụng để tạo các trang web một cách dễ dàng và nhanh chóng.
2.2.3.3 Ưu điểm chính của DotNetNuke
• Hỗ trợ quản lí người dùng
o Phân quyền đa dạng, có thể theo hình thức phân quyền cá nhân hoặc phân

quyền theo nhóm thành viên
o Hệ thống không giới hạn số thành viên, nhóm thành viên
o Tổng hợp, phân tích và thống kê các truy cập một cách chi tiết
• Hỗ trợ bảo mật cao
o Cung cấp các cơ chế mã hóa đảm bảo an toàn thông tin cho khách
o Cung cấp cơ chế chống tấn công qua URL
• Hỗ trợ lập trình viên
o Tạo mới các module từ giao diện dễ dàng
Hình 6: Giao diện thêm module vào trang web
Hình 7: Giao diện tạo mới module
o Tái sử dụng lại các module: Chọn lại các module đã được tạo ra cho trang
web
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
13
Hình 8: Giao diện liệt kê các module hiện có trong DotNetNuke
2.2.3.4 Kiến trúc DotNetNuke
Hiện nay, trong quá trình phát triển ứng dụng, để thuận tiên trong việc quản
lý các thành phần của hệ thống cũng như dễ dàng trong việc nâng cấp , sửa chữa các
thành phần đó mà không ảnh hưởng tới phần còn lại, người ta thường phân tách hệ
thống thành nhiều tầng khác nhau, mỗi tầng đảm nhiệm một chức năng, nhiêm vụ
riêng biêt, từ đó hình thành nên kiến trúc đa tầng.Số tầng được phân ra phụ thuộc
vào độ phức tạp của hệ thống , nhưng trong đó mô hình 3 tầng là phổ biến nhất. Hệ
quản trị DotNetNuke cũng tuân theo cấu trúc này
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
14
Hình 9: Kiến trúc DotNetNuke
• Presentation Layer
Lớp này làm nhiệm vụ tương tác với người dùng cuối. Tầng này sẽ phụ trách việc
hiển thị nội dung dữ liệu mà người dùng yêu cầu và sẽ thu thập dữ liệu người dùng
để thực hiện các nghiệp vụ người dùng mong muốn. Lớp này sẽ sử dụng các dịch

vụ do lớp Business Logic cung cấp. Trong ASP.NET thì có thể dùng
Trong lớp này có 2 thành phần chính :
 UI Components: là những phần tử chịu trách nhiệm thu thập và hiển thị
thông tin cho người dùng cuối. Trong ASP.NET thì những thành phần này có
thể là các Web Control như DataGridView, TreeView , Control phía third
party như RadGridView hoặc các html control như TextArea.
 UI Process Components: là thành phần chịu trách nhiệm quản lý các qui
trình chuyển đổi giữa các UI Components.
• Business Logic Layer
Lớp này thực hiện các nghiệp vụ chính của hệ thống. Dữ liệu và yêu cầu của clien
mà tầng presentation thu thập được sẽ được chuyển đến tầng này để xử lý. Tầng
này sẽ cung cấp các dịch vụ cho tầng presentation và sử dụng các dịch vụ do lớp
Data Access cung cấp thực hiện các yêu cầu người dùng hoặc để lấy dữ liệu trả về
tầng presentation hiển thị cho client. Sự ra đời của mô hình SOA đã cho phép tầng
này có thể giao tiếp với các dịch vụ khác của nhà cung cấp thứ 3 (3rd parties) để
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM
15
thực hiện công việc của mình mà không cần phải tự triển khai lại từ đầu (ví dụ như
sử dụng dịch vụ thanh toán điện tử, lấy thông tin cổ phiếu chứng khoán, thông tin
thời tiết ). Điều này giúp giảm tải đáng kể chi phí và thời gian cho doanh nghiệp.
Trong lớp này có các thành phần chính :
 Service Interface là giao diện lập trình ma lớp này cung cấp cho lớp
Presentation sử dụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua
giao diện này mà không cần phải quan tâm đến bên trong lớp này được hiện
thực như thế nào.
 Business Entities :là những đối tượng thông tin mà hệ thống xử lý được mô
tả bởi những thực thể. Các business entities này cũng đóng vai trò trung gian
trong trao đổi thông tin giữa tầng Presentation và tầng Data Access
 Business Components: là những thành phần chính thực hiện các dịch vụ mà
Service Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc

logic(constraints), các qui tắc nghiệp vụ(business rules), sử dụng các dịch vụ
bên ngoài khác để thực hiện các yêu cầu của ứng dụng.
• Data Access Layer
Lớp này sẽ tương tác trực tiếp với cơ sở dữ liệu, thực hiện các tác vụ liên
quan đến lưu trữ và truy xuất dữ liệu. Thường lớp này sẽ sử dụng các dịch vụ của
các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle,… để thực hiện nhiệm vụ của
mình.
Trong lớp này có các thành phần chính :
 Data Access Logic components (DALC): là thành phần chính chịu trách
nhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu – Data Sources
như RDMBS, XML, File systems…. Trong .NET Các DALC này thường
được hiện thực bằng cách sử dụng thư viện ADO.NET để giao tiếp với các
hệ cơ sở dữ liệu hoặc sử dụng các O/R Mapping Frameworks để thực hiện
việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệu lưu trữ trong CSDL.
Chúng ta sẽ tìm hiểu các thư viện O/R Mapping này trong một bài viết khác.
 Service Agents: là những thành phần trợ giúp việc truy xuất các dịch vụ bên
ngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại.
Qua câu trúc được miêu tả ở trên, ưu điểm của mô hình 3 lớp có thể được thấy
rõ:
Công việc trong quá trình xây dựng ứng dụng được chia rẽ riêng biệt và độc
lập với nhau. Điều này giúp các tầng không bị phụ thuộc và phải chời đợi nhau
trong quá trình làm việc, một tầng chỉnh sửa thay đổi trong nội dung từng dịch vụ
không ảnh hưởng đến những tầng khác, dẫn đến việc đẩy nhanh tốc độ hoàn thành
ứng dụng và tạo thuận lợi cho lập trình viên trong quá trình bảo trì sản phẩm. Ngoài
ra, do tính độc lập của các tầng, khi các tầng được mã hóa xong bởi lập trình viên,
Sinh viên thực hiện: Vũ Mạnh Hùng – 20061510 Khóa K51 Lớp CNPM

×