Viết tư liệu kiến trúc phần mềm, Phần 3: Phát triển tổng quan kiến trúc

Ba khung nhìn bổ sung đặt nền móng

Trong loạt bài này, hãy học cách và lý do người ta viết tư liệu về kiến trúc phần mềm. Bài viết này giải thích cách phát triển và viết tư liệu kiến trúc tổng quan cấp cao cho hệ thống hoặc ứng dụng của bạn. Tổng quan kiến trúc, với ba khung nhìn chính của nó, đóng một vai trò quan trọng trong việc cung cấp nền móng cho doanh nghiệp, ứng dụng, và kiến trúc các hệ thống của bạn.

Tilak Mitra, Kiến trúc sư IT cao cấp, IBM

Author photoTilak Mitra là một Kiến trúc sư cấp cao về Công nghệ Thông tin được công nhận của IBM. Ông chuyên về các SOA, giúp IBM về chiến lược và định hướng kinh doanh của nó trong SOA. Ông cũng làm việc như một chuyên gia về chủ đề SOA, giúp các khách hàng trong việc chuyển đổi kinh doanh dựa trên SOA của họ, với sự tập trung vào các kiến trúc doanh nghiệp lớn và phức tạp. Trọng tâm hiện tại của ông là xây dựng các tài sản tái sử dụng được xung quanh Các dịch vụ Kinh doanh Đa hợp (CBS), có khả năng chạy trên nhiều nền tảng như các vùng nhớ SOA cho IBM, SAP v.v… Ông sống ở vùng Nam Florida có nhiều nắng, và trong lúc không làm việc thì dành hết thời gian vào các trò crickê và bóng bàn. Tilak có các bằng cử nhân về Vật lý của Đại học Presidency, Calcutta, Ấn Độ, và các bằng Cử nhân và Thạc sĩ Tích hợp về EE của Viện Khoa học Ấn Độ, Bangalore, Ấn Độ. Phát hiện nhiều hơn về SOA tại blog của Tilak về SOA và kiến trúc. Xem tiểu sử sơ lược của Tilak Mitra trên LinkedIn hoặc gửi thư điện tử cho ông về các đề nghị của bạn tại tmitra@us.ibm.com


Cấp độ đóng góp cho developerWorks của
        tác giả

30 10 2009

Giới thiệu

Trong Phần 1 của loạt bài này, bạn đã tìm hiểu về tầm quan trọng của một cách tiếp cận có nguyên tắc để viết tư liệu kiến trúc phần mềm và về các cơ chế mà có thể nắm bắt các tạo tác kiến trúc sử dụng trong một qui trình phát triển điển hình. Phần 2 tập trung vào ngữ cảnh hệ thống, là tạo tác kiến trúc quan trọng đầu tiên, và cách viết tư liệu thông tin ngữ cảnh hệ thống với các sơ đồ và luồng thông tin.

Trong bài viết này, ta hãy tìm hiểu về tổng quan kiến trúc, cung cấp một sơ đồ cấp cao cho các kích thước khác nhau của kiến trúc.

Tổng quan kiến trúc cung cấp các khung nhìn khác nhau của kiến trúc đang phát triển của một hệ thống. Kiến trúc, theo định nghĩa, giúp truyền giải pháp đang phát triển tới các cổ đông chủ chốt của công ty, mặc dù không phải tất cả các khung nhìn là điều thú vị đối với tất cả các cổ đông. Tổng giám đốc (CEO) hẳn sẽ quan tâm đến khung nhìn kiến trúc doanh nghiệp, trong khi kiến trúc sư trưởng có thể quan tâm đến các khung nhìn công nghệ thông tin (khung nhìn hệ thống và khung nhìn theo lớp). Đồng thời, Kiến trúc Hướng Dịch vụ (SOA) hay kiến trúc ứng dụng chỉ có thể quan tâm đến khung nhìn các dịch vụ. Mỗi khung nhìn tập trung vào một khía cạnh riêng, và có các nguyên tắc về cách trình bày và viết tư liệu những thứ này. Bài viết này bàn luận về các khung nhìn khác nhau của kiến trúc và đưa ra các gợi ý để viết tư liệu các khung nhìn, cùng tạo nên tổng quan kiến trúc của doanh nghiệp hoặc hệ thống. Viết tư liệu kiến trúc là nhiệm vụ chính của kiến trúc sư phần mềm.

Tầm quan trọng của tổng quan kiến trúc

Tôi đã trình bày tổng quan kiến trúc như là một tập các sơ đồ. Mỗi sơ đồ có một trọng điểm riêng, và chúng sẽ được thảo luận trong phần tiếp theo. Việc viết tư liệu tổng quan kiến trúc là rất quan trọng, vì nó có thể:

  • Đặt nền tảng cho kiến trúc của hệ thống và hoạt động như một hướng dẫn đối với kiến trúc tác nghiệp và có chức năng phức tạp hơn của giải pháp.
  • Truyền đạt một sự hiểu biết khái quát về kiến trúc của giải pháp đang tiến triển đến các cổ đông.
  • Cung cấp một cơ chế để đánh giá các giải pháp kiến trúc khác nhau đối với một bài toán đặc thù.
  • Cho doanh nghiệp, hệ thống, hoặc các khung nhìn ứng dụng của kiến trúc trong một tạo tác hợp nhất đơn lẻ.
  • Giúp định hướng các thành viên mới của nhóm của một dự án.

Viết tư liệu tổng quan kiến trúc

Tổng quan kiến trúc trình bày tốt nhất khi một tập các khung nhìn bổ sung được viết tư liệu cùng nhau. Các khung nhìn trình bày các bộ phận kiến trúc khác nhau mà gồm có giải pháp. Tôi khuyên bạn nên viết tư liệu ba khung nhìn sau đây:

  • Khung nhìn kiến trúc doanh nghiệp xác định các bộ phận mà sẽ được triển khai để hỗ trợ chiến lược công nghệ thông tin tổng thể và cho phép bạn chuyển chiến lược kinh doanh và mô hình tác nghiệp thành hiện thực.
  • Khung nhìn phân lớp trình bày một phối cảnh khác của khung nhìn hệ thống công nghệ thông tin.
  • Khung nhìn hệ thống công nghệ thông tin minh họa cho các dịch vụ khác nhau (xử lý, kỹ thuật, và chức năng) mà tạo nên kiến trúc ứng dụng của giải pháp. Cũng nhóm chúng theo các phạm trù chức năng rộng.

Mức độ chi tiết gia tăng cùng với mỗi khung nhìn. Khung nhìn hệ thống công nghệ thông tin mở đường cho mô hình bộ phận và mô hình tác nghiệp bằng cách xác định tất cả các nút chức năng chính của kiến trúc.

Khung nhìn kiến trúc doanh nghiệp

Trước tiên, tìm hiểu một chút về nguyên nhân quan trọng của việc nắm bắt khung nhìn kiến trúc doanh nghiệp. Bất kỳ một cơ sở kinh doanh hoặc doanh nghiệp nào đều chọn một trong ba mô hình tác nghiệp khi nó muốn vượt trội hơn. Một mô hình tác nghiệp được tạo ra bằng các quy trình tác nghiệp (kinh doanh), cấu trúc kinh doanh, cấu trúc quản lý, và văn hoá — tất cả những thứ mà được đồng bộ hóa để tạo ra giá trị cao cấp. Một cơ sở kinh doanh có thể được phân loại thành ba mô hình tác nghiệp kinh doanh: chuyên gia tác nghiệp, lãnh đạo về sản phẩm, và mối quan hệ với khách hàng.

Từ một quan điểm công nghệ thông tin, ba mô hình tác nghiệp kinh doanh có thể sánh với bốn mô hình tác nghiệp cấp độ công nghệ thông tin:

  • Đa dạng hoá, với các yêu cầu về chuẩn hoá thấp và tích hợp thấp.
  • Hợp tác, với mức chuẩn hoá thấp nhưng có trọng tâm tích hợp cao.
  • Sao nhân bản, với mức chuẩn hóa cao nhưng thiên về tích hợp thấp.
  • Thống nhất, với các đòi hỏi chuẩn hoá cao và tích hợp cao.

Xem Tài nguyên để có nhiều hơn về các mô hình tác nghiệp công nghệ thông tin.

Kiến trúc doanh nghiệp cung cấp một cơ chế để xác định và thể hiện, trong một khung nhìn hợp nhất duy nhất, các quy trình kinh doanh, dữ liệu, công nghệ, và các giao diện khách hàng cho phép thu được mô hình tác nghiệp từ viễn cảnh hiện thực.

Kiến trúc doanh nghiệp là sơ đồ duy nhất, truyền thông các quy trình nghiệp vụ của doanh nghiệp cốt lõi, cùng với ứng dụng và các khối cơ bản của cơ sở hạ tầng. Sơ đồ thường là một tổng quan; nó không đi sâu vào các chi tiết của ứng dụng, dữ liệu, công nghệ, hoặc quy trình kiến trúc kinh doanh. Khung nhìn đơn lẻ này trở thành điểm xuất phát của các kiến trúc công nghệ thông tin chi tiết hơn. Do đó, kiến trúc doanh nghiệp không thể được sử dụng lẫn với kiến trúc công nghệ thông tin, mà giới công nghệ thông tin hay mắc sai lầm. Kiến trúc doanh nghiệp hoạt động như đường lối chỉ đạo để có thể xác định được các kiến trúc công nghệ thông tin chi tiết.

Hình 1 cho thấy một sơ đồ đơn giản của các quy trình kinh doanh cao cấp, dữ liệu, công nghệ, và các kênh khách hàng cùng tạo nên nền tảng mong muốn để thực hiện.

Hình 1. Khung nhìn kiến trúc doanh nghiệp từ thí dụ về ngân hàng
Khung nhìn kiến trúc doanh nghiệp từ thí dụ về ngân hàng

Bạn phải viết tư liệu các phần tử khái niệm chính trong sơ đồ kiến trúc doanh nghiệp, như phần tiếp theo cho ví dụ trong Hình 1.

Người sử dụng và các kênh phân phối
Khung nhìn doanh nghiệp trong Hình 1 cho phép các khách hàng khác nhau truy cập vào các ứng dụng ngân hàng trên các kênh phân phối khác nhau:
  • Khách hàng sẽ truy cập các ứng dụng qua Internet bằng cách sử dụng một trình duyệt web.
  • Các nhân viên, gồm cả nhân viên hoặc quản trị viên của trung tâm tư vấn, sẽ truy cập các ứng dụng qua một mạng nội bộ bằng cách sử dụng một trình duyệt web. Họ cũng có thể truy cập các ứng dụng với một mạng riêng ảo (VPN).
  • Các đối tác bên ngoài có thể truy cập một tập con (subset) của các các ứng dụng ngân hàng bằng cách sử dụng các lời gọi theo các dịch vụ web.

Mỗi kênh đảm bảo cho người sử dụng truy cập đến một tập con của các ứng dụng ngân hàng. Các khả năng và thể hiện có thể khác nhau, tuỳ thuộc vào người sử dụng và kênh. Ví dụ, nhân viên hẳn là có thể có quyền truy cập đến nhiều chức năng hơn các khách hàng, người mà có các khả năng về trình bày, mạnh hơn, có thể tăng giảm được, khác nhau.

Các quy trình kinh doanh cốt lõi
Khung nhìn doanh nghiệp làm nổi bật các quy trình kinh doanh cốt lõi, cho phép thể hiện chung các quy trình tác nghiệp mà khách hàng tập trung vào, nhằm chọn tốt nhất mô hình tác nghiệp. Các quy trình nghiệp vụ thúc đẩy sự vượt trội tác nghiệp cho khách hàng là:
  • Mở tài khoản séc.

    Khách hàng có thể mở một tài khoản séc trong vòng chưa đầy 10 phút. Quy trình này có thể yêu cầu tại văn phòng chi nhánh qua một quầy thu ngân và qua một cổng điện tử ngân hàng trực tuyến tự phục vụ.
  • Chuyển tiền.

    Quy trình này cho phép chuyển tiền từ một kiểu tài khoản đến một tài khoản khác trong phạm vi ngân hàng và chuyển tiền giữa các tài khoản ngân hàng quốc tế với một phí giao dịch (ít tốn kém nhất ở ngành này và chỉ mất ba ngày làm việc).
  • Mở tài khoản quỹ tương hỗ.

    Các khách hàng và nhân viên có thể mở một tài khoản quỹ tương hỗ với ngân hàng và truy cập các quỹ, các phân tích thực hiện cao nhất và đáng tin cậy nhất. Quy trình này cũng cho phép các khách hàng liên kết một tài khoản quỹ tương hỗ với một tài khoản séc và cung cấp đến 40 giao dịch miễn phí trong một tháng.
  • Thanh toán thẻ tín dụng.

    Khách hàng có khả năng thanh toán thẻ tín dụng trực tuyến. Ghi nợ trực tiếp từ tài khoản séc và việc bảo vệ thấu chi làm giảm nhẹ các khoản thanh toán thẻ tín dụng.

Các quy trình khác cũng sẽ được mô tả để đưa ra tổng quan mức cao về cách thức quy trình trợ giúp ngân hàng.

Dữ liệu và thông tin
Các thông tin khái niệm cốt lõi và cấu trúc dữ liệu cần có để thực hiện tập cốt lõi của các quy trình kinh doanh là điểm chính trong khung nhìn doanh nghiệp. Các yếu tố dữ liệu và thông tin sau đây là các thực thể nghiệp vụ chủ yếu:
  • CRM

    Hệ thống quản trị quan hệ khách hàng (CRM) là thực thể cho phép quản lý thông tin nhân khẩu học khách hàng, số các sản phẩm được đăng ký, và các tình trạng tài khoản.
  • Các sản phẩm

    Thực thể sản phẩm trình bày các sản phẩm mà ngân hàng cung cấp cho khách hàng và nhân viên. Các thí dụ về sản phẩm là tài khoản séc, tài khoản tiền tiết kiệm/tiền gửi, các quỹ tương hỗ, và thẻ tín dụng.
  • Lệnh

    Thực thể lệnh thể hiện các lệnh do khách hàng yêu cầu ngân hàng. Lệnh có thể là các thanh toán, các giao dịch quỹ tương hỗ, và các lệnh chuyển tiền.
  • Danh mục các quy tắc nghiệp vụ

    Danh mục các quy tắc nghiệp vụ là một tập các nguyên tắc kinh doanh sử dụng để thực hiện các nhiệm vụ khác nhau của các quy trình kinh doanh. Các quy tắc nghiệp vụ đều sử dụng các phần tử thông tin và áp đặt một số logic điều kiện lên chúng. Nguyên tắc có thể được trình bày bằng ngôn ngữ tự nhiên và có thể được những người sử dụng kinh doanh sửa đổi. Ví dụ về một nguyên tắc kinh doanh là:
    "Nếu số giao dịch quỹ tương hỗ (ít hơn hoặc bằng) 40 thì Cờ đánh dấu phí giao dịch = thất bại".

Phần còn lại của các thực thể thông tin và dữ liệu sẽ được viết tư liệu tương tự.

Khả năng công nghệ
Khung nhìn doanh nghiệp làm nổi bật tập các bộ tạo khả năng công nghệ (technology enablers), tức cái tạo nên hạ tầng công nghệ thông tin cần có, để hỗ trợ việc thực hiện các quy trình kinh doanh cốt lõi. Các tạo tác công nghệ khái niệm là:
  • Chuyển đổi thông điệp

    Cung cấp khả năng chuyển đổi các kiểu khác nhau của định dạng thông điệp do các khách hàng sử dụng và truy cập vào các quy trình nghiệp vụ của doanh nghiệp theo một định dạng tiêu chuẩn duy nhất được sử dụng bởi các ứng dụng kinh doanh trong doanh nghiệp đó. Nó cũng cho phép chuyển đổi định dạng thông điệp chuẩn thành định dạng thông điệp riêng, mà khách hàng đang mong đợi hoặc hỗ trợ.
  • Định tuyến dịch vụ và thông điệp (Message and service routing)

    Cung cấp các khả năng định tuyến dịch vụ và thông điệp cao cấp. Nó cũng cung cấp thông tin để tìm chính xác nhà cung cấp dịch vụ đối với một yêu cầu dịch vụ cho trước và định tuyến yêu cầu dịch vụ tương ứng.
  • Đường sự kiện thời gian thực (Real-time event bus)

    Cung cấp các tính năng cơ bản và cao cấp đối với việc xử lý các sự kiện đơn giản và phức tạp. Tính năng của đường truyền tiện cho xử lý đồng bộ việc chuyển tiền trong và ngoài doanh nghiệp ở tốc độ gần với thời gian thực.
  • Máy chủ danh bạ (Directory server)

    Quản lý hồ sơ vắn tắt người sử dụng để xác minh các uỷ quyền của người sử dụng và quyết định các vai. Các hồ sơ người dùng cũng dùng để thực hiện các chức năng cấp phép.
  • Cổng B2B (Business-to-business gateway - cổng kinh doanh Doanh nghiệp đến Doanh nghiệp)

    Nhận các yêu cầu từ các bên thứ ba qua các yêu cầu dịch vụ. Cổng này cung cấp một điểm tập trung cho phép quản lí các yêu cầu có xuất xứ từ các thực thể ngoài qua các dịch vụ web. Người ta dùng thành phần này như mặt nạ đối với các địa chỉ nội bộ của các dịch vụ web và để chuyển yêu cầu sang giao thức khác.

    Đối với các lưu lượng vào, cổng chịu trách nhiệm nhận yêu cầu từ các hệ thống bên ngoài, gọi ra các bộ điều hợp cần thiết để thực hiện logic nghiệp vụ, và soạn ra một phản hồi và gửi nó quay trở lại hệ thống yêu cầu. Đối với các yêu cầu ra, cổng chịu trách nhiệm gửi đi các thanh toán thẻ tín dụng và các yêu cầu chuyển tiền quốc tế.

Các phần tử khái niệm còn lại cũng sẽ được viết tư liệu với mức độ chi tiết tương tự.

Khi SOA nổi lên như một khung kiến trúc, một số biến thể đối với khung nhìn kiến trúc doanh nghiệp cũng đang nẩy sinh. Nhất là các các doanh nghiệp mà mức trưởng thành SOA đã bắt đầu thừa nhận rằng danh mục đầu tư dịch vụ doanh nghiệp của họ là đủ quan trọng để trở nên bộ phận của kiến trúc doanh nghiệp. Một tập các dịch vụ doanh nghiệp có thể được thể hiện cùng với danh sách các quy trình kinh doanh cốt lõi. Khi kiến trúc doanh nghiệp trưởng thành như một chuyên ngành, chúng ta có thể thấy các tạo tác kiến trúc khác nhau tạo thành cách của chúng chuyển sang khung nhìn kiến trúc doanh nghiệp. Hiện tại, các phác thảo kiến trúc trình bày trong Hình 1 là cơ sở, nhưng đã chịu các thử thách của thời gian.

Khung nhìn kiến trúc phân lớp

Khung nhìn phân lớp đưa ra cách tiếp cận khác để nhóm các thành phần kiến trúc. Nó là khung nhìn thường sử dụng nhất để trình bày kiến trúc công nghệ thông tin. Một lớp kiến trúc trưng bày một tập các đặc tả và ràng buộc. Các thành phần kiến trúc, khi có định danh, được đánh giá theo các đặc tả của các lớp kiến trúc. Việc đánh giá dẫn đến việc nhóm các thành phần kiến trúc thành các lớp. Các lớp kiến trúc cung cấp một sự phân tách logic của các thành phần kiến trúc.

Mô hình kiến trúc được phân lớp đưa ra các nguyên tắc và quy tắc chủ đạo, áp đặt kỷ luật và sự nghiêm khắc về định danh các thành phần kiến trúc chính xác, dựa trên các quy tắc hướng dẫn được xếp đặt bởi các lớp kiến trúc.

Có một vài cách khác nhau để trình bày một lớp kiến trúc. Khung nhìn 9-lớp, như Hình 2, được giới thiệu.

Hình 2. Khung nhìn kiến trúc được phân lớp miêu tả một kiến trúc tham chiếu SOA
Khung nhìn kiến trúc được phân lớp miêu tả một kiến trúc tham chiếu SOA

Khung nhìn kiến trúc trong Hình 2 giới thiệu SOA như khung kiến trúc được sử dụng trong giải pháp đó. Tôi giới thiệu với bạn khung nhìn này, vì nó nhằm đến bất kỳ kiến trúc nào mà dựa trên SOA hoặc không. Nếu nó không dựa trên SOA thì không đòi hỏi lớp các dịch vụ, và lớp các thành phần dịch vụ có thể được thay thế bằng một lớp các thành phần.

Thí dụ trên có năm lớp chiều ngang và bốn lớp chiều đứng. Các lớp hàng ngang đi theo nguyên tắc cơ sở của mô hình kiến trúc được phân lớp, nơi mà các khối cơ bản của kiến trúc từ các lớp bên trên có thể truy cập các khối từ các lớp bên dưới, nhưng các lớp phía dưới không thể truy cập các khối cơ bản của kiến trúc từ các lớp bên trên. Các lớp đứng thường chứa các khối cơ bản của kiến trúc mà cắt chéo nhau, nghĩa là chúng có thể áp dụng được và được sử dụng bởi các khối cơ bản của kiến trúc trong một hoặc nhiều lớp ngang. Đây cũng có thể được gọi là một kiến trúc được phân lớp một phần vì bất kỳ lớp bên trên nào cũng không cần phải tương tác chặt chẽ với các phần tử từ lớp trực tiếp bên dưới của nó.

Ví dụ, một kênh truy cập riêng có thể trực tiếp truy cập một dịch vụ chứ không phải là phải đi qua một quy trình nghiệp vụ. Tuy nhiên các ràng buộc truy cập lại được ra lệnh bởi kiểu kiến trúc có thể áp dụng được, các nguyên tắc chỉ đạo, và các quy tắc đối với một giải pháp SOA đã cho. Khung nhìn kiến trúc SOA tham khảo này là độc lập với bất kỳ công nghệ riêng nào, vì nó là một khung nhìn logic. Các thực thể của kiến trúc logic có thể được phát triển đối với một nền tảng và công nghệ riêng.

Các định nghĩa sau đây của các lớp là để giúp các nhà kiến trúc nhận biết được các thành phần kiến trúc và đặt chúng vào các lớp thích hợp.

LớpĐịnh nghĩa
1 - Các hệ thống tác nghiệpGồm các hệ thống tác nghiệp mà hỗ trợ các hoạt động kinh doanh trong môi trường công nghệ thông tin hiện tại của doanh nghiệp. Gồm tất cả các ứng dụng đặt mua/tuỳ chỉnh và ứng dụng được đóng gói, các hệ thống đã tồn tại (legacy systems), các hệ thống quy trình giao dịch, và các cơ sở dữ liệu khác nhau.
2 - Thành phần dịch vụCác thành phần trong lớp này phù hợp với các hợp đồng được xác định bởi các dịch vụ trong các lớp dịch vụ. Lớp này thường được ánh xạ một-một giữa dịch vụ và thành phần dịch vụ. Một thành phần dịch vụ cung cấp một mặt tiền thực thi (implementation facade) mà kết hợp lại các chức năng từ nhiều, có thể là khác hẳn nhau, các hệ thống hoạt động trong khi giấu đi những phức tạp về tích hợp và truy cập từ dịch vụ mà được để lộ ra cho người tiêu dùng.
3 - Thành phần dịch vụ (nguyên hoặc gộp)Gồm tất cả các dịch vụ mà được xác định trong danh mục đầu tư dịch vụ doanh nghiệp và việc định nghĩa của mỗi dịch vụ với cả thông tin cú pháp và ngữ nghĩa. Thông tin cú pháp là để dùng cho các hoạt động trên mỗi dịch vụ, các thông điệp đầu vào và đầu ra, và định nghĩa của các lỗi dịch vụ. Thông tin ngữ nghĩa để dùng cho các chính sách dịch vụ, các quyết định quản lý dịch vụ, các yêu cầu truy cập dịch vụ, v.v… Các dịch vụ được định nghĩa để chúng có thể truy cập được bởi các kênh và những người tiêu dùng, độc lập với việc thực hiện và vận chuyển.
4 - Quy trình nghiệp vụCác quy trình nghiệp vụ miêu tả cách cơ sở nghiệp vụ hoạt động như thế nào. Một quy trình nghiệp vụ là một sự trình bày công nghệ thông tin của các hoạt động mà phối hợp với nhau trong một doanh nghiệp để thực hiện một chức năng nghiệp vụ cụ thể.

Lớp này trình bày các quy trình như một sự tổ chức khéo léo (orchestration) của các dịch vụ được ghép vào với nhau một cách lỏng lẻo. Nó cũng chịu trách nhiệm về việc quản lý toàn bộ vòng đời của sự tổ chức khéo léo của các quy trình. Các quy trình trong lớp này kết nối các yêu cầu nghiệp vụ và biểu hiện của chúng như một giải pháp cấp độ công nghệ thông tin bằng cách sử dụng các bộ phận cơ bản của kiến trúc từ các lớp ngang và đứng khác. Những người sử dụng, các kênh, và các hệ thống đối tác B2B trong lớp người tiêu dùng sử dụng các quy trình nghiệp vụ trong lớp này như một cách để gọi ra các chức năng của ứng dụng.

5 - Người tiêu dùngMiêu tả các kênh khác nhau qua đó các chức năng công nghệ thông tin được chuyển giao. Kênh có thể là các loại người sử dụng khác nhau, chẳng hạn như người tiêu dùng bên ngoài hoặc người tiêu dùng nội bộ mà truy cập các chức năng của ứng dụng thông qua các cơ chế khác nhau (các hệ thống B2B, cổng, các khách hàng giàu có, và các dạng khác).
6 - Tích hợp Cung cấp tính năng cho những người tiêu dùng dịch vụ định vị được các nhà cung cấp dịch vụ và khởi động các yêu cầu dịch vụ. Thông qua dàn xếp, việc định tuyến, và chuyển đổi dữ liệu và giao thức, lớp này giúp nuôi dưỡng một hệ sinh thái dịch vụ (service ecosystem) nơi mà dịch vụ có thể liên lạc với nhau trong khi là một bộ phận của một quy trình kinh doanh. Nó cung cấp các yêu cầu phi chức năng chủ chốt chẳng hạn như an ninh, ẩn, và chất lượng của dịch vụ giữa các lớp liền kề trong kiến trúc tham chiếu. Các chức năng của này lớp được ngày càng là chung xác định như đường dịch vụ doanh nghiệp.
7 - Chất lượng của dịch vụ Tập trung vào việc thực hiện và quản lý các yêu cầu phi chức năng mà các dịch vụ và các thành phần cần thực hiện bằng cách cung cấp các tính năng hạ tầng. Lớp này nắm bắt các phần tử dữ liệu, đảm bảo thông tin xung quanh các yêu cầu không phù hợp đến phi chức năng, tại từng lớp ngang. Các yêu cầu phi chức năng chuẩn, mà giám sát, là an ninh, tính sẵn dùng, độ lớn, và độ tin cậy.
8 - Kiến trúc thông tinBảo đảo một sự trình bày thích hợp dữ liệu và thông tin cần có trong một kiến trúc. Lớp này chịu trách nhiệm về các trình bày kiến trúc thông tin và kiến trúc dữ liệu và các suy xét và nguyên tắc chủ yếu để thiết kế và sử dụng từng lớp ngang. Lớp này nhằm vào các mô hình công nghiệp như ACCORD, IAA, JXDD và cách sử dụng của chúng để xác định kiến trúc thông tin và các giao thức kinh doanh sử dụng để trao đổi dữ liệu kinh doanh. Nó cũng lưu lại các siêu dữ liệu (metadata) cần có để khai thác dữ liệu và tri thức nghiệp vụ (business intelligence).
9 - Kiểm soátBảo đảm việc quản lý thích hợp toàn bộ vòng đời của các dịch vụ. Lớp này chịu trách nhiệm về ưu tiên cái có dịch vụ giá trị cao (high-value services) sẽ được thực hiện cho từng lớp trong kiến trúc và cung cấp một sự hợp lý hoá dựa trên cách mà dịch vụ thoả mãn đích công nghệ thông tin hoặc kinh doanh. Một nhiệm vụ chính nữa của lớp này là áp đặt các chính sách thiết kế và thời gian chạy mà các dịch vụ phải thực hiện và tuân theo.

Thực thi SOA - Một hướng dẫn thực hành cho Kiến trúc sư Hướng Dịch vụ (trong Tài nguyên) có một cách xử lý chi tiết về kiến trúc phân lớp.

Dựa trên các định nghĩa ở đây, bạn có thể định được các thành phần kiến trúc và đặt chúng vào một trong số chín lớp. Sau đó bạn cần phải viết tư liệu từng thành phần kiến trúc để truyền đạt vai trò của nó và nhiệm vụ mà nó thực hiện trong kiến trúc của giải pháp tổng thể.

Khung nhìn hệ thống công nghệ thông tin

Khung nhìn hệ thống công nghệ thông tin cung cấp một mức bổ sung của chi tiết và chỉ ra các nút chính của kiến trúc. Nút là thành phần đóng vai trò trong kiến trúc mà được định nghĩa rõ ràng. Các giao diện chương trình ứng dụng (APIs) và các giao thức có cấu trúc tốt là cần có giữa các nút. Nút có cấu trúc logic và không tương ứng trực tiếp với các máy chủ.

Khung nhìn hệ thống công nghệ thông tin sẽ là điểm xuất phát của mô hình thành phần và mô hình tác nghiệp, và nó có thể được mở rộng hoặc tinh chỉnh khi xác định hai mô hình này. Mô hình tác nghiệp sẽ ánh xạ khung nhìn công nghệ thông tin đến các máy chủ thật. Một máy chủ cho trước có thể hỗ trợ nhiều nút, hoặc một nút cho trước có thể được triển khai trên nhiều máy chủ.

Các mô hình thành phần và mô hình tác nghiệp sẽ được thảo luận chi tiết trong một bài viết về sau.

Hình 3 cho thấy một khung nhìn mức hệ thống công nghệ thông tin điển hình của kiến trúc phát triển của một giải pháp hệ thống.

Hình 3. Khung nhìn hệ thống công nghệ thông tin mẫu
Khung nhìn hệ thống công nghệ thông tin

Bạn phải viết tư liệu khung nhìn hệ thống công nghệ thông tin để cung cấp đủ thông tin ở mức độ tổng quan kiến trúc cho sự phát triển tiếp sau của các tạo tác kiến trúc chi tiết hơn.

Mô tả mỗi nút trong Hình 3 là rất chi tiết, nó nằm ngoài phạm vi bài viết này. Tôi khuyên bạn nên sử dụng một khuôn mẫu để cung cấp các tư liệu cần và đủ về mỗi nút. Mặc dù vậy, trước khi bàn luận về khuôn mẫu, đây là một dòng đơn về mô tả cho mỗi nút được đánh số trong Hình 3.

  1. Nút tường lửa công cộng (Public firewall node) - thường trú trong vùng hạn chế (DMZ) và chỉ cho phép luồng thông tin HTTP vào mạng doanh nghiệp.
  2. Nút điều phối (Dispatcher node) - dùng để cân bằng tải của nhiều yêu cầu ngang qua một cụm các nút thông tin web và nút máy chủ ứng dụng.
  3. Nút uỷ nhiệm đảo ngược (Reverse proxy node) - dùng để làm cứng các máy chủ web liên quan đến các khía cạnh an ninh; hoạt động như một thiết bị chặn (interceptor) của bất kỳ yêu cầu nào từ các khách hàng bên ngoài; cung cấp các tính năng xác thực và uỷ quyền thông qua một cơ chế đăng nhập một lần.
  4. Nút tường lửa doanh nghiệp (Enterprise firewall node) - chỉ mở một số cổng được chọn và bảo đảm sang mạng doanh nghiệp được bảo vệ, bằng cách đó bảo vệ các ứng dụng doanh nghiệp và dữ liệu then chốt thông qua một cơ chế cửa kép.
  5. Nút an ninh (Security node) - cung cấp sự xác thực và uỷ quyền cho một số ứng dụng doanh nghiệp, cơ sở dữ liệu, các hệ thống máy tính lớn, và các ứng dụng đã đóng gói.
  6. Nút thông tin web (Web information node) – chỉ phục vụ nội dung tĩnh và tăng cường hiệu năng của các ứng dụng dựa trên Web.
  7. Nút máy chủ ứng dụng (Application server node) - xử lý logic nghiệp vụ và nội dung giao dịch, và thực hiện các quy trình kinh doanh.
  8. Nút tích hợp EAI (EAI integration node) - cung cấp các tính năng tích hợp với các hệ thống phụ trợ (back-end systems).
  9. Nút tổ hợp nội dung (Content syndication node) – tập lại và xuất bản nội dung
  10. Nút tường lửa doanh nghiệp 2 (Enterprise firewall node 2) - sử dụng trong các tình huống được cung cấp khi một bộ phận của topo hệ thống công nghệ thông tin được bên thứ ba làm chủ cung cấp và bảo trì.

Các tư liệu bằng các câu đơn nói trên là giả định nếu có đủ thông tin sẵn sàng cho tư liệu chi tiết hơn về từng điểm nút trong topo hệ thống công nghệ thông tin. Đoạn còn lại của phần này cung cấp một khuôn mẫu cho một ví dụ như vậy.

Mỗi nút trong khung nhìn hệ thống công nghệ thông tin mong đợi có các thông tin sau đây:

  • Tên nút - xác định tên của nút.
  • Mô tả - một mô tả chi tiết về các đặc tả và tính chất của nút.
  • Các dịch vụ hoặc thành phần - mô tả các dịch vụ hoặc thành phần đang chạy trên nút, chẳng hạn như cơ sở dữ liệu quan hệ, quản trị giao dịch, quản trị trạng thái, v.v….
  • Các đặc tả phi chức năng - mô tả các đặc tả phi chức năng mà nút phải thể hiện và hỗ trợ.
  • Kết nối với các nút khác - lên danh mục các nút khác trong cấu trúc liên kết mà nó kết nối đến.

Chúng ta hãy sử dụng nút máy chủ ứng dụng (số 7 trong Hình 3) cho ví dụ về tư liệu chi tiết:

Tên nút
Máy chủ ứng dụng
Mô tả
Nút máy chủ ứng dụng chịu trách nhiệm xử lý các giao dịch và đảm bảo những người sử dụng web truy cập đến các hệ thống và cơ sở dữ liệu đầu cuối. Nó hỗ trợ các giao dịch web và cung cấp nhiều đặc tả tác nghiệp được xác định bởi các yêu cầu tác nghiệp của ứng dụng, gồm cả các máy chủ chia nhỏ (multithreaded servers) để hỗ trợ nhiều kết nối khách hàng, các dịch vụ thêm vào để xử lý các tải phụ, các tính năng cân bằng tải động các tính năng, tự động tránh lỗi (fail-over), và khả năng phục hồi.

Nút máy chủ ứng dụng cung cấp một điểm tích hợp cho các ứng dụng và cơ sở dữ liệu đầu cuối. Nút này, có thể được tạo thành từ nhiều máy chủ, sẽ là chủ quản lý các bộ nối và cổng đến các hệ thống đầu cuối.
Dịch vụ hoặc các thành phần
Nút máy chủ ứng dụng web, tức thể hiện của nút máy chủ ứng dụng, sẽ cho các thành phần sau đây thực hiện:
  • Phần mềm máy chủ ứng dụng.
  • Java™ Virtual Machine (Máy Ảo Java).
  • Phần mềm để giám sát việc sử dụng trang web và thu thập số liệu thống kê.
  • Phần mềm quản lý các hệ thống để phát hiện, chẩn đoán, và tự động sửa lỗi chính xác, và tự động thông báo nhân sự hỗ trợ.
Đặc tính phi chức năng
Lượng truy cập qua nút này, được đo bằng số lần chuyển tiền được xử lý trong một giờ đồng hồ (số lần thành công trên một giờ), được đặt ở hai mức:
  • Trung bình hoặc tải điển hình thu được trong phần lớn thời gian trong một ngày trong ngày kinh doanh bận rộn nhất.
  • Tải đỉnh tại các thời điểm khác nhau trong một ngày kinh doanh bình thường.
Yêu cầu về thời gian phản hồi, đo trong giờ cao điểm giờ từ lúc nhận được một yêu cầu về dữ liệu đến lúc có thông điệp phản hồi cuối cùng (khi máy chủ phản hồi bằng một trang), không được quá 8 giây trong 90% các giao dịch. Điều quan trọng là phải có khả năng đo được nút này khi cần thiết bằng cách thêm vào nhiều nữa các cá thể của nút này (phần cứng và phần mềm).

Nút này phải sẵn có để dùng 24 giờ/ngày và 7 ngày/tuần. Việc tránh lỗi được đưa ra để đảm bảo tính sẵn sàng. Các ứng dụng chạy trên nút này phải có cùng đặc tính dịch vụ sẵn có để dùng như của nút.
Kết nối đến các nút khác
Nút được trực tiếp kết nối đến bốn nút:
  • Nút tường lửa doanh nghiệp cung cấp an ninh ở mức giao thức mạng.
  • Nút cá nhân hoá cung cấp các đặc điểm và tính năng nhằm vào ứng dụng.
  • Nút an ninh truyền các nhãn an ninh (security credentials) đến các ứng dụng.
  • Nút tích hợp EAI cung cấp logic tích hợp, tạo điều kiện cho việc tích hợp đầu cuối với các hệ thống cơ sở dữ liệu, các ứng dụng đóng gói, và các hệ thống kế thừa.

Việc trình bày các thông tin nói trên ở định dạng bảng có thể làm dễ dàng hơn cho độc giả. Mỗi nút phải có mức độ tư liệu như chỉ ra trong ví dụ này.


Kết luận

Trong bài viết này, bạn đã hiểu được rằng viết tư liệu tổng quan kiến trúc là một tạo tác chủ yếu giúp hình thành nên kiến trúc phần mềm của bất kỳ hệ thống nào. Ba khung nhìn — doanh nghiệp, phân lớp, và hệ thống công nghệ thông tin — thường được sử dụng trong việc phát triển tổng quan kiến trúc. Có các cách hiệu quả để viết tư liệu chi tiết ba khung nhìn, cho phép tạo nên tạo tác kiến trúc quan trọng này. Tôi khuyến cáo mạnh bạn nên thực hiện một tổng quan kiến trúc như một giao phẩm (deliverable) trong bất kỳ kiến trúc phần mềm nào.

Tôi hy vọng bài viết này tác động đến các kiến trúc sư, dành thời gian phát triển tạo tác này và tác động đến các trưởng dự án, để có thời gian cho sự phát triển đó.

Hãy đợi nhiều bài viết nữa trong loạt bài này, chúng sẽ chi tiết hoá phần còn lại của các tạo tác kiến trúc, và cách sử dụng các nguyên tắc để viết tư liệu về chúng.

Tài nguyên

Học tập

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=441860
ArticleTitle=Viết tư liệu kiến trúc phần mềm, Phần 3: Phát triển tổng quan kiến trúc
publish-date=10302009