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

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyễn Duy Hiệp  
KHUNG LÀM VIC VÀ  
NG DNG CHO BÀI TOÁN LUNG CÔNG VIC  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
HÀ NỘI - 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn Duy Hip  
KHUNG LÀM VIC VÀ  
NG DNG CHO BÀI TOÁN LUNG CÔNG VIC  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
Cán bộ hướng dn: PGS. TS. Nguyễn Văn Vỵ  
HÀ NỘI - 2009  
LI CẢM ƠN  
Lời đầu tiên em xin được gi li cảm ơn chân thành nhất ti thy giáo PGS.  
TS. Nguyễn Văn Vỵ. Thầy đã giúp em trong việc định hướng đề tài, tìm hiu tài  
liu, nghiên cu vKhung làm vic(Framework) Lung công vic(Workflow).  
Thy cũng giúp đỡ em rt nhiu trong kỹ năng viết, trình bày khóa lun.  
Em xin mt ln nữa được gi li cảm ơn chân thành nhất đến thy!  
Em cũng được xin gi li cảm ơn chân thành nhất đến các thy cô trong  
trường Đại hc Công nghệ, đặc bit các thy cô trong khoa Công nghphn mm.  
Các thầy cô đã tn tình dy dvà tạo điều kin cho em hc 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ô!  
Cui cùng em xin cảm ơn tới Gia đình, bm, bạn bè em đã luôn cvũ động  
viên, tạo điu kiện giúp đỡ em trong quá trình thc hin khóa lun tt nghip này!  
Nội, ngày 11 tháng 05 năm 2009  
Sinh viên  
Nguyn Duy Hip  
i
TÓM TẮT NỘI DUNG KHÓA LUẬN  
Qua tìm hiu thc tế cho thy, vi các tchức, cơ quan khác nhau có nghiệp  
vthc hin công tác tchc xlý và giao vic không ging nhau. Tuy nhiên về cơ  
bn các công ty, doanh nghiệp đều có mô hình qun lý và lung quy trình nghip  
vthc hin công tác tchc và giao vic giống nhau. Do đó, để phát trin và mở  
rng mt hthng có tính cht thương mại hoá, trin khai trên quy mô ln, dbo  
trì, cu hình, phát trin mrng, khóa lun đã nghiên cu đặc điểm, tính cht và  
cách xây dng mt Khung làm vic(Framework), các bài toán lung công vic cụ  
th, phân tích thiết kế bài toán lung công vic tng quát được rút ra tcác bài toán  
cth, tích hp và ghép ni các mu thiết kế li thành các khung làm vic. Các  
khung làm vic htrợ các điểm thế chỗ trước đkhi ng dng trin khai có ththay  
thế các điểm thế chỗ trước này. Khi trin khai ng dng cho một đơn vị có sthay  
đổi vquy trình nghip vxlý công vic ta chcn xây dng mi thêm mt vài  
mô đun tương ứng vi sự thay đổi đó và lắp ghép vào các điểm thế chỗ trước để to  
ra ng dng mới đáp ứng hoàn toàn vsự thay đổi mô hình qun lý và quy trình  
nghip vxlý của đơn vị cn trin khai áp dng hthng.  
Đề tài của khóa luận này là “Khung làm vic-Framework và ứng dụng cho  
bài toán lung công vic”. 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. Nhm trả li 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: Gii thiu mt sFramework cụ thể đã có. Phn này đưa ra  
mt số Framework điển hình đã được xây dng và ứng dụng giải quyết các bài toán  
cụ th.  
Chương 3: Xây dng Framework giải quyết bài toán Lung công vic-  
Workflow. Nêu ra bài toán Workflow tng quát bng li và bng các mô hình  
nghip vụ, các ca sử dụng và các sơ đồ lp. Phân tích thiết kế tiến ti chi tiết hóa  
các ca sử dng, gn vào đó là các mu-patterns tạo nên mt biểu đồ lp có kèm theo  
các patterns sn có. Da trên phân tích thiết kế, xây dng framework giải quyết bài  
toán lung công vic trên nn tảng .NET framework 3.5 và ngôn nglp trình C#.  
ii  
Chương 4: ng dụng Framework trên để demo một bài toán giao việc  
KẾT LUẬN: Phần này nêu kết quả đạt được của khóa luận và đề xuất  
nh.  
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  
LỜI CẢM ƠN ..............................................................................................................i  
TÓM TẮT NỘI DUNG KHÓA LUẬN .......................................................................ii  
MỤC LỤC:.................................................................................................................iv  
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ TH..............................................................viii  
DANH MỤC CÁC BẢNG .........................................................................................ix  
MỞ ĐẦU:............................................................................................................... - 1 -  
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 -  
GII THIU MT SFRAMEWORK 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.2.1. Browser Extension......................................................................... - 12 -  
2.1.2.2. RP Enablement.............................................................................. - 12 -  
2.1.2.3. I-Card Manager ............................................................................ - 13 -  
2.1.2.4. RP Protocol Support...................................................................... - 13 -  
2.1.2.5. ISS Client UI ................................................................................. - 13 -  
2.1.2.6. I-Card Selector Service.................................................................. - 14 -  
2.1.2.7. I-Card Registry.............................................................................. - 14 -  
2.1.2.8. I-Card Provider............................................................................. - 14 -  
2.1.2.9. Token Service ................................................................................ - 14 -  
2.1.2.10. Token Provider............................................................................ - 15 -  
2.1.2.11. Identity Attribute Service ............................................................. - 15 -  
2.1.2.12. Context Provider ......................................................................... - 16 -  
iv  
2.1.3. Mô hình dữ liệu của Higgins ........................................................... - 16 -  
2.1.3.1. Các khái niệm dữ liệu cơ bản ....................................................... - 16 -  
2.1.3.2. Mục tiêu của mô hình .................................................................... - 18 -  
2.2. JhotDraw............................................................................................. - 18 -  
2.2.1. Gii thiu khung làm vic JhotDraw ................................................ - 18 -  
2.2.2. Kiến trúc tng quan vthiế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.1. Mô tả bài toán quản lý công việc tại một công ty thiết kế đồ nội thất gia đình:- 24 -  
3.1.1. Bài toán đặt ra:.................................................................................. - 24 -  
3.1.2. 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: - 24 -  
3.1.3. Mô hình miền lĩnh vực: ..................................................................... - 25 -  
3.2. Mô tả bài toán quản lý thanh toán tiền lương:............................................. - 26 -  
3.2.1. Bài toán đặt ra:.................................................................................. - 26 -  
3.2.2. Sơ đồ tiến trình quản lý hoạt động thanh toán tiền lương:.................. - 27 -  
3.2.3. Mô hình miền lĩnh vực: ..................................................................... - 30 -  
3.3. Mô tả bài toán tổng quát:............................................................................ - 30 -  
3.3.1. Các thông tin chung về bài toán luồng công việc:.............................. - 30 -  
3.3.2. Công tác quản lý bài toán luồng công việc:........................................ - 32 -  
3.3.3. Sơ đồ tiến trình quản lý hoạt động giao công việc.............................. - 32 -  
3.3.4. Các yêu cầu xây dựng hệ thống quản lý hoạt động giao công việc..... - 34 -  
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.6.1. Các khái niệm dự tuyển cho nghiệp vụ quản lý giao việc........... - 35 -  
3.3.6.2. Mô hình lĩnh vực nghiệp v....................................................... - 36 -  
3.3.7. Đặc tả hệ thống bài toán luồng công việc........................................... - 36 -  
3.3.7.1.  
3.3.7.2.  
Các tác nhân (Actor) trong hệ thống .............................................. - 36 -  
Các ca sử dụng (Usecase) của hệ thống ......................................... - 38 -  
v
3.3.7.2.1. Ca sử dụng Đăng nhập hệ thống............................................. - 38 -  
3.3.7.2.2. Ca sử dụng Tạo công việc mới............................................... - 39 -  
3.3.7.2.3. Ca sử dụng Sửa thông tin hồ sơ công việc.............................. - 39 -  
3.3.7.2.4. Ca sử dụng Xoá hồ sơ công việc ............................................ - 39 -  
3.3.7.2.5. Ca sử dụng Phân giải quyết công việc.................................... - 40 -  
3.3.7.2.6. Ca sử dụng Chỉ đạo giải quyết công việc ............................... - 40 -  
3.3.7.2.7. Ca sử dụng sửa Chỉ đạo giải quyết công việc ......................... - 40 -  
3.3.7.2.8. Ca sử dụng Giải quyết công việc............................................ - 41 -  
3.3.7.2.9. Ca sử dụng Báo cáo thống kê................................................. - 41 -  
3.3.7.2.10. Ca sử dụng Xem và tra cứu công việc.................................... - 42 -  
3.3.7.2.11. Ca sử dụng Cập nhật danh mục từ điển .................................. - 42 -  
3.3.7.2.12. Ca sử dụng Cập nhật người dùng ........................................... - 42 -  
3.3.7.2.13. Ca sdụng Cập nhật nhóm quyền.......................................... - 43 -  
3.3.7.2.14. Ca sử dụng Phân quyền truy nhập.......................................... - 43 -  
3.3.8. Mô hình ca sử dụng tổng thể ............................................................. - 43 -  
3.3.8.1. Gói ca sử dụng Đăng nhập hệ thống .......................................... - 43 -  
3.3.8.2. Gói ca sử dụng Quản lý giải quyết công việc ............................. - 44 -  
3.3.8.3. Gói ca sử dụng Quản trị tiện ích ................................................ - 45 -  
3.3.8.4. Gói ca sử dụng Báo cáo thống kê............................................... - 46 -  
3.3.8.5. Gói ca sử dụng Quản trị phân quyền người dùng ....................... - 46 -  
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.3.9.3. Gói ca sử dụng Quản trị tiện ích ................................................... - 53 -  
3.3.9.4. Gói ca sử dụng Báo cáo thống kê.................................................. - 57 -  
3.3.9.5. Gói ca sử dụng Quản trị phân quyền người dùng .......................... - 61 -  
3.4. Phân tích các lớp:....................................................................................... - 63 -  
3.4.1. Các lớp giao diện hệ thống: ............................................................... - 63 -  
3.4.2. Các lớp thao tác Sở dữ liệu:......................................................... - 64 -  
3.4.3. Các lớp dịch vụ(Services):................................................................. - 65 -  
3.4.4. Các lớp thực thể: ............................................................................... - 66 -  
3.5. Áp dụng các mẫu (patterns) trong việc thiết kế cho các ca sử dụng: ........... - 67 -  
vi  
3.5.1. Gói ca sử dụng Đăng nhập hệ thống .................................................. - 67 -  
3.5.2. Gói ca sử dụng Quản lý giải quyết công việc......................................... - 68 -  
a. Ca sử dụng Cập nhật công việc............................................................... - 69 -  
b. Ca sử dụng Phân công việc..................................................................... - 72 -  
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 -  
3.6.1. Lớp giao diện ................................................................................. - 76 -  
3.6.2. Lớp điều khiển ............................................................................... - 78 -  
3.6.3. Lớp thực th.................................................................................... - 80 -  
KẾT LUẬN.......................................................................................................... - 87 -  
TÀI LIỆU THAM KHẢO..................................................................................... - 89 -  
Tài liệu tiếng Việt ........................................................................................... - 89 -  
Tài liệu tiếng Anh ........................................................................................... - 89 -  
Các trang Web ................................................................................................ - 90 -  
Bộ công c...................................................................................................... - 90 -  
vii  
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  
Hình 2.3. RP Enablement  
Hình 2.4. Kiến trúc Token Service  
Hình 2.5. Kiến trúc tng quan vthiết kế của JhotDraw  
Hình 2.6 : Các mu thiết kế  
Hình 3.1: Sơ đồ hoạt đng qun lý công vic ti công ty thiết kế đồ ni 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 min lĩnh vực ca bài toán qun 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 đồ lp thiết kế thc thi ca sdng To công vic mi  
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  
viii  
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  
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  
ix  
MỞ ĐẦU  
Cơ sở khoa học và thực tiễn của đề tài:  
a. Cơ sở khoa hc và ý nghĩa thực tin ca vic nghiên cu và ng dng các mô  
hình sdng li vào quá trình thiết kế phn mm:  
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 vic-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 hc và ý nghĩa thc tin ca vic nghiên cu, thiết kế và xây dng  
úng dng “ Khung làm vic gii quyết bài toán lung công vic”:  
Ngày nay, vi sphát trin nhanh chóng ca khoa hc kthut nói chung và  
công nghệ thông tin nói riêng đã mang li nhiu thành tu to ln. Nhng thành tu  
của khoa học được áp dng trong tt ccác hoạt động của con người và đã đem lại  
nhng thành công hết sc ln lao. Vit Nam, hin nay, các công ty, xí nghip và  
các doanh nghip va và nhhu hết đã trang bị cơ sở htng vmáy tính và kết  
ni mng đã tạo cơ sở cho vic áp dng nhng công nghmi ca mng máy tính  
và internet vào lĩnh vực tìm kiếm, tchc và xlý thông tin phc vụ công tác điều  
hành và qun lý sn xut. Với cơ sở htng công nghthông tin ngày càng phát  
trin mrng, các tchc, doanh nghip ngày càng có nhu cu tin hc hoá mi lĩnh  
vc công vic, sn xut, qun lý,… và mong mun mi thông tin quản lý điều hành  
sn xuất đều được lưu trữ trên máy tính để có thtra cu tìm kiếm ddàng và nhanh  
chóng mi khi có nhu cu.  
- 1 -  
Nhng hoạt động mang tính cht lung công vic như hoạt động giao vic và  
điều hành xlý vic thc hin công vic là mt hoạt đng chủ đạo trong hu hết các  
tchc, doanh nghip. Tuy nhiên, qua kho sát thc tế cho thy, hin nay vic tổ  
chc và qun lý hoạt động giao công vic trong các tchc, xí nghip chyếu thc  
hin trc tiếp bng ming và qun lý da trên trên giy tờ. Do đó, để tchc và  
theo dõi điều hành mt công vic thc hin qua nhiều người, nhiu cp, trên nhiu  
giai đoạn thi gian khác nhau gp rt nhiều khó khăn. Việc tin hc hoá hoạt động  
này để có thtchc xlý, theo dõi hoạt động giao công vic trên hthng máy  
tính là nhu cu cp thiết.  
Vic ng dng công nghthông tin vào tchc, qun lý hoạt động giao công  
vic là mt trong các bin pháp có ý nghĩa thiết thc trong vic áp dng các thành  
tu khoa hc kthuật vào công tác điều hành và qun lý sn xut trong các doanh  
nghip.  
Tnhu cu thc tin xã hội và đặc bit là của đơn vị đang công tác, cùng với  
cơ sở khoa hc ca vic nghiên cu ng dng các mô hình sdng li vào quá trình  
phân tích thiết kế phn mm, luận văn đã chọn đề tài vi tên gi “Khung làm vic  
ng dng cho bài toán lung công vic”.  
Mc tiêu ca bài toán “Lung công viclà xây dng mt hthng thông tin  
tchc và qun lý các hoạt động giao công việc đang thực hin trong mt tchc,  
doanh nghip phân theo các cp qun lý theo từng đầu người cthda trên mng  
máy tính. Hthng giúp các cp lãnh đạo nm sát tình hình thc hin công vic và  
đưa ra ý kiến chỉ đạo và hướng gii quyết đúng đắn, kp thi nhm nâng cao hiu  
ququn lý. Hthng cung cấp các đầu mc tra cu và tng hp các công việc đã  
và đang thực hin trên mạng máy tính để làm các thống kê, báo cáo định ktheo  
yêu cu.  
Hthống được xây dng sdng các công nghkthut mới như: ứng dng  
hướng tiếp cn áp dng các mu thiết kế, sdng công cmô 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 dng công nghệ  
Windows Applications để cp nht và xử lý thông tin.  
Với hướng tiếp cn phân tích và thiết kế hthng áp dng công nghệ hướng  
đối tượng sdng các mu thiết kế gn vi mt min ng dng cth(bài toán  
lung công vic) và sdng ngôn ngC# da trên nn tng .NET Framework 3.5  
để xây dng và phát trin hthng, cho phép hthng dbo trì và phát trin mở  
- 2 -  
rộng trong tương lai đáp ứng được các yêu cầu thay đổi và phát trin ngày càng cao  
ca xã hi.  
Mục tiêu và phạm vi nghiên cứu của luận văn  
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à to 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 -  
Các tài liu  
thiết kế  
phn ánh  
Các giao din  
trin khai  
Các lp trừu tượng  
tha kế  
Các thành phn  
trin khai  
là mt phn ca  
Các lp  
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 đị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”  
- 6 -  
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 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ó  
- 7 -  
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à tha 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ử 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.  
- 8 -  
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 thnhấ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 thc hin không chc chắn đng sau các giao din chc chn. Khả  
năng này giúp cho việc tăng cường chất lượng ca phn mm bng cách cc bhóa  
các tác động ca những thay đổi vkiến trúc và sthc hin. Scc bhóa này gim  
các nlực được yêu cầu để hiu và duy trì phn mm hin có.  
Mt khác, các giao din chc chắn được cung cp bi các framework còn tăng  
cường khả năng sử dng li bng cách định nghĩa các thành phn chung mà có thể  
được áp dụng để to ra các ng dng mi. Khả năng sử dng li ca framework thúc  
đẩy kiến thc ca min ng dụng và ưu tiên nlc ca các nhà phát trin kinh nghim  
để tránh vic to và làm hp lli các gii pháp chung cho các yêu cu ca ng dng  
lp li và các thách thc trong thiết kế phn mm. Vic sdng li các thành phn  
thiết kế có thlà mt sci tiến đáng kể trong sn xuất chương trình, cũng như tốt cho  
vic nâng cao chất lưng, tính hiu quả, độ tin cy và tính sn sàng ca phn mm.  
Vkhả năng mở rng, một framework tăng cường khả năng mở rng bng cách  
cung cấp các điểm nóng tường minh mà cho phép các ng dng mrng các giao din  
chc chn và cách ng xca vùng ng dng vi các sự thay đổi được yêu cu bi các  
trường hp ca ng dng trong mt ngcnh cth. Khả năng mở rng ca  
framework là cn thiết để đảm bo các sự điu chnh có tính thi gian ca các dch vụ  
và tính năng ứng dng mi.  
Cuối cùng, đặc điểm ca kiến trúc thi gian chy ca mt framework là sự đổi  
chiu của điều khiển, thường được gi là “Nguyên tc Hollywood”- Đừng gi cho  
chúng tôi, chúng tôi sgi cho bn. Kiến trúc này cho phép ng dng hp vi các quy  
tc tiêu chun bằng cách điều chnh từng bước xlý, bằng các đối tượng qun lý sự  
kiện mà được vin dẫn thông qua cơ chế gi kích hat li ca framework. Khi các sự  
kin xy ra, framework gi li kích hot bng cách vin dẫn phương pháp móc nối trên  
các đối tượng qun lý skiện đã được đăng ký trước, cái mà thc hin vic xng  
dng cthtrên các skiện. Đổi chiều điều khiển cho phép framework định nghĩa  
mt tập các phương pháp ứng dng cthể để đáp ứng vi các skin bên ngoài.  
- 9 -  
CHƯƠNG 2  
GII THIU MT SFRAMEWORK 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 nghip tích hp thông  
tin vnhn dng, hin trng, các mi quan hgia các hthng. Sdng lp context  
providers, hthng sn có cũng như hệ thng mới như các xí nghiệp, tchc và các  
công nghliên lạc (như LDAP, email, IM,…) có thể gn vào Higgins framework. ng  
dng sdng Higgins API có thtích hp o thông tin nhn dng, hin trng và mi  
quan hgia các hthng hn tp. Higgins thiết kế vi mục đích giúp người phát trin  
ng dng truy cp thông tin thông qua trình duyt, dch vweb.  
ng dng có thsdụng Higgins để to khung nhìn thng nht vthông tin nhn  
dng và các mi quan h. Lĩnh vực tp trung nht ca Higgins là cung cấp cơ sở cho  
nhn dng thông tin người dùng và ng dng qun lý thông tin cá nhân. Higgins cung  
cp stích hp o, liên kết, qun lý và khả năng search cho thông tin nhận dng, các  
mi quan hgia các hthng khác bit.  
Các dch vca Higgins da trên các plug-in ContextProviders làm cu ni gia  
framework và hthng sn có, hoc giữa framework đến các hthng sxây dng sau  
này. Mi ContextProvider thi hành một context nào đó. Context được hiu là “môi  
trường và hoàn cnh xung quanh quyết định đến ý nghĩa của nhn dng svà các  
chính sách, giao thc chi phi sự tương tác giữa chúng” [eclipse.org/higgins].  
Mt Context có thbao gm thông tin vmột đối tượng số đơn lẻ hoc mô tả  
một nhóm các đối tượng số như một đội dán, một văn phòng, tchức, gia đình,  
nhóm khách hàng,…  
- 10 -  
Hình 2.1. Higgins Trust Framework  
ContextProviders thường hoạt động như “cầu ni” gia framework vi hthng  
sn có. “Cu ni” này cung cp kết nối đến kho lưu trữ như LDAP server, hệ thng  
qun lý nhn dng, diễn đàn, và các mạng xã hi. Nó cũng có thể kết ni vi các mng  
giao tiếp như email, instance message,…  
Kiến trúc dch vca Higgins framework cho phép ng dng mrng phm vi  
truy cập đến các hthng ngoài mà không cn phải thay đổi bn thân ng dng.  
2.1.2. Các thành phần của Higgins  
Higgins gm 12 thành phn: 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 tchức như hình 3.2.  
- 11 -  
Hình 2.2. Kiến trúc ca Higgins  
Chúng ta slần lưt tìm hiu các thành phn ca Higgins framework.  
2.1.2.1. Browser Extension  
Higgins Browser Extension là mt mrng trình duyt Firefox viết bng  
javascript. Khi Higgins Extension được cài đặt và trình duyt duyệt đến một site đối  
tác, Higgins Browser Extension qun lý quyn 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à dch vHiggins.  
2.1.2.2. RP Enablement  
RP Enablement là tp hp các thành phn sdụng để tạo site đối tác. Các thành  
phn con tách bit trong mc này sẽ được tạo ra để hoạt động như các dịch vtin  
tưởng cho lp các giao thc khác nhau.  
- 12 -  
Hình 2.3. RP Enablement  
2.1.2.3. I-Card Manager  
Cung cp giao din qun lý web-based đến I-Card của người dùng và ưu tiên dữ  
liu ngcnh. Thành phần này được truy cp bi mt nút bấm được thêm vào thanh  
công cca trình duyt.  
Hin này, thành phần này đang được phát trin trên ngôn ngjava, các thành  
phn con base-web sdng công nghJSP/Servlets, JSF, AJAX, JavaMail,…  
2.1.2.4. RP Protocol Support  
Cung cp htrcho client, bao gm cHiggins Browser Extension.  
Thành phn này htrcho  
- Giao diện người dùng  
- Mẫu tương tác giữa các đối tác  
- Htrcho openID 2.0: openID là mt framework mã ngun mở để qun lý  
ID cho chyếu các website.  
2.1.2.5. ISS Client UI  
- 13 -  
Cung cp mi giao diện người dùng và khả năng tạo mi thẻ CardSpace tương  
thích. Nó cung cp chức năng tương tự như CardSpace trên Windows Vista. ISS Client  
UI được gi bi 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 ti mt hoc nhiu I-  
Card tha mãn chính sách đó. Hay nói cách khác, I-Card Selector Service cgắng đưa  
ra mt I-Card thích hp vi nhu cu của đi tác.  
2.1.2.7. I-Card Registry  
Thành phn I-Card Registry qun lý tp các I-Card của người dùng. Mi I-Card  
được to và qun lý bi mt I-Card Provider và thi hành giao din I-Card Interface.  
Các giao din ca I-Card Registry có hai phn:  
- Mt giao diện để qun lý I-Card như thêm mới, xóa bvà duyt các I-Card.  
- Tp các giao din thi hành bi I-Card Provider.  
2.1.2.8. I-Card Provider  
I-Card Provider chu trách nhim to và qun lý các I-Card thi hành giao din I-  
Card Interfaces. Thành phn này cũng chịu trách nhim nhp I-Card tcác loi dliu  
card khác nhau. Lưu ý là I-Card Provider chchu trách nhim nhp dliu, vic xut  
dliệu đưc thi hành bi chính lp 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 to nhn dng số dùng được cho đối tác tdliu yêu cu. Dữ  
liu yêu cu có thtruyn bi I-Card Provider đến Token Service sau đso đến Token  
Provider hoc Token Issuer có thnhn dliu tI-Card Provider.  
- 14 -  
Hình 2.4. Kiến trúc Token Service  
Thut ngToken Service trong Higgins còn được sdng thay cho Sercurity  
Token Service (STS). Token Service thi hành OASIS WS-Trust chun và cung cp hỗ  
trcho vic trin khai trong nhiu tình hung [eclipse.org]  
2.1.2.10. Token Provider  
Token Provider cung cp việc đóng gói cho các token cho Token Service.  
2.1.2.11. Identity Attribute Service  
Để htrợ môi trường động nơi nguồn của thông tin định danh có thể thay đổi,  
cn thiết phi cung cp một phương thức chung cho vic truy cập thông tin định danh  
và thuc tính từ các kho định danh. Identity Attribute Service cung cp khung nhìn  
thng nht về thông tin đnh danh. Identity Atrribute Service bao gm các dch vụ như:  
np ngcnh, mngcnh tcác ngcnh khác, xác nhn thm quyn trong quá  
trình ngcnh m, truy cp ni dung ca ngcnh mở và xem xét đối tượng svà  
- 15 -  
các thuc tính, các mi liên kết của đối tượng sbên trong các ngcnh. Identity  
Attribute Service htrqun lý các thuc tính của đối tượng sliên kết bên trong các  
ngcnh. Các hàm giao din ca Identity Attribute Service có thtruy cập được thông  
qua ngôn ngjava hoc ác ngôn ngkhác cũng như thông qua WSDL và HTTP/XML.  
2.1.2.12. Context Provider  
Mt context Provider htrcho mt hoc nhiu loi ngcnh ca Higgins  
framework. Mt Context Provider chu trách nhim qun lý dliu bên trong, an toàn,  
mã hóa,… Context Provider cung cp khả năng chuyển đổi dliu mt hoc hai chiu  
tcấu trúc bên trong nó đến mô hình dliệu Identity Attribute Service thông thường.  
Trong nhiều trường hp Context Provider hoạt động như cầu ni ca các dch vsn  
có như hệ thng giao tiếp, mng xã hi, dch vcung cấp định danh, các trò chơi, ứng  
dng doanh nghip,… Thêm vào các dch vweb, Context Provider có thni lin  
ng dụng phía client như email, instance message và các ứng dng cng tác khác.  
Hin nay Higgins dkiến phát trin khong 3 – 5 Context Provider vi mục đích  
các đi tác có thsdng chúng cho dán ca h.  
2.1.3. Mô hình dữ liệu của Higgins  
Để xây dng mô hình dliệu, Higgins đưa ra các khái niệm cơ bản, đưa ra mục  
đích của mô hình từ đó xây thiết kế mô hình dliu.  
Chúng ta ln xem xét mt skhái niệm cơ bản trong mô hình dliu ca Higgins  
và nghiên cu mc tiêu ca mô hình.  
2.1.3.1. Các khái nim dliệu cơ bản  
2.1.3.1.1. Context  
Mt Higgins Context là mt tp hp mt hoc nhiều Digital Subjects (đối tượng  
số) định danh bi ContextId. Mt sContext là lp trừu tượng, ContextId ca nó  
không trvào mt thhin Context vt lý nào. Các Context còn li là không tru  
tượng, thông qua mt dch vtruy cp dliu mng (hoc ni b), ContextId trvào  
một đối tượng dliu nào đó là thể hin của Context được qun lý bi Context  
Provider.  
Mỗi đối tượng sbên trong mt ngcnh có một định danh duy nht là  
SubjectId. Định danh này duy nht bên trong không gian tên hoặc định nghĩa bởi  
Context C1 hoc các Context C2 mà C1 kế tha.  
- 16 -  
dvContext bao gm nhiều đối tượng sbao gồm: thư mục, nhóm dán, hệ  
thng giao tiếp,… Cũng có những Context thưng bao gm một đối tượng sduy nht  
như: thẻ tín dng, thnghip v, và các thiết ban ninh khác,…  
2.1.3.1.2. Digital Subject  
Đối tượng slà mt thc thmô thoc nm trong lĩnh vực số đang đề cập đến  
[originally from Kim's Laws, "person or thing" replaced with entity by PaulT]  
Đối tượng ssdng Higgins có những đặc điểm sau:  
- Một đối tượng sgm nhiu thuộc tính định danh, và có thkhông có thuôc  
tính nào c.  
- Mt vài thuộc tính định danh có thlà quan htham chiếu đến đối tượng số  
khác trong cùng ngcnh hoc gia các ngcnh vi nhau.  
- Do ngcnh có thlà cu trúc lng, nên liên kết giữa các đối tượng sliên  
quan đến nhng ngcảnh đó cung cấp mt cái nhìn tng quan ca một đối  
tượng s.  
- Không có mt ràng buc ngầm định giữa các đối tượng s. Ví dmột người  
có thể đòi hi tên ca hlà Joe trong một đối tượng số này, nhưng trong đối  
tượng skhác tên của người đó là JoAnn.  
2.1.3.1.3. Thuộc tính định danh  
Thuộc tính định danh được định nghĩa là mt thuc tính của đối tượng scó mt  
hoc nhiu giá tr, hoc không giá trnào [wikipedia.com]  
Trong Higgins mt thuộc tính định danh được định danh bi mt URI (URL)  
định nghĩa kiu ca nó. Ví d: URI: “http://openschemas.org/2006/person/surname”  
chra thuộc tính định danh đó mô tả hca một người. Giản đồ liên kết vi Context  
chứa định danh đó cho ta siêu dữ liu mô tliên kết URI đó.  
Giá trca thuộc tính định danh có thlà mt kiu dliu nguyên thy, hoc dữ  
liu phức như struct,…Có một thuộc tính định danh đặc bit là Subject Relationshop  
(quan hệ đối tượng) có giá trlà tham chiếu đến đối tượng skhác trong cùng ngữ  
cnh hay ngcnh khác.  
- 17 -  
Mt vài thuộc tính định danh được định nghĩa bởi ngcnh chứa đối tượng số để  
đưa ra những giá trkhác nhau. Ví dthuc tính “thi tiết” có thcó các giá trị  
{“nắng”, “mưa”, “nhiều mây”},…  
2.1.3.2. Mc tiêu ca mô hình  
- Mô hình ddàng mrng, các thuc tính và quan hddàng thêm vào sau  
này  
- Cho phép các đối tượng được định danh duy nht  
- Các đối tượng có thuc tính quan htham chiếu đến các đối tượng khác, các  
thuộc tính này được nhóm li thành tp hoc chui.  
- Mọi đối tượng và thuc tính của nó đếu được gán địa chỉ  
- Mi thuc tính được định danh bi một đa chURI toàn cc duy nht  
- Htrợ đa ngữ cnh  
- Mi ngcnh có thể định danh duy nht  
- Các ngcnh có thliên kết mt – mt hoc mt – nhiu vi các ngcnh  
khác.  
- Giản đồ mô tphi khthi.  
2.2. JhotDraw  
2.2.1. Gii thiu khung làm vic JhotDraw  
JhotDraw là mt khung làm vic ng dụng cho vic xây dng các ng dụng vẽ  
nh đồ họa. Nó là mt khung làm vic thun Java và là mt sản phm mã ngun m.  
Người sử dụng dùng các trình vẽ hình để tchc các đối tượng hình đồ họa trên mt  
min vẽ. Nó là mt loại ng dụng rt hay gp trong các máy tính để bản. Tuy nhiên  
các loại hình đồ họa vẽ lại khác nhau. Mt số trình vẽ hình cho phép người sử dụng vẽ  
các hình như tranh ản, mt số khác lại cho phép vẽ hình trong mt min nào đó để khi  
thao tác vi các hình đó thì nó thhin ngữ nghĩa của miền đó.  
JhotDraw là mt khung làm vic ng dụng có thể được phát trin cho các trình  
vẽ hình mang tính kỹ thut. Ban đầu nó được phát trin trong SmallTalk bi Kent  
Back và Ward Cunningham. Sau đó nó được phát trin bi Erich Gamma và Thomas  
Eggenschwiler (sau này được gọi là nhóm bt). Phiên bản hin tại là 6.1 beeta. Nó là  
mt khung làm vic có độ tin cy và độ chc chn rt cao, và là mt sản phm mã  
- 18 -  
ngun mrt ni tiếng, được thế gii mã ngun mở phát triển hơn 10 năm nay. Nó  
ng là mt trong nhng dán phát trin phn mềm được thiết kế mt cách sáng sủa  
để sử dụng lại và được gán cái nhãn “Khung làm vic” (Framework).  
JhotDraw, bản thân chúng da trên lịch slâu dài của các khung làm vic cho  
các trình vẽ hình. Mt cách cụ th, JhotDraw là mt phiên bản Java của mt khung  
làm vic SmallTalk (ngôn nglp trình hướng đối tượng đầu tiên), khung làm việc đó  
được gọi là HotDraw. HotDraw da trên SmallTalk ng là mt sản phm mã ngun  
mở và hin tại nó cũng phát trin song song cùng phiên bản của nó (JhotDraw) da  
trên Java. Hơn nữa, nhng phiên bản JhotDraw còn da trên nn tảng của ET++, mt  
khung làm vic ng dụng C++ trước đó.  
Erich Gamma sử dụng JhotDraw cho mục đích dạy học, đó chính là lý do tại sao  
được thiết kế và được trin khai rt tt. Mã ngun của nó được chú giải theo cách  
chú giải của tài liu Java. Hin nay nó đang là mt sản phm mã ngun mrt ni  
tiếng trên sourcefogce.net, đang được Wolfram Kaiser chịu trách nhim tng hp các  
phản hi và chịu trách nhim chính cho vic phát trin nó.  
2.2.2. Kiến trúc tng quan vthiết kế của JHotDraw  
- 19 -  

Tải về để xem bản đầy đủ

pdf 101 trang yennguyen 21/05/2025 10
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Khung làm việc và ứng dụng cho bài toán luồng công việc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_khung_lam_viec_va_ung_dung_cho_bai_toan_luong_cong.pdf