1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Kinh tế - Thương mại >

CHƯƠNG 2: PHÁT TRIỂN PHẦN MỀM DỰA VÀO SOA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.47 MB, 47 trang )


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

So với kiểu thiết kế Component-Based (hướng thành phần), điểm khác

biệt chính của SOA là cung cấp khả năng giao tiếp giữa các thành phần trong hệ

thống sử dụng thông điệp (message) dựa trên các giao thức đã được chuẩn hóa

(HTTP, FTP, SMTP...). Chính nhờ đặc điểm này, hệ thống SOA trở nên độc lập

với nền (platform independent). Các service hoạt động trên các platform khác

nhau vẫn có thể giao tiếp với nhau nhờ vào các interface giao tiếp đã được chuẩn

hóa để cộng tác xử lý một tác vụ nào đó.



Hình 2.2: Message được truyền nhận giữa các dịch vụ

Sử dụng thông điệp (message) để giao tiếp có các lợi thế sau:

• Độc lập nền: thông điệp (message) trở thành ngôn ngữ chung của các

platform và các ngôn ngữ lập trình khác nhau. Điều này đảm bảo các service trên

các platform khác nhau hoạt động với cấu trúc dữ liệu đặc thù của platform đó.

• Giao tiếp bất đồng bộ: Người gửi và người nhận không cần phải chờ

thông điệp trả lời sau khi đã gởi đi một thông điệp. Điều này giúp cho người gửi

và người nhận tiếp tục xử lý công việc sau khi gửi thông điệp mà không cần

dừng thực thi để chờ thông điệp trả lời.

• Giao tiếp tin cậy: các thông điệp từ bên gửi có thể được gửi đến một

service trung gian có nhiệm vụ lưu trữ (store) các thông điệp. Service trung gian

sẽ chuyển tiếp (forward) thông điệp cho bên nhận khi bên nhận có thể xử lý yêu

cầu tiếp theo. Cơ chế Store-and-Forward này đảm bảo các thông điệp sẽ không bị

thất lạc trong trường hợp Receiver bị quá tải và không thể nhận thêm yêu cầu

mới.

• Quản lý luồng: Việc trao đổi thông điệp theo cơ chế bất đồng bộ giúp

ứng dụng không cần ngừng thực thi để chờ một tác vụ kết thúc mà có thể tạo ra

các luồng (thread) xử lý các công việc khác nhau.



13



• Giao tiếp từ xa: Các thông điệp lưu trữ thông tin về các đối tượng dữ

liệu dưới dạng đặc tả hình thức thay thế việc phải serialization and deserialization

các đối tượng dữ liệu truyền qua mạng khi ứng dụng thực hiện gọi từ xa một ứng

dụng khác.

• Bảo mật end-to-end: Thông điệp có thể lưu trữ thông tin về hình thức

bảo mật của kênh giao tiếp. Điều này cung cấp khả năng điều khiển liên quan đến

bảo mật như xác thực và phân quyền.

2.1.3. Kiến trúc phân tầng 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ồn tài nguyên khác nhau trong mạng máy tính để trở thành một hệ thống nhất.

Mỗi mộ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:



Hình 2.3: Kiến trúc chi tiết của SOA

- 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ụng khác, các web service… Vì vậy có thể coi đây là tầng vật lý của

SOA.

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

độ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 đóng vai trò vừa là 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 nhữ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ấp thấ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 những chức năng

nghiệp vụ hơn.

14



-



-



Tầng Composite Application: là các ứng dụng tổng hợp nhằm mục đích

trình diễn (presentation) và hiển thị thông tin cho người dùng cũng như

cung cấp một giao diện cho người dùng tương tác với hệ thống như là một

phần mềm duy nhất. Tầng này có thể là các website, portal, các ứng dụng

client mở rộng (rich client), các thiết bị di động thông minh (smart

device),…

Các thành phần khác: gồm có quy trình phát triển (development), quản lý

các dịch vụ (service management), và quản lý con người (governance).

Như vậy có thể thấy SOA không chỉ đơn thuần là về mặt công nghệ mà nó

là tổng hòa của rất nhiều yếu tố: công nghệ, cơ sở hạ tầng, con người và

quy trình nghiệp vụ.



Hình 2.4: Các thành phần tham gia triển khai hệ thống SOA

Vậy khi nào sử dụng SOA? Đó là khi thiết kế hệ thống đặt ra một câu hỏi

lớn là việc cân nhắc giữa khả năng sử dụng lại và hiệu năng của hệ thống. Nếu hệ

thống cần việc chạy nhanh cho một ứng dụng đặc biệt thì RMI, CORBA, DCOM

là sự lựa chọn. Nhưng hệ thống khó có thể thay đổi hoặc sử dụng lại. Nếu hệ

thống dự định thay đổi thường xuyên mà không yêu cầu quá cao về tốc độ thì

SOA là phương cách tiếp cận tốt nhất. Nó dễ dàng sử dụng lại trong tương lai và

cho phép các ứng dụng tương tự được thiết kế một cách nhanh chóng.

SOA là tư duy hệ thống ưu việt cho giai đoạn công nghệ hiện nay. Vậy

làm cách nào để triển khai tư duy đó vào các ứng dụng thực tế? Đó là vấn đề về

công nghệ. Phần tiếp theo sẽ trình bày một công nghệ có thể nói là thể hiện tốt

nhất cho SOA hiện nay – Web Service.



15



2.2. SOA và ứng dụng Web Service

2.2.1. Giới thiệu về Web service

Đặc điểm chính của SOA là tách rời phần giao tiếp với phần thực hiện

dịch vụ. Điều này cho phép chúng ta liên tưởng đến một công nghệ được đề cập

nhiều hiện nay: Web Service. Web Service cho phép truy cập thông qua định

nghĩa giao thức-và-giao tiếp.

Về cơ bản, 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ụ.

Web service là một công nghệ triệu gọi từ xa có tính khả chuyển cao nhất

hiện nay: mang tính độc lập nền, độc lập ngôn ngữ. Với web service, các chương

trình viết bằng các ngôn ngữ lập trình khác nhau, chạy trên các nền tảng (phần

cứng & OS) khác nhau đều có thể trao đổi với nhau thông qua công nghệ này.

Tầng transport của Web Service thường dùng những công nghệ truyền tải phổ

dụng nhất như HTTP, SMPT... (tuy hiện nay thường chỉ dùng HTTP) nên khả

năng phân tán trên diện rộng như Internet là rất thuận tiện. Mà SOA là kiến trúc

kết nối lỏng lẻo các service và các service đó tương tác với nhau thông qua Web

service. Do đó, kiến trúc SOA sử dụng Web service như là một giải pháp chính

để giải quyết vấn đề tích hợp nghiệp vụ giữa các hệ thống. Và đặc biêt trong quá

trình internet hóa mọi dịch vụ hiên nay, thì triển khai dịch vụ bằng Web service

có thể nói là điều “tất nhiên”.

2.2.2. SOA và Web service trong vấn đề tích hợp hệ thống

Web services là những thành phần ứng dụng, giao tiếp bằng cách sử dụng

giao thức mở chứa đựng và mô tả chính nó, có thể được phát hiện bằng cách sử

dụng UDDI và có thể được sử dụng bởi ứng dụng khác khác nhau. Web service

hoạt động dựa trên nền tảng là XML và HTTP. Trong đó: XML cung cấp một

ngôn ngữ mà có thể được sử dụng giữa các nền tảng và ngôn ngữ lập trình khác

16



nhau và vẫn thể hiện thông điệp và chức năng phức tạp; Các giao thức HTTP là

giao thức Internet được sử dụng nhiều nhất.

Web Service với mô hình hoạt động 3 bên tương ứng với mô hình hoạt

động của SOA, sử dụng một bộ các chuẩn công nghệ. Đó là:

-



XML: Chuẩn định dạng dữ liệu và thông điệp.



-



SOAP: Giao thức dựa trên XML và HTTP cho phép giao tiếp trên môi

trường mạng.



-



WSDL: Ngôn ngữ mô tả Web Service theo chuẩn.



-



UDDI: Một bộ khung chuẩn cho phép mô hình hóa và cụ thể hóa các Web

Service đã được đăng ký.



Hình 2.5: Mô hình hoạt động của web service

Hoạt động của mô hình Web Service như sau:

-



Service Provider: Dùng Web Services Description Language (WSDL) để

mô tả dịch vụ mà mình có thể cung cấp và xuất bản (đăng ký) với Service

Broker (tương tự với Service Registry trong SOA).



-



Service Broker: Lưu trữ thông tin về các service được cung cấp bởi các

Service Provider. Cung cấp chức năng tìm kiếm hỗ trợ Service Requester

(Service Consumer trong SOA) trong việc xác định Service Provider phù

hợp. Thành phần chính của Service Broker là các kho lưu trữ được mô tả

bởi Universal Discovery, Description, and Integration (UDDI).



17



-



Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng (loại service,

thời gian sử dụng, resource cần thiết, mức giá ...) và gởi cho Service

Broker. Bằng việc sử dụng UDDI và chức năng tìm kiếm của Service

Broker, Service Requester có thể tìm thấy Service Provider thích hợp.

Ngay sau đó, giữa Service Requester và Service Provider thiết lập kênh

giao tiếp sử dụng SOAP để thương lượng giá cả và các yếu tố khác trong

việc sử dụng service.



Như vậy, sử dụng Web Service cho việc tích hợp SOA giúp ứng dụng đạt được

những mục tiêu theo nguyên lý SOA:

-



Thông qua các chuẩn công nghiệp. Các chuẩn này gồm Web Service với

các định nghĩa thành phần chuẩn công nghiệp cho XML.



-



Sử dụng được những phần mềm thương mại đã xây dựng sẵn nhiều nhất

có thể. Phần mềm phải cung cấp các kênh giao tiếp (adapter) cho Web

service.



-



Đóng gói các ứng dụng cho phép kế thừa với giao diện đúng theo chuẩn

công nghệ chung. Các Web Service đều phải được sử dụng thông qua giao

diện này.



-



Sử dụng dữ liệu và tầng dữ liệu độc lập nằm giữa các ứng dụng để ẩn đi

cấu trúc dữ liệu bên dưới. Mọi tương tác với dữ liệu đều phải thông qua

Web Service.



Làm thế nào Web Service có thể đạt được những mục tiêu trên? Chúng ta

sẽ đi vào xem xét chi tiết các công nghệ và kỹ thuật thực hiện của Web Service.

2.2.3. Cấu trúc và chi tiết các thành phần của Web service

Nền tảng của các dich vụ web gồm các yếu tố: XML (eXtensible Markup

Language), SOAP (Simple Object Access Protocol), UDDI (Universal

Description, Discovery and Integration), WSDL (Web Services Description

Language).



18



Hình 2.6: Các thành phần của Web service

2.2.3.1. XML - eXtensible Markup Language

XML là một chuẩn mở do W3C đưa ra và được phát triển từ SGML. XML

là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa, nó

được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những

tài liệu B2B.

Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML,

nhưng không tuân theo một đặc tả quy ước như HTML, người sử dụng hay các

chương trình có thể quy ước định dạng các tag XML để giao tiếp với nhau. Trong

khi HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định

nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình

viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi

tính phổ biến và hiệu quả mã nguồn mở.

Do Web Service là sự kết hợp của nhiều thành phần khác nhau nên nó sử

dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. Vì vậy XML

là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây

dựng một Web Service, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML.

Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn

của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống

nhất.

Ví dụ về tài liệu XML:



19







Xin Chào XML





Đây là chương trình XML đầu tiên





Tài liệu XML chỉ chứa dữ liệu, không nhắc đến cách trình bày. Điều này

có ý nghĩa đó là một XML parser, không cần phải hiểu ý nghĩa của các thẻ. Nó

chỉ cần tìm các thẻ và xác định đây là một tài liệu XML hợp lệ vì trình duyệt

không cần phải hiểu ý nghĩa của các thẻ, nên người dùng có thể tạo ra các thẻ bất

kì để sử dụng.

2.2.3.2. SOAP (Simple Object Access Protocol)

Là một giao thức dựa trên XML để cho phép các ứng dụng trao đổi thông

tin qua HTTP, được thiết kế đơn giản và dễ mở rộng. Đơn giản, SOAP là một

giao thức để truy cập một Web Service, một giao thức truyền thông hay một định

dạng để gửi tin nhắn. Tất cả các thông điệp SOAP đều được mã hóa sử dụng

XML, cho nên không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào hoặc công

nghệ nào. Vì những đặc trưng này, nó không quan tâm đến công nghệ gì được sử

dụng để thực hiện miễn là người dùng sử dụng các message theo định dạng

XML. Tương tự, service có thể được thực hiện trong bất kỳ ngôn ngữ nào, miễn

là nó có thể xử lý được những message theo định dạng XML.



Hình 2.7: Mô hình gửi nhận thông điệp qua SOAP

Bộ khung của một thông điệp SOAP bao gồm:

-



Protocol Header: Cho biết thông tin về các chuẩn giao thức được sử dụng.



20



-



SOAP Envelop: Phần chính của thông điệp. Thông tin chính của message

bao gồm:





SOAP Header: Chứa các SOAP header.







SOAP body: Thông tin về name và data được đặc tả dưới dạng

XML. Ngoài ra còn có trường lỗi được dùng để gởi các web service

exception.



Hình 2.8: Cấu trúc của một SOAP message

Ví dụ:




xmlns:soap="http://www.w3.org/2001/12/soapenvelope"

soap:encodingStyle="http://www.w3.org/2001/12/soapencoding">



...





...



...



21









2.2.3.3. WSDL (Web Service Discription Language)

WSDL là một ngôn ngữ dựa trên XML dùng để mô tả giao diện của Web

Service. Nó cung cấp một cách thức chuẩn để mô tả các kiểu dữ liệu được truyền

trong các thông điệp thông qua Web Service, các hoạt động được thực hiện trên

các thông điệp và ánh xạ các hoạt động này đến giao thức vận chuyển.











WSDL dựa trên XML.

WSDL được dùng để mô tả các Web Service .

WSDL được dùng để xác định vị trí Web Service.

WSDL là một chuẩn của W3C.



WSDL định nghĩa cách mô tả Web Service theo cú pháp tổng quát của

XML, bao gồm các thông tin:

• Tên dịch vụ.

• Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của Web

Service.

• Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao

diện của Web Service cộng với tên cho giao diện này).

Một WSDL hợp lệ gồm hai phần:

• Phần giao diện: mô tả giao diện và giao thức kết nối.

• Phần thi hành: mô tả thông tin để truy xuất service.

Cả hai phần này sẽ được lưu trong 2 tập tin XML:

• Tập tin giao diện service (cho phần 1).

• Tập tin thi hành service (cho phần 2).



22



Hình 2.9: Cấu trúc WSDL

 Tập tin giao diện - Service Interface

Một tài liệu WSDL mô tả một Web Service gồm các thành phần chính:

Element



Defines







Các kiểu dữ liệu được sử dụng bởi các Web Service







Các thông điệp được sử dụng bởi các Web Service







Các hoạt động được thực hiện bởi các Web Service







Các giao thức truyền thông được sử dụng bởi các Web Service



Cấu trúc một tài liệu WSDL sẽ như sau:





definition of types





definition of a message





definition of a port





definition of a binding....



23



Xem Thêm
Tải bản đầy đủ (.pdf) (47 trang)

×