Thiết kế kiến trúc là mối liên quan với sự hiểu biết làm thế nào một hệ thống cần được tổ chức và thiết kế các cấu trúc tổng thể của hệ thống đóCác đầu ra của quá trình thiết kế kiến trúc là một mô hình kiến trúc mô tả cách hệ thống được tổ chức như là một tập hợp các thành phần giao tiếp.
Trang 1Bài tập lớn môn Công Nghệ Phần Mềm
Nhóm BLT : Nhóm 04 Thành Viên : Đỗ Quốc Việt Trần Anh Tuấn Nguyễn Thị Hoa
Chương 6 Thiết kế kiến trúc
Trang 2Nội dung
6.3 Mô hình kiến trúc
6.4 Ứng dụng kiến trúc
Trang 3-Thiết kế kiến tr úc là mối liên quan với sự hiểu biết l àm thế nào một hệ thống cần được tổ chức
v à thiết kế các cấu trúc tổng thể của hệ thống
đ ó
-Các đầu ra của quá trình thiết kế kiến trúc là
một mô hình kiến trúc mô tả cách hệ thống
được tổ chức như là một tập hợp các thành
phần giao tiếp
Trang 4Để giúp bạn hiểu kiến trúc hệ thống, hãy xem hình 6.1
Trang 56.1 Quyết định kiến trúc hệ thống
• Thiết kế kiến trúc là một quá trình sáng tạo nơi bạn thiết kế một hệ thống tổ chức mà nó sẽ đáp ứng các yêu cầu chức năng và phi chức năng của một hệ thống
• Trong quy trình thiết kế kiến trúc, kiến trúc sư hệ thống phải thực hiện một số quyết định cấu trúc ảnh hưởng sâu sắc hệ thống và tiến trình phát triển của nó
Trang 6Với kiến thức và kinh nghiệm họ sẽ đặt ra các câu hỏi cơ bản
về hệ thống :
• Có kiến trúc ứng dụng khái quát có thể hoạt động như khuôn mẫu cho hệ thống được thiết kế?
• Làm sao để hệ thống phân phối qua 1 lõi xử lý ?
• Nhưng mô hình kiến trúc có thể được sử dụng ?
• Kiến trúc sẽ được đánh giá như thế nào ?
• Kiến trúc hệ thông được lập tại liệu như thế nào ?
• Điều gì sẽ là phương pháp cơ bản được dùng trong hệ thông ?
• Những kiến trúc nào là tốt để cung cấp các yêu cầu phi chức năng của hệ thống ?
Trang 7- Kiến trúc của hệ thống phần mềm có thể được dựa trên đặc biệt kiến trúc mô hình hoặc kiểu cách Mô hình kiến trúc là mô tả về tổ chức hệ thống Như là
một máy khách - máy chủ tổ chức hoặc kiến trúc phân tầng Mô hình kiến trúc nắm bắt được bản chất của một kiến trúc đã được sử dụng trong các hệ thống
phần mềm khác nhau Bạn cần phải nhận thức của mô hình chung , nơi chúng có thể được sử dụng, ưu điểm và khuyết điểm của chúng khi đưa ra quyết định về kiến trúc của một hệ thống
- Do mối quan hệ chặt chẽ giữa các yêu cầu phi chức năng và kiến trúc phần mềm, đặc biệt là phong cách kiến trúc và cấu trúc mà bạn chọn cho một hệ thống cần
phải phụ thuộc vào các yêu cầu hệ thống không hoạt động như hiệu suất , bảo mật,
an toàn , tính sẵn sang và bảo trì
Trang 8- Hiệu suất :Nếu hiệu suất là yêu cầu quan trọng, kiến trúc nên được thiết kế để định
vị thao tác quan trọng trong một vài thành phần, với thành phần này tất cả triển khai trên cùng một máy tính thay vì phân phối qua mạng
-Bảo mật :Nếu bảo mật là một yêu cầu quan trọng, cấu trúc phân lớp cho các kiến trúc
nên được sử dụng , đối với các tài sản quan trọng nhất bảo vệ trong các lớp trong
cùng, với một mức độ cao của việc xác nhận an ninh áp dụng cho các lớp
-An toàn:Nếu an toàn là một yêu cầu quan trọng , kiến trúc cần được thiết kế để hoạt
động an toàn liên quan đến tất cả đều nằm trong hoặc một thành phần duy nhất hoặc trong một số lượng nhỏ các thành phần
Tính sẵn sang: Nếu tính sẵn sàng là yêu cầu quan trọng, kiến trúc nên được thiết kế để
bao gồm thành phần dư thừa sao cho có thể thay thế và cập nhật thành phần mà không cần dừng hệ thống
Bảo trì: Nếu bảo trì là một yêu cầu quan trọng, kiến trúc hệ thống cần được thiết kế sử
dụng tinh hạt , thành phần tự chứa dễ dàng có thể được thay đổi
Trang 96.2 Quan điểm kiến trúc
• Mô hình kiến trúc của một hệ thống phần mềm có thể được sử dụng để tập trung thảo luận về các yêu cầu phần mềm hoặc thiết kế Ngoài ra , chúng có thể được sử dụng để thiết kế một tài liệu để nó có thể được
sử dụng như một cơ sở cho việc thiết kế và thực hiện chi tiết hơn, và cho sự phát triển tương lai của hệ thống.
• Trong phần này chúng ta sẽ thảo luận về một vấn đề có liên quan :
1 Những điểm hay quan điểm rất hữu ích khi thiết kế và tài liệu về kiến trúc của hệ thống
Trang 10Có nhiều ý kiến khác nhau về những quan điểm là cần thiết :
1 Một quan điểm hợp lý , trong đó thấy các khái niệm trừu tượng chủ chốt trong hệ thống như các đối tượng hoặc các lớp đối tượng Nó phải có khả năng liên quan yêu cầu hệ thống cho đối tượng theo quan điểm hợp lý này
2 Quan điểm quá trình , trong đó cho thấy như thế nào , tại thời gian chạy , hệ thống bao gồm các quá trình tương tác Quan điểm này là hữu ích cho việc nhận định về hệ thống đặc điểm không có chắc năng như hiệu suất và tính sãn sang
3 Một quan điểm phát triển , trong đó cho thấy cách phần mềm để phát triển , nó cho thấy sự phân hủy các phần mềm vào các thành phần thực hiện bởi một nhà phát triển đơn lẻ hoặc nhóm phát triển Quan điểm này rất hữu ích cho các nhà quản lý phần
mềm và lập trình
4 Quan điểm vật lý , trong đó cho thấy các hệ thống phần cứng và cách các thành
phần , phần mèm được phân phối trên các bộ vi xử lý trong hệ thống Quan điểm này rất hữu ích cho các kỹ sư hệ thống có ké hoạch triển khai hệ thống .
Trang 11Trong thực tế , quan điểm về khái niệm gần như luôn luôn phát triển
trong suốt quá trình thiết kế và được sử dụng để hỗ trợ việc ra quyết định kiến trúc Chúng là một cách để giao tiếp bản chất của một hệ thống để các bên tham gia khác nhau Trong quá trình thiết kế, một số quan điểm khác cũng có thể được phát triển khi các khía cạnh khác nhau của hệ
thống sẽ được thảo luận , nhưng không cần mô tả hoàn toàn từ tất cả các quan điểm Nó cũng có thể có thể liên kết các mô hình kiến trúc
Trang 12Mô hình kiến trúc
Kiến trúc phân lớp
Tên Kiến trúc lớp
Mô tả Tổ chức hệ thống thành các lớp với các chức năng liên quan kết hợp
với mỗi lớp Một lớp cung cấp dịch vụ cho các lớp trên nó để các lớp cấp thấp nhất đại diện cho các dịch vụ cốt lõi có khả năng được sử dụng trên toàn hệ thống
Ví dụ Một mô hình phân lớp trong một hệ thống chia sẻ tài liệu bản quyền tổ
chức tại thư viện khác nhau Khi được sử
dụng
Được sử dụng khi xây dựng cơ sở mới trên đầu trang của các hệ thống hiện có; khi phát triển được lan truyền trên một số đội với mỗi nhiệm đội cho một lớp chức năng ; khi có một yêu cầu đối với an ninh
đa cấp.
Ưu điểm Cho phép thay thế toàn bộ các lớp miễn là giao diện được duy trì Cơ
sở vật chất dư thừa có thể được cung cấp trong mỗi lớp để tăng độ tin cậy của hệ thống.
Nhược điểm Trong thực tế , cung cấp một lớp sạch giữa các lớp thường là khó
khăn và một lớp cấp cao có thể có tương tác trực tiếp với các lớp dưới hơn là thông qua các lớp ngay bên dưới nó Hiệu suất có thể là một vấn đề vì nhiều cấp độ giải thích của một yêu cầu dịch vụ khi được xử lý tại mỗi lớp.
Trang 13Kho kiến Trúc :
Tên Kho
Mô tả Tất cả các dữ liệu trong một hệ thống được quản lý trong
một kho lưu trữ trung ương có thể truy cập đến tất cả các thành phần hệ thống Các thành phần không tương tác trực tiếp , chỉ thông qua các kho lưu trữ.
Khi sử
dụng
Bạn nên sử dụng mô hình này khi bạn có một hệ thống trong đó khối lượng lớn thông tin được tạo ra mà đã được lưu trữ trong một thời gian dài Bạn cũng có thể sử dụng
nó trong các hệ thống điều khiển dữ liệu mà sự bao gồm các dữ liệu trong kho gây ra một hành động hoặc công
cụ
Ưu điểm Các thành phần có thể độc lập , họ không cần phải biết về
sự tồn tại của các thành phần khác Những thay đổi được thực hiện bởi một thành phần có thể được lan truyền đến tất cả các thành phần Tất cả các dữ liệu có thể được quản
Trang 14Kiến Trúc Khách Chủ :
Tên Khách – chủ
Mô tả Trong một kiến trúc client-server , các chức năng của hệ thống được tổ
chức vào các dịch vụ , với mỗi dịch vụ chuyển giao từ một máy chủ riêng biệt Khách hàng là người sử dụng các dịch vụ và máy chủ truy cập để
sử dụng chúng Khi sử dụng Được sử dụng khi dữ liệu trong cơ sở dữ liệu dùng chung đã được truy
cập từ một loạt các địa điểm Bởi vì máy chủ có thể được nhân rộng, cũng có thể được sử dụng khi tải trên một hệ thống có thể thay đổi
Ưu điểm Ưu điểm chính của mô hình này là các máy chủ có thể được phân phối
qua mạng chức năng chung có thể có sẵn cho tất cả khách hàng và không cần phải được thực hiện bởi tất cả các dịch vụ
Nhược điểm Mỗi dịch vụ là một điểm của thất bại rất dễ bị mắc bệnh đến tấn công từ
chối dịch vụ hay thất bại server Việc thực hiện có thể là không dự đoán được vì cái đó còn tùy vào mạng cũng như hệ thống Có thể là vấn đề quản lý nếu các server thuộc quyền sở hữu của tổ chức khác.
Trang 15Ống và kiến trúc bộ lọc :
Tên Ống và bộ lọc
Mô tả Việc xử lý các dữ liệu trong một hệ thống được tổ chức để mỗi thành phần xử lý
( lọc) là rời rạc và thực hiện một loại hình chuyển đổi dữ liệu chảy dữ liệu ( như trong một ống ) từ một thành phần khác để xử lý.
Khi sử dụng Thường được dùng trong ứng dụng xử lý dữ liệu nơi dữ liệu nhập vào được xử lý
trong giai đoạn riêng biệt để tạo ra đầu ra liên quan.
Ưu điểm Dễ hiểu và hỗ trợ tái sử dụng chuyển đổi phong cách công việc phù hợp với cấu
trúc của nhiều quy trình kinh doanh Sự tiến hóa bằng cách thêm biến đổi là đơn giản Có thể được thực hiện như hoặc là một hệ thống tuần tự hoặc đồng thời
Nhược điểm Các định dạng để chuyển dữ liệu phải được thoả thuận giữa biến đổi giao tiếp
Mỗi chuyển đổi phải phân tích đầu vào của nó và bỏ phân tích đầu ra của nó với hình thức thỏa thuận Điều này làm tăng hệ thống trên không và có nghĩa rằng nó không thể tái sử dụng biến đổi chức năng sử dụng các cấu trúc dữ liệu không tương thích.
Trang 16• Đây là một mô hình của các tổ chức thời gian chạy của một hệ thống mà biến đổi chức năng xử lý đầu vào và đầu ra sản phẩm.
• Luồng dữ liệu từ một đến khác và được xuyên hình
thành khi nó di chuyển qua các trình tự.
• Mỗi bước xử lý được thực hiện như một biến đổi Dữ liệu đầu vào chảy qua những biến đổi cho đến khi
chuyển đến đầu ra Các phép biến đổi có thể thực hiện tuần tự hoặc song song
• Các dữ liệu có thể được xử lý bởi mỗi mục chuyển đổi theo khoản mục hoặc trong một đợt duy nhất.
Trang 17KIẾN TRÚC ỨNG DỤNG
- Kiến trúc ứng dụng đóng gói các đặc tính chủ yếu của một lớp các hệ thống
- Kết cấu kiến trúc thông thường có thể được tái
sử dụng khi phát triển hệ thống mới cùng loại
- Các kiến trúc ứng dụng có thể được tái thực
hiện khi phát triển hệ thống mới, nhưng đối với nhiều hệ thống kinh doanh, ứng dụng có thể tái
sử dụng
Trang 18Công dụng
- Như là một điểm khởi đầu cho quá trình thiết kế kiến trúc
- Là một danh sách kiểm tra thiết kế
- Là một cách tổ chức công việc của đội ngũ phát triển
- Như một phương tiện của các thành phần đánh giá để tái sử dụng
- Là một vốn từ vựng để nói chuyện về các loại ứng dụng
Trang 19Phân loại
- Các ứng dụng xử lý giao dịch
+ Là các ứng dụng cơ sở dữ liệu trung tâm, xử lý yêu cầu người dùng
+ Là những loại phổ biến nhất của các hệ thống hoạt động kinh doanh
+ Các lớp của hệ thống bao gồm các hệ thống ngân hàng tương tác, hệ thống thương mại điện tử,
hệ thống thông tin và các hệ thống đặt phòng
- Hệ thống xử lý ngôn ngữ
+ Là hệ thống mà những ý định của người dùng được thể hiện bằng 1 ngôn ngữ chính thức
+ Xử lý ngôn ngữ này sang 1 định dạng nội bộ sau đó giải thích biểu diễn
+ Các hệ thống xử lý ngôn ngữ được dùng để dịch các chương trình ngôn ngữ cấp cao thành mã máy, giải thích ngôn ngữ lệnh cho cơ sở dữ liệu và hệ thống thông tin và các ngôn ngữ đánh dấu
Trang 20Hệ thống xử lý giao dịch
- Xử lý giao dịch hệ thống được thiết kế để xử lý yêu cầu người sử dụng
để biết thông tin từ 1 cơ sở dữ liệu hoặc yêu cầu để cập nhật cơ sở
dữ liệu
- Về mặt kỹ thuật, 1 giao dịch cơ sở dữ liệu là chuỗi các hoạt động
được xử lý như 1 đơn vị duy nhất Tất cả các hoạt động trong 1 giao dịch đã được hoàn tất trước khi các thay đổi cơ sở dữ liệu đc thực
hiện thường trú
- Từ góc độ người dùng, giao dịch là trình tự chặt chẽ các hoạt động bất
kì đáp ứng 1 mục tiêu
Trang 21- Hệ thống xử lý giao dịch là hệ thống thường tương tác người dùng thực hiện các yêu cầu k đồng bộ cho dịch vụ
- Một giao dịch đc tạo ra và truyền cho người 1 người quản lý giao dịch, thường đc nhúng vào trong các hệ thống quản lý cơ sở dữ liệu Sau khi đảm bảo giao
dịch đc hoàn thành đúng cách, nó báo hiệu cho các
ứng dụng chế biến đã hoàn thành.
- Hệ thống xử lý giao dịch có thể đc tổ chức như 1 kiến trúc đường ống và bộ lọc với các thành phần hệ thống chịu trách nhiệm cho đầu vào, xử lý và đầu ra
Trang 22Hệ thống thông tin
- Tất cả các hệ thống có liên quan đến sự tương tác với 1 cơ sở dữ liệu
đc chia sẻ có thể đc coi là dựa trên 1 hệ thống thông tin giao dịch
- Một hệ thống thông tin cho phép truy cập được kiểm soát một lượng lớn thông tin các hệ thống thông tin là hệ thống dựa trên web được truy cập thông qua một trình duyệt web
Trang 23Thành phần hỗ trợ truyền thông và người sử dụng tìm kiếm thông tin
- Cuối cùng , nhánh thấp nhất , được xây dựng bằng cách
sử dụng hệ thống quản lý cơ sở dữ liệu thương mại ,
cung cấp quản lý giao dịch và dữ liệu liên tục lưu trữ
Trang 24Hệ thống xử lý ngôn ngữ
- Hệ thống xử lý ngôn ngữ dịch một ngôn ngữ tự nhiên hoặc
nhân tạo thành một đại diện của ngôn ngữ đó , và cho các ngôn ngữ lập trình, cũng có thể thực thi các mã kết quả
- Các hướng dẫn ngôn ngữ nguồn xác định chương trình sẽ
được thực hiện và một thông dịch chuyển đổi chúng thành các hướng dẫn cho một máy trừu tượng sau đó được giải thích
bởi một thành phần và thực thi chúng sử dụng dữ liệu từ môi
trường Các đầu ra của quá trình này là kết quả của việc giải
thích các hướng dẫn trên các dữ liệu đầu vào
Trang 25Ngôn ngữ lập trình trình biên dịch là một
phần trong môi trường lập trình tổng quát
hơn có kiến trúc khái quát, bao gồm thành
- Cây cú pháp, là cấu trúc bên trong đại diện cho chương trình được biên dịch
- Một dụng cụ phân tích ngữ nghĩa sử dụng thông tin từ cây cú pháp và bảng biểu tượng để kiểm tra tính chính xác ngữ nghĩa của văn bản ngôn ngữ đầu vào
- Một bộ tạo mã 'đi bộ' cây cú pháp và tạo ra mã máy ảo
Trang 26Vấn đề chính
• Kiến trúc phần mềm là mô tả về cách hệ thống phần mềm được
tổ chức Thuộc tính của hệ thống như là hiệu năng, bảo mật, và tính sẵn sàng chịu ảnh hưởng của kiến trúc sử dụng
• Quyết định thiết kế kiến trúc bao gồm quyết định về loại ứng dụng, việc phân phối hệ thống, kiểu kiến trúc sẽ sử dụng, và
cách kiến trúc nên được lập tài liệu và đánh giá
• Kiến trúc có thể là được lập tài liệu từ nhiều phối cảnh hoặc
• Chúng mô tả kiến trúc, giải thích khi nó có thể được sử dụng,
và thảo luận ưu điểm và nhược điểm của nó
Trang 27• Mô hình khái quát của kiến trúc hệ thống ứng dụng giúp chúng tôi hiểu thao tác của ứng dụng, so sánh ứng dụng của cùng
kiểu, xác nhận ứng dụng thiết kế hệ thống, và đánh giá thành phần quy mô lớn cho sử dụng lại
• Hệ thống xử lý giao dịch là hệ thống tương tác cho phép thông tin trong cơ sở dữ liệu để được truy cập từ xa và sửa đổi bằng một số người dùng Hệ thống thông tin và hệ thống quản lý