Chƣơng 5 SO SÁNH VÀ ĐÁNH GIÁ MDA VỚI CÁC PHƢƠNG PHÁP KHÁC

Một phần của tài liệu Nghiên cứu, phát triển và ứng dụng kiến trúc hướng mô hình trong công nghệ phần mềm (Trang 78)

PHÁP KHÁC

5.1. So sánh MDA với OO – Method 5.1.1 Sự giống nhau giữa MDA và OO-Method 5.1.1 Sự giống nhau giữa MDA và OO-Method

Mục đích của MDA là sự tách bạch giữa logic ứng dụng với những cái được dự định thi hành. Các tầng này cho phép làm giảm bớt ảnh hưởng của quá trình tiến hóa công nghệ lạm dụng tới sự phát triển ứng dụng do nó cho phép đặc tả như nhau để cụ thể hóa nền tảng đa phần mềm. Bên cạnh đó, sự hiểu biết và các thuộc tính thường kết hợp để một ứng dụng được chuyển ra ngoài vùng mã nguồn và đi vào các đặc tả

MDA tạo ra mô hình xác thực chính của phát triển ứng dụng. Các mô hình này có giá trị lớn nhất bởi vì mã nguồn có thể tự động lấy được từ tác động đến một vài sự biến đổi.

Phương pháp hướng đối tượng kết hợp chặt chẽ với các đặc điểm của MDA ngay từ lúc bắt đầu. Trong phần này sẽ phân tích mối quan hệ giữa OO-Method và MDA dựa trên khái niệm mô hình cơ bản của quá trình sản xuất phần mềm nơi mà chuyển đổi mô hình là mục đích chính của sản phẩm phần mềm chất lượng

Ở giai đoạn thứ nhất, phương pháp hướng đối tượng tập trung vào xây dựng mô hình khái niệm được xác nhận bằng mô hình độc lập với nền công nghệ MDA, từ đó nó sẽ mô tả những yếu tố cần thiết của ứng dụng độc lập với nền công nghệ mà nó sẽ được thực thi và thi hành

Giai đoạn thứ hai trong phương pháp hướng đối tượng bao gồm: sự chuyển đổi tự động của mô hình khái niệm thành mã nguồn của ứng dụng. Giai đoạn này tạo ra một mô hình ứng dụng là mô hình trên nền công nghệ cụ thể trong MDA. Ngoài ra, một tập hợp các ánh xạ được định nghĩa giữa các yếu tố trong mô hình khái niệm và các yếu tố trong mô hình ứng dụng. Những ánh xạ đó tương đương với sự chuyển đổi từ PIM sang PSM trong MDA. Cuối cùng phương pháp hướng đối tượng kết hợp với phép biến đổi mỗi yếu tố trong mô hình ứng dụng đến mức mã nguồn, một tập hợp các phép biến đổi tương ứng với sự chuyển đổi từ PSM sang mô hình mã nguồn trong MDA

MDA OO-Method

Platform – Independent Model (PIM) Mô hình khái niệm

Platform Specìic Model (PSM) Mô hình ứng dụng

Implementation Model (IM) Application Code

PIM-to-PSM transformation Mappings

PSM-to-IM transformation Transformation

Tổng kết sự giống nhau giữa MDA và OO-Method

5.1.2 Các đặc tính của OO-Method không tồn tại trong MDA

Một số thuộc tính then chốt của OO – Method trong quá trình biên dịch mô hình không liên quan đến MDA. Tổ chức quản trị đối tượng OMG thừa nhận rằng, trong một số trường hợp, một PIM có thể chứa tất cả các thông tin cần thiết để tạo ra những lệnh thực thi mà không cần phải dùng thêm thông tin nào khác. Trong mối quan hệ này OO-Method cung cấp một giải pháp rõ ràng hơn, bởi vì ngôn ngữ đặc tả OASIS trong phương pháp hướng đối tượng được mô tả rất chi tiết. Mặt khác, một mô hình khái niệm của OO-Method (tương tự như PIM) thường chứa tất cả các thông tin cần thiết để sinh ra mã nguồn.

Ngoài ra , theo tổ chức OMG, khi PIM đã chứa tất cả các thông tin cần thiết thì thông tin từ PSM vẫn bổ sung được vào PIM. Khi đó người kỹ sư có thể sử dụng những công cụ dịch trực tiếp từ PIM sang mã nguồn. OO-Method cần một mô hình ứng dụng được xác định cụ thể tương tự như PMS. Nếu chương trình dịch mô hình hướng đối tượng có thể được sử dụng thì mô hình ứng dụng không cần được biết rõ.

Một cách tiếp cận là mã nguồn có thể chứa trực tiếp từ một PIM trong MDA. Trong OO-Method, chúng ta đã tranh luận rằng một PSM luôn luôn cần thiết để cung cấp những thuộc tính của nền công nghệ đã được chọn. Mô hình khái niệm hướng đối tượng (PIMs) là hoàn toàn độc lập với nền công nghệ, cho nên nó có thể được cụ thể hóa trên một số nền công nghệ. Thực tế trong MDA, PIMs có thể được dịch trực tiếp từ mã nguồn.

Cuối cùng OMG tuyên bố rằng môi trường phát triển bằng những thuộc tính này giúp người kỹ sư phát triển PIMs thành mã nguồn một cách đơn giản.

5.2. So sánh MDA với SOA

SOA - Service Oriented Architecture (Kiến trúc Định hướng Dịch vụ), theo định nghĩa của DotNetGuru, là 'Khái niệm về hệ thống trong đó mỗi ứng dụng được xem như một nguồn cung cấp dịch vụ'. Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ như là hàm chức năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó. Một cách cơ bản, SOA là tập hợp các dịch vụ kết nối 'mềm dẻo' với nhau (nghĩa là một ứng dụng có thể 'nói chuyện' với một ứng dụng khác mà không cần biết các chi tiết kỹ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới. Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao tiếp gọi dịch vụ. Điều này tạo nên một giao tiếp nhất quán cho ứng dụng khách (client) sử dụng dịch vụ bất chấp công nghệ thực hiện dịch vụ. Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ, nhà phát triển sẽ xây dựng các dịch vụ tinh gọn có thể triển khai và tái sử dụng trong toàn bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần mềm tốt hơn, cũng như tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến ứng dụng client sử dụng dịch vụ. Ưu điểm quan trọng nhất của SOA là khả năng kết nối 'mềm dẻo' (nhờ sự chuẩn hóa giao tiếp) và tái sử dụng. Các dịch vụ có thể được sử dụng với trình client chạy trên nền tảng bất kỳ và được viết với ngôn ngữ bất kỳ. (Ví dụ, ứng dụng Java có thể liên kết với dịch vụ web .NET và ngược lại). SOA dựa trên 2 nguyên tắc thiết kế quan trọng:

• Mô-đun: Tách vấn đề lớn thành nhiều vấn đề nhỏ.

• Đóng gói: Che đi dữ liệu và lô-gic trong từng mô-dun (hay 'hộp đen') đối với truy cập từ ngoài.

Sự giống nhau:

 Độc lập với hệ thống

MDA: cho phép cùng một kết quả phân tích thiết kế hệ thống được thực thi trên trên nhiều nền công nghệ khác nhau hoặc trên một nền công nghệ mới

SOA: những service không phụ thuộc vào hệ thống và mạng cụ thể

 Có khả năng tái sử dụng

Do đó cả MDA và SOA đều giúp cho công việc phát triển phần mềm trở nên dễ dàng và nhanh chóng hơn, giảm chi phí phát triển và bảo trì, có khả năng sử dụng và tích hợp các thành phần mới...

Khác biệt giữa SOA và MDA là

SOA là một mô hình phần mềm phân tán. Các thành phần chính của SOA là

dịch vụ, cơ chế tìm kiếm động, và thông điệp.

Dịch vụ là một tác vụ có thể gọi được qua mạng. Một dịch vụ thể hiện một giao diện theo giao ước, trong đó định nghĩa hành vi của dịch vụ và các thông điệp mà nó nhận hay trả về.

Các giao diện thường được xuất bản trong một kho hoặc thư mục đăng kí công cộng, trong đó, chúng được phân loại dựa trên các dịch vụ cung cấp, cũng giống như các doanh nghiệp, số điện thoại của chúng được liệt kê trong cuốn các trang vàng dịch vụ. Các client (các thành phần sử dụng dịch vụ) có thể tra cứu một dịch vụ cụ thể bằng cách truy vấn động các dịch vụ dựa trên các tính năng phân loại khác nhau. Quá trình này được biết tới như cơ chế tìm kiếm động các dịch vụ.

Các thành phần sử dụng dịch vụ hay client sử dụng dịch vụ thông qua các thông điệp. Vì các giao diện của chúng là độc lập về nền tảng và ngôn ngữ nên các thông điệp thường được cấu trúc bằng cách sử dụng các tài liệu XML phù hợp với

XML schema.

MDA là mô hình hướng đối tượng. Các lớp thể hiện trong MDA sẽ thao tác trực tiếp lên các đối tượng

Còn SOA truy xuất hoàn toàn theo các dịch vụ 'Services'. Trong SOA, lớp thể hiện giờ đây không còn, mà sử dụng dịch vụ để truy cập chúng. Các đối tượng nghiệp vụ được đặt trong thư viện và được dịch vụ nạp vào bộ nhớ - lớp dịch vụ và lớp nghiệp vụ nằm trong cùng tiến trình, nhờ vậy lời gọi hàm đến đối tượng nghiệp vụ sẽ không hề bị quá tải. Dịch vụ đóng vai trò như 'hộp đen': cung cấp một lớp trung gian cho mô hình đối tượng và đưa ra tập chức năng rút gọn, làm giảm nhu cầu trao đổi giữa các lớp.

SOA là kiến trúc phần mềm phát xuất từ định nghĩa giao tiếp và xây dựng toàn bộ mô hình ứng dụng như là mô hình các giao tiếp, hiện thực giao tiếp và phương thức gọi giao tiếp. Giao tiếp là trung tâm của toàn bộ triết lý kiến trúc này; thực ra, tên gọi 'kiến trúc định hướng giao tiếp' thích hợp hơn cho SOA. Dịch vụ và module phần mềm nghiệp vụ được truy cập thông qua giao tiếp, thường theo cách thức yêu cầu - đáp trả. Ngay cả với yêu cầu dịch vụ một chiều thì nó vẫn là yêu cầu trực tiếp có chủ đích từ một phần mềm này đến một phần mềm khác. Một tương tác định hướng dịch vụ luôn bao hàm một cặp đối tác: nguồn cung cấp dịch vụ và khách hàng sử dụng dịch vụ.

Một phần của tài liệu Nghiên cứu, phát triển và ứng dụng kiến trúc hướng mô hình trong công nghệ phần mềm (Trang 78)

Tải bản đầy đủ (PDF)

(105 trang)