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 đượcviệ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ữngcông nghệ được sử dụng bởi từng
Trang 1Xin 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ạnchế 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
Trang 2LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng đượcnhu 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ờigian 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ảomộ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ôngtin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng
MỤC LỤC
Trang 3LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
LỜI NÓI ĐẦU 4
Chương 1 KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ WEBSERVICE 6
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
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
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 43
2.2 Các chuẩn mở OpenGIS 46
Trang 42.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Ý 51
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 55
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
3.4.3 Giao diện chương trình 74
KẾT LUẬN 75
TÀI LIỆU THAM KHẢO 77
Trang 5LỜI NÓI ĐẦU
Hệ thống thông tin địa lý (GIS) ra đời và được phát triển mạnh trongnhững năm gần đây với sự bùng nổ về công nghệ ứng dụng Internet, các pháttriển công nghệ GIS cho phép chia sẻ thông tin thông qua mạng toàn cầu bằngcá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 đượcquan 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ệcnghiên cứu ứng dụng WebGIS trên cơ sở mã nguồn mở sẽ mang lại khả năngchia 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 Namchủ 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ácquy 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ôngnghệ số Các bản đồ giấy trước kia đã được số hoá và đang nằm trong các ổ cứngmáy tính tại các cơ quan, trường học, cá nhân, Theo xu thế chung, các thông tinkhông gian này được chuyển sang lưu trữ trong các hệ thống cơ sở dữ liệu thôngtin 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ộtbướ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ônggian được lưu trữ và sử dụng trong một hệ thống riêng biệt đã hạn chế rấtnhiều tiềm năng khai thác thông tin không gian của các hệ thống này Côngnghệ Web-GIS cho phép phát hành, tiếp cận, truy vấn thông tin không giantrong một môi trường mở như Internet đã cho phép phát huy các tiềm năngchưa được đánh thức của các hệ thống thông tin địa lý, không gian và đưacô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ònnhiề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ú
Trang 6trọ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 đồ
Trang 7Chươ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ộthướ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ườngmạ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ộtquy 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áchhà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 địnhmục đích, chức năng, thuộc tính, giao diện, … của hệ thống Nó cũng bao gồmviệ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ậpqua 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
Trang 8Trong 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ốnghiện nay như: phức tạp, không linh hoạt và không ổn định Một hệ thống triểnkhai 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ínhcà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
Trang 9ra 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ôngtin 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êncung 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 linhhoạ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ệcchọ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 đặtcủ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 chedấu đi Loose coupling đem đến sự độc lập giữa bên cung cấp và bên sử dụngnhư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 gianquả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ơinhấ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ácnhau 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à
Trang 10tă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.
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ụngcho 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ácpolicy đượ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ầnmề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ờigian phát triển để cài đặt và kiểm tra những policy Ngược lại, nếu sử dụngpolicy, 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ìnhnghiệ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ếthợ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ácnhau Mỗi dịch vụ cung cấp một giao diện có thể được triệu gọi thông qua mộtdạ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à
Trang 11mộ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êuchuẩ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ỏayêu cầu tím kiếm Ví dụ, một hệ thống chuyển khoản (consumer) yêu cầu mộtregistry 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 trongdanh 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 tinregistry 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ụngchỉ cần định dạng dữ liệu yêu cầu đúng theo mô tả cung cấp và gửi đi Nhà cungcấ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ó địnhdạng đúng như trong phần mô tả dịch vụ Mối ràng buộc duy nhất giữa bên cungcấp và bên sử dụng là bản hợp đồng được cung cấp bởi registry trung gian Mốirà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 tronglú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 trongkhi 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
Trang 12trọ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ừngbấ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ủaphầ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ộtkiế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 giaodiệ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ăngnày chỉ có được khi client tương tác với giao diện của dịch vụ chứ khôngtươ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ảncủ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ânphố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 chonhữ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áttriể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épcá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ụ
Trang 13sẵ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ơnrấ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à SOAmang 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ếthợ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ứcnă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 trongmộ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áttriển các dịch vụ đó Điều này cho phép doanh nghiệp phản ứng nhanh theoyê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ầucủ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ạtcao 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
Trang 14qua các interface theo một dạng thức chuẩn nên giúp lập trình viên tránh đượcviệ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ữngcô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ôngnghệ 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ượngthông tin nhỏ vừa đủ để sử dụng dịch vụ Tương tự cho điều ngược lại, nếu đốitá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ốicù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ầnmềm – triển khai hệ thống theo yêu cầu Quy trình này đôi khi gặp khó khăn khigặp những tình huống thay đổi không định trước Với SOA, công ty phát triểnphầ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ềunày cho phép hỗ trợ nhiều loại thiết bị đầu cuối khác nhau bao gồm cả nhữngtrì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ùytheo 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 chiphí 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ằngcách thêm nhiều thể hiện (instance) của một service Công nghệ chia tải (load-
Trang 15balancing) 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 khicầ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 ấntượ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ànhquy 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ớithô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 quytrình nghiệp vụ hình thức
Trang 16● 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 quantâ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 based applications), ngoại trừ chúng là áp dụng cho các dịch vụ như một tổng
(component-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ươngphá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
Trang 17Hì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ạicá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 tinnà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ơncù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ôngtồ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 tintrướ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): Saukhi 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ácthuậ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ướngdị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
Trang 18 Bước 6: Test service operations: Giai đoạn kiểm thử được yêu cầu chotấ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ấtlượng của quá trình kiểm tra Khi đó làm vượt qua số lượng kiểm thử yêu cầucho logic tự động hóa thực thi vì các dịch vụ sử dụng lại sẽ cần thiết để đượckiể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 Quantâ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êucầ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ầutruy 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êncủ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âydự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ự địnhnghĩ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 Webservice 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-to-
point giữa hệ thống cũ (legacy system) hoặc giải pháp B2B
Trang 19(Business-to-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ầngdị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ácdich 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ẩnthiế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áttriể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à logiccủa những hệ thống cũ là được kiểm thử để đảm bảo chắc chắn rằng xử lý cácyê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 trabả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ụ ứngdụ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ụngphương pháp bottom-up Lý do chính là các tổ chức đơn giản chỉ thêm Webservice vào môi trường ứng dụng đã có để tăng sức mạnh của công nghệ Webservice Thông qua phương pháp thiết kế bottom-up cho phép tạo hiệu quả Webservice 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
Trang 20đượ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ườngmạng Web Service thường là các hàm Web API có thể truy cập qua môitrườ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ưngthườ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
Trang 21nhữ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 WebService 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ộtnhà 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 cungcấp cho người dùng cả về độ an toàn, độ riêng tư và khả năng truy cập Các máyphụ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 ứngrộ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ụngkhô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ủaWeb 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
Trang 22 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ữnglĩ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 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…
client- Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộcsố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ọnlọ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ếmcá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ôngtin 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
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épcá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ầntrong 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ànhhoạ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ácdoanh nghiệp khác
► Nhược điểm:
Trang 23 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ângcấ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 serviceTrong đó 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ôngnghệ 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ừ xathô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 Webservice sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu chocá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ụ để
Trang 24ngườ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ộtservice 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ôngtin 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ẹnthô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ệuB2B Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTMLnhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại địnhnghĩa những thành phần đó chứa cái gì Với XML, các thẻ có thể được lập trìnhviê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ởití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âydự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ẩncủa SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thốngnhấ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ônngữ và các hệ điều hành khác nhau SOAP là giao thức thay đổi các thông điệpdựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP
Trang 25Mộ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ửinhữ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ơnbở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ácphầ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
Trang 26▪ Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong qúa trình xử lý thông điệp.
Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, thamchiếu tới một thể hiện của dịch vụ, một hoặc nhiều tham số Có 3 kiểu thông báo
sẽ được đưa ra khi truyền thông tin: request message(tham số gọi thực thi mộtthông điệp), respond message (các tham số trả về, được sử dụng khi yêu cầuđược đáp ứng) và cuối cùng là fault message (thông báo tình trạng lỗi)
Kiểu truyền thông: Có 2 kiểu truyền thông
▪ Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng Kiểu này được khai thác bởi nhiều dịch vụ Web
▪ Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn.Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đến các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phùhợp với dịch vụ Web cần xây dựng
Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay nhữngkiều phức tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt trong namespace SOAP-ENC
Mã hóa: Giả sử dịch vụ yêu cầu và dịch vụ provider được phát triển trong Java, khi đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngược lại, bởi vì định dạng cho Web Service chính là XML Bất kỳ một môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java - bảng đó được gọi là SOAPMappingRegistry Nếu một kiểu dữ liệuđược sử dụng dưới một dạng mã hóa thì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó
Các ứng dụng có thể xử lý và định tuyến các thông điệp dựa trên thông tinheader và thông tin bên trong thông điệp đó Đây là ưu điểm mà các mô hình
Trang 27kiến trúc như DCOM, CORBA và RMI không có được, vì các protocol headercủa chúng phải được chỉ định chi tiết cho mỗi ứng dụng.
● WSDL -Web Services Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát củaXML, bao gồm các thông tin:
và tập tin thi hành dịch vụ Giao diện của một dịch vụ Web được miêu tả trongphần này đưa ra cách thức làm thế nào để giao tiếp qua dịch vụ Web Tên, giaothức liên kết và định dạng thông điệp yêu cầu để tương tác với dịch vụ Web đượcđưa vào thư mục của WSDL
WSDL thường được sử dụng kết hợp với XML schema và SOAP để cungcấp dịch vụ Web qua Internet Một client khi kết nối tới dịch vụ Web có thể đọcWSDL để xác định những chức năng sẵn có trên server Sau đó, client có thể sửdụng SOAP để lấy ra chức năng chính xác có trong WSDL
Hình 1.8 - Cấu trúc WSDL
Trang 28● UDDI - Universal Description, Discovery and Intergration
Về cơ bản Universal Description, Discovery, and Intergration (UDDI) làmột nơi mà các tổ chức đăng ký và tìm kiếm các Web Service Cho phép người
sử dụng dịch vụ tìm đúng nhà cung cấp dịch vụ cần tìm UDDI hỗ trợ chức năng:
• Thực hiện tìm kiếm, định vị những doanh nghiệp cung cấp dịch vụ hay sảnphẩm theo phần loại theo vùng địa lý
• Thông tin về một nhà cung cấp dịch vụ bao gồm địa chỉ, thông tin liên lạc
xử lý lỗi triệu gọi Thành phần xử lý chính là bộ đăng ký UDDI, đó là một fileXML dùng để mô tả một thực thể kinh doanh (business entity) kèm theo các Webservice đi cùng Sử dụng các dịch vụ của UDDI, các doanh nghiệp đăng ký thôngtin về những Web service mà họ định cung cấp Thông tin này đuợc thêm vàoUDDI registry thông qua Web site hoặc sử dụng các công cụ lập trình sử dụngcác dịch vụ theo đúng đặc tả UDDI programmer’s API Lược đồ XML UDDIđịnh nghĩa bốn loại thông tin cơ bản để kết nối đến Web service
Tóm lại để tạo một web service chúng ta cần xây dựng các tầng cần thiếttrong kiến trúc web service hay nói cách khác là xây dựng và thiết lập các thànhphần trong các tầng đó , cụ thể là các thành phần SOAP , WSDL , UDDI , XML ,trong đó :
- 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ộtmessage XML
Trang 29- 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 thaotác , các chức năng mà web service cung cấp
- UDDI dùng cho cả người dùng và ̣ SOAP server, nó cho phép đăng ký dịch vụ
để người dùng có thể gọi thực thi các hàm , các chức năng của web service haynó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 đó chúng ta cũng phải quan tâm đến việc làm sao để cho các service
có tính an toàn , toàn vẹn và bảo mật thông tin trong web services nhất là cácservice liên quan đến giao dịch thương mại và tài chính.Chúng ta sẽ tìm hiểu nộidung này trong các phần tiếp theo
Sơ đồ dưới đây cho chúng ta thấy rõ hơn về các thành phần cần thiết trong mộtweb service và mối quan hệ giữa các thành phần
Hình 1.9 - Mối quan hệ giữa các thành phần trong Web service
1.2.6 An toàn cho dịch vụ Web
Dịch vụ Web liên kết và tương tác với các ứng dụng qua Internet, chính vìvậy bảo mật là một vấn đề được quan tâm khi các công ty tiến tới kết hợp ứngdụng với một dịch vụ Web Việc đảm bảo an toàn cho dịch vụ Web là một vấn đềquan trọng, đặc biệt đối với những dịch vụ liên quan đến trao đổi tiền tệ, thôngtin từ thị trường chứng khoán hay dịch vụ bán hàng qua mạng (liên quan đến trảtiền bằng tài khoản và có yêu cầu thông tin cá nhân của người dùng)
Trang 30Trước khi có WS-Security (bảo mật cho dịch vụ Web) thì ý nghĩa thôngthường của an toàn dịch vụ Web là bảo mật kênh truyền dữ liệu Hiện nay, nóđược thực hiện cho những SOAP/HTTP dựa trên cơ chế truyền thông điệp bằngcách sử dụng giao thức HTTPS Không chỉ là an toàn ở mức truyền thông điệp,HTTPS còn cung cấp sự an toàn tới toàn bộ gói dữ liệu HTTP.
Mặc dù HTTPS không bao gồm tất cả các khía cạnh trong chuẩn an toànchung cho dịch vụ Web nhưng nó đã cung cấp một lớp bảo mật khá đầy đủ vớiđịnh danh, chứng thực, tính toàn vẹn thông điệp hay độ tin cậy
Khái niệm về WS-Security: đây là một chuẩn an toàn bao trùm cho SOAP,
nó được dùng khi muốn xây dựng những dịch vụ Web toàn vẹn và tin cậy Toànvẹn có nghĩa là khi có một giao dịch hay khi truyền thông tin, hệ thống và thôngtin sẽ không bị chặn, giao dịch sẽ không bị mất cũng như không thể có người lấycắp được dữ liệu trên đường truyền WS-security được thiết kế mang tính mởnhằm hướng tới những mô hình an toàn khác bao gồm PKI, Kerberos và SSL Nócũng đưa ra nhiều hỗ trợ cho các cơ chế an toàn khác, nhiều khuôn dạng chữ ký
và công nghệ mã hóa, đảm bảo sự an toàn, toàn vẹn thông điệp và tính tin cậycủa thông điệp Tuy nhiên, WS–security cũng chưa thể đảm bảo được tất cả yêucầu về bảo mật và an toàn thông tin, nó chỉ là một trong những lớp của giải pháp
an toàn cho dịch vụ Web
Tính toàn vẹn tạo ra một chữ ký số hóa XML dựa trên nội dung của thôngđiệp Nếu dữ liệu bị thay đổi bất hợp pháp, nó sẽ không còn thích hợp với chữ ký
số hóa XML đó Chữ ký này được tạo ra dựa trên khóa mà người gửi thông điệptạo ra, do đó người nhận chỉ nhận thông điệp khi có chữ ký sử dụng và nội dungphù hợp Ngược lại sẽ có một thông báo lỗi Việc chứng thực được thực hiệngiữa client và server là cách chứng thực rất cơ bản (sử dụng định danh ngườidùng và mật khẩu)
WS-security chỉ là một trong những lớp an toàn và bảo mật cho dịch vụWeb, vì vậy cần một mô hình an toàn chung lớn hơn để có thể bao quát được cáckhía cạnh khác Các thành phần được thêm có thể là WS-Secure Conversation
Trang 31Describes,WS-Authentication Describes,WS-Policy Describes hay WS-TrustDescribes Chúng sẽ thực hiện việc đảm bảo an toàn hơn cho hệ thống khi traođổi dữ liệu, mở và đóng các phiên làm việc cũng như quản lý dữ liệu cần chứngthực và chính sách chứng thực
1.3 Xây dựng Web Services
1.3.1 Các giai đoạn xây dựng Web services
Có 4 giai đoạn chính để xây dựng một web service là xây dựng, triển khai,tiến hành và quản lý :
- Giai đoạn xây dựng bao gồm phát triển và chạy thử ứng dụng web service,bao gồm các chức năng và định nghĩa service
- Giai đoạn triển khai bao gồm công bố định nghĩa service, xây dựngWSDL, và triển khai mã thực thi của web service
- Giai đoạn tiến hành bao gồm tìm kiếm và gọi thực thi web service
- Giai đoạn quản lý bao gồm quản lý và quản trị ứng dụng web service.Chu trình xây dựng một Web service bao gồm các bước chung phải có đểtạo ra một web service mới
Trong thời gian xây dựng này, web service phải chuyển qua những trạngthái khác nhau
Hình 1.10 - Những trạng thái của web service trong thời gian xây dựng
► Giai đoạn xây dựng
Trang 32Giai đoạn đầu tiên khi chúng ta tạo ra một web service là giai đoạn xâydựng.Có hai cách khác nhau để tiến hành trong giai đọan xây dựng:
- Cách 1 (Red path – solod) : chúng ta xây dựng từ trạng thái ban đầu hoặc
đã có sẵn bằng mã Java Sử dụng mã Java đó, chúng ta xây dựng định nghĩaservice (WSDL) với các đối tượng , hàm , chức năng mà chúng ta mong muốn
- Cách 2 (Blue path –dashed) : chúng ta xây dựng từ đầu hoặc đã có mộtđịnh nghĩa dịch vụ WSDL Sử dụng WSDL này, chúng ta xây dựng hoặc sửa đổilại mã Java để thực hiện các yêu cầu trong service của chúng ta
► Giai đoạn triển khai
Giai đoạn thứ hai của một web service là giai đoạn triển khai Trong giaiđoạn này chúng ta triển khai web service tới một application server Sau đó,chúng ta công bố (publish) web service để các client có thể tìm thấy Thao tác ̣công bô này có thể sử dụng UDDI registry Ngoài ra trong một web service,chúng ta cũng có thể kết hợp tất cả các phương thức đã được công bố trước đó
► Giai đoạn tiến hành
Giai đoạn thứ ba là giai đoạn tiến hành Trong giai đoạn này web serviceđược thực thi và được gọi bởi những người dùng muốn sử dụng dịch vụ
► Giai đoạn quản lý
Giai đoạn cuối cùng là giai đoạn quản lý Nó bao trùm tất cả các nhiệm vụquản lý và quản trị ứng dụng web service
1.3.2 Các hướng tiếp cận trong xây dựng web service
Trong phần này, chúng ta mô tả những cách khác nhau để tạo ra một webservice Có ba cách tiếp cận chủ yếu, một web service có thể được thực hiện từ :
- Một ứng dụng hiện hữu (bottom-up)
- Một định nghĩa dịch vụ hiện hữu, WSDL, để phát sinh một ứng dụng mới(top-down)
Trang 33- Một nhóm hiện hữu các web service hiện có kết hợp lại để tạo ra các tínhnăng mới hoặc mở rộng cho các tính năng hiện có ( multiple services )
► Bottom-up
Bottom-up là cách tiếp cận chung nhất để xây dựng một Web service.Chúng ta bắt đầu với một ứng dụng đã tồn tại, và từ đó xây dựng thành một webservice
Hình 1.11 - Tiếp cận Bottom-up
► Top-down
Cách tiếp cận top-bottom thường sử dụng khi chúng ta đã có một định nghĩadịch vụ trước đó và chúng ta muốn sử dụng định nghĩa này để cung cấp các chứcnăng trong serviec chúng ta cần xây dựng
Định nghĩa dịch vụ có thể là một thoả thuận trong lĩnh vực công nghiệp vàđược thực thi bởi một số nhà cung cấp,ví dụ như là một nhóm các sân bay thoảthuận và thống nhất với nhau về kế hoạch bay của họ Trong trường hợp này ,chúng ta có một định nghĩa dịch vụ về kế hoạch bay, và khi đó từ định nghĩa dịch
vụ này chúng ta sẽ xây dựng một web service để cung cấp các chức năng chophép truy xuất thông tin về kế hoạch bay, và cung cấp cho người dùng
Hình 1.12 - Tiếp cận Top-down
Trang 34Quá trình xây dựng một web service theo hướng tiếp cận này có thể chiathành các bước sau:
- Tạo giao diện cho service: chúng ta cụ thể hóa định nghĩa dịch vụ saocho để có thể dễ dàng cho việc tạo WSDL Sau đó chúng ta tạo định nghĩa cácthông tin mô tả về dịch vụ (WSDL), bao gồm: tên dịch vụ, giao thức và kiểu
mã hóa sẽ được sử dụng, những thao tác, những tham số, và những kiểu dữliệu gồm có của web service, sau đó có được WSDL chúng ta sẽ tiến hànhđăng ký với UDDI registry để cho phép có thể truy cập được dịch vụ này ,trong trường hợp WSDL của dịch vụ này đã có chúng ta sẽ xác định thông tin
về dịch vụ qua UDDI registry
- Phát sinh implementation skeleton : sử dụng định nghĩa dịch vụ,chúng ta phát sinh một skeleton với những hàm và những tham số cần đểthực thi web service
- Xây dựng web service : Sử dụng skeleton, chúng ta hoàn thành chỉnh cáchàm, các đối tượng của service
- Tùy thuộc vào số lượng các hàm, các code đã có, chúng ta có thể tái sửdụng lại để không phải viết lại các hàm này từ đầu
- Cuối cùng, chúng ta kiểm tra web service và cho thực thi
► Multiple services
Multiple services thường sử dụng khi chúng ta có một tập hợp các webservice chạy trong một hoặc nhiều hệ thống và chúng ta muốn cung cấp tính năngmới hoặc tái sử dụng lại những đặc tính hiện hữu do những web service này cungcấp Trong hướng tiếp cận này, chúng ta tạo ra một web service mới bằng cáchtích hợp, kết hợp các tính năng, chức năng của các web services hiện có hoặc cácmodule để tạo ra một web services mới với nhiều tính năng hơn
Trang 35Hình 1.13 - Multiple ServiceCác web service riêng lẻ có thể kết hợp tuần tự với nhau Tức là, đầu ra củamột service này sẽ là đầu vào của một service khác hoặc một module khác trong
hệ thống Ngòai ra chúng ta cũng có thể tạo ra những đầu ra khác nhau khi thựcthi tùy thuộc vào luồng dữ liệu đầu vào
1.3.3 Qui trình xây dựng web service
Sơ đồ dưới đây cho chúng ta thấy được toàn cảnh các thành phần của webservice, cũng như quá trình phối hợp giữa các thành phần bên trong web services
để đáp ứng yêu cầu từ phía người dùng
Trong sơ đồ này , chúng ta có thể quan sát :
- Vị trí (1) Service Provider đựợc phát triển bằng Java
- Vị trí (2) Chuyển đổi thông tin giữa máy chủ và WSDL
- Vị trí (3) Thực thi với SOAP Server
- Vị trí (4) Công bố (publish) và truy xuất UDDI registry, bao gồm :(4a) Khai báo, hủy khai báo và cập nhật những đăng ký dịch vụ trongUDDI registry
(4b) Tìm kiếm các đăng ký dịch vụ trong UDDI registry
- Vị trí (5) Thực thi với SOAP Client
- Vị trí (6) Đáp ứng các yêu câu từ client , bao gồm :
(6a) Tìm kiếm các dịch vụ được đăng ký trong UDDI registry
(6b) Yêu cầu thực hiện dịch vụ đã đăng ký
Trang 36(6c) Trao đổi thông tin giữa client và SOAP server.
(6d) Yêu cầu khối cung cấp dịch vụ thực thi và trả kết qủa về cho client
Hình 1.14 - các thành phần của web service và qui trình phồi hợp giữa các
thành phần
Từ sơ dồ này, chúng ta thấy rằng để xây dựng một web service chúng tacần thực hiện các bước sau :
● Bước 1 : Định nghĩa và xây dựng các chức năng, các dịch vụ mà servive
sẽ cung cấp (sử dụng ngôn ngữ Java chẳng hạn)
● Bước 2 : Tạo WSDL cho service
● Bước 3 : Xây dựng SOAP server cho service
● Bước 4 : Đăng ký WSDL với UDDI registry để cho phép các client có thểtìm thấy và truy xuất
● Bước 5 : Client nhận file WSDL và từ đó xây dựng SOAP client để có thểkết nối với SOAP server
● Bước 6 : Xây dựng ứng dụng phía client (chẳng hạn sử dụng Java) và sau
đó gọi thực hiện service thông qua việc kết nối tới SOAP server
Trang 37Chương 2 HỆ THỐNG THÔNG TIN ĐỊA LÝ VÀ CÁC
CHUẨN OPENGIS
2.1 Hệ thống thông tin địa lý (GIS)
2.1.1 Khái niệm GIS
GIS viết tắt của cụm từ Geographic Information Systems (Hệ thống thôngtin địa lý) Hệ thống thông tin địa lý là một công cụ máy tính để lập bản đồ vàphân tích các sự vật, hiện tượng thực trên trái đất GIS lưu giữ thông tin về thếgiới thực dưới dạng tập hợp các lớp chuyên đề có thể liên kết với nhau nhờ cácđặc điểm địa lý Điều này đơn giản nhưng vô cùng quan trọng và là một công cụ
đa năng đã được chứng minh là rất có giá trị trong việc giải quyết nhiều vấn đềthực tế, từ thiết lập tuyến đường phân phối của các chuyến xe, đến lập báo cáochi tiết cho các ứng dụng quy hoạch, mô phỏng sự lưu thông khí quyển toàn cầu,cho đến việc xác lập các hệ định vị toàn cầu
2.1.2 Các thành phần của GIS
GIS được kết hợp bởi năm thành phần chính: phần cứng, phần mềm, dữliệu, con người và phương pháp
Hình 2.1 - Các thành phần của GIS
● Con người: Con người là thành phần quan trọng nhất Người sử dụng GIS có
thể là những chuyên gia kỹ thuật, người thiết kế và duy trì hệ thống, hoặc nhữngngười dùng GIS để giải quyết các vấn đề trong công việc
Trang 38● Dữ liệu: Người ta chia dữ liệu trong GIS thành 2 loại:
Dữ liệu không gian (spatial) cho ta biết kích thước vật lý và vị trí địa lý củacác đối tượng trên bề mặt trái đất
Dữ liệu thuộc tính (non-spatial) là các dữ liệu ở dạng văn bản cho ta biếtthêm thông tin thuộc tính của đối tượng
● Phần cứng: Là các máy tính điện tử: PC, mini Computer, MainFrame … là
các thiết bị mạng cần thiết khi triển khai GIS trên môi trường mạng
● Phần mềm: Phần mềm GIS cung cấp các chức năng và các công cụ cần thiết
để lưu giữ, phân tích và hiển thị thông tin địa lý Các thành phần chính trongphần mềm GIS là:
+ Công cụ nhập và thao tác trên các thông tin địa lý
+ Hệ quản trị cơ sở dữ liệu(DBMS)
+ Công cụ hỗ trợ hỏi đáp, phân tích và hiển thị địa lý
+ Giao diện đồ hoạ người-máy (GUI) để truy cập các công cụ dễ dàng
● Phương pháp: Một hệ GIS thành công theo khía cạnh thiết kế và luật thương
mại là được mô phỏng và thực thi duy nhất cho mỗi tổ chức
2.1.3 Thành phần dữ liệu GIS
► Dữ liệu không gian
Là những mô tả số của hình ảnh bản đồ Chúng bao gồm toạ độ, quy luật vàcác ký hiệu dùng để xác định hình ảnh cụ thể của bản đồ trong một khuôn dạnghiểu được của máy tính Hệ thống thông tin địa lý dùng các dữ liệu không gian
để tạo ra một bản đồ hay hình ảnh bản đồ trên màn hình hoặc trên giấy thông quathiết bị ngoại vị Có 6 loại thông tin bản đồ dùng để thể hiện hình ảnh bản đồ vàghi chú của nó trong hệ thống thông tin địa lí như sau:
Ðiểm (Point)
Ðường (Line)