1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về mô hình phát triển phần mềm hướng dịch vụ, nêu kiến trúc, cách thức hoạt động và lợi ích của việc phát triển phần mềm hướng dịch vụ

26 1,3K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 457,6 KB

Nội dung

Tìm hiểu về mô hình phát triển phần mềm hướng dịch vụ, nêu kiến trúc, cách thức hoạt động và lợi ích của việc phát triển phần mềm hướng dịch vụ

Trang 1

TRƯỜNG ĐẠI HỌC NÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN

Công nghệ phần mềm

Đề tài: Tìm hiểu về mô hình phát triển phần mềm hướng dịch vụ, nêu kiến trúc,

cách thức hoạt động và lợi ích của việc phát triển phần mềm hướng dịch vụ

Nhóm 2

Hà Nội, tháng 11/2013

Trang 2

Mục lục

Mục lục 2

Lời mở đầu 2

I.TỔNG QUAN VỀ MÔ HÌNH HƯỚNG DỊCH VỤ 4

1.1 Khái niệm về mô hình hướng dịch vụ 4

1.2 Tính chất của hệ thống SOA 5

1.3 Nguyên tắc của hệ thống SOA 9

II KIẾN TRÚC CỦA MÔ HÌNH HƯỚNG DỊCH VỤ 10

2.1.Kiến trúc tổng quan của SOA 11

2.2.Kiến trúc chi tiết 12

2.3.SOA và Web service 16

2.4.Mô hình giao tiếp bằng thông điệp (message) trong SOA 17

III.CÁCH THỨC HOẠT ĐỘNG CỦA MÔ HÌNH HƯỚNG DỊCH VỤ 18

3.1.Devolop 18

3.2.Intergrate 19

3.3.Orchestrate 19

3.4.Deploy 19

3.5.Manage và Secure 19

3.6.Access 19

IV.LỢI ÍCH VÀ HẠN CHẾ CỦA VIỆC PHÁT TRIỂN MÔ HÌNH HƯỚNG DỊCH VỤ 20

4.1.Lợi ích 20

4.2.Hạn chế 21

4.3 So sánh mô hình SOA với các mô hình truyền thống 21

4.4 Bảo mật trong SOA 22

V KẾT LUẬN 25

TÀI LIỆU THAM KHẢO 26

Trang 3

Lời mở đầu

Sự phát triển của Internet đã thúc đẩy nhu cầu cộng tác, làm việc qua mạng

và sử dụng các dịch vụ trực tuyến dần trở thành một nhu cầu thiết yếu trong cuộcsống của chúng ta Điều đó đòi hỏi các ứng dụng không chỉ là những hệ thống hoạtđộng đơn lẻ trên một máy trạm (máy client) và chịu phụ thuộc vào một nền tảng cốđịnh nào nữa, mà chúng phải là những hệ thống linh động giúp người dùng làmviệc “mọi lúc, mọi nơi” Điều đó đã làm nhà phát triển phải đối mặt với hàng loạtcác vấn đề mới như làm sao tích hợp các thành phần phân tán lại với nhau; hay tái

sử dụng những thành phần có sẵn; vấn đề triển khai và bảo trì, … đang là một vấn

đề làm điên đầu các nhà phát triển

Các ứng dụng khi sử dụng dịch vụ này chỉ cần gửi thong điệp yêu cầu đến một dịch vụ (server) khác và chờ nhận kết quả từ dịch vụ đó và dịch vụ này không phụ thuộc vào môi trường hệ điều hành, ví dụ như Web hiện nay chẳng hạn, có thể hiện rất rõ ý tưởng này Công nghệ SOA giúp chúng ta trong việc phát triển các services này rất hiệu quả Hiện nay nhiều công ty phần mềm lớn trên thế giới đều quan tâm phát triển hệ thống này ví dụ như: Oracle, IBM, Microsoft… Mong muốntìm hiểu một cách khái quát về công nghệ SOA và những lợi ích đạt được của kiến trúc này chính là lý do chúng tôi lựa chọn đề tài: “Tìm hiểu về mô hình phát triển phần mềm hướng dịch vụ, nêu kiến trúc, cách thức hoạt động và lợi ích của việc phát triển phần mềm hướng dịch vụ.”

Trong quá trình tìm hiểu đề tài và biên soạn tài liệu không thể tránh khỏinhững thiếu sót nhất định, rất mong nhận được sự đóng góp ý kiến của quý thầy cô

và các bạn để đề tài thêm hoàn thiện

Trang 4

I.TỔNG QUAN VỀ MÔ HÌNH HƯỚNG DỊCH VỤ

1.1 Khái niệm về mô hình hướng dịch vụ

SOA (Service Oriented Architecture) – Kiến trúc Định hướng Dịch vụ là

một cách tiếp cận hay một phương pháp luận để thiết kế và tích hợp các thành phầnkhác nhau, bao gồm các phần mềm và các chức năng riêng lẻ lại thành một hệthống hoàn chỉnh Kiến trúc SOA rất giống như cấu trúc của các phần mềm hướngđối tượng gồm nhiều module Tuy nhiên khái niệm module trong SOA không đơnthuần là một gói phần mềm, hay một bộ thư viện nào đó Thay vào đó, mỗi module

trong một ứng dụng SOA là một dịch vụ được cung cấp rải rác ở nhiều nơi khác

nhau và có thể truy cập thông qua môi trường mạng Nói một cách ngắn gọn, một

hệ thống SOA là một tập hợp nhiều dịch vụ được cung cấp trên mạng, được tíchhợp lại với nhau để cùng cộng tác thực hiện các tác vụ nào đấy theo yêu cầu củangười dùng

Một trong những cách hiểu sai lầm nhất về SOA là coi SOA là một công

nghệ Mặc dù SOA hoạt động được là nhờ công nghệ, nhưng khách hàng cần phải

chuyển đổi từ chỗ chỉ việc tích hợp công nghệ SOA sang việc phải điều chỉnh cácphương pháp thực hiện dự án, chính sách bảo trì và thay đổi để đạt được các lợi ích

về khả năng trưởng thành và đáp ứng

Dịch vụ là yếu tố then chốt trong SOA Có thể hiểu dịch vụ như là một loại

module thực hiện một quy trình nghiệp vụ nào đó Một trong những mục đích củaSOA là giúp các ứng dụng có thể 'nói chuyện' với nhau mà không cần biết các chitiết kỹ thuật bên trong Để thực hiện điều đó SOA định ra một chuẩn 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 Như vậy, SOA là cấp độ cao hơn của phát triển ứngdụng, chú trọng đến quy 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 Sự trừu tượng là cốt lõi của khái niệm dịch vụ, nó giúp

Trang 5

cho các doanh nghiệp có thể tích hợp các thành phần hiện có vào các ứng dụngmới và các thành phần này có thể được chia sẻ hoặc tái sử dụng trong nhiều lĩnhvực khác nhau của công ty đó mà không cần phải chỉnh sửa mã nguồn hay phải táicấu trúc lại hệ thống

Có nhiều cách khác nhau để kết nối các dịch vụ, chẳng hạn dùng các giao

thức mạng có sẵn, hoặc tạo một giao thức riêng Nhưng từ năm 2001, các dịch vụ

web (Web service) được xây dựng dựa trên nền tảng web toàn cầu, bất cứ nơi nào

cũng có, đã trở thành một phương pháp phổ biến cho việc kết nối các thành phầncủa hệ thống SOA với nhau Thoạt nhìn SOA và dịch vụ web trông có vẻ giốngnhau nhưng chúng không phải là một Chúng ta sẽ tìm hiểu rõ hơn về các dịch vụweb trong các phần tiếp theo

Hình 1.1 – Mô hình cơ bản của SOA.

1.2 Tính chất của hệ thống SOA

+) Liên kết lỏng (Loose coupling)

Vấn đề kết nối ám chỉ các ràng buộc giữa một số module với nhau Có hai loại kết nối là rời (loose) và chặt (tigh) Các modul có tính loose coupling có một

số ràng buộc được mô tả rõ ràng, trong khi các modul có tính tigh coupling thì lại

có một số ràng buộc được mô tả rõ ràng, trong khi các modul có tính tigh coupling thì lại có một số ràng buộc không được biết trước Hầu hết các phần mềm đều hướng đến tính loose coupling

Trang 6

SOA sử dụng loose coupling thông qua việc sử dụng hợp đồng và liên kết (contract and binding) Một người sự dụng truy vấn đến nơi lưu trữ và cung cấp thông tin dịch vụ (Registry) để lấy thông tin về loại dịch vụ cần sử dụng Registry

sẽ trả về mọi dịch vụ thỏa mãn tiêu chuẩn tìm kiếm Từ đó người dùng chỉ việc chọn dịch vụ mình cần, thực thi phương thức trên đó theo mô tả để nhận dịch vụ từRegistry.Bên sử dụng dịch vụ không cần phụ thuộc trực tiếp vào tin cài đặt của dịch vụ mà chỉ dựa trên hợp đồng dịch vụ đó hỗ trợ

Tính loose coupling giúp bỏ những ràng buộc điều khiển giữa những hệ thống đầu cuối Mỗi hệ thống có thể tự quản lý độc lập làm tăng hiệu suất, khả năng mở rộng và khả năng đáp ứng cao Loose coupling làm tách biệt giữa bên cung cấp và bên sử dụng, nhưng nó đòi hỏi các interface phải theo một chuẩn và cần một thành phần trung gian quản lý để trung chuyển yêu cầu giữa các hệ thống đầu cuối

+) Tái sử dụng dịch vụ

Những dịch vụ được dùng chung bởi tất cả các ứng dụng của một hệ thống SOA gọi là shared infrastructure service Tái sử dụng dịch vụ loại bỏ phần trùng lặp, tăng độ vững chắc trong cài đặt và đơn giản hóa việc quản trị

+) Sử dụng dịch vụ bất đồng bộ

Phương thức triệu gọi là bất đồng bộ như sau: bên gọi gửi một thông điệp với đầy đủ thông tin ngữ cảnh tới bên nhận Bên nhận xử lý thông tin trả về kết quảcho bên gọi thông qua một kênh thông điêp Bên gọi không phải chờ cho đến khi thông điệp được xử lí xong

Phương thức đồng bộ: Trên lý thuyết, SOA có thể sử dụng cả phương thức đồng bộ và bất đồng bộ

Trang 7

+) Quản lý các Policy

Khi sử dụng các dịch vụ trên mạng, tùy theo mỗi ứng dụng sẽ có một luật kết hợp riêng gọi là các Policy Việc quản lý các Policy tăng khả năng tạo ra các đặc tính tái sử dụng dịch vụ vì các Policy được thiết kế tách biệt và tùy vào mỗi ứng dụng nên giảm tối đa các thay đổi phần mềm đồng thời có thể chia các nhóm làm việc mà không cần phụ thuộc vào nhau (nhóm phát triển phần mềm và nhóm điều hành, nhóm hỗ trợ)

+) Khả năng cộng tác (interoperability)

SOA nhấn mạnh đến khả năng cộng tác, khả năng mà các hệ thống khác nhau có thể giao tiếp trên nhiều nền tảng ngôn ngữ khác nhau Mỗi dịch vụ cung cấp một interface có thể được triệu gọi thông qua một dạng kết nối Một kết nối gọi

là interperable chứa trong nó một giao thức và một định dạng dữ liệu mà mỗi clientkết nối đến nó đều hiểu Interoperability đạt được bằng cách hỗ trợ các giao thức

và định dạng dữ liệu chuẩn của dịch vụ và client hệ thống ánh xạ mỗi tính chất và ngôn ngữ qua một đặc tả trung gian Đặc tả này sẽ chịu trách nhiệm ánh xạ giữa định dạng dữ liệu khả kết (interoperable) đến định dạng dữ liệu tùy thuộc vào hệ thống Ví dụ Web Service là một đặc tả trung gian cho giao tiếp giữa các hệ thống JAX – RPC, JAXM chuyển các đối tượng dạng Java thành Soap

Trang 8

+) Tự động dò tìm và ràng buộc động

SOA hỗ trợ khái niệm dò tìm dịch vụ (Service discovery) Một người sử dụng cần một dịch vụ nào đó có thể tìm kiếm dịch vụ theo những tiêu chuẩn khi cần Người sử dụng dịch vụ chỉ cần hỏi một Registry về dịch vụ thỏa mãn yêu cầu của họ

Ví dụ, một hệ thống chuyển khoản (Cónumer) yêu cầu Registry tìm kiếm tất

cả các dịch vụ có khả năng kiểm tra thẻ tín dụng Registry trả về một tập các thông

ti thỏa dụng sẽ chọn một dịch vụ có chi phí thấp và kết nối đến nhà cung cấp dịch

vụ đó dựa trên thông tin của entry mà registry tìm được để yêu cầu sử dụng dịch vụkiểm tra thẻ tín dụng Trong phần mô tả dịch vụ kèm theo đã có tất cả các tham số cần thiết để thực thi dịch vụ Bên sử dụng chỉ cần định dạng dữ liệu cần thiết theo

mô tả của nhà cung cấp dịch vụ và gửi đi Nhà cung cấp sẽ thực thi kiểm tra thẻ tín dụng và trả về kết quả là một thông điệp theo đúng định dạng như trong phần mô tảdịch vụ Mối ràng buộc duy nhất giữa nhà cung cấp và người sử dụng là bản hợp đồng được cung cấp bởi Registry trung gian Mối ràng buộc trong thời gian chạy chứ không phải là ràng buộc trong thời gian biên dịch Tất cả các thông tin cần thiết về dịch vụ được lấy về và sử dụng trong khi chạy

Với SOA, bên sử dụng không cần biết định dạng của thông điệp yêu cầu cũng như thông điệp trả về, hay địa chỉ dịch vụ khi gọi đến Bên sử dụng triệu gọi một cách động

+) Tự hồi phục(Self- healing)

Một hệ thống tự hồi phục là một hệ thống có khả năng tự hồi phục sau khi bịlỗi mà không cần đến sự can thiệp của con người

Trang 9

Độ tin cậy là mức độ đo khả năng một hệ thống xử lý tốt như thế nào trong tình trạng hỗn loạn Trong SOA, mỗi dịch vụ có khả năng hoạt động hoặc ngừng bất cứ lúc nào, nhất là những ứng dụng tổ hợp của nhiều dịch vụ thuộc nhiều tổ chức khác nhau Độ tin cậyphụ thuộc vào khả năng phục hồi của phần cứng sau khigặp lỗi.

Một hệ thống SOA phải đảm bảo đủ 4 nguyên tắc chính sau đây:

- Sự phân định rạch ròi giữa các dịch vụ:Do có sự tách biệt giữa các thành

phần giao tiếp và thành phần thực hiện dịch vụ trong kiến trúc hướng dịch vụ

qua thành phần giao tiếp

trao đổi:

thông tin và chức năng của dịch vụ,

vụ mà không cần biết thông điệp đó sẽ được xử lý như thế nào

- Các dịch vụ tự hoạt động

lập mà không phụ thuộc vào các dịch vụ khác

sự cố

 Để thực hiện điều này, các dịch vụ cần duy trì đầy đủ thông tin cần thiết cho quá trình hoạt động của mình để có thể tiếp tục hoạt động trong trường hợp dịch vụ cộng tác của nó bị hỏng, đồng thời sử dụng

Trang 10

các biện pháp bảo mật để tránh các cuộc tấn công ồ ạt từ bên ngoài vào như gửi thông điệp lỗi hoặc thông điệp ồ ạt.

- Tính tương thích của các dịch vụ dựa trên chính sách

chính sách, các yêu cầu của dịch vụ đó như: mã hóa, bảo mật

 -> Để thực hiện điều này,mỗi dịch vụ phải cung cấp công khai chính sách và các yêu cầu bảo mật của mình

II KIẾN TRÚC CỦA MÔ HÌNH HƯỚNG DỊCH VỤ

Kiến trúc hướng dịch vụ (Service Oriented Architecture) là một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, chức năng hệ thống theo dạng module, trong đó mỗi module đóng vai trò là một “dịch vụ có tính loose coupling”

và có khả năng truy cập thông qua môi trường mạng Một cách đơn giản thì một hệthống SOA là tập hợp các dịch vụ được chuẩn hóa trên mạng, trao đổi với nhau trong ngữ cảnh một tiến trình nghiệp vụ

Trang 11

2.1.Kiến trúc tổng quan của SOA

Sơ đồ cộng tác trong SOA

Trong SOA có ba thành phần chính:

Service Provider: Cung cấp stateless service phục vụ cho một nhu

cầu nào đó User (service consumer) không cần quan tâm đến vị trí thực sự màservice họ cần sử dụng đang hoạt động

Serive Consumer: User sử dụng service được cung cấp bởi Service

Provider

Service Registry: Nơi lưu trữ thông tin về các service của các

Service Provider khác nhau, Service Consumer dựa trên những thông tin này đểtìm kiếm và lựa chọn Service Provider phù hợp

Service Provider sẽ đăng ký thông tin về service mà mình có thể cung cấp(các chức năng có thể cung cấp, khả năng của hệ thống (resource, performance),giá cả dịch vụ, ) vào Service Registry Service Consumer khi có nhu cầu về mộtservice nào đó sẽ tìm kiếm thông tin trên Service Registry Ngoài chức năng hỗ trợtìm kiếm, Service Registry còn có thể xếp hạng các Service Provider dựa trên cáctiêu chí về chất lượng dịch vụ, bầu chọn từ các khách hàng đã sử dụng service, Những thông tin này sẽ hỗ trợ thêm cho quá trình tìm kiếm của Service Consumer

Service Registry

Service Provider

Service Consumer

Bind, Execute

Trang 12

Khi đã xác định được Service Provider mong muốn, Service Consumer thiết lậpkênh giao tiếp trực tiếp với Service Provider nhằm sử dụng service hoặc tiến hànhthương lượng thêm (về mặt giá cả, resource sử dụng, ).

2.2.Kiến trúc chi tiết

Hiện nay chưa có một mô hình chính thức nào của SOA Thật sự SOA làmột phương pháp luận giúp chúng ta tận dụng sức mạnh của các nguồn lực, nguồntài nguyên khác nhau trong mạng máy tính để trở thành một hệ thống nhất Mỗimột công ty có một mô hình SOA khác nhau Nhìn chung mô hình SOA có các đặcđiểm sau:

Tầng Connectivity: đây là tầng thấp nhất của SOA, có nhiệm vụ giao

tiếp trực tiếp với các thành phần khác như cơ sở dữ liệu, giao tiếp với các ứng dụngkhác, các web service,… Vì vậy có thể coi đây là tầng vật lý của SOA

Mục đích của tầng kết nối là kết nối các ứng dụng enterprise hoặc tài nguyênbên dưới và cung cấp chúng thành dạng những dịch vụ.Tùy vào ứng dụng cụ thể

mà bộ chuyển đổi tương ứng được sử dụng Về cơ bản, tầng này có thể được dùng

để thực hiện kết nối đến các hệ CSDL.Những ngôn ngữ lập trình hiện đại cung cấp

Trang 13

các tập hàm API cho phép truy cập đến hầu hết các hệ CSDL thông dụng.Với các ứng dụng enterprise thì lại khác vì mỗi nhà cung cấp tập hàm API khác nhau.

Tầng Orchestration: là các dịch vụ xử lý các quy trình nghiệp vụ và

dộc lập với tầng vật lý phía bên dưới

Tầng Orchestration chứa các thành phần đơn đóng vai trò vừa là những dịch

vụ sử dụng, vừa là những dịch vụ cung cấp Những dịch vụ này sử dụng dịch vụ của tầng kết nối và các dịch vụ orchestration khác để kết hợp những chức năng cấpthấp hơn thành những dịch vụ hoạt động ở cấp cao hơn, có hành vi gần với chức năng nghiệp vụ thực hơn

Là những dịch vụ đơn thuần kết hợp với những lời triệu gọi tới các dịch vụ bên dưới, hoạt động như một mẫu mặt tiền Chúng giúp đơn giản hóa quy trình tương tác với các dịch vụ cấp thấp và che dấu đi tính phức tạp với những người sửdụng dịch vụ ở tầng cao

Là những dịch vụ định ra một tiến trình kết nối các dịch vụ ở cấp thấp hơn.Điều này rất hữu dụng với việc thiết kế các dịch vụ kết nối đến nhiều hệ thống enterprise bên dưới sau đó thực thi nhưn một tiến trình

Ví dụ, dịch vụ “Submit New Order” có thể được xem như một process

service thực hiện tương tác với CSDL khách hàng để lấy thông tin khách hàng, quyết định dựa trên thông tin tài khoản của khách hàng, tương tác hệ thống lưu kho

và hệ thống tài chính để hoàn tất đơn đặt hàng

Process service có rất nhiều đặc tính phù hợp quy trình nghiệp vụ của doanh nghiệp nên có rất nhiều nỗ lực để chuẩn hóa cách thức định nghĩa ra chúng Tổ

Ngày đăng: 31/07/2016, 11:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w