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

Khung làm việc và ứng dụng cho bài toán luồng công việc

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.77 MB, 100 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Duy Hiệp
KHUNG LÀM VIỆC VÀ
ỨNG DỤNG CHO BÀI TOÁN LUỒNG CÔNG VIỆC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2009
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Duy Hiệp
KHUNG LÀM VIỆC VÀ
ỨNG DỤNG CHO BÀI TOÁN LUỒNG CÔNG VIỆC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: PGS. TS. Nguyễn Văn Vỵ
HÀ NỘI - 2009
LỜI CẢM ƠN
Lời đầu tiên em xin được gửi lời cảm ơn chân thành nhất tới thầy giáo PGS.
TS. Nguyễn Văn Vỵ. Thầy đã giúp em trong việc định hướng đề tài, tìm hiểu tài
liệu, nghiên cứu về Khung làm việc(Framework) và Luồng công việc(Workflow).
Thầy cũng giúp đỡ em rất nhiều trong kỹ năng viết, trình bày khóa luận.
Em xin một lần nữa được gửi lời cảm ơn chân thành nhất đến thầy!
Em cũng được xin gửi lời cảm ơn chân thành nhất đến các thầy cô trong trường
Đại học Công nghệ, đặc biệt các thầy cô trong khoa Công nghệ phần mềm. Các thầy
cô đã tận tình dạy dỗ và tạo điều kiện cho em học tập để đạt được kết quả tốt như
ngày hôm nay! Em xin chân thành cảm ơn các thầy cô!
Cuối cùng em xin cảm ơn tới Gia đình, bố mẹ, bạn bè em đã luôn cổ vũ động
viên, tạo điều kiện giúp đỡ em trong quá trình thực hiện khóa luận tốt nghiệp này!
Hà Nội, ngày 11 tháng 05 năm 2009


Sinh viên
Nguyễn Duy Hiệp
i
TÓM TẮT NỘI DUNG KHÓA LUẬN
Qua tìm hiểu thực tế cho thấy, với các tổ chức, cơ quan khác nhau có nghiệp vụ
thực hiện công tác tổ chức xử lý và giao việc không giống nhau. Tuy nhiên về cơ bản
các công ty, doanh nghiệp đều có mô hình quản lý và luồng quy trình nghiệp vụ thực
hiện công tác tổ chức và giao việc giống nhau. Do đó, để phát triển và mở rộng một
hệ thống có tính chất thương mại hoá, triển khai trên quy mô lớn, dễ bảo trì, cấu
hình, phát triển mở rộng, khóa luận đã nghiên cứu đặc điểm, tính chất và cách xây
dựng một Khung làm việc(Framework), các bài toán luồng công việc cụ thể, phân
tích thiết kế bài toán luồng công việc tổng quát được rút ra từ các bài toán cụ thể, tích
hợp và ghép nối các mẫu thiết kế lại thành các khung làm việc. Các khung làm việc
hỗ trợ các điểm thế chỗ trước để khi ứng dụng triển khai có thể thay thế các điểm thế
chỗ trước này. Khi triển khai ứng dụng cho một đơn vị có sự thay đổi về quy trình
nghiệp vụ xử lý công việc ta chỉ cần xây dựng mới thêm một vài mô đun tương ứng
với sự thay đổi đó và lắp ghép vào các điểm thế chỗ trước để tạo ra ứng dụng mới
đáp ứng hoàn toàn về sự thay đổi mô hình quản lý và quy trình nghiệp vụ xử lý của
đơn vị cần triển khai áp dụng hệ thống.
Đề tài của khóa luận này là “Khung làm việc-Framework và ứng
dụng cho bài toán luồng công việc”. Nội dung của đề tài gồm các
phần sau.
• MỞ ĐẦU: Giới thiệu lý do chọn đề tài luận văn, nhu cầu thực tiễn và khả
năng ứng dụng của luận văn
• Chương 1: Tổng quan về framework. Nhằm trả lời cho câu hỏi: “Framework
là gì?”, phần này nêu ra khái niệm, các đặc điểm và phân loại framework.
• Chương 2: Giới thiệu một số Framework cụ thể đã có. Phần này đưa ra một
số Framework điển hình đã được xây dựng và ứng dụng giải quyết các bài
toán cụ thể.
• Chương 3: Xây dựng Framework giải quyết bài toán Luồng công việc-

Workflow. Nêu ra bài toán Workflow tổng quát bằng lời và bằng các mô hình
nghiệp vụ, các ca sử dụng và các sơ đồ lớp. Phân tích thiết kế tiến tới chi tiết
hóa các ca sử dụng, gắn vào đó là các mẫu-patterns tạo nên một biểu đồ lớp
có kèm theo các patterns sẵn có. Dựa trên phân tích thiết kế, xây dựng
framework giải quyết bài toán luồng công việc trên nền tảng .NET
framework 3.5 và ngôn ngữ lập trình C#.
ii
• Chương 4: Ứng dụng Framework trên để demo một bài toán giao việc nhỏ.
• KẾT LUẬN: Phần này nêu kết quả đạt được của khóa luận và đề xuất
phương hướng nâng cấp và mở rộng ứng dụng đề tài vào thực tiễn trong
tương lai.
iii
MỤC LỤC
Nguyễn Duy Hiệp......................................................................................................1
HÀ NỘI - 2009 ..................................................................................................... 1
Hà Nội-2009 ......................................................................................................... 1
HÀ NỘI - 2009 ..................................................................................................... 2
TÓM TẮT NỘI DUNG KHÓA LUẬN......................................................................ii
Chương 1...................................................................................................................4
GIỚI THIỆU CHUNG VỀ FRAMEWORK...............................................................4
1.1. Khái niệm về framework..........................................................................4
1.1.1. Định nghĩa về framework......................................................................4
1.1.2. Cấu trúc của một framework..................................................................5
1.1.3. Phân biệt framework với các khái niệm khác.........................................7
1.2. Các đặc điểm của framework....................................................................9
CHƯƠNG 2.............................................................................................................10
GIỚI THIỆU MỘT SỐ FRAMEWORK CỤ THỂ....................................................10
2.1. Higgin Trust Framework.........................................................................10
2.1.1. Giới thiệu về Higgins...........................................................................10
2.1.2. Các thành phần của Higgins.................................................................11

2.1.3. Mô hình dữ liệu của Higgins...............................................................16
2.2. JhotDraw................................................................................................18
2.2.1. Giới thiệu khung làm việc JhotDraw....................................................18
2.2.2. Kiến trúc tổng quan về thiết kế của JHotDraw.....................................19
CHƯƠNG 3.............................................................................................................24
XÂY DỰNG FRAMEWORK GIẢI QUYẾT ..........................................................24
BÀI TOÁN LUỒNG CÔNG VIỆC-WORKFLOW..................................................24
3.3.5.Các chức năng hệ thống.............................................................................34
3.3.6.Từ điển dữ liệu và mô hình lĩnh vực nghiệp vụ..........................................35
3.3.7.Đặc tả hệ thống bài toán luồng công việc...................................................36
3.3.7.1.Các tác nhân (Actor) trong hệ thống........................................................36
3.3.7.2.Các ca sử dụng (Usecase) của hệ thống...................................................38
iv
3.3.8.Mô hình ca sử dụng tổng thể......................................................................43
3.3.9. Mô tả chi tiết các ca sử dụng.....................................................................47
3.3.9.1. Gói ca sử dụng Đăng nhập hệ thống......................................................47
3.3.9.2.Gói ca sử dụng Quản lý giải quyết công việc .......................................... 49
3.5.1.Gói ca sử dụng Đăng nhập hệ thống...........................................................66
3.5.2. Gói ca sử dụng Quản lý giải quyết công việc............................................68
3.5.3.Gói ca sử dụng phục vụ tra cứu, báo cáo, thống kê....................................74
3.6.Thiết kế một số lớp.......................................................................................76
......................................................................................................................90
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1. Mối quan hệ giữa các thành phần khác nhau trong một framework [4]
Hình 2.1. Higgins Trust Framework
Hình 2.2. Kiến trúc của Higgins
v
Hình 2.3. RP Enablement
Hình 2.4. Kiến trúc Token Service
Hình 2.5. Kiến trúc tổng quan về thiết kế của JhotDraw

Hình 2.6 : Các mẫu thiết kế
Hình 3.1: Sơ đồ hoạt động quản lý công việc tại công ty thiết kế đồ nội thất gia đình
Hình 3.2: Mô hình khái niệm hệ thống tổ chức và quản lý công việc tại công ty thiết
kế đồ nội thất gia đình
Hình 3.3: Sơ đồ hoạt động quản lý công việc quản lý tiền lương
Hình 3.4: Mô hình miền lĩnh vực của bài toán quản lý tính tiền lương
Hình 3.5. Mô hình phân cấp quản lý trong doanh nghiệp
Hình 3.6: Sơ đồ tiến trình quản lý hoạt động giao công việc
Hình 3.7: Mô hình khái niệm hệ thống tổ chức và quản lý giao công việc
Hình 3.8: Gói ca sử dụng Đăng nhập hệ thống
Hình 3.9: Gói ca sử dụng Quản lý giải quyết công việc
Hình 3.10: Gói ca sử dụng Quản trị tiện ích
Hình 3.11: Gói ca sử dụng Báo cáo thống kê
Hình 3.12: Gói ca sử dụng Quản trị phân quyền người dùng
Hình 3.13: Biểu đồ lớp thiết kế thực thi ca sử dụng Đăng nhập
Hình 3.14: Biểu đồ lớp thiết kế ca sử dụng Đăng nhập áp dụng mẫu Singleton
Hình 3.15: Biểu đồ lớp thiết kế thực thi ca sử dụng Tạo công việc mới
Hình 3.16. Biểu đồ lớp thiết kế thực thi ca sử dụng Tạo công việc mới áp dụng mẫu
thiết kế Observer
Hình 3.17: Biểu đồ lớp thiết kế thực thi ca sử dụng Sửa nội dung công việc
Hình 3.18: Biểu đồ lớp thiết kế thực thi ca sử dụng Xoá công việc
Hình 3.19: Biểu đồ lớp thiết kế thực thi ca sử dụng Phân công việc
Hình 3.20. Biểu đồ lớp thiết kế thực thi ca sử dụng Phân công việc áp dụng mẫu thiết
kế State
Hình 3.21: Biểu đồ lớp thiết kế thực thi ca sử dụng Chỉ đạo công việc
vi
Hình 3.22: Biểu đồ lớp thiết kế thực thi ca sử dụng Giải quyết công việc
Hình 3.23: Biểu đồ lớp thiết kế thực thi ca sử dụng Báo cáo công việc
Hình 3.24: Áp dụng mẫu thiết kế Composite vào lớp CongViec
DANH MỤC CÁC BẢNG

Bảng 2.1: Các chức năng hệ thống
Bảng 2.2: Các khái niệm dự tuyển cho nghiệp vụ quản lý giao việc
Bảng 2.3: Mô tả các tác nhân trong hệ thống
vii

MỞ ĐẦU
Cơ sở khoa học và thực tiễn của đề tài:
a. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu và ứng dụng các mô hình
sử dụng lại vào quá trình thiết kế phần mềm:
• Ngày nay, một trong những vấn đề quan trọng của ngành công nghệ phần
mềm là vấn đề sử dụng lại. Ngay từ thời kỳ đầu tiên, người ta đã cố gắng sử
dụng lại phần mềm bằng cách xây dựng trước các thư viện lớp. Trong các
thư viện lớp này có chứa các hàm và thủ tục thường hay được sử dụng trong
các ứng dụng phần mềm. Tuy nhiên, cách sử dụng lại này tương đối thụ
động, vì chỉ có thể sử dụng lại các đoạn mã có sẵn, mà không thể sử dụng
các thiết kế. Ý tưởng sử dụng lại các thiết kế có sẵn đã được thể hiện qua
việc sử dụng các mẫu thiết kế. Một mẫu thiết kế là một mô tả có tên về một
cặp vấn đề và giải pháp, nó có thể được áp dụng trong những hoàn cảnh
khác nhau. Tuy nhiên, các mẫu thiết kế thường khó sử dụng vì có mức độ
trừu tượng hóa cao. Do vậy, để có thể sử dụng lại các thiết kế có sẵn hiệu
quả hơn, người ta đã đưa ra khái niệm Khung làm việc-Framework. Giống
với các mẫu thiết kế, các framework cũng được sử dụng lại dễ dàng bằng
cách thu nhận lại các kịch bản phát triển phần mềm thành công. Tuy nhiên,
khác với mẫu thiết kế, framework thường gắn với một miền ứng dụng cụ thể
và bao gồm cả thiết kế và mã thực hiện.
b. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu, thiết kế và xây dựng úng
dụng “ Khung làm việc giải quyết bài toán luồng công việc”:
Ngày nay, với sự phát triển nhanh chóng của khoa học kỹ thuật nói chung và
công nghệ thông tin nói riêng đã mang lại nhiều thành tựu to lớn. Những thành tựu
của khoa học được áp dụng trong tất cả các hoạt động của con người và đã đem lại

những thành công hết sức lớn lao. Ở Việt Nam, hiện nay, các công ty, xí nghiệp và
các doanh nghiệp vừa và nhỏ hầu hết đã trang bị cơ sở hạ tầng về máy tính và kết nối
mạng đã tạo cơ sở cho việc áp dụng những công nghệ mới của mạng máy tính và
internet vào lĩnh vực tìm kiếm, tổ chức và xử lý thông tin phục vụ công tác điều hành
và quản lý sản xuất. Với cơ sở hạ tầng công nghệ thông tin ngày càng phát triển mở
rộng, các tổ chức, doanh nghiệp ngày càng có nhu cầu tin học hoá mọi lĩnh vực công
việc, sản xuất, quản lý,… và mong muốn mọi thông tin quản lý điều hành sản xuất
đều được lưu trữ trên máy tính để có thể tra cứu tìm kiếm dễ dàng và nhanh chóng
mỗi khi có nhu cầu.
1
Những hoạt động mang tính chất luồng công việc như hoạt động giao việc và
điều hành xử lý việc thực hiện công việc là một hoạt động chủ đạo trong hầu hết các
tổ chức, doanh nghiệp. Tuy nhiên, qua khảo sát thực tế cho thấy, hiện nay việc tổ
chức và quản lý hoạt động giao công việc trong các tổ chức, xí nghiệp chủ yếu thực
hiện trực tiếp bằng miệng và quản lý dựa trên trên giấy tờ. Do đó, để tổ chức và theo
dõi điều hành một công việc thực hiện qua nhiều người, nhiều cấp, trên nhiều giai
đoạn thời gian khác nhau gặp rất nhiều khó khăn. Việc tin học hoá hoạt động này để
có thể tổ chức xử lý, theo dõi hoạt động giao công việc trên hệ thống máy tính là nhu
cầu cấp thiết.
Việc ứng dụng công nghệ thông tin vào tổ chức, quản lý hoạt động giao công
việc là một trong các biện pháp có ý nghĩa thiết thực trong việc áp dụng các thành tựu
khoa học kỹ thuật vào công tác điều hành và quản lý sản xuất trong các doanh nghiệp.
Từ nhu cầu thực tiễn xã hội và đặc biệt là của đơn vị đang công tác, cùng với cơ
sở khoa học của việc nghiên cứu ứng dụng các mô hình sử dụng lại vào quá trình
phân tích thiết kế phần mềm, luận văn đã chọn đề tài với tên gọi “Khung làm việc và
ứng dụng cho bài toán luồng công việc”.
Mục tiêu của bài toán “Luồng công việc” là xây dựng một hệ thống thông tin tổ
chức và quản lý các hoạt động giao công việc đang thực hiện trong một tổ chức,
doanh nghiệp phân theo các cấp quản lý theo từng đầu người cụ thể dựa trên mạng
máy tính. Hệ thống giúp các cấp lãnh đạo nắm sát tình hình thực hiện công việc và

đưa ra ý kiến chỉ đạo và hướng giải quyết đúng đắn, kịp thời nhằm nâng cao hiệu quả
quản lý. Hệ thống cung cấp các đầu mục tra cứu và tổng hợp các công việc đã và
đang thực hiện trên mạng máy tính để làm các thống kê, báo cáo định kỳ theo yêu
cầu.
Hệ thống được xây dựng sử dụng các công nghệ kỹ thuật mới như: ứng dụng
hướng tiếp cận áp dụng các mẫu thiết kế, sử dụng công cụ mô hình hoá UML để phân
tích và thiết kế bài toán theo mô hình hướng đối tượng; ứng dụng công nghệ
Windows Applications để cập nhật và xử lý thông tin.
Với hướng tiếp cận phân tích và thiết kế hệ thống áp dụng công nghệ hướng đối
tượng sử dụng các mẫu thiết kế gắn với một miền ứng dụng cụ thể(bài toán luồng
công việc) và sử dụng ngôn ngữ C# dựa trên nền tảng .NET Framework 3.5 để xây
dựng và phát triển hệ thống, cho phép hệ thống dễ bảo trì và phát triển mở rộng trong
tương lai đáp ứng được các yêu cầu thay đổi và phát triển ngày càng cao của xã hội.
Mục tiêu và phạm vi nghiên cứu của luận văn
2
Nghiên cứu khái niệm, đặc điểm và phân loại Framework.
Nắm bắt được phương pháp phân tích thiết kế hướng đối tượng một hệ thống. Sử
dụng phương pháp phân tích thiết kế hướng đối tượng, áp dụng các mẫu thiết kế về
hành vi và trình diễn để phân tích, thiết kế một ứng dụng cụ thể trên máy tính.
Nghiên cứu bài toán luồng công việc, áp dụng các kiến thức về Phân tích hướng đối
tượng để phân tích thiết kế bài toán.
Từ kết quả phân tích và thiết kế tiến hành xây dựng hệ thống dựa trên các công cụ và
môi trường đã lựa chọn.
Ứng dụng một phần mềm nhỏ sử dụng Framework đã xây dựng.
Nội dung nghiên cứu và thực hiện của luận văn
Nghiên cứu khái niệm, đặc điểm và phân loại Framework.
Nếu một số đặc điểm và ứng dụng của một vài Framework sẵn có.
Tiếp cận một số bài toán cụ thể liên quan đến luồng công việc đó là bài toán “Quản
lý luồng công việc tại Công ty đồ nội thất gia đình” và bài toán “Quản lý tính
tiền lương cho giáo viên”.

Tiến hành tổng quát hóa từ hai bài toán trên để rút ra bài toán “Luồng công việc
tổng quát”.
Tiến hành xây dựng các biểu đồ Usecase cho bài toán “Luồng công việc” đến mức
chi tiết nhất.
Từ các biểu đồ Usecase chi tiết hóa trên tiến hành áp dụng các mẫu(patterns sẵn có
như Singleton, Observer, State, Oposite…) để tổng quát hóa bài toán, tổng quát hóa
các biểu đồ lớp phục vụ cho việc xây dựng Framework.
Xây dựng chương trình và tiến hành cài đặt thử nghiệm demo một bài toán nhỏ.
3
Chương 1
GIỚI THIỆU CHUNG VỀ FRAMEWORK
Trong một vài thập niên gần đây, việc sử dụng lại phần mềm đã và vẫn là một
vấn đề quan trọng cho các tổ chức phát triển phần mềm. Đầu tiên, phần mềm
được sử dụng lại dưới hình thức là các thư viện hàm API hay các thư viện lớp.
Tiếp theo, các nhà phát triển nhận thấy không chỉ cần sử dụng lại các đoạn mã
mà còn cần phải sử dụng lại cả các thiết kế của phần mềm. Do vậy, đã xuất
hiện khái niệm về design pattern – mẫu thiết kế và framework – khung làm
việc. Các mẫu thiết kế là một mô tả có tên về một cặp vấn đề và giải pháp. Các
mô tả chi tiết về mẫu thiết kế sẽ được trình bầy trong một chủ đề khác, còn nội
dung của phần này sẽ chỉ trình bầy về framework và phạm vi ứng dụng của nó.
1.1. Khái niệm về framework
1.1.1. Định nghĩa về framework
• Thuật ngữ framework hướng đối tượng có thể được định nghĩa theo nhiều
cách. Một framework được định nghĩa như là một phần của thiết kế và thực
hiện, cho một ứng dụng trong một lĩnh vực. Điều này có cảm giác một
framework không là một hệ thống hoàn chỉnh. Hệ thống này có thể được điều
chỉnh lại để tạo ra các ứng dụng hoàn chỉnh. Các framework nói chung được sử
dụng và được phát triển khi cần phát triển một vài ứng dụng tương tự. Một
framework thực hiện các phần chung giữa các ứng dụng này. Do vậy, một
framework giảm công sức cần thiết để xây dựng các ứng dụng.

• Phần lớn các định nghĩa đều nhất trí rằng, một framework hướng đối tượng là
một kiến trúc phần mềm có thể sử dụng lại, bao gồm cả thiết kế và mã thực
hiện. Tuy nhiên, lại không có định nghĩa nào được thống nhất chung về
framework và các thành phần hợp thành của nó.
• Sau đây là một số các định nghĩa khác nhau hoặc tương tự nhau về framework
được nêu trong :
• “Một framework ràng buộc các lựa chọn chính xác về sự phân chia trạng thái
và luồng điều khiển, người dùng hoàn thiện hoặc mở rộng framework để tạo ra
một ứng dụng thực tế”
• “Một framework là một tập các lớp mà bao gồm một thiết kế trừu tượng cho
các giải pháp của một hoặc các vấn đề liên quan”
4
• “Một framework là một tập các đối tượng mà cộng tác với nhau để tạo ra một
tập các đáp ứng cho một ứng dụng hoặc một vùng hệ thống con”
• “Một framework là một tập các ký hiệu của các lớp cộng tác mà đạt được cả
các mẫu phạm vi nhỏ và các cơ chế chủ yếu để thực hiện các yêu cầu chung và
thiết kế trong một phạm vi ứng dụng cụ thể”
• “Một tập các lớp cộng tác với nhau mà tạo ra một thiết kế có thể sử dụng lại
cho một lớp cụ thể của phần mềm. Một framework cung cấp các hướng dẫn có
tính kiến trúc bằng cách phân chia thiết kế thành các lớp trừu tượng và định
nghĩa các đáp ứng và sự cộng tác của chúng. Một nhà phát triển tùy biến
framework thành một ứng dụng cụ thể bằng cách tạo ra các lớp con và tạo ra
các phiên bản của các lớp framework”
• Như vậy, một framework bao gồm một tập các lớp mà các thể hiện của chúng
cộng tác với nhau, được dự định để mở rộng, sử dụng lại cho các ứng dụng cụ
thể của một lĩnh vực. Một họ các vấn đề liên quan, cho phép tổng hợp trong
một framework. Hơn nữa, các framework được biểu diễn thành một ngôn ngữ
lập trình, như vậy nó cung cấp cho việc sử dụng lại cả mã thực hiện và thiết kế.
1.1.2. Cấu trúc của một framework
• Một framework hướng đối tượng bao gồm các thành phần sau:

Các tài liệu thiết kế
Các giao diện
Các lớp trừu tượng
Các thành phần
Các lớp
• Mối quan hệ giữa các thành phần khác nhau trong một framework được mô tả
như hình vẽ sau:
5

Hình 1.1. Mối quan hệ giữa các thành phần khác nhau trong một framework
• Các thành phần của một framework được mô tả như sau:
Các tài liệu thiết kế: thiết kế của một framework có thể bao gồm các lược đồ lớp, viết
bằng văn bản hoặc chí ít là một ý tưởng trong đầu của nhà phát triển.
Các giao diện: các giao diện miêu tả đáp ứng bên ngoài của các lớp. Các giao diện có
thể được sử dụng để mô hình các vai trò khác nhau trong hệ thống, ví dụ như các
vai trò trong một mẫu thiết kế. Một vai trò đại diện cho một nhóm nhỏ của các
phương pháp trong giao diện mà liên quan tới các phương pháp khác.
Các lớp trừu tượng: một lớp trừu tượng là một sự thực hiện chưa đầy đủ của một
hoặc nhiều giao diện. Nó có thể được sử dụng để định nghĩa cách đối xử mà sẽ là
chung cho một nhóm các thành phần thực hiện một nhóm các giao diện.
Các thành phần: Giống như các lớp, các thành phần có thể được tích hợp với các lớp
khác. Trong hình vẽ, có một mũi tên “là một phần của” giữa các lớp và các thành
phần. Nếu bản thân các lớp có một API được định nghĩa đầy đủ thì tập kết quả của
các lớp sẽ được biểu hiện như là một tổ hợp các thành phần. Một thành phần được
6
Các tài liệu
thiết kế
Các giao diện
Các lớp trừu tượng
Các thành phần

Các lớp
phản ánh
triển khai
triển khai
thừa kế
là một phần của
định nghĩa như sau: “Một thành phần phần mềm là một đơn vị kết cấu với các giao
diện được ghi rõ theo hợp đồng và các phụ thuộc ngữ cảnh rõ ràng. Một thành
phần phần mềm có thể được triển khai không phụ thuộc và được tổ hợp bằng các
hãng thứ ba”
Các lớp: Mức thấp nhất của một framework là các lớp. Các lớp chỉ khác với các
thành phần là trong thực tế, các API được công khai của nó không được đưa ra
trong các giao diện của một framework. Một cách điển hình là các lớp được sử
dụng bởi các thành phần để đại diện cho chức năng, ví dụ một người dùng
framework thường không nhìn thấy các lớp này trừ khi anh ta làm việc với các
thành phần.
• Cách thức làm việc của một framework như sau:
• Một framework làm việc bằng cách cung cấp một đặc tả rõ ràng của các tương
tác được mong đợi giữa các thành phần. Ví dụ, một thành phần có thể trông
chờ những gì từ các thành phần khác và cái gì nên được cung cấp tới chúng?
Một framework định nghĩa các dịch vụ lựa chọn, và cung cấp một giải thích
cho việc định nghĩa thành phần nào là một thành phần cung cấp. Như thế, một
thành phần sẽ có khả năng được mở rộng rất lớn và các thành phần mới có thể
tương tác mạnh mẽ với những cái đã có. Chúng cộng tác với các chi tiết, khía
cạnh cụ thể của các vấn đề được cân nhắc bởi framework. Các thành phần ứng
dụng có thể vẫn còn chứng minh tính tương thích với các vấn đề khác, như ngữ
nghĩa của dữ liệu mà chúng chuyển qua. Các bộ phận phụ thuộc có thể được
giới thiệu như là các thành phần của framework. Sự thi hành các thành phần
này có thể cùng framework xác định một dịch vụ và cung cấp các dịch vụ này
cho các thành phần khác.

1.1.3. Phân biệt framework với các khái niệm khác
• Một mẫu thiết kế khác với một framework ở ba điểm. Thứ nhất, một mẫu thiết
kế là trừu tượng hơn một framework, bởi vì một framework được bao gồm cả
mã, trong khi đó chỉ có các ví dụ của các mẫu thiết kế mới được mã hóa. Các
mẫu thiết kế thậm chí mô tả mục đích, việc cân bằng các yếu tố khác để đạt
được sự kết hợp tốt nhất và các kết quả của một thiết kế. Điều này không là
một trường hợp cho các framework. Thứ hai, các mẫu thiết kế là những kiến
trúc nhỏ hơn so với các framework. Do vậy, một framework có thể chứa một
số các mẫu thiết kế, nhưng điều ngược lại là không thể. Do vậy, các mẫu thiết
kế không có ảnh hưởng lớn tới kiến trúc của ứng dụng. Cuối cùng, các
framework được chuyên môn hóa hơn so với các mẫu thiết kế. Các framework
7
luôn luôn liên quan đến một miền ứng dụng cụ thể, trong khi đó các mẫu thiết
kế là chung và có thể được ứng dụng trong bất kỳ miền ứng dụng nào.
• Các ngôn ngữ mẫu khác với framework theo cách mà một ngôn ngữ mẫu miêu
tả: làm như thế nào để tạo ra một thiết kế. Trong khi đó, một framework hướng
đối tượng là một thiết kế. Các ngôn ngữ mẫu bổ sung cho một framework, do
chúng có thể hướng dẫn các kỹ sư phần mềm sử dụng framework như thế nào,
và mô tả tại sao nó lại được thiết kế như vậy.
• Một ứng dụng hướng đối tượng khác với một framework ở chỗ, một ứng dụng
mô tả một chương trình thực hiện phức tạp mà thỏa mãn một yêu cầu cụ thể.
Framework đạt được các tính năng của một ứng dụng nhưng nó không thể thi
hành bởi vì nó không bao gồm các tương tác trong trường hợp ứng dụng cụ
thể.
• Các framework khác với các thư viện lớp ở chỗ: chúng nhắm tới các miền ứng
dụng cụ thể. Trong khi đó, các thư viện lớp cung cấp cho người sử dụng các sự
thực hiện trước của thuật toán. Các thư viện lớp là thụ động, người sử dụng gọi
các phương pháp trong thư viện lớp để thực hiện một số hoạt động. Trong khi
đó các framework định nghĩa khung cho một ứng dụng thực tế và điều khiển
luồng điều khiển trong ứng dụng. Các framework có thể khác so với thư viện

lớp, nhưng chúng có thể sử dụng các thư viện lớp đã có sẵn để thực hiện các
thuật toán chung và các cấu trúc dữ liệu.
• Các thành phần phần mềm ban đầu đã được dự định là các thành phần chức
năng riêng lẻ mà có thể được đầu tư từ nhà cung cấp và tích hợp vào trong các
ứng dụng. Các framework dường như là những thành phần mà có thể được đầu
tư từ nhà cung cấp và nhiều hơn một framework có thể được sử dụng trong
một ứng dụng. Tuy nhiên, một điểm khác dễ nhận thấy giữa chúng là các
framework cung cấp một bộ rộng hơn các dịch vụ so với các thành phần phần
mềm. Chúng có khả năng tùy biến nhiều hơn, có các giao diện phức tạp hơn và
điều quan trọng hơn là chúng thực sự định nghĩa cho một họ ứng dụng hoặc
một diện rộng của các ứng dụng. Do vậy, các framework là khó học hơn đối
với các nhà phát triển, nhưng một khi đã hiểu được hết framework thì sẽ có
được sự linh động cao hơn và với một framework được thiết kế tốt thì có thể
giảm được các nỗ lực cần bỏ ra để xây dựng một ứng dụng đã được tùy biến rõ
rệt hơn.
• Trong khi các framework và các thành phần là các kỹ thuật khác nhau, chúng
nên được xem và được sử dụng như các kỹ thuật cộng tác với nhau. Với các
framework có thể sử dụng các thành phần và các ứng dụng được phát triển sử
8
dụng các framework thậm chí có thể tiện dụng hơn các thành phần. Ví dụ, một
ứng dụng Visual C++ được tạo với MFC framework, thậm chí có thể sử dụng
các thành phần ActiveX trong giao diện của nó giống như việc trao đổi với các
thành phần ActiveX được đóng gói trong MFC framework. Một ví dụ khác cho
sự phụ thuộc lẫn nhau giữa các framework và thành phần là việc sử dụng các
framework để tạo các thành phần mới, ví dụ, framework Active Template
Library (ATL) của Microsoft được sử dụng rộng rãi trong việc tạo các thành
phần ActiveX.
1.2. Các đặc điểm của framework
Một framework hướng đối tượng có bốn đặc điểm chính sau :
Khả năng môđun hóa

Khả năng sử dụng lại
Khả năng mở rộng
Sự đổi chiều của điều khiển
Về đặc điểm thứ nhất, các framework tăng cường khả năng môđun hóa bằng cách
đóng gói các chi tiết thực hiện không chắc chắn đằng sau các giao diện chắc chắn. Khả
năng này giúp cho việc tăng cường chất lượng của phần mềm bằng cách cục bộ hóa các
tác động của những thay đổi về kiến trúc và sự thực hiện. Sự cục bộ hóa này giảm các
nỗ lực được yêu cầu để hiểu và duy trì phần mềm hiện có.
Mặt khác, các giao diện chắc chắn được cung cấp bởi các framework còn tăng
cường khả năng sử dụng lại bằng cách định nghĩa các thành phần chung mà có thể được
áp dụng để tạo ra các ứng dụng mới. Khả năng sử dụng lại của framework thúc đẩy kiến
thức của miền ứng dụng và ưu tiên nỗ lực của các nhà phát triển kinh nghiệm để tránh
việc tạo và làm hợp lệ lại các giải pháp chung cho các yêu cầu của ứng dụng lặp lại và
các thách thức trong thiết kế phần mềm. Việc sử dụng lại các thành phần thiết kế có thể
là một sự cải tiến đáng kể trong sản xuất chương trình, cũng như tốt cho việc nâng cao
chất lượng, tính hiệu quả, độ tin cậy và tính sẵn sàng của phần mềm.
Về khả năng mở rộng, một framework tăng cường khả năng mở rộng bằng cách
cung cấp các điểm nóng tường minh mà cho phép các ứng dụng mở rộng các giao diện
chắc chắn và cách ứng xử của vùng ứng dụng với các sự thay đổi được yêu cầu bởi các
trường hợp của ứng dụng trong một ngữ cảnh cụ thể. Khả năng mở rộng của framework
là cần thiết để đảm bảo các sự điều chỉnh có tính thời gian của các dịch vụ và tính năng
ứng dụng mới.
Cuối cùng, đặc điểm của kiến trúc thời gian chạy của một framework là sự đổi
chiều của điều khiển, thường được gọi là “Nguyên tắc Hollywood”- Đừng gọi cho
chúng tôi, chúng tôi sẽ gọi cho bạn. Kiến trúc này cho phép ứng dụng hợp với các quy
9
tắc tiêu chuẩn bằng cách điều chỉnh từng bước xử lý, bằng các đối tượng quản lý sự
kiện mà được viện dẫn thông qua cơ chế gửi kích họat lại của framework. Khi các sự
kiện xảy ra, framework gửi lại kích hoạt bằng cách viện dẫn phương pháp móc nối trên
các đối tượng quản lý sự kiện đã được đăng ký trước, cái mà thực hiện việc xử lý ứng

dụng cụ thể trên các sự kiện. Đổi chiều điều khiển cho phép framework định nghĩa một
tập các phương pháp ứng dụng cụ thể để đáp ứng với các sự kiện ở bên ngoài.
CHƯƠNG 2
GIỚI THIỆU MỘT SỐ FRAMEWORK CỤ THỂ
2.1. Higgin Trust Framework
2.1.1. Giới thiệu về Higgins
Higgins là một framework cho phép người dùng và doanh nghiệp tích hợp thông
tin về nhận dạng, hiện trạng, các mối quan hệ giữa các hệ thống. Sử dụng lớp context
providers, hệ thống sẵn có cũng như hệ thống mới như các xí nghiệp, tổ chức và các
công nghệ liên lạc (như LDAP, email, IM,…) có thể gắn vào Higgins framework. Ứng
dụng sử dụng Higgins API có thể tích hợp ảo thông tin nhận dạng, hiện trạng và mối
quan hệ giữa các hệ thống hỗn tạp. Higgins thiết kế với mục đích giúp người phát triển
ứng dụng truy cập thông tin thông qua trình duyệt, dịch vụ web.
Ứng dụng có thể sử dụng Higgins để tạo khung nhìn thống nhất về thông tin nhận
dạng và các mối quan hệ . Lĩnh vực tập trung nhất của Higgins là cung cấp cơ sở cho
nhận dạng thông tin người dùng và ứng dụng quản lý thông tin cá nhân. Higgins cung
cấp sự tích hợp ảo, liên kết, quản lý và khả năng search cho thông tin nhận dạng, các
mối quan hệ giữa các hệ thống khác biệt.
Các dịch vụ của Higgins dựa trên các plug-in ContextProviders làm cầu nối giữa
framework và hệ thống sẵn có, hoặc giữa framework đến các hệ thống sẽ xây dựng sau
này. Mỗi ContextProvider thi hành một context nào đó. Context được hiểu là “môi
trường và hoàn cảnh xung quanh quyết định đến ý nghĩa của nhận dạng số và các chính
sách, giao thức chi phối sự tương tác giữa chúng” [eclipse.org/higgins].
Một Context có thể bao gồm thông tin về một đối tượng số đơn lẻ hoặc mô tả một
nhóm các đối tượng số như một đội dự án, một văn phòng, tổ chức, gia đình, nhóm
khách hàng,…
10
ContextProviders thường hoạt động như “cầu nối” giữa framework với hệ thống
sẵn có. “Cầu nối” này cung cấp kết nối đến kho lưu trữ như LDAP server, hệ thống
quản lý nhận dạng, diễn đàn, và các mạng xã hội. Nó cũng có thể kết nối với các mạng

giao tiếp như email, instance message,…
Kiến trúc dịch vụ của Higgins framework cho phép ứng dụng mở rộng phạm vi
truy cập đến các hệ thống ngoài mà không cần phải thay đổi bản thân ứng dụng.
2.1.2. Các thành phần của Higgins
Higgins gồm 12 thành phần: Higgins Browser Extension, RP Enablement, I-Card
Manager, RP Protocol Support, ISS Client UI, I-Card Selector Service (ISS), I-Card
Registry, I-Card Provider, Token Service, Token Provider, Identity Attribute Service
(IdAS), Context Provider được tổ chức như hình 3.2.
11
Hình 2.1. Higgins Trust Framework
Chúng ta sẽ lần lượt tìm hiểu các thành phần của Higgins framework.
2.1.2.1. Browser Extension
Higgins Browser Extension là một mở rộng trình duyệt Firefox viết bằng
javascript. Khi Higgins Extension được cài đặt và trình duyệt duyệt đến một site đối tác,
Higgins Browser Extension quản lý quyền truy cập và các tương tác liên quan đến định
danh tương tác giữa site đối tác và dịch vụ Higgins.
2.1.2.2. RP Enablement
RP Enablement là tập hợp các thành phần sử dụng để tạo site đối tác. Các thành
phần con tách biệt trong mục này sẽ được tạo ra để hoạt động như các dịch vụ tin tưởng
cho lớp các giao thức khác nhau.
12
Hình 2.2. Kiến trúc của Higgins
2.1.2.3. I-Card Manager
Cung cấp giao diện quản lý web-based đến I-Card của người dùng và ưu tiên dữ
liệu ngữ cảnh. Thành phần này được truy cập bởi một nút bấm được thêm vào thanh
công cụ của trình duyệt.
Hiện này, thành phần này đang được phát triển trên ngôn ngữ java, các thành phần
con base-web sử dụng công nghệ JSP/Servlets, JSF, AJAX, JavaMail,…
2.1.2.4. RP Protocol Support
Cung cấp hỗ trợ cho client, bao gồm cả Higgins Browser Extension.

Thành phần này hỗ trợ cho
- Giao diện người dùng
- Mẫu tương tác giữa các đối tác
- Hỗ trợ cho openID 2.0: openID là một framework mã nguồn mở để quản lý ID
cho chủ yếu các website.
2.1.2.5. ISS Client UI
13
Hình 2.3. RP Enablement
Cung cấp mọi giao diện người dùng và khả năng tạo mới thẻ CardSpace tương
thích. Nó cung cấp chức năng tương tự như CardSpace trên Windows Vista. ISS Client
UI được gọi bởi RP Protocol Support trên máy khách của người dùng.
2.1.2.6. I-Card Selector Service
I-Card Selector Service ghép chính sách an ninh của đối tác tới một hoặc nhiều I-
Card thỏa mãn chính sách đó. Hay nói cách khác, I-Card Selector Service cố gắng đưa
ra một I-Card thích hợp với nhu cầu của đối tác.
2.1.2.7. I-Card Registry
Thành phần I-Card Registry quản lý tập các I-Card của người dùng. Mỗi I-Card
được tạo và quản lý bởi một I-Card Provider và thi hành giao diện I-Card Interface.
Các giao diện của I-Card Registry có hai phần:
- Một giao diện để quản lý I-Card như thêm mới, xóa bỏ và duyệt các I-Card.
- Tập các giao diện thi hành bởi I-Card Provider.
2.1.2.8. I-Card Provider
I-Card Provider chịu trách nhiệm tạo và quản lý các I-Card thi hành giao diện I-
Card Interfaces. Thành phần này cũng chịu trách nhiệm nhập I-Card từ các loại dữ liệu
card khác nhau. Lưu ý là I-Card Provider chỉ chịu trách nhiệm nhập dữ liệu, việc xuất
dữ liệu được thi hành bởi chính lớp I-Card.
Higgins framework hiện đang thi hành các I-Card Provider sau:
- CardSpace Managed I-Card Provider
- CardSpace Personal I-Card Provider
- URI Managed I-Card Provider

- URI Personal I-Card Provider
2.1.2.9. Token Service
Token Service tạo nhận dạng số dùng được cho đối tác từ dữ liệu yêu cầu. Dữ liệu
yêu cầu có thể truyền bởi I-Card Provider đến Token Service sau đso đến Token
Provider hoặc Token Issuer có thể nhận dữ liệu từ I-Card Provider.
14
Thuật ngữ Token Service trong Higgins còn được sử dụng thay cho Sercurity
Token Service (STS). Token Service thi hành OASIS WS-Trust chuẩn và cung cấp hỗ
trợ cho việc triển khai trong nhiều tình huống [eclipse.org]
2.1.2.10. Token Provider
Token Provider cung cấp việc đóng gói cho các token cho Token Service.
2.1.2.11. Identity Attribute Service
Để hỗ trợ môi trường động nơi nguồn của thông tin định danh có thể thay đổi, cần
thiết phải cung cấp một phương thức chung cho việc truy cập thông tin định danh và
thuộc tính từ các kho định danh. Identity Attribute Service cung cấp khung nhìn thống
nhất về thông tin định danh. Identity Atrribute Service bao gồm các dịch vụ như: nạp
ngữ cảnh, mở ngữ cảnh từ các ngữ cảnh khác, xác nhận thẩm quyền trong quá trình ngữ
cảnh mở, truy cập nội dung của ngữ cảnh mở và xem xét đối tượng số và các thuộc
15
Hình 2.4. Kiến trúc Token Service

×