Tải bản đầy đủ (.doc) (77 trang)

Nghiên cứu kiến trúc hướng dịch vụ và ứng dụng dịch vụ web vào hệ thống thông tin địa lý

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.43 MB, 77 trang )

LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin trường Đại Học
CNTT&TT đã tạo điều kiện tốt cho em thực hiện đề tài này.
Em xin chân thành cảm ơn tới Cô giáo Th.s Phạm Bích Trà đã tận tình
hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đề tài.
Và em cũng xin chân thành cảm ơn tới các quý Thầy Cô trong khoa đã tận
tình giảng dạy, trang bị cho chúng em những kiến thức quý báu trong những năm
học vừa qua.
Xin chân thành cảm ơn tới gia đình, các anh chị và bạn bè đã giúp đỡ, ủng
hộ và động viên em trong thời gian học tập và nghiên cứu.
Mặc dù em cũng đã cố gắng hoàn thành thật tốt đồ án. Nhưng do còn hạn
chế về mặt kiến thức và kinh nghiệm nên em không thể tránh khỏi những sai sót
và khuyết điểm. Em xin kính mong nhận được sự cảm thông và chỉ bảo góp ý
của các quý Thầy Cô và các bạn.
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Trần Thị Chải

1


LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được
nhu cầu đề ra, bản thân em đã cố gắng nghiên cứu, học tập và làm việc trong thời
gian dài cùng với sự hướng dẫn nhiệt tình của cô giáo Thạc Sỹ Phạm Bích Trà và
sự giúp đỡ của các anh chị, các bạn sinh viên cùng bộ môn. Em đã tham khảo
một số tài liệu nêu trong phần “tài liệu tham khảo” và không sao chép nội dung
từ bất kỳ đồ án nào khác. Toàn bộ đồ án là do em xây dựng nên.
Em xin cam đoan những lời nói trên là hoàn toàn đúng sự thật mọi thông
tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng.


2


MỤC LỤC
MỤC LỤC...............................................................................................................3
LỜI NÓI ĐẦU.........................................................................................................5
Chương 1 KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ WEBSERVICE........7
1.1 Kiến trúc hướng dịch vụ (SOA)............................................................................7
1.1.1 Khái niệm về kiến trúc hướng dịch vụ..........................................................7
1.1.2 Các tính chất của một hệ thống SOA............................................................8
 Sử dụng lại dịch vụ................................................................................................9
 Sử dụng dịch vụ bất đồng bộ...............................................................................10
 Quản lý các chính sách (policy) ..........................................................................10
 Khả năng cộng tác................................................................................................10
 Tự động dò tìm và ràng buộc động......................................................................11
 Tự hồi phục..........................................................................................................11
1.1.3 Lợi ích của SOA..........................................................................................12
1.1.4 Quy trình xây dựng hệ thống SOA .............................................................15
1.2 Dịch vụ web (web service)..................................................................................19
1.2.1 Khái niệm về dịch vụ web ..........................................................................19
1.2.2 Đặc điểm của dịch vụ web...........................................................................21
1.2.3 Ưu và nhược điểm.......................................................................................22
1.2.4 Kiến trúc web service..................................................................................23
1.2.5 Các thành phần trong web service...............................................................24
1.2.6 An toàn cho dịch vụ Web............................................................................29
1.3 Xây dựng Web Services......................................................................................31
1.3.1 Các giai đoạn xây dựng Web services.........................................................31
1.3.2 Các hướng tiếp cận trong xây dựng web service.........................................32
1.3.3 Qui trình xây dựng web service...................................................................35


Chương 2 HỆ THỐNG THÔNG TIN ĐỊA LÝ VÀ CÁC CHUẨN OPENGIS
................................................................................................................................37
2.1 Hệ thống thông tin địa lý (GIS)...........................................................................37
2.1.1 Khái niệm GIS.............................................................................................37
2.1.2 Các thành phần của GIS..............................................................................37
2.1.3 Thành phần dữ liệu GIS...............................................................................38
3


2.1.4 Hệ thống thông tin địa lý trên Web và các thách thức..................................42
2.1.5 Kiến trúc hệ thống thông tin địa lý trên web..............................................42
2.2 Các chuẩn mở OpenGIS......................................................................................45
2.2.1 Web Map Service .......................................................................................46
2.2.2 Web Feature Service ...................................................................................47

Chương 3 ỨNG DỤNG DỊCH VỤ WEB VÀO HỆ THỐNG THÔNG TIN
ĐỊA LÝ..................................................................................................................50
3.1 Xây dựng hệ thống thông tin trên Web với mã nguồn mở...................................51
3.2 Các vấn đề liên quan đến bài toán và phương hướng giải quyết..........................53
3.3 Sơ đồ kiến trúc chi tiết áp dụng...........................................................................54
3.4 Khảo sát hệ thống.................................................................................................55
3.5 Phân tích - thiết kế................................................................................................62
3.5.1 Xây dựng mô hình Use-Case........................................................................62
3.5.2 Thiết kế cơ sở dữ liệu..................................................................................68

KẾT LUẬN...........................................................................................................74

4



LỜI NÓI ĐẦU
Hệ thống thông tin địa lý (GIS) ra đời và được phát triển mạnh trong
những năm gần đây với sự bùng nổ về công nghệ ứng dụng Internet, các phát
triển công nghệ GIS cho phép chia sẻ thông tin thông qua mạng toàn cầu bằng
cách kết hợp GIS và Web hay còn gọi là WebGIS. Bên cạnh đó, xu hướng chia sẻ
dữ liệu, phát triển phần mềm trên công nghệ mã nguồn mở cũng đang được quan
tâm ở các nước đang phát triển vì nhiều lợi ích mà nó mang lại. Vì thế, việc
nghiên cứu ứng dụng WebGIS trên cơ sở mã nguồn mở sẽ mang lại khả năng
chia sẻ thông tin địa lý rộng rãi cho các ngành.
Hơn một thập kỷ trước đây, các thông tin không gian - bản đồ ở Việt Nam
chủ yếu được thành lập và phát hành trên giấy. Trong những năm gần đây, các
quy trình thành lập bản đồ, lưu trữ và phát hành đã dần dần chuyển đổi sang công
nghệ số. Các bản đồ giấy trước kia đã được số hoá và đang nằm trong các ổ cứng
máy tính tại các cơ quan, trường học, cá nhân,... Theo xu thế chung, các thông tin
không gian này được chuyển sang lưu trữ trong các hệ thống cơ sở dữ liệu thông
tin không gian được sử dụng bởi các đơn vị khác nhau.
Việc chuyển đổi từ công nghệ bản đồ giấy sang công nghệ số đã là một
bước tiến vượt bậc của ngành trắc địa. Tuy nhiên, các hệ cơ sở dữ liệu không
gian được lưu trữ và sử dụng trong một hệ thống riêng biệt đã hạn chế rất
nhiều tiềm năng khai thác thông tin không gian của các hệ thống này. Công
nghệ Web-GIS cho phép phát hành, tiếp cận, truy vấn thông tin không gian
trong một môi trường mở như Internet đã cho phép phát huy các tiềm năng
chưa được đánh thức của các hệ thống thông tin địa lý, không gian và đưa
công tác trắc địa bản đồ lên một tầm cao mới.
Ngay khi vừa ra đời từ cuối những năm 90 của thế kỷ trước, công nghệ
Web-GIS đã được đón nhận rất hồ hởi và có nhiều bước phát triển song còn
nhiều hạn chế chưa theo kịp với các nước trên thế giới. Với sự phát triển và phổ
cập của Internet tại Việt Nam như ngày nay, công nghệ Web-GIS đang được chú

5



trọng phát triển bởi cả cơ quan nhà nước và cộng động doanh nghiệp và được kỳ
vọng sẽ đem đến một hướng phát triển mới đầy tiềm năng.
Vì vậy, nội dung chính đề tài của em là “Nghiên cứu kiến trúc hướng
dịch vụ và xây dựng ứng dụng dịch vụ web vào hệ thống thông tin địa lý”,
khả năng xây dựng ứng dụng WebGIS trên cơ sở mã nguồn mở, trên cơ sở đó
ứng dụng xây dựng WebGIS phục vụ phân tích số liệu bản đồ.

6


Chương 1 KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ
WEBSERVICE

1.1 Kiến trúc hướng dịch vụ (SOA)
1.1.1 Khái niệm về kiến trúc hướng dịch vụ
Kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA) 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ụ” (service)
tự hoạt động và liên kết lỏng lẻo, và có khả năng truy cập thông qua môi trường
mạng. Hiểu một cách đơn giản thì một hệ thống SOA là một tập hợp các dịch vụ
được chuẩn hóa trên mạng trao đổi với nhau trong một ngữ cảnh tiến trình nghiệp
vụ. Một giải pháp SOA bao gồm một tập các dịch vụ nghiệp vụ mà thực hiện một
quy trình nghiệp vụ.
SOA là một kiểu kiến trúc có khả năng mở rộng, bao gồm các service có
khả năng tương tác, khả năng khám phá, tự trị, có thể phục vụ cho nhiều khách
hàng khác nhau, và có khả năng sử dụng lại.
 Một Architecture: Là một mô tả có tính hình thức của hệ thống, xác định
mục đích, chức năng, thuộc tính, giao diện, … của hệ thống. Nó cũng bao gồm

việc mô tả những thành phần bên trong hệ thống và mối quan hệ giữa chúng,
cùng với nguyên tắc thiết kế, hoạt động, và sự phát triển của hệ thống.
 Một Service: Là một thành phần phần mềm mà nó có thể được truy nhập
qua mạng để cung cấp chức năng tới người có yêu cầu dịch vụ.
 Thuật ngữ “Service Oriented Architecture” ám chỉ kiểu kiến trúc xây
dựng những hệ thống phân tán (distributed systems) mà các chức năng như là các
dịch vụ, và sự tương tác các dịch vụ là lỏng lẻo.

7


Trong SOA có 3 đối tượng chính:

Hình 1.1 - Kiến trúc hướng dịch vụ - SOA
Nhà cung cấp dịch vụ (service provider) cần cung cấp thông tin về dịch vụ
của mình cho một dịch vụ lưu trữ thông tin dịch vụ (service registry). Người yêu
cầu dịch vụ hay khách hàng (service requestor / consumer) thông qua service
registry để tìm kiếm thông tin mô tả về dịch vụ cần tìm và sau đó là xây dựng
kênh giao tiếp với phía nhà cung cấp.
SOA cung cấp giải pháp để giả quyết các vấn đề tồn tại của các hệ thống
hiện nay như: phức tạp, không linh hoạt và không ổn định. Một hệ thống triển
khai theo mô hình SOA có khả năng dễ mở rộng, liên kết tốt. Đây chính là cơ sở
và nền tảng cho việc tích hợp, tái sử dụng lại những tài nguyên hiện có.
1.1.2 Các tính chất của một hệ thống SOA
 Loose coupling:
Vấn đề kết nối (coupling) ám chỉ một số ràng buộc giữa các module lại với
nhau. Có 2 loại coupling là rời (loose) và chặt (tight). Các module có tính chất
loose coupling có một số ràng buộc được mô tả rõ ràng trong khi các module có
tính tight coupling lại có nhiều ràng buộc không thể biết trước. Hầu như mọi kiến
trúc phần mềm đều hướng đến tính loose coupling giữa các module. Mức độ kết

dính của hệ thống ảnh hưởng trực tiếp đến khả năng chỉnh sửa hệ thống. Kết dính
càng chặt bao nhiêu thì có nhiều thay đổi chỉnh sửa khi có sự thay đổi nào đó xảy

8


ra. Mức độ coupling tăng dần khi bên sử dụng dịch vụ càng cần biết nhiều thông
tin ngầm định của bên cung cấp dịch vụ để sử dụng dịch vụ được cung cấp.
Nghĩa là nếu bên sử dụng dịch vụ biết vị trí và chi tiết định dạng dữ liệu của bên
cung cấp dịch vụ thì quan hệ càng chặt. Ngược lại, nếu bên sử dụng dịch vụ
không cần biết mọi thông tin chi tiết của dịch vụ trước khi triệu gọi nó thì quan
hệ giữa 2 bên càng có tính loose coupling.
Loose coupling làm cho sự phụ thuộc là nhỏ nhất. Khi sụ phụ thuộc là nhỏ
nhất thì sự thay đổi là có ảnh hưởng nhỏ nhất và hệ thống vẫn có thể chạy khi có
thành phần nào đó bị hỏng. Sự phụ thuộc là nhỏ nhất nó làm cho hệ thống linh
hoạt, và lỗi xảy ra là ít.
SOA hỗ trợ tính loose coupling thông qua việc sử dụng hợp đồng và ràng
buộc (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ụ (service registry) để lấy thông tin về loại dịch vu cần sử
dụng. Registry sẽ trả về tất cả các dịch vụ tìm kiếm. Cho nên người dùng chỉ việc
chọn dịch vụ mà mình cần tìm, và thực thi phương thức trên đó theo mô tả dịch
vụ nhận được từ registry. Bên sử dụng không cần phụ thuộc trực tiếp vào cài đặt
của dịch vụ mà chỉ dựa trên hợp đồng mà dịch vụ đó hỗ trợ.
Tính loose coupling giúp gỡ 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 nhằm tăng năng xuất, khả
năng mở rộng và khả năng đáp ứng cao. Những thay đổi cài đặt cũng được che
dấu đi. Loose coupling đem đến sự độc lập giữa bên cung cấp và bên sử dụng
nhưng nó đòi hỏi các giao diện phải theo 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.
 Sử dụng lại dịch vụ

Bởi vì các dịch vụ được cung cấp lên trên mạng và được đăng ký ở một nơi
nhất định nên chúng dễ dàng được tìm và tái sử dụng. Nếu một dịch vụ không có
khả năng tái sử dụng, nó cũng không cần đến interface mô tả. Các dịch vụ có thể
được tái sử dụng lại bằng cách kết hợp lại với nhau theo nhiều muc đích khác
nhau. Tái sử dụng lại các dịch vụ còn giúp loại bỏ những thành phần trùng lặp và
9


tăng tốc độ vững chắc trong cài đặt, nó còn giúp đơn giản hóa việc quản trị. Thực
ra tái sử dụng dịch vụ lại dễ dàng hơn tái sử dụng thành tố hay lớp. 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à những
shared infrastructure service.
 Sử dụng dịch vụ bất đồng bộ
Trong phương thức triệu gọi dịch vụ bất đồng bộ, 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 và trả
về kết quả thông tin qua một kênh thông điệp, các yêu cầu dịch vụ có thể được
đưa vào hàng đợi và xử lý với tốc độ tối ưu. Do bên gọi không phải chờ cho đến
khi yêu cầu được xử lý xong và trả về nên không bị ảnh hưởng bởi việc sử lý trễ
và lỗi khi thực thi các dịch vụ bất đồng bộ. Trên lý thuyết một hệ thống SOA có
thể hỗ trợ gửi và nhận cả thông điệp đồng bộ và bất đồng bộ.
 Quản lý các chính sách (policy)
Khi sử dụng các dịch vụ chia sẻ 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. Các policy cần được quản lý các áp dụng
cho mỗi dịch vụ cả khi thiết kế lẫn khi trong thời gian thực thi.
Việc tăng khả năng tạo ra các dịch vụ có đặc tính tái sử dụng, Bởi 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. Nếu không sử dụng các policy, thì các nhân viên phát triển phần
mềm, nhóm điều hành và nhóm hỗ trợ phải làm việc với nhau trong suốt thời
gian phát triển để cài đặt và kiểm tra những policy. Ngược lại, nếu sử dụng
policy, những nhân viên phát triển phần mềm giờ chỉ cần tập trung vào quy trình

nghiệp vụ trong khi nhóm điều hành và nhóm hỗ trợ tập trung vào các luật kết
hợp.
 Khả năng cộng tác
Kiến trúc hướng dịch vụ nhấn mạnh đến khả năng cộng tác, khả năng mà
các hệ thống có thể giao tiếp với nhau trên nhiều nền tảng và ngôn ngữ khác
nhau. Mỗi dịch vụ cung cấp một giao diện 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à interoperable chứa bên trong nó một giao thức và
10


một định dạng dữ liệu mà mỗi client kết nối đến nó đều hiểu. Khả năng cộng tác
đạ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à các client. Kỹ thuật này đạt được bằng cách ánh xạ mỗi tính chất và ngôn ngữ
qua một đặc tả trung gian. Đặc tả trung gian này sẽ chịu trách nhiệm ánh xạ giữa
định dạng của dữ liệu khả kết (interopersble) đến định dạng dữ liệu tùy thuộc
vào nền tảng hệ thống.
 Tự động dò tìm và ràng buộc động
SOA hỗ trợ khái niệm truy tìm dịch vụ (service discovery). Một người sử
dụng cần đến một dịch vụ nào đó có thể tìm kiếm dịch vụ dựa trên một số tiêu
chuẩn khi cần. Người sử dụng chỉ cần hỏi một registry về một dịch vụ nào thỏa
yêu cầu tím kiếm. Ví dụ, một hệ thống chuyển khoản (consumer) yêu cầu một
registry tì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 entry thỏa yêu cầu. Các entry chứa thông tin về dịch vụ, bao gồm cả
phí giao dịch. Bên sử dụng sẽ chọn một dịch vụ có phí giao dịch thấp nhất trong
danh sách các dịch vụ trả về, kết nối đến nhà cung cấp dịch vụ dựa trên thông tin
registry entry để 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 dùng để thực thi dịch vụ, bên sử dụng
chỉ cần định dạng dữ liệu yêu cầu đúng theo mô tả cung cấp và gửi đi. Nhà cung
cấp dịch vụ sẽ thực thi kiểm tra thẻ tín dụng và trả về một thông điếp có định
dạng đúng như trong phần mô tả dịch vụ. Mối ràng buộc duy nhất giữa bên cung

cấp và bên sử dụng là bản hợp đồng được cung cấp bởi registry trung gian. Mối
ràng buộc này là ràng buộc trong thời gian chạy chứ không phải ràng buộc trong
lúc biên dịch. Tất 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ậy với SOA, bên sử dụng dịch vụ không cần biết định dạng của thông
điệp yêu cầu và thông điệp trả về, cũng như địa chỉ dịch vụ cho đến khi cần.
 Tự hồi phục
Với kích cỡ và độ phức tạp của những hệ thống phân tán ngày nay, khả
năng phục hồi của một hệ thống phân sau khi bị lỗi trở thành một yếu tố quan

11


trọng. Một hệ thống tự hồi phục (self-healing) là hệ thống có khả năng tự hồi
phục sau khi lỗi mà không cần sự can thiệp của con người.
Độ tin cập (reliability) là mức độ đo khả năng của một hệ thống xử lý tốt hư
thế nào trong tình trạng hỗn loạn. Trong SOA, các dịch vụ luôn có thể hay ngừng
bất cứ lúc nào, nhất là đối với những áp dụng tổng hợp từ những từ nhiều dịch vụ
của nhiều tổ chức khác nhau. Độ tin cậy phụ thuộc vào khả năng phục hồi của
phần cứng sau khi bị lỗi. Hạ tầng mạng phải cho phép các kết nối động từ nhiều
hệ thống khác nhau kết nối đến trong khi chạy. Một khía cạnh khác ảnh hưởng
đến độ tin cậy là kiến trúc mà dựa trên đó những ứng dụng được xây dựng. Một
kiến trúc hỗ trợ kết nối và thực thi động sẽ có khả năng tự phục hồi hơn một hệ
thống không hỗ trợ những tính năng trên.
Ngoài ra, những hệ thống dựa trên dịch vụ yêu cầu tách biệt giữa giao
diện và cài đặt, nên có thể có nhiều cài đặt khác nhau cho cùng một giao diện.
Nếu một thể hiện service nào đó không hoạt động thì một thể hiện khác vẫn có
thể hoàn tất giao dịch cho khách hàng mà không bị ảnh hưởng gì. Khả năng
này chỉ có được khi client tương tác với giao diện của dịch vụ chứ không
tương tác trực tiếp cài đặt của dịch vụ. Đây là một trong những tính chất cơ bản
của hệ thống hướng dịch vụ (SOA).

1.1.3 Lợi ích của SOA
► Sử dụng lại những thành phần có sẵn
Như một công ty bán lẻ có thể có một nhóm phần mềm cho hệ thống phân
phối, một nhóm phần mềm cho hệ thống lưu kho và một nhóm phần mềm cho
những chức năng liên kết. Thông thường những nhóm phần mềm này đựơc phát
triển trên nhiều nền tảng khác nhau, sử dụng nhiều ngôn ngữ lập trình khác nhau
và thường có nhiều tính năng lặp lại giữa chúng. Một hệ thống SOA cho phép
các công ty tránh tình trạng lặp dư thừa, tạo ra những đơn thể dịch vụ chia sẻ
giữa các ứng dụng. Thay vì phải “thay đổi” , với SOA ta chỉ cần tạo ra các “cầu
nối” liên hệ giữa những hệ thống và ứng dụng khác nhau, thay vì chỉnh sửa hoặc
xây dựng lại từ đầu. Bởi vì có đa phần các dịch vụ mới sử dụng lại những dịch vụ
12


sẵn có nên chi phí phát triển các thành phần mới được giảm đến mức tối thiểu.
Nghĩa là :


Nhằm giảm tính dư thừa.

• Các công ty có thể triển khai những tiến trình xử lý mới nhanh hơn
rất nhiều.
• Chi phí dành cho phát triển và kiểm thử giảm đáng kể
• Giảm rủi ro khi dịch vụ tạm ngưng hoạt động


Rủi ro về lỗi phần mềm giảm đi và tăng chất lượng dịch vụ.




Tránh công việc trùng lặp là một trong những lợi ích mà SOA
mang lại.

Nhưng quan trọng vẫn là lợi ích từ việc tăng khả năng kinh doanh.
► Giải pháp ứng dụng tổng hợp cho doanh nghiệp
SOA mang đến khả năng tổng hợp một lớp các ứng dụng mới bằng cách kết
hợp chức năng từ những hệ thống có sẵn, cung cấp cho người cuối những chức
năng liên kết. Ở đây một số tiến trình cũ có thể được kết hợp với nhau bên trong
một cổng thông tin (portal) giúp cho người dùng cuối chỉ cần truy cập một lần
mà vẫn có thông tin về hàng loạt sản phẩm của doanh nghiệp. Loại kết hợp này
có thể khó khăn nếu không sử dụng SOA vì nó đòi hỏi việc tích hợp phức tạp, nỗ
lực lập trình và kiểm thử. Nhưng với SOA, một ứng dụng tổng hợp có thể
được tổng hợp dễ dàng, bất kể sự khác nhau về địa lý hoặc công nghệ phát
triển các dịch vụ đó. Điều này cho phép doanh nghiệp phản ứng nhanh theo
yêu cầu, giảm chi phí đến mức tối thiểu và tăng sức mạnh thoả mãn yêu cầu
của người dùng cuối hiệu quả hơn.
► Giúp khả năng linh hoạt và triển khai cài đặt
Lợi ích của SOA, trong đó phía triệu gọi dịch vụ không cần quan tâm đến
địa chỉ hoặc công nghệ nền tảng của service. Nó mang đến khả năng linh hoạt
cao và nhiều lợi ích khác. Trong một hệ thống SOA ta triệu gọi dịch vụ thông
13


qua các interface theo một dạng thức chuẩn nên giúp lập trình viên tránh được
việc phải lặp lại công việc tạo mới các service có khả năng hiểu tất cả những
công nghệ được sử dụng bởi từng dịch vụ trong hệ thống.
Với một hệ thống SOA, thật dễ dàng khi cung cấp một loạt những dịch vụ
ra bên ngoài cho một đối tác nào đó sử dụng. Nhờ tính độc lập địa chỉ và công
nghệ của SOA, đối tác kia không cần quan tâm đến dịch vụ được cài đặt như thế
nào, và nhờ các dịch vụ đã theo chuẩn giao tiếp nên đối tác đó chỉ cần một lượng

thông tin nhỏ vừa đủ để sử dụng dịch vụ. Tương tự cho điều ngược lại, nếu đối
tác đã xây dựng một hệ thống SOA thì việc đem sử dụng chức năng một số dịch
vụ của họ vào sử dụng bên trong hệ thống của mình cũng trở nên dễ dàng và
nhanh chóng. Đặc tính này của SOA hứa hẹn tăng hiệu suất và tự động hoá. Cuối
cùng một lợi ích là tăng khả năng triển khai.
► Thích ứng với những thay đổi trong tương lai
Các phương pháp tiếp cận truyền thống trong quy trình phát triển phần mềm
có thể mô tả ngắn gọn là người dùng mô tả họ cần gì – công ty phát triển phần
mềm – triển khai hệ thống theo yêu cầu. Quy trình này đôi khi gặp khó khăn khi
gặp những tình huống thay đổi không định trước. Với SOA, công ty phát triển
phần mềm có thể tạo nên những quy trình nghiệp vụ uyển chuyển, phức tạp biến
đổi tùy “theo yêu cầu” và theo “thời gian thực“.
► Hỗ trợ đa thiết bị và đa nền tảng
SOA cung cấp một tầng giao tiếp trừu tượng từ các nền tảng bên dưới. Điều
này cho phép hỗ trợ nhiều loại thiết bị đầu cuối khác nhau bao gồm cả những
trình duyệt và thiết bị di động như pager, điện thoại di động, PDA và các thiết bị
chuyên dụng khác sử dụng cùng một chức năng mà vẫn có thông tin trả về tùy
theo dạng thiết bị. Tính độc lập công nghệ này giúp cho các công ty tiết kiệm chi
phí rất nhiều nhất là khi phải xử lý với vô số công nghệ hiện đang được sử dụng.
► Tăng khả năng mở rộng và khả năng sẵn sàng cung cấp
Nhờ tính độc lập địa chỉ của SOA, ta có thể tăng khả năng mở rộng bằng
cách thêm nhiều thể hiện (instance) của một service. Công nghệ chia tải (load14


balancing) sẽ tự động tìm và định tuyến yêu cầu đến thể hiện service thích hợp.
Tương tự, SOA có thể chuyển tiếp nội dung yêu cầu đến một thể hiện khác khi
cần,nhờ đó tăng khả năng sẵn sàng phục vụ.
Cần nhấn mạnh là lợi ích mà SOA mang lại không phải là ít mà là rất ấn
tượng. Thực tế giá trị kinh tế mà SOA mang lại lớn đến nỗi các tạp đoàn trên thế
giới đang suy xét xem làm thế nào để chuyển toàn bộ các kiến trúc phần mềm có

sẵn của họ thành SOA.
1.1.4 Quy trình xây dựng hệ thống SOA
Các pha cơ bản trong chu trình vòng đời của hệ thống SOA
Chu trình vòng đời của hệ thống SOA:

Hình 1.2 – Các pha cơ bản trong chu trình vòng đời của SOA
● Pha phân tích hướng dịch vụ (Service-oriented analysis): Đây là giai
đoạn đầu để quyết định phạm vi của hệ thống SOA. Tầng dịch vụ là được lược
đồ hóa ra (mapped out), và chia dịch vụ ra thành các mô hình, bao gồm hệ thống
SOA sơ bộ.
● Pha thiết kế hướng dịch vụ (service-oriented design): Là pha có sự kết
hợp chặt chẽ về sự thỏa hiệp của doanh nghiệp và nguyên lý hướng dịch vụ thành
quy trình thiết kế dịch vụ. Trong pha này, làm cho người thiết kế dịch vụ phải
đương đầu với giải quyết vấn đề then chốt đó là thiết lập nên những ranh giới
thông qua các dịch vụ. Các tầng dịch vụ là được thiết kế trong giai đoạn này có
thể bao gồm tầng orchestrantion, các kết quả của nó là trong sự xác định quy
trình nghiệp vụ hình thức.
15


● Pha phát triển dịch vụ (Service development): Trong pha này, là pha xây
dựng thực tế. Ở đây vấn đề về nền tảng phát triển đi vào hoạt động, không quan
tâm tới nó là loại dịch vụ nào. Một cách cụ thể, là sự lựa chọn ngôn ngữ lập trình
và môi trường phát triển sẽ quyết định những mẫu dịch vụ và quy trình nghiệp vụ
orchestrantion nào phù hợp với thiết kế.
● Pha kiểm thử dịch vụ (Service testing): Để đưa ra những tiềm năng
cho việc dùng lại và bao gồm cả những trạng thái không biết trước được, các
dịch vụ là được yêu cầu trải qua được sự nghiêm ngặt của việc kiểm thử trước
khi được triển khai thành các sản phẩm.
● Pha triển khai dịch vụ (Service deployment): Giai đoạn thực thi này

đưa đến việc cài đặt và cấu hình cho các thành phần phân tán, các giao diện
dịch vụ, và nhiều sản phẩm trung gian (middleware products) kết hợp với
nhau thành những server.
● Pha quản trị dịch vụ (Service administration): Sau khi các dịch vụ
được triển khai, vấn đề quản lý các ứng dụng trở thàn hàng đầu, mối quan tâm
cho hệ thống phân tán, và các ứng dụng dựa trên các thành phần (componentbased applications), ngoại trừ chúng là áp dụng cho các dịch vụ như một tổng
thể.
 Phương pháp top-down (The top-down strategy)
Trong xây dựng một hệ thống SOA, thì phương pháp top-down là phương
pháp mà điểm xuất phát của nó sẽ là từ các yêu cầu ngiệp vụ để xác định các yêu
cầu chức năng, các tiến trình và tiến trình con, các trường hợp sử dụng (use
cases) để tới xác định các thành phần hệ thống (components), các dịch vụ, …
Trong phương pháp top-down hỗ trợ tạo ra các bước để hình thành tầng
dịch vụ (service layers). Phương pháp này phổ biến để đưa ra những kiến trúc
dịch vụ có chất lượng cao, trong quá trình tạo ra nhiều những nghiệp vụ được sử
dụng lại và các dịch vụ ứng dụng.

16


Hình 1.3 – Quy trình các bước của phương pháp top-down
 Bước 1: Define relevant ontology: Bước này là để xác định, phân loại
các tập thông tin được xử lý bởi các cơ cấu tổ chức của hệ thống. Các kết quả
này là các từ vựng phổ biến, như sự định nghĩa mối quan hệ giữa các tập thông
tin này với tập thông tin khác là như thế nào. Các tổ chức có phạm vi rộng lớn
hơn cùng với nhiều phạm vi nghiệp vụ có thể có vài ontology, với mỗi sự cai
quản thì các nghiệp vụ chia ra một cách rõ ràng. Nếu có nhiều từ vựng nghiệp vụ
không tồn tại cho bất cứ các tập thông tin nào mà một giải pháp được yêu cầu
thực hiện, thì bước này nó sẽ được định nghĩa. Một số lượng đáng kể của tập các
thông tin trước và kết quả phân tích nghiệp vụ ở mức cao có thể là được yêu cầu.

 Bước 2: Align relevant business models (including entity models): Sau
khi ontology là được thiết lập, sự tồn tại các mô hình nghiệp có thể cần để thay
đổi (hay tạo ra) để thể hiện các từ vựng bằng cách cung cấp ontology trong các
thuật ngữ mô hình nghiệp vụ. Mô hình thực thể chi tiết là quan trọng.
 Bước 3: Perform service-oriented analysis: Xác định các dịch vụ và
hướng tiếp cận cho các dịch vụ, đưa ra mô hình hóa dịch vụ.
 Bước 4: Perform service-oriented design: Thực hiện thiết kế hướng
dịch vụ.
 Bước 5: Develop services: Phát triển các dịch vụ theo yêu cầu. Các dịch
vụ được phát triển theo những bản thiết kế kỹ thuật tương ứng và các đặc tả dịch
vụ được tạo ra ở bước 4.
17


 Bước 6: Test service operations: Giai đoạn kiểm thử được yêu cầu cho
tất cả các quá trình hoạt động của dịch vụ phải trải qua cần thiết đảm bảo chất
lượng của quá trình kiểm tra. Khi đó làm vượt qua số lượng kiểm thử yêu cầu
cho logic tự động hóa thực thi vì các dịch vụ sử dụng lại sẽ cần thiết để được
kiểm thử vượt ra ngoài phạm vi giải pháp.
 Bước 7: Deploy service: Giải pháp cuối cùng là được triển khai. Quan
tâm tới vấn đề thực thi, xác định tiềm năng tương lai sử dụng lại của dịch vụ. Để
thuận tiện cho nhiều người yêu cầu dịch vụ, thì các dịch vụ sử dụng lại có thể yêu
cầu mở rộng sức mạnh xử lý và có thể có sự bảo mật và các khả năng yêu cầu
truy cập là sẽ cần được cung cấp.
 Phương pháp bottom-up (The bottom-up strategy)
Phương pháp này sẽ dựa trên việc phân tích tình trạng, các tài nguyên
của hệ thống hiện có và sẽ tái sử dụng lại những thành phần này trong việc xây
dựng các dịch vụ mới.
Trong hướng tiếp cận này, thì đã thừa nhận là các yêu cầu nghiệp vụ đã
tồn tại.


Hình 1.4 – Quy trình các bước của phương pháp bottom-up
 Bước 1: Model application services: Trong bước này kết quả là sự định
nghĩa của các yêu cầu ứng dụng được thỏa mãn thông qua việc sử dụng Web
service. Các yêu cầu này bao gồm những thiết lập lên các kênh tích hợp point-topoint giữa hệ thống cũ (legacy system) hoặc giải pháp B2B (Business-to-

18


Business). Các yêu cầu phổ biến khác sẽ hiện ra để thay công nghệ truyền thông
truyền thống bằng những framework truyền thông điệp SOAP.
Các dịch vụ ứng dụng cũng sẽ được mô hình hóa bao gồm các logic và
quy tắc cho nghiệp vụ cụ thể. Trong trường hợp này, nó là giống như hai tầng
dịch vụ ứng dụng là sẽ hiện ra, gồm có các dịch vụ tiện ích và nhân bản.
 Bước 2: Design applicaion services: Một vài các dịch vụ ứng dụng được
mô hình hóa trong bước 1 có thể được trình bày bằng thành bản thiết kế. Các
dich vụ có thể cung cấp thêm vào cho thiết kế. Các dịch vụ ứng dụng tùy ý sẽ cần
được trải qua quá trình thiết kế, ở một khía cạnh nào đó thì tồn tại những chuẩn
thiết kế được áp dụng để đảm bảo mức độ vững chắc.
 Bước 3: Deploy application service: Các dịch vụ ứng dụng được phát
triển theo sự mô tả dịch vụ và bản thiết kế chi tiết ứng dụng.
 Bước 4: Test service: Các dịch vụ, môi trường kết hợp của chúng, và
logic của những hệ thống cũ là được kiểm thử để đảm bảo chắc chắn rằng xử lý
các yêu cầu là phù hợp. Sự thực thi và tiêu chuẩn kiểm thử được nhấn mạnh
thường là được thiết lập lên các tham số cho hệ thống cũ thông qua các dịch vụ.
Kiểm tra bảo mật cũng là phần quan trọng của giai đoạn này.
 Bước 5: Deploy services: Những giải pháp và các dịch vụ ứng dụng của
nó là được triển khai thành sản phẩm. Sự cân nhắc thực thi cho các dịch vụ ứng
dụng thường bao gồm sự thực thi và các yêu cầu bảo mật.
 Phần lớn các tổ chức hiện nay là đang xây dựng Web service áp dụng

phương pháp bottom-up. Lý do chính là các tổ chức đơn giản chỉ thêm Web
service vào môi trường ứng dụng đã có để tăng sức mạnh của công nghệ Web
service. Thông qua phương pháp thiết kế bottom-up cho phép tạo hiệu quả Web
service như là được yêu cầu bởi các ứng dụng.

1.2 Dịch vụ web (web service)
1.2.1 Khái niệm về dịch vụ web
Web Services là chuẩn mở của tổ chức W3C (World Wide Web
Consortium) và được định nghĩa như sau: “Web Service là ứng dụng phần mềm
19


được định danh bởi URI (Uniform Resource Identifier), các giao diện và sự gắn
kết của nó là có khả năng định nghĩa, mô tả, và khám phá bằng XML. Một Web
Service hỗ trợ trực tiếp sự tương tác với những tác nhân phần mềm (software
agents) khác bằng việc sử dụng những thông điệp dựa trên XML được trao đổi
thông qua giao thức dựa trên Internet.”
Về cơ bản thì Web Service được phối hợp bởi hai sức mạnh của công nghệ
phổ biến đó là : XML, ngôn ngữ mô tả dữ liệu; và giao thức truyền tải HTTP
được hỗ trợ rộng khắp bởi trình duyệt và Web server.
Web Services = XML + Transport Protocol (HTTP)
Như vậy, Web Service là hệ thống phần mềm được xây dựng để hỗ trợ
cho sự tương tác hoạt động giữa các hệ thống với nhau thông qua môi trường
mạng. Web Service thường là các hàm Web API có thể truy cập qua môi
trường mạng như Internet, và thực thi dựa vào các yêu cầu dịch vụ của các hệ
thống máy tính từ xa.

Hình 1.5 – Kiến trúc của Web Service
Định nghĩa Web Service bao g ồm nhiều hệ thống khác nhau, nhưng
thường bao gồm client và server, truyền thông giữa chúng bằng XML dựa trên

giao thức chuẩn SOAP (Simple Object Access Protocol) và đặc tả Web
Service dựa trên ngôn ngữ WSDL (Web Services Description Language).
Những tài liệu XML chứa các thông tin để trao đổi giữa các thành phần.
Trong khi đó, SOAP cung cấp chuẩn đóng gói và định tuyến cho việc trao đổi
20


những tài liệu XML trên một mạng, còn WSDL cho phép tổ chức đặc tả
những tài liệu XML và những thông điệp mà nó phải sử dụng để tương tác với
những Web Service. Cuối cùng là UDDI (Universal Description, Discovery,
and Integration) cho phép những tổ chức đăng ký những Web Service của họ
với một thư mục chung, vì vậy những client có thể xác định được những Web
Service của họ và biết làm thế nào để truy xuất đến chúng.
Dữ liệu và các ứng dụng từ máy tính cá nhân tới các máy phục vụ của một
nhà cung cấp dịch vụ web. Các máy phục vụ này cũng cần trở thành nguồn cung
cấp cho người dùng cả về độ an toàn, độ riêng tư và khả năng truy cập. Các máy
phục vụ ứng dụng sẽ là phần quan trọng của các Web Service bởi vì thường thì
các máy phục vụ này thực hiện các hoạt động ứng dụng phức tạp dựa trên sự
chuyển giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở
dữ liệu của một tổ chức nào đó.
Web Service là công nghệ tương đối mới mà nó nhận được sự hưởng ứng
rộng lớn, một trong đó là khả năng thực thi kiến trúc hướng dịch vụ (SOA). Đây
là điều tạo sao Web Service cung cấp khả năng phân tán cho những ứng dụng
không đồng nhất với nhau qua mạng Interrnet. Những đặc tả Web Service không
lệ thuộc vào các ngôn ngữ lập trình, hê điều hành và phần cứng. Công nghệ của
Web Service dựa trên các công nghệ mở như:
 eXtensible Markup Language (XML)
 Simple Object Access Protocol (SOAP)
 Universal Description, Discovery and Integration (UDDI)
 Web Service Description Language (WSDL)

1.2.2 Đặc điểm của dịch vụ web
 Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả

trong những môi trường khác nhau.
 Phần lớn kĩ thuật của dịch vụ Web được xây dựng dựa trên mã nguồn mở

và được phát triển từ các chuẩn đã được công nhận như XML.
21


 Một Dịch vụ Web bao gồm có nhiều mô-đun.
 Là sự kết hợp của việc phát triển theo hướng từng thành phần với những

lĩnh vực cụ thể và cơ sở hạ tầng Web.
 Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-

server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ
như PHP, Oracle Application server hay Microsoft.Net…
 Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc

sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn
lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm
các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông
tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá
cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả
B2B và B2C) như đặt vé máy bay, thông tin thuê xe…
1.2.3 Ưu và nhược điểm
►Ưu điểm:
 Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng


phần mềm khác nhau chạy trên những nền tảng khác nhau.
 Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa

trên văn bản giúp các lập trình viên dễ dàng hiểu được.
 Nâng cao khả năng tái sử dụng.
 Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép

các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.
 Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần

trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
 Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành

hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các
doanh nghiệp khác.
► Nhược điểm:

22


 Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web,

giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp,
thiếu các giao thức cho việc vận hành.
Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.
 Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

1.2.4 Kiến trúc web service

Hình 1.6: Kiến trúc web service

Trong đó bao gồm các tầng :
● Tầng vận chuyển với những công nghệ chuẩn là HTTP , SMTP và JMS ●
Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) với công
nghệ chuẩn là SOAP . SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô
tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa
thông qua một message XML.
● Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL
và XML. WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web
service sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu cho
các thao tác , các chức năng mà web service cung cấp.
● Tầng dịch vụ ( Service): cung cấp các chức năng của service.
● Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI.
UDDI dùng cho cả người dùng vạ̀ SOAP server, nó cho phép đăng ký dịch vụ để
23


người dùng có thể gọi thực hiện service từ xa qua mạng, hay nói cách khác một
service cần phải được đăng ký để cho phép các client có thể gọi thực hiện.
● Bên cạnh đó để cho các service có tính an toàn , toàn vẹn và bảo mật thông
tin trong kiến trúc web service chúng ta có thêm các tầng Policy, Security,
Transaction, Management giúp tăng cường tính bảo mật , an toàn và toàn vẹn
thông tin khi sử dụng service.
1.2.5 Các thành phần trong web service
● XML– Extensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, 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 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 dịch vụ Web 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. 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 dịch vụ Web, 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.
● SOAP - Simple Object Accesss Protocol
SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là
cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn
ngữ và các hệ điều hành khác nhau. SOAP là giao thức thay đổi các thông điệp
dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP.

24


Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi
những thông điệp trả lời tới client. Cả SMTP và HTTP đều là những giao thức ở
lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn
bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.
 Cấu trúc một thông điệp theo dạng SOAP
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các
phần tử sau:

Hình 1.7 - Cấu trúc thông điệp SOAP
▪ Phần tử gốc - envelop: phần tử bao trùm nội dung thông điệp, khai báo
văn bản XML như là một thông điệp SOAP.
▪ Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần
tử này không bắt buộc khai báo trong văn bản. Header còn có thể mang những

dữ liệu chứng thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các
giao dịch khác.
▪ Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông
tin yêu cầu và thông tin được phản hồi.

25


×