Tài liệu tham khảo công nghệ thông tin Khung làm việc và ứng dụng cho bài toán luồng công việc
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜ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 QUYNgành: Công Nghệ Thông Tin
HÀ NỘI - 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜ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 QUYNgành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: PGS TS Nguyễn Văn Vỵ
Trang 3LỜ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ô trongtrườ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ũ độngviê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
Trang 4TÓ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ệpvụ 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ệpvụ 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ảotrì, 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áncụ 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áckhung làm việc hỗ trợ các điểm thế chỗ trước để khi ứng dụng triển khai có thể thaythế 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àimô đ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ạora ứng dụng mới đáp ứng hoàn toàn về sự thay đổi mô hình quản lý và quy trìnhnghiệ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ì?”, p hần này nêu ra khái niệm, các đặc điểm và phân loạiframework.
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áncụ 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óacá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 theocá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àitoá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#.
Trang 5Chươ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.
Trang 6MỞ ĐẦ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 -
Trang 7-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 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.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.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 Các tác nhân (Actor) trong hệ thống - 36 -
Trang 8-3.3.7.2 Các ca sử dụng (Usecase) của hệ thống 38 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 sử dụ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 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
Trang 9-3.5 Áp dụng các mẫu (patterns) trong việc thiết kế cho các ca sử dụng: 67 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 69 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
Trang 10Hì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 JhotDrawHì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 đìnhHì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ếtkế đồ 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ươngHì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ươngHì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ệcHì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ệcHì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ùngHì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 SingletonHì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ẫuthiết kế Observer
Trang 11Hì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ệcHì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ẫuthiế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ệcHình 3.22: Biểu đồ lớp thiết kế thực thi ca sử dụng Giải quyết công việcHình 3.23: Biểu đồ lớp thiết kế thực thi ca sử dụng Báo cáo công việcHì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ệcBảng 2.3: Mô tả các tác nhân trong hệ thống
Trang 12MỞ ĐẦ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ầnmề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ụnglạ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ớpnà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ầnmề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ạicá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ácthiế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 trongnhữ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ệuquả hơn, người ta đã đưa ra khái niệm Khung làm việc-Framework Giống với cácmẫ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ạicá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ựucủ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ạinhữ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ếtnố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ínhvà 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ềuhà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áttriể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ĩnhvự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ànhsả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à nhanhchóng mỗi khi có nhu cầu.
Trang 13Nhữ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áctổ 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ựchiệ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ềugiai đ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 độngnà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áytí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ôngviệ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ànhtự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 doanhnghiệ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ớicơ 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ạngmá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ệuquả 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ỳ theoyê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ụnghướ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ánluồ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 caocủa xã hội
Trang 14Mụ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ụngcác mẫu thiết kế về hành vi và trình diễn để phân tích, thiết kế một ứngdụ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íchhướ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áccô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àitoá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ựngFramework.
– 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ánnhỏ.
Trang 15Chươ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ộtvấ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ácnhà 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ề designpattern – 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ìnhbầ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ề frameworkvà phạm vi ứng dụng của nó.
1.1 Khái niệm về framework1.1.1 Định nghĩa về framework
Thuật ngữ framework hướng đối tượng có thể được định nghĩa theo nhiềucách Một framework được định nghĩa như là một phần của thiết kế và thực hiện, chomộ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ộthệ 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ụnghoàn chỉnh Các framework nói chung được sử dụng và được phát triển khi cần pháttriể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 ứngdụ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 Tuynhiên, lại không có định nghĩa nào được thống nhất chung về framework và các thànhphầ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áivà 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 chocác giải pháp của một hoặc các vấn đề liên quan”
Trang 16“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ộttậ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ạicho 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ínhkiế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 ứngdụ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ớpframework”
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úngcộ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ủamộ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:
Trang 17Hì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ậpkế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ộtthành phần được định nghĩa như sau: “Một thành phần phần mềm là một đơn vị
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ớpphản ánh
triển khai
triển khai
thừa kế
là một phần của
Trang 18kế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ảnhrõ 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 đưara 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ùngframework 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ácthà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áctươ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ộtframework đị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 địnhnghĩ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ớinhữ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 đề đượccâ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ínhtươ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ácbộ phận phụ thuộc có thể được giới thiệu như là các thành phần của framework Sự thihà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ácdị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ốtnhấ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ềungượ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ụngnào.
Trang 19Các ngôn ngữ mẫu khác với framework theo cách mà một ngôn ngữ mẫumiê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 saonó 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 ứngdụ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ởivì 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ácphương pháp trong thư viện lớp để thực hiện một số hoạt động Trong khi đó cácframework định nghĩa khung cho một ứng dụng thực tế và điều khiển luồng điều khiểntrong ứ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úcdữ 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ứcnă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 ứngdụ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 Tuynhiê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ộnghơ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ềuhơ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ĩacho 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ệthơn.
Trong khi các framework và các thành phần là các kỹ thuật khác nhau, chúngnên được xem và được sử dụng như các kỹ thuật cộng tác với nhau Với cácframework 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ácframework thậm chí có thể tiện dụng hơn các thành phần Ví dụ, một ứng dụng VisualC++ được tạo với MFC framework, thậm chí có thể sử dụng các thành phần ActiveXtrong giao diện của nó giống như việc trao đổi với các thành phần ActiveX được đónggói trong MFC framework Một ví dụ khác cho sự phụ thuộc lẫn nhau giữa cácframework 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í
Trang 20dụ, framework Active Template Library (ATL) của Microsoft được sử dụng rộng rãitrong 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óacá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ảmcá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ăngcườ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ụnglặ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ầnthiế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 choviệ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áchcung 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ệnchắ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áctrường hợp của ứng dụng trong một ngữ cảnh cụ thể Khả năng mở rộng củaframework 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ự đổichiều của điều khiển, thường được gọi là “Nguyên tắc Hollywood”- Đừng gọi chochú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 quytắ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êncá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ý ứngdụ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ộttậ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.
Trang 21CHƯƠ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ôngtin 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 contextproviders, 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áccông nghệ liên lạc (như LDAP, email, IM,…) có thể gắn vào Higgins framework Ứngdụ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ốiquan 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ậndạ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ở chonhận dạng thông tin người dùng và ứng dụng quản lý thông tin cá nhân Higgins cungcấ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ácmố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ữaframework và hệ thống sẵn có, hoặc giữa framework đến các hệ thống sẽ xây dựng saunày Mỗi ContextProvider thi hành một context nào đó Context được hiểu là “môitrường và hoàn cảnh xung quanh quyết định đến ý nghĩa của nhận dạng số và cácchí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,…
Trang 22ContextProviders thường hoạt động như “cầu nối” giữa framework với hệ thốngsẵ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ốngquả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ạnggiao 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 vitruy 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-CardManager, RP Protocol Support, ISS Client UI, I-Card Selector Service (ISS), I-CardRegistry, I-Card Provider, Token Service, Token Provider, Identity Attribute Service(IdAS), Context Provider được tổ chức như hình 3.2.
Hình 2.1 Higgins Trust Framework
Trang 23Chú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ằngjavascript Khi Higgins Extension được cài đặt và trình duyệt duyệt đến một site đốitá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ànhphầ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ụ tintưởng cho lớp các giao thức khác nhau.
Hình 2.2 Kiến trúc của Higgins
Trang 242.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 thanhcô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ànhphầ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
Hình 2.3 RP Enablement
Trang 25Cung cấp mọi giao diện người dùng và khả năng tạo mới thẻ CardSpace tươngthích Nó cung cấp chức năng tương tự như CardSpace trên Windows Vista ISS ClientUI đượ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
Card Selector Service ghép chính sách an ninh của đối tác tới một hoặc nhiều Card thỏa mãn chính sách đó Hay nói cách khác, I-Card Selector Service cố gắng đưara một I-Card thích hợp với nhu cầu của đối tác.
I-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
Card Provider chịu trách nhiệm tạo và quản lý các Card thi hành giao diện 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ệucard khác nhau Lưu ý là I-Card Provider chỉ chịu trách nhiệm nhập dữ liệu, việc xuấtdữ liệu được thi hành bởi chính lớp I-Card.
I-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 TokenProvider hoặc Token Issuer có thể nhận dữ liệu từ I-Card Provider.
Trang 26Thuật ngữ Token Service trong Higgins còn được sử dụng thay cho SercurityToken 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 danhvà thuộc tính từ các kho định danh Identity Attribute Service cung cấp khung nhìnthố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à
Hình 2.4 Kiến trúc Token Service
Trang 27các thuộc tính, các mối liên kết của đối tượng số bên trong các ngữ cảnh IdentityAttribute Service hỗ trợ quản lý các thuộc tính của đối tượng số liên kết bên trong cácngữ cảnh Các hàm giao diện của Identity Attribute Service có thể truy cập được thôngqua ngôn ngữ java hoặc ác ngôn ngữ khác cũng như thông qua WSDL và HTTP/XML.
2.1.2.12 Context Provider
Một context Provider hỗ trợ cho một hoặc nhiều loại ngữ cảnh của Higginsframework Một Context Provider chịu trách nhiệm quản lý dữ liệu bên trong, an toàn,mã hóa,… Context Provider cung cấp khả năng chuyển đổi dữ liệu một hoặc hai chiềutừ cấu trúc bên trong nó đến mô hình dữ liệu Identity Attribute Service thông thường.Trong nhiều trường hợp Context Provider hoạt động như cầu nối của các dịch vụ sẵncó như hệ thống giao tiếp, mạng xã hội, dịch vụ cung cấp định danh, các trò chơi, ứngdụng doanh nghiệp,… Thêm vào các dịch vụ web, Context Provider có thể nối liềnứng dụng phía client như email, instance message và các ứng dụng cộng tác khác.
Hiện nay Higgins dự kiến phát triển khoảng 3 – 5 Context Provider với mục đíchcác đối tác có thể sử dụng chúng cho dự án của họ.
2.1.3 Mô hình dữ liệu của Higgins
Để xây dựng mô hình dữ liệ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 dữ liệu.
Chúng ta lần xem xét một số khái niệm cơ bản trong mô hình dữ liệu của Higginsvà nghiên cứu mục tiêu của mô hình.
2.1.3.1 Các khái niệm dữ liệu cơ bản
2.1.3.1.1 Context
Một Higgins Context là một tập hợp một hoặc nhiều Digital Subjects (đối tượngsố) định danh bởi ContextId Một số Context là lớp trừu tượng, ContextId của nókhông trỏ vào một thể hiện Context vật lý nào Các Context còn lại là không trừutượng, thông qua một dịch vụ truy cập dữ liệu mạng (hoặc nội bộ), ContextId trỏ vàomột đối tượng dữ liệu nào đó là thể hiện của Context được quản lý bởi ContextProvider.
Mỗi đối tượng số bên trong một ngữ cảnh có một định danh duy nhất làSubjectId Định danh này duy nhất bên trong không gian tên hoặc định nghĩa bởiContext C1 hoặc các Context C2 mà C1 kế thừa.
Trang 28Ví dụ về Context bao gồm nhiều đối tượng số bao gồm: thư mục, nhóm dự án, hệthống giao tiếp,… Cũng có những Context thường bao gồm một đối tượng số duy nhấtnhư: thẻ tín dụng, thẻ nghiệp vụ, và các thiết bị an ninh khác,…
2.1.3.1.2 Digital Subject
Đối tượng số là một thực thể mô tả hoặc nằm 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 số sử dụng Higgins có những đặc điểm sau:
- Một đối tượng số gồm nhiều thuộc tính định danh, và có thể không có thuôctính nào cả.
- Một vài thuộc tính định danh có thể là quan hệ tham chiếu đến đối tượng sốkhác trong cùng ngữ cảnh hoặc giữa các ngữ cảnh với nhau.
- Do ngữ cảnh có thể là cấu trúc lồng, nên liên kết giữa các đối tượng số liênquan đến những ngữ cảnh đó cung cấp một cái nhìn tổng quan của một đốitượng số.
- Không có một ràng buộc ngầm định giữa các đối tượng số Ví dụ một ngườicó thể đòi hỏi tên của họ là Joe trong một đối tượng số này, nhưng trong đốitượng số khác tên của người đó là JoAnn.
Giá trị của thuộc tính định danh có thể là một kiểu dữ liệu nguyên thủy, hoặc dữliệu phức như struct,…Có một thuộc tính định danh đặc biệt là Subject Relationshop(quan hệ đối tượng) có giá trị là tham chiếu đến đối tượng số khác trong cùng ngữcảnh hay ngữ cảnh khác.
Trang 29Một vài thuộc tính định danh được định nghĩa bởi ngữ cảnh chứa đối tượng số đểđưa ra những giá trị khác nhau Ví dụ thuộc tính “thời tiết” có thể có các giá trị{“nắng”, “mưa”, “nhiều mây”},…
2.1.3.2 Mục tiêu của mô hình
- Mô hình dễ dàng mở rộng, các thuộc tính và quan hệ dễ dàng thêm vào saunày
- Cho phép các đối tượng được định danh duy nhất
- Các đối tượng có thuộc tính quan hệ tham chiếu đến các đối tượng khác, cácthuộc tính này được nhóm lại thành tập hoặc chuỗi.
- Mọi đối tượng và thuộc tính của nó đếu được gán địa chỉ
- Mọi thuộc tính được định danh bởi một địa chỉ URI toàn cục duy nhất- Hỗ trợ đa ngữ cảnh
- Mỗi ngữ cảnh có thể định danh duy nhất
- Các ngữ cảnh có thể liên kết một – một hoặc một – nhiều với các ngữ cảnhkhác.
- Giản đồ mô tả phải khả thi.
2.2 JhotDraw
2.2.1 Giới thiệu khung làm việc JhotDraw
JhotDraw là một khung làm việc ứng dụng cho việc xây dựng các ứng dụng vẽhình đồ họa Nó là một khung làm việc thuần Java và là một sản phẩm mã nguồn mở.Người sử dụng dùng các trình vẽ hình để tổ chức các đối tượng hình đồ họa trên mộtmiền vẽ Nó là một loại ứng dụng rất hay gặp trong các máy tính để bản Tuy nhiêncác loại hình đồ họa vẽ lại khác nhau Một số trình vẽ hình cho phép người sử dụng vẽcác hình như tranh ản, một số khác lại cho phép vẽ hình trong một miền nào đó để khithao tác với các hình đó thì nó thể hiện ngữ nghĩa của miền đó.
JhotDraw là một khung làm việc ứng dụng có thể được phát triển cho các trình vẽhình mang tính kỹ thuật Ban đầu nó được phát triển trong SmallTalk bởi Kent Backvà Ward Cunningham Sau đó nó được phát triển bởi Erich Gamma và ThomasEggenschwiler (sau này được gọi là nhóm bộ tứ) Phiên bản hiện tại là 6.1 beeta Nó làmột khung làm việc có độ tin cậy và độ chắc chắn rất cao, và là một sản phẩm mã
Trang 30nguồn mở rất nổi tiếng, được thế giới mã nguồn mở phát triển hơn 10 năm nay Nócũng là một trong những dự án phát triển phần mềm được thiết kế một cách sáng sủađể sử dụng lại và được gán cái nhãn “Khung làm việc” (Framework).
JhotDraw, bản thân chúng dựa trên lịch sử lâu dài của các khung làm việc chocác trình vẽ hình Một cách cụ thể, JhotDraw là một phiên bản Java của một khunglàm việc SmallTalk (ngôn ngữ lập trình hướng đối tượng đầu tiên), khung làm việc đóđược gọi là HotDraw HotDraw dựa trên SmallTalk cũng là một sản phẩm mã nguồnmở và hiện tại nó cũng phát triển song song cùng phiên bản của nó (JhotDraw) dựatrên Java Hơn nữa, những phiên bản JhotDraw còn dựa trên nền tảng của ET++, mộtkhung làm việc ứ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 saonó được thiết kế và được triển khai rất tốt Mã nguồn của nó được chú giải theo cáchchú giải của tài liệu Java Hiện nay nó đang là một sản phầm mã nguồn mở rất nổitiếng trên sourcefogce.net, đang được Wolfram Kaiser chịu trách nhiệm tổng hợp cácphản hồi và chịu trách nhiệm chính cho việc phát triển nó.
2.2.2 Kiến trúc tổng quan về thiết kế của JHotDraw
Trang 31Hình 2.5: Kiến trúc tổng quan về thiết kế của JHotDraw
Sử dụng các mẫu thiết kế:
Observer, Strategy, State, Adapter, Prototype, FactoryMethod,Composite, Decorater
Mẫu thiết kế Composite
Công việc
Trang 32Mẫu thiết kế State
Chỉnh sửa
Trang 33Mẫu thiết kế Template
Đường nối
Mẫu thiết kế Prototype
Trang 34Tạo công việc và đường nối
Hình 2.6: Các mẫu thiết kế
Trang 35CHƯƠNG 3
XÂY DỰNG FRAMEWORK GIẢI QUYẾT
BÀI TOÁN LUỒNG CÔNG VIỆC-WORKFLOW.
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ấtgia đình:
3.1.1 Bài toán đặt ra:
Công ty A thiết kế đồ nội thất gia đình muốn quản lý hoạt động thiết kế và sảnxuất ở các bộ phận, phòng ban của công ty.
Giám đốc công ty ký kết hợp đồng và nhận yêu cầu từ khách hàng Tưng ứng với mỗicông việc nhất định giám đốc công ty sẽ bắt đầu phân công cho các phòng ban ở bêndưới thực hiện các công việc tương ứng với chức năng của mỗi phòng của công ty
Giám đốc công ty tạo đầu mục công việc, thư ký giám đốc nhập chỉ đạo và phâncông giải quyết xuống phòng thiết kế Ban lãnh đạo phòng thiết kế nhận yêu cầu chỉđạo của giám đốc lại tiếp tục tạo đầu mục công việc tương ứng Chủ trì công việc ởphòng thiết kế sẽ nhập chỉ đạo và phân công giải quyết công việc từ ban lãnh đạophòng thiết kế Dựa vào danh sách phân công giải quyết của chủ trì công việc trongphòng thiết kế, nhân viên phòng thiết kế sẽ thiết kế ra các mẫu thiết kế cho các sảnphẩm mà khách hàng đặt hàng.
Sau khi thiết kế xong, bản thiết kế sẽ được chuyển đến lãnh đạo phòng sản xuất.Lãnh đạo phòng sản xuất lại tiếp tục tạo ra các đầu mục công việc tương ứng, chủ trìcông việc phòng sản xuất nhập chỉ đạo và phân công giải quyết cho nhân viên phòngsản xuất
Sản phẩm được phòng sản xuất hoàn thiện và chịu sự giám sát, theo dõi của lãnhđạo phòng sản xuất và ban giám đốc.
Trang 363.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:
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
Trang 37Mỗi phòng có một số chức năng nhất định
Phòng đào tạo đại học dựa trên thời khóa biểu và phân công công tác sẽ tính ra sốtiết dạy, số bài chấm, số hướng dẫn luận văn tốt nghiệp đại học… của mỗi giáo viên.
Trang 38Phòng đào tạo sau đại học cũng dựa vào thời khóa biểu, hướng dẫn luận văn sẽthống kê số tiết, số hướng dẫn luận văn thạc sĩ, tiến sĩ, số bài chấm…của mỗi giáoviên.
Mỗi giáo viên phải giảng dạy một khối lượng công việc nào đó gọi là số giờnghĩa vụ Căn cứ vào số giờ nghĩa vụ mỗi tháng(tính trung bình cộng của cả năm: sốgiờ nghĩa vụ cả năm/12 tháng) mà mỗi giáo viên giảng dạy, hàng tháng mỗi giáo viênsẽ được hưởng mức lương bình quân của mỗi tháng tương ứng.
Dựa trên kết quả tổng hợp của phòng đào tạo đại học và phòng đào tạo sau đạihọc và dựa trên quy chế của nhà trường về số giờ nghĩa vụ mà mỗi giáo viên phảigiảng dạy, phòng tổ chức hành chính tiến hành tính toán, tổng hợp lại số giờ thừa hoặcthiếu và gửi kết quả lên phòng tài vụ để trả tiếp tiền lương tương ứng với các giờ thừara hoặc là trừ tiền đối với trường hợp giáo viên giảng dạy thiếu so với số giờ bắt buộc.
Phòng tài vụ dựa trên kết quả từ phòng tổ chức hành chính tiến hành lập phiếuthanh toán cho các thầy, khi các thầy đến lĩnh thì lập phiếu chi Sau khi thanh toán sẽcó thông báo cho các thầy và chuyển tiền vào tài khoản.
Quy chế: Theo tín chỉ, mỗi tiết tín chỉ = 1/3 tiết thường Thạc sĩ 40 nghìn, tiến sĩ50 nghìn/tiết, phó giáo sư 60 nghìn Hướng dẫn cho tiến sĩ(từ thạc sĩ lên) sẽ nhận khácvới hướng dẫn cho tiến sĩ từ sinh viên lên.
(Dựa vào bảng quy chế chi tiêu nội bộ sẽ biết được giá )
3.2.2 Sơ đồ tiến trình quản lý hoạt động thanh toán tiền lương:
Trang 40Hình 3.3: Sơ đồ tiến trình quản lý hoạt động thanh toán tiền lương