Tổng quan về giáo trình

Giáo trình tập trung vào lĩnh vực Phân tích và Thiết kế Hệ thống Thông tin (HTTT) nâng cao, đóng vai trò là học phần chuyên ngành cốt lõi trong chương trình đào tạo bậc Đại học và Cao học ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin. Giáo trình tiếp nối khối kiến thức cơ sở về cấu trúc dữ liệu, lập trình hướng đối tượng, cơ sở dữ liệu và mạng máy tính, đồng thời trực tiếp triển khai các phương pháp luận thiết kế kiến trúc phần mềm hiện đại.

Mục tiêu học tập của giáo trình là trang bị cho người học năng lực đặc tả, phân tích và thiết kế kiến trúc hệ thống quy mô lớn. Người học được trang bị khả năng đánh giá, lựa chọn các mô hình kiến trúc phù hợp với bối cảnh kỹ thuật và nghiệp vụ, bao gồm kiến trúc phân tán (Distributed Systems), kiến trúc hướng đối tượng (Object-Oriented Architecture), kiến trúc đối tượng phân tán (Distributed Objects) và kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA).

Giáo trình tiếp cận theo mô hình phát triển phần mềm lấy kiến trúc làm trung tâm (architecture-centric), điều khiển bởi ca sử dụng (use-case driven) và tiến trình lặp tăng dần. Cấu trúc nội dung dẫn dắt người học từ phân tích yêu cầu logic, cấu trúc phân tầng, đến các giải pháp thiết kế vật lý và tích hợp liên nền tảng. Điểm đặc thù của tài liệu là sự chuẩn hóa các quy trình mô hình hóa thông qua ngôn ngữ UML (Unified Modeling Language), kết hợp việc khảo sát các chuẩn công nghệ công nghiệp như OMG CORBA, Microsoft COM/DCOM và các dịch vụ Web (Web Services/SOAP/XML).


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Nội dung trọng tâm được xây dựng theo một tiến trình logic chặt chẽ, mở rộng từ các chương nền tảng đến các mô hình kiến trúc chuyên sâu:

Tiến trình nội dung:
Tổng quan kỹ nghệ dịch vụ (Chương 1)
  • Kiến trúc hệ thống phân tán và mô hình Client-Server: Phân tích sự chuyển dịch từ hệ thống chia sẻ tệp trên mạng cục bộ (LAN File Server) sang mô hình Client-Server. Khảo sát 3 thành phần chức năng: Quản trị dữ liệu, Xử lý dữ liệu và Trình diễn dữ liệu. Giới thiệu 6 biến thể kiến trúc tiêu biểu: Trình diễn thông tin phân tán, Trình diễn từ xa (dựa trên HTML và trình duyệt web), Quản lý dữ liệu từ xa, Phân tán chức năng, Cơ sở dữ liệu phân tán (phân đoạn ngang/dọc) và Xử lý phân tán.
  • Mô hình hóa kiến trúc hướng đối tượng theo UML: Phân định giữa kiến trúc logic (sơ đồ ca sử dụng, sơ đồ lớp, sơ đồ tương tác) và kiến trúc vật lý (mô-đun phần mềm, cấu hình phần cứng). Cung cấp chuẩn 5 khung nhìn kiến trúc (4+1 View Model): Khung nhìn ca sử dụng (Use Case View), Khung nhìn thiết kế/logic (Design View), Khung nhìn tiến trình (Process View), Khung nhìn thành phần/cài đặt (Component/Implementation View) và Khung nhìn bố trí/triển khai (Deployment View).
  • Phân tích và thiết kế hệ thống con hướng đối tượng: Hướng dẫn kỹ thuật phân rã hệ thống thành các gói phân tích (Analysis Packages), gói dịch vụ (Service Packages) và hệ thống con thiết kế (Subsystems). Xác định các lớp biên, lớp điều khiển, lớp thực thể miền và lớp hoạt động (Active Classes). Phân tích cấu hình mạng 2 tầng và 3 tầng (Trình diễn - Tác nghiệp/Logic ứng dụng - Lưu trữ CSDL quan hệ hoặc CSDL hướng đối tượng).
  • Kiến trúc đối tượng phân tán (Distributed Object Architecture): Làm rõ khái niệm đối tượng phân tán và cơ chế giao tiếp ngầm xuyên nền tảng. Phân tích 4 khía cạnh trong suốt phân tán: trong suốt vị trí, trong suốt thể hiện, trong suốt nền và trong suốt truyền thông. Khảo sát các mẫu thiết kế nền tảng gồm Proxy, Broker, Adapter, Marshaling/Unmarshaling và ngôn ngữ mô tả giao diện độc lập IDL (Interface Description Language). Khảo cứu chi tiết chuẩn CORBA của tổ chức OMG và chuẩn COM/DCOM của Microsoft với giao diện cơ sở IUnknown (AddRef(), Release(), QueryInterface()).
  • Kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA): Định nghĩa SOA theo chuẩn công nghiệp (California Franchise Tax Board 2008, khung kiến trúc IBM). Mô tả 7 thực thể cốt lõi: Dịch vụ (Services), Thành phần sử dụng (Service Consumer), Thành phần cung cấp (Service Provider), Thành phần đăng ký (Service Registry - UDDI), Giao ước dịch vụ (Contract), Ủy nhiệm dịch vụ (Service Proxy) và Ràng buộc sử dụng (Service Lease). Phân tích giao thức truyền thông thông điệp SOAP và định dạng XML.

Kiến thức nền tảng được xây dựng

  • Các lý thuyết nền tảng (Fundamental Theories): Lý thuyết phân tán dữ liệu và phân đoạn cơ sở dữ liệu; lý thuyết giao tiếp liên tiến trình (IPC) và gọi thủ tục từ xa (RPC/DCE RPC); lý thuyết mô hình hóa hướng đối tượng bằng UML.
  • Các nguyên lý cốt lõi (Core Principles): Nguyên lý cân bằng 3 yếu tố hệ thống (tính khả thi, sự sống và tính sẵn sàng); nguyên lý trong suốt địa phương (distribution transparency); nguyên lý khớp nối lỏng (loose coupling) và tính kết dính cao (high cohesion); nguyên tắc thiết kế mô-đun hóa và đóng gói (encapsulation/hộp đen) trong SOA.
  • Các khung làm việc thiết yếu (Essential Frameworks): Khung 5 khung nhìn kiến trúc phần mềm; khung phân lớp 3 tầng (Presentation - Business Logic - Data Storage); mô hình trung gian ORB (Object Request Broker) trong CORBA; thư viện COM/DCOM Runtime; mô hình SOA 4 mức của IBM (Chiến lược - Tác nghiệp - Thực hiện - Triển khai).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Đặc tả giao diện bằng IDL; thiết lập cấu hình phân bố các thành phần lên các nút mạng qua sơ đồ triển khai; quản lý vòng đời đối tượng COM thông qua giao diện IUnknown và đếm tham chiếu; cấu hình cơ chế trao đổi thông điệp SOAP/XML và tra cứu UDDI.
  • Kỹ năng phân tích (Analytical Skills): Năng lực nhận diện phần dùng chung để trích xuất thành gói dịch vụ; kỹ năng ánh xạ từ ca sử dụng và lớp phân tích sang các lớp thiết kế, lớp hoạt động; khả năng phân tích đánh giá ưu/nhược điểm giữa kiến trúc máy dịch vụ file và Client-Server, giữa OOP truyền thống và SOA.
  • Năng lực thực hành (Practical Competencies): Thiết kế phân rã hệ thống thực tế (như hệ thống giao dịch tín dụng ngân hàng); tổ chức các giao diện độc lập để giảm thiểu phụ thuộc giữa các hệ thống con; thiết kế cấu hình mạng nhiều tầng đáp ứng yêu cầu chịu lỗi và bảo mật.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp sư phạm quy nạp kết hợp diễn dịch kỹ thuật. Mỗi chủ đề bắt đầu bằng việc phân tích hạn chế của mô hình kiến trúc truyền thống, từ đó dẫn dắt đến sự ra đời của các mô hình tiên tiến hơn, đi kèm định nghĩa chuẩn hóa, sơ đồ cấu trúc và biểu đồ phân tích.

Cấu trúc phương pháp sư phạm:
Vấn đề kỹ thuật thực tế ➔ Mô hình lý thuyết/Chuẩn hóa ➔ Case Study minh họa ➔ Thiết kế & Đánh giá
  • Bài tập và Case Studies: Giáo trình sử dụng xuyên suốt case study hệ thống giao dịch tín dụng ngân hàng. Thông qua nghiệp vụ rút tiền, chuyển tiền và gửi tiền, tài liệu hướng dẫn chi tiết cách phát hiện lớp thực thể chung "Tài khoản", trích xuất thành gói dịch vụ "Quản lý tài khoản", phân rã thành các hệ thống con và phân bố các lớp thiết kế (MànHìnhHiểnThịCảmỨng, MáyĐọcThẻ, QLRútTiền, QLGiaoDịch, QLTàiKhoản) lên các nút phần cứng cụ thể (Nút khách, Nút dịch vụ ứng dụng, Nút dịch vụ ngân hàng).
  • Thực hành thiết kế (Practical Exercises): Bài tập yêu cầu người học xây dựng sơ đồ phân rã gói phân tích, thiết kế giao diện cho các hệ thống con, chuyển đổi mô hình phân tích sang mô hình thiết kế lớp hoạt động nhằm giải quyết các bài toán về hiệu năng, truyền thông đồng thời và quản lý bế tắc tài nguyên.
  • Phương pháp đánh giá (Assessment Methods): Đánh giá dựa trên độ chính xác của các bản đặc tả kiến trúc UML, tính đúng đắn trong việc phân tầng hệ thống, năng lực lập luận khi lựa chọn giữa các mô hình Client-Server (trong số 6 dạng phổ dụng), và mức độ tuân thủ các chuẩn giao thức (CORBA IDL, COM GUID, SOAP/XML).
  • Hướng dẫn tự học (Self-Study Guidelines): Người học cần đối chiếu lý thuyết từng chương với các công cụ phát triển phần mềm cụ thể (công cụ CASE, Oracle Designer 2000, môi trường lập trình C++, Java, Visual Basic); nghiên cứu kỹ bảng so sánh định lượng và định tính giữa các mô hình kiến trúc được cung cấp trong văn bản.

Điểm nổi bật và cập nhật

  • Tính cập nhật so với các mô hình truyền thống: Giáo trình phân định rõ ranh giới kỹ thuật giữa mạng LAN chia sẻ tệp đơn giản với kiến trúc Client-Server hiện đại. Tài liệu chỉ ra các điểm yếu của máy dịch vụ file (lưu lượng mạng lớn, đòi hỏi cấu hình máy trạm cao, quản trị phi tập trung) và chứng minh tính ưu việt của việc phân bổ tải xử lý tại máy phục vụ cơ sở dữ liệu.
  • Tích hợp các xu hướng công nghệ mạng và dịch vụ: Giáo trình cập nhật sự dịch chuyển từ lập trình mạng cấp thấp sang kiến trúc đối tượng phân tán và kiến trúc hướng dịch vụ (SOA). Tài liệu giải thích việc bổ sung tầng "Services" nằm giữa tầng thể hiện và tầng nghiệp vụ để cô lập các đối tượng nghiệp vụ vào tiến trình xử lý nội bộ, giải quyết triệt để bài toán thắt nút cổ chai khi gọi hàm từ xa.
  • Ứng dụng thực tiễn và minh chứng công nghiệp:
    • Trích dẫn định nghĩa kiến trúc doanh nghiệp năm 2008 của Ủy ban Thuế California (California Franchise Tax Board).
    • Khảo sát mô hình kiến trúc SOA 4 mức của tập đoàn IBM.
    • Phân tích các chuẩn nhị phân và giao tiếp công nghiệp: Chuẩn CORBA của OMG, chuẩn COM/DCOM/ActiveX của Microsoft, công cụ Oracle Designer 2000, và các trình duyệt web (Netscape, Internet Explorer) trong mô hình trình diễn từ xa.
Khía cạnh kiến trúc Mô hình truyền thống (File Server) Mô hình Client-Server Kiến trúc Đối tượng phân tán (CORBA/COM) Kiến trúc Hướng dịch vụ (SOA)
Xử lý tính toán Toàn bộ tại máy trạm Phân chia máy trạm & máy chủ Phân tán đối tượng liên máy Phân tán tại các dịch vụ độc lập
Độ kết dính giao tiếp Ràng buộc vật lý tệp tin Khớp nối tầng ứng dụng/CSDL Khớp nối giao diện nhị phân/IDL Khớp nối lỏng qua SOAP/XML
Tính trong suốt Thấp, chuyển toàn bộ tệp Trong suốt mức truy vấn CSDL Trong suốt vị trí, nền tảng, thể hiện Trong suốt hoàn toàn qua giao ước & UDDI

Đối tượng sử dụng giáo trình

  • Sinh viên và Học viên:
    • Dành cho sinh viên năm thứ 3, năm thứ 4 đại học và học viên cao học thuộc các ngành: Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin, Khoa học Máy tính.
    • Phục vụ trực tiếp cho các học phần: Phân tích Thiết kế Hệ thống Thông tin, Kiến trúc Phần mềm, Hệ thống Phân tán, Kỹ nghệ Hướng Dịch vụ.
  • Kiến thức tiên quyết (Prerequisites):
    • Lập trình hướng đối tượng căn bản (C++, Java hoặc tương đương).
    • Khái niệm cơ bản về Hệ quản trị Cơ sở dữ liệu và Mạng máy tính.
    • Kiến thức về vòng đời phát triển phần mềm và mô hình hóa ca sử dụng đã được trình bày ở các chương mở đầu (Chương 1 và Chương 5).
  • Giảng viên và Cách thức triển khai:
    • Giảng viên sử dụng giáo trình làm khung bài giảng lý thuyết chuẩn mực về thiết kế kiến trúc.
    • Khai thác các sơ đồ mẫu (sơ đồ triển khai, sơ đồ hệ thống con, sơ đồ 5 khung nhìn UML) để xây dựng bài tập lớn, đồ án môn học và các đề tài thực hành phân rã hệ thống thông tin doanh nghiệp.
  • Nghiên cứu và Tham khảo:
    • Tài liệu là nguồn tham chiếu chuẩn xác cho các kỹ sư phần mềm, kiến trúc sư hệ thống (System Architects) cần hệ thống hóa các nguyên lý phân tầng và chuẩn giao thức tương tác phân tán.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Giáo trình được biên soạn chuyên biệt cho sinh viên đại học các năm cuối, học viên cao học chuyên ngành CNTT, Kỹ thuật Phần mềm, HTTT và các kỹ sư phần mềm cần nắm vững nguyên lý thiết kế kiến trúc hệ thống phân tán quy mô lớn.

2. Cần kiến thức nền nào để học?

Người học cần có kiến thức nền tảng về lập trình hướng đối tượng (OOP), cơ sở dữ liệu quan hệ, nguyên lý mạng máy tính căn bản và nắm được kỹ thuật phân tích ca sử dụng (use case) cùng các khái niệm cấu trúc hệ thống ở các chương trước.

3. Điểm khác biệt của tài liệu này so với các giáo trình khác là gì?

Tài liệu tập trung chuyên sâu vào giai đoạn chuyển tiếp từ phân tích sang đặc tả kiến trúc vật lý. Nội dung tích hợp đầy đủ 4 mô hình: Hệ phân tán Client-Server, Hệ thống hướng đối tượng qua 5 khung nhìn UML, Hệ đối tượng phân tán (CORBA/DCOM) và Hệ hướng dịch vụ (SOA) với các trích dẫn chuẩn hóa từ OMG, IBM và Microsoft.

4. Làm sao để tự học hiệu quả với giáo trình?

Người học nên bám sát tiến trình từ mô hình phân tích logic đến thiết kế vật lý; thực hành vẽ lại các sơ đồ UML (sơ đồ gói, sơ đồ triển khai nút mạng); và tự hiện thực hóa các ca sử dụng mẫu (như bài toán giao dịch tài khoản) trên một công nghệ cụ thể (Java/RMI, Web Services hoặc COM).

5. Có tài liệu bổ trợ nào kèm theo?

Nội dung giáo trình gắn liền với các tài liệu tham khảo học thuật và tiêu chuẩn kỹ thuật quốc tế (được đánh số tham chiếu như [8], [9], [11], [14], [17], [26], [27], [28]), bao gồm tài liệu chuẩn UML của OMG, đặc tả DCOM của Microsoft và khung kiến trúc hướng dịch vụ từ IBM.


Kết luận

Giáo trình cung cấp hệ thống tri thức hoàn chỉnh về đặc tả và thiết kế kiến trúc các hệ thống thông tin hiện đại. Giá trị cốt lõi của tài liệu thể hiện ở tính chuẩn hóa học thuật, phương pháp luận rõ ràng từ mô hình phân tích đến thiết kế vật lý, và việc làm rõ bản chất kỹ thuật của các mô hình phân tán, hướng đối tượng và hướng dịch vụ.

Lộ trình học tập đề xuất cho người học gồm 3 giai đoạn:

  1. Nắm vững nguyên lý phân tán dữ liệu và 6 dạng mô hình Client-Server.
  2. Làm chủ kỹ thuật mô hình hóa 5 khung nhìn kiến trúc UML và phân tầng hệ thống con.
  3. Chuyển tiếp lên các mô hình kiến trúc nâng cao gồm Đối tượng phân tán (CORBA, DCOM) và Kiến trúc hướng dịch vụ (SOA/SOAP/XML).

Để mở rộng kiến thức, người học nên kết hợp tra cứu các tài liệu tham khảo chuyên sâu về chuẩn giao tiếp OMG CORBA, tài liệu phát triển Microsoft DCOM Architecture và khung hướng dẫn thực thi SOA Enterprise Architecture.