Tích hợp ứng dụng của doanh nghiệp Ngày nay, ứng dụng Công nghệ Thông tin có mặt trong hầu hết các doanh nghiệp và hỗ trợ cho nhiều lĩnh vực từ các nghiệp vụ văn phòng đơn giản đến các
Trang 2Để có được sự thành công của mỗi người, ngoài sự cố gắng và nỗ lực học tập, rèn luyện của bản thân, không thể thiếu sự quan tâm, giúp đỡ của các thầy cô và những thế hệ đi trước, gia đình, bạn bè đồng nghiệp
Tác giả xin được gửi lời biết ơn chân thành nhất tới TS Vũ Tuyết Trinh
đã tận tình hướng dẫn và động viên tôi trong suốt quá trình thực hiện luận văn của mình
Tác giả xin cảm ơn tới toàn thể các thầy cô giáo trong Bộ môn Hệ thống Thụng tin, Trung tâm sau đại học Trường Đại Học Bách Khoa Hà Nội đã giúp
đỡ Tôi trong quá trình học tập tại trường
Xin cảm ơn gia đình và bạn bè đã tạo mọi điều kiện để tác hoàn thành luận văn của mình
Trang 3MỤC LỤC
DANH SÁCH HÌNH VẼ 3
DANH SÁCH BẢNG 6
DANH SÁCH TỪ VIẾT TẮT 7
LỜI CẢM ƠN 9
Chương 1:MỞ ĐẦU 10
1.1 Tích hợp ứng dụng của doanh nghiệp 10
1.2 Từ tích hợp dữ liệu đến tích hợp ứng dụng 12
1.3 Mục đích của luận văn 18
1.4 Cấu trúc luận văn 19
Chương 2:MỘT SỐ CÔNG NGHỆ TÍCH HỢP ỨNG DỤNG 21
2.1 Giới thiệu 21
2.2 Môi trường đồng tích hợp đồng nhất Java – RMI 22
2.3 Môi trường tích hợp không đồng nhất 24
2.4 Công nghệ Web services 27
2.5 Nhận xét đánh giá 31
CHƯƠNG 3:WEB SERVICES VÀ CÁC CHUẨN 34
3.1 Ngôn ngữ XML 37
3.2 Các chuẩn của Web service 37
3.2.1 Chuẩn WSDL 38
3.2.2 Chuẩn UDDI 51
3.2.2.1 Công bố dịch vụ 53
3.2.2.2 Tìm kiếm Dịch vụ 57
3.2.3 Chuẩn SOAP 62
3.2.3.1 Thông điệp SOAP 62
3.2.3.2 Cấu trúc của SOAP 63
Trang 4Chương 4:ỨNG DỤNG MINH HỌA 69
4.1 Kịch bản về du lịch 69
4.2 Môi trường xây ứng dụng 70
4.3 Quy trình hoạt động của ứng dụng 71
4.4 Mô tả các dịch vụ 72
4.4 Công bố và tìm kiếm dịch vụ 81
4.4.1 Đăng ký dịch vụ 81
4.4.2 Tìm kiếm dịch vụ 84
4.5 Thông điệp trao đổi dữ liệu theo chuẩn SOAP 87
Chương 5:KẾT LUẬN 93
TÀI LIỆU THAM KHẢO 95
Trang 5DANH SÁCH HÌNH VẼ
Hình Trang
1.1 Các ứng dụng hoạt động riêng lẻ của doang nghiệp 11
1.2 Tích hợp các ứng dụng đơn lẻ trong doanh nghiệp 12
1.3 Tích hợp dữ liệu qua thành phần trung gian 14
1.4 Phương pháp tích hợp dữ liệu ETL 15
1.5 Đồng bộ dữ liệu giữa hai ứng dụng 16
1.6 Tích hợp quy trình nghiệp vụ 17 2.1 Giao tiếp giữa Client và Server qua RMI 23
2.2 Client truy cập dịch vụ thông qua một đối tượng 25
2.4 Giao tiếp giữa bên sử dụng dịch vụ và cung cấp dịch vụ 28
2.5 Quan hệ giữa các thành phần trong Web services 28
2.6 Tính tương liên yếu của dịch vụ 29 2.7 Tính trong suốt của web services 31
3.1 Mối quan hệ giữa các thành phần 35
Trang 63.2 Các thành phần kỹ thuật cơ bản của Web services 35
3.3 Kiến trúc cơ bản của một dịch vụ web 36
3.7 Mối quan hệ giữa các phần tử trong WSDL 41
3.9 Mối quan giữa các trang thông tin và dữ liệu UDDI 52
3.10 Mối quan hệ giữa các kiểu dữ liệu trong UDDI 53
3.12 Thông điệp SOAP được truyền đi 62 3.13 Vai trò và hoạt động của SOAP trong dịch vụ web 63
3.14 Cấu trúc của một thông điệp SOAP 63
4.1 Minh hoạ tìm kiếm và thực hiện giao dịch 70
4.2 Minh họa quy trình hoạt động của ứng dụng 71
Trang 74.3 Đăng ký nhà cung cấp dịch vụ 82
4.4 Đăng ký dịch vụ 83 4.5 Tạo các tMode mô tả dịch vụ 84
4.6 Tìm kiếm theo chủng loại 85
4.7 Giao diện tìm kiếm dịch vụ 86
4.8 Các thông tin dịch vụ 87
Trang 8DANH SÁCH BẢNG
Bảng Trang
3.1 Các phần tử trong BusinessService 55
3.2 Danh sách các phần tử trong BindingTemplate 57
3.3 Các giá trị của phần tử faultcode 67
Trang 9DANH SÁCH TỪ VIẾT TẮT
CORBA Command Object Request Broker Architecture CRM Customer Relationship Management
DCE Distributed Computing Environment
DCOM Distributed Componet Object Model
EAI Enterprise Application Integration ERP Enterprise Resource Planning
ETL Extract, Tranform, and Load
HTML Hyper text Markup Language
HTTP Hyper text Transfer Protocol
IIOP Internet Inter ORB Protocol
JRMI Java Remote Method Invoketion
OMG Object Management Group
ORB Object Request Broker
ORPC Object Remote Procedure Call
RMI Remote Method Invoke
RPC Remote procedure call
SCM Supply chain Management
SGML Standard Generalized Markup Language
Trang 10SOAP Simple Object Access Protocol
UDDI Universal Description Discovery And Integration
URL Uniform Resource Locator
W3C World Wide Web Consortium
WSDL Web services Discription Language
XML Extensible Markup Language
Trang 11LỜI CẢM ƠN
Để có được sự thành công của mỗi người, ngoài sự cố gắng và nỗ lực học tập, rèn luyện của bản thân, không thể thiếu sự quan tâm, giúp đỡ của các thầy cô và những thế hệ đi trước, gia đình, bạn bè đồng nghiệp
Tác giả xin được gửi lời biết ơn chân thành nhất tới TS Vũ Tuyết Trinh
đã tận tình hướng dẫn và động viên tôi trong suốt quá trình thực hiện luận văn của mình
Tác giả xin cảm ơn tới toàn thể các thầy cô giáo trong Bộ môn Hệ thống Thụng tin, Trung tâm sau đại học Trường Đại Học Bách Khoa Hà Nội đã giúp
đỡ Tôi trong quá trình học tập tại trường
Xin cảm ơn gia đình và bạn bè đã tạo mọi điều kiện để tác hoàn thành luận văn của mình
Trang 12Chương 1
MỞ ĐẦU
1.1 Tích hợp ứng dụng của doanh nghiệp
Ngày nay, ứng dụng Công nghệ Thông tin có mặt trong hầu hết các doanh nghiệp và hỗ trợ cho nhiều lĩnh vực từ các nghiệp vụ văn phòng đơn giản đến các nghiệp vụ sản xuất kinh doanh tức tạp Tuy nhiên, các doanh nghiệp sử dụng ứng dụng Công nghệ Thông tin chưa mang tính chiến lược,
mà chỉ giải quyết các công việc tức thời, dẫn đến không đáp ứng được khả năng sử dụng của doanh nghiệp khi có sự thay đổi Để giải quyết vấn đề này, các ứng dụng cần được cải tiến, nâng cấp cho phù hợp với nghiệp vụ của doanh nghiệp Phần lớn các ứng dụng được xây dựng mang tính chất cục bộ, mỗi ứng dụng chỉ hỗ trợ riêng cho một số nghiệp vụ và phạm vi sử dụng trong một doanh nghiệp hay một tổ chức Vì vậy, việc cải tiến, nâng cấp cũng chỉ đáp ứng được các yêu cầu cục bộ
Các ứng dụng thường hoạt động độc lập, riêng lẻ, ít có mối quan hệ qua lại giữa chúng, chỉ một số được kết nối và trao đổi dữ liệu với nhau Do đó, các ứng dụng không có khả năng xử lý và tổng hợp dữ liệu từ nhiều nguồn dữ liệu Với hạn chế này, các nghiệp vụ xử lý và tổng hợp thông tin của doanh nghiệp gần như phải thực hiện thủ công Ví dụ, để có một bản báo cáo chi tiết
về tình hình tài chính và tiền lương lao động, người sử dụng phải thao tác trên hai ứng dụng để có được hai bản báo cáo, sau đó tổng hợp số liệu vào một bản báo cáo chi tiết Rõ ràng, cách thức hoạt động của các ứng dụng chưa mang lại hiệu qủa cho các doanh nghiệp Khi khối lượng thông tin ngày càng lớn, thì đây là một khó khăn mà doanh nghiệp gặp phải trong việc xử lý thông tin Hình 1.1 sau, minh họa hoạt động riêng lẻ, độc lập của các ứng dụng
Trang 13Hình 1.1 Các ứng dụng hoạt động riêng lẻ của doang nghiệp
Trong hình 1.1, không phải tất cả các ứng dụng đều kết nối với nhau, một
số hoạt động độc lập, một số kết nối với nhau Ví dụ, người sử dụng ứng dụng
tài chính có thể có được các thông tin của ứng dụng SCM và ứng dụng CRM,
hoặc người sử dụng cổng thông tin doanh nghiệp có thể có được các thông tin của ứng dụng kế thừa Rõ ràng, mỗi ứng dụng chưa khai thác hết nguồn dữ liệu đa dạng ở các ứng dụng khác và việc đưa ra một bản thông tin đầy đủ về tình hình tài chính, thiết bị máy móc, quan hệ khách hàng, cung ứng hàng hóa là khó khăn
Với sự phát triển của công nghệ Internet và nhu cầu sử dụng thông tin ngày càng cao của các doanh nghiệp Các ứng dụng đơn lẻ không thể đáp ứng được nhu cầu sử dụng của doanh nghiệp, mà phải thay thế bằng các ứng dụng
có khả năng thực hiện các quy trình nghiệp vụ tự động và tổng hợp dữ liệu từ nhiều nguồn dữ liệu Để làm được điều này, các ứng dụng cần phải kết nối và trao đổi dữ liệu
Ứng dụng ERP
Ứng dụng CRM
Ứng dụng
Kế thừa
Ứng dụng SCM
Cổng thông tin
doanh nghiệp
Ứng dụng
Tài chính
Trang 14Tích hợp ứng dụng là một giải pháp cho xử lý, tổng hợp dữ liệu từ các ứng dụng đơn lẻ và hoạt động độc lập Thông qua môi trường tích hợp, các ứng dụng có thể kết nối, trao đổi dữ liệu và hỗ trợ cho nhau Hình 1.2 dưới đây, minh họa tích hợp ứng dụng của doanh nghiệp[1]
Hình 1.2 Tích hợp các ứng dụng đơn lẻ trong doanh nghiệp
1.2 Từ tích hợp dữ liệu đến tích hợp ứng dụng
Việc tích hợp không phải dễ dàng do các ứng dụng được phát triển tại các thời điểm khác nhau, sử dụng công cụ phát triển khác nhau và thực thi trên nền khác nhau Vì vậy, đòi hỏi môi trường hỗ trợ tích hợp phải đáp ứng được
ít nhất các yêu cầu sau[2]:
• Có khả năng kết nối giữa các nền tảng phần cứng và phần mềm khác nhau
• Có cách thức xử lý các giao dịch trên các nguồn dữ liệu đa dạng
Hệ thống ERP
Hệ thống CRM
Trang 15• Có khả năng định vị được dữ liệu, ứng dụng cần tích hợp
• Có thể truy cập và sử dụng ứng dụng cần tích hợp
• Có khả năng trao đổi thông tin
Các yêu cầu trên là điều kiện cần thiết cho tích hợp ứng dụng Tuy nhiên, cần có giải pháp xử lý dữ liệu nhằm đảm bảo đồng bộ dữ liệu Giải pháp hiệu qủa nhất cho đồng bộ dữ liệu là tích hợp dữ liệu
Tích hợp dữ liệu: Giải pháp này được thực hiện ở mức dữ liệu, với mục đích di chuyển dữ liệu giữa các cơ sở dữ liệu Tùy theo quy mô, cấu trúc của
cơ sở dữ liệu và chi phí cho dự án tích hợp mà sử dụng một trong hai mô hình tích hợp sau:
- Tích hợp dữ liệu qua thành phần trung gian
Đây là mô hình tích hợp dùng cho các cơ sở dữ liệu có cấu trúc và định dạng dữ liệu khác nhau Ở đây, thành phần trung gian đóng vai trò trung chuyển có nhiệm vụ nhận dữ liệu từ cơ sở dữ liệu nguồn, sau
đó biến đổi và chuyển tới cơ sở dữ liệu đích Do đó, cấu trúc nguyên thủy của của các cơ sở dữ liệu không bị thay đổi Mô hình này đang được sử dụng phổ biến và rộng rãi Sau đây, hình 1.3 sẽ minh họa dữ liệu tích hợp qua thành phần trung gian
Trang 16Hình 1.3 Tích hợp dữ liệu qua thành phần trung gian
Tuy hai mô hình trên có cấu trúc khác nhau, nhưng cả hai đều sử dụng một số phương pháp xử lý và trao đổi dữ liệu giữa các cơ sở dữ liệu và dưới đây là một số phương pháp mà cả hai cùng sử dụng[2]:
- Chuyển giao bó
- Hợp dữ liệu
- Nhân bản dữ liệu
- Trích chọn, biến đổi và truyền – ETL
Trong các phương pháp trên, phương pháp ETL được sử dụng nhiều hơn
cả Với phương pháp này, dữ liệu được trích chọn từ một cơ sở dữ liệu nguồn, sau đó biến đổi theo định dạng dữ liệu của cơ sở dữ liệu đích, và cuối cùng cập nhật dữ liệu vào cơ sở dữ liệu đích ETL là một phương pháp cho phép hợp nhất dữ liệu từ các nguồn dữ liệu khác nhau, và được dùng để di chuyển
dữ liệu với số lượng lớn vào kho dữ liệu từ các nguồn dữ liệu
Hình 1.4 sau, biểu diễn tích hợp dữ liệu bằng phương pháp ETL[2]
Trang 17Hình 1.4 Phương pháp tích hợp dữ liệu ETL
Một vấn đề quan trọng của tích hợp dữ liệu đó là toàn vẹn dữ liệu Ta phải đảm bảo không có mâu thuẫn dữ liệu giữa các cơ sở dữ liệu khi một ứng dụng nào đó hợp thay đổi dữ liệu Trường hợp đơn giản là một ứng dụng client/server: Khi client yêu cầu dữ liệu, server sẽ cung cấp cho nó một bản sao dữ liệu Client thực hiện đọc/ghi dữ liệu trên bản sao dữ liệu đó, sau khi kết thúc giao dịch, dữ liệu trong bản sao sẽ được cập nhật vào bản chính trên server Vì thế, dữ liệu luôn đảm bảo toàn vẹn Trong trường hợp nhiều bản sao cùng tồn tại trong các cơ sở dữ liệu, khi dữ liệu ở một bản sao nào đó thay đổi thì dữ liệu trên các bản sao ở cơ sở dữ liệu khác cũng phải thay đổi theo
Ví dụ: Thông tin người lao động của một công ty được lưu trong nhiều
cơ sở dữ liệu Cơ sở dữ liệu nhân sự chứa thông tin cá nhân, cơ sở dữ liệu tài
Trích chọn
Kho dữ liệu
Trang 18chính chứa thông tin tiền lương Cả hai cơ sở dữ liệu này chứa thông tin về người lao động Do đó, thông tin của một nhân sự được thêm vào thì dữ liệu phải được cập nhật trên cả hai cơ sở dữ liệu
Để đảm bảo tính toàn vẹn của dữ liệu Một trong những phương pháp được sử dụng là đồng bộ dữ liệu Đồng bộ dữ liệu là sự phù hợp các nội dung trong hai hay nhiều cơ sở dữ liệu nhằm đảm bảo tính nhất quán của dữ liệu Với phương thức này, dữ liệu được thay đổi ở một cơ sở dữ liệu, và sau đó được sao chép tới các cơ sở dữ liệu khác Tuỳ thuộc vào các yêu cầu sử dụng,
dữ liệu có thể được sao chép khi có một sự kiện xảy ra hoặc vào một thời điểm nào đó Hình 1.5 dưới đây, minh họa đồng bộ dữ liệu giữa hai ứng dụng[2]
Hình 1.5 Đồng bộ dữ liệu giữa hai ứng dụng
Trong hình 1.5, cơ sở dữ liệu 2 chứa một bản sao của cơ sở dữ liệu 1 Khi ứng dụng 1 thay đổi dữ liệu trong bản chính ở cơ sở dữ liệu 1, thì dữ liệu của bản sao trong cơ sở dữ liệu sẽ được cập nhật lại Do đó, không có dị bộ
dữ liệu giữa các cơ sở dữ liệu
Trang 19Với yêu cầu ứng dụng công nghệ thông tin ngày càng cao, việc tích hợp chỉ dừng ở mức dữ liệu là chưa đáp ứng nhu cầu sử dụng Trong hoạt động sản xuất kinh doanh, các doanh nghiệp cần có thông tin tổng hợp, nhanh chóng, hỗ trợ cho kế hoạch phát triển Điều này làm cho các nghiệp vụ thực hiện thủ công không còn phù hợp nữa, mà phải được thay thế bằng các nghiệp
vụ tự động trên các ứng dụng Xuất phát từ nhu cầu đó, các quy trình nghiệp
vụ cần được tích hợp trên các ứng dụng tích hợp
Tích hợp quy trình nghiệp vụ: Tích hợp quy trình nghiệp vụ được thực hiện ở mức xử lý nghiệp vụ Thay vì thực hiện các nghiệp vụ trên từng ứng dụng riêng lẻ, người sử dụng có thể thực hiện các nghiệp vụ đó trên một ứng dụng.Ở đây, các luồng thông tin sẽ đi qua một kênh thông tin hoặc thành phần trung gian chia sẻ Hình 1.6 dưới đây, minh họa cho một quy trình doanh nghiệp[2] :
Hình 1.6 Tích hợp quy trình nghiệp vụ
Người quản lý
Cung cấp thông tin người lao động
Ứng dụng Tài chính
Ứng dụng
Y tế Ứng dụng Lao động Môi trường tích hợp
Trang 20Trong hình 1.6, người sử dụng có được thông tin tổng về người lao động
từ ứng dụng cung cấp thông tin người lao động Khi người quản lý cần thông
tin của một người lao động, ứng dụng sẽ cung cấp một bản báo cáo đầy đủ bao gồm các thông tin về sức khỏe, tiền lương, và tình trạng lao động Trong trường hợp sử dụng các ứng dụng đơn lẻ để tổng hợp thông tin, người sử dụng phải tìm kiếm thông tin trên từng ứng dụng và sau đó đưa vào bản báo cáo tổng hợp Rõ ràng, việc tích hợp quy trình nghiệp vụ tiết kiệm thời gian, sức lực và chi phí cho người sử dụng
1.3 Mục đích của luận văn
Từ nhiều lợi ích mang lại của việc sử dụng các ứng dụng công nghệ thông tin Các doanh nghiệp ngày càng quan tâm hơn nữa việc phát triển và khai thác các ứng dụng công nghệ thông tin, đặc biệt là ứng dụng tích hợp
Sự ra đời của các ứng dụng tích hợp là một giải pháp giải quyết khó khăn
về thu thập và xử lý thông tin Đây là vấn đề mà các doanh nghiệp đang gặp phải khi khối lượng thông tin ngày càng lớn và phức tạp Với các ứng dụng tích hợp, doanh nghiệp có thể khai thác tối đa nguồn thông tin nội tại trong doanh hoặc của doanh nghiệp khác
Tuy nhiên, việc kết nối các ứng dụng đơn lẻ thành một thành một ứng dụng tích hợp có thể trao đổi dữ liệu cũng gặp nhiều khó khăn Phần lớn các ứng dụng được triển khai và xây dựng tại các thời điểm, một số được xây dựng trên cùng ngôn ngữ, cùng môi trường thực thi, một số khác lại xây dựng không cùng ngôn ngữ và không cùng môi trường thực thi Vì vậy, cần phải lựa chọn công nghệ tích hợp sao cho phù hợp
Có hai vấn đề cần quan tâm cho sự lựa chọn công nghệ ứng dụng tích hợp đó là:
Trang 21- Khả năng mở rộng: Khi doanh nghiệp cần phát triển ứng dụng thì không phải xây dựng lại từ đầu mà có thể kế thừa từ các ứng dụng đó
- Tính trong suốt: Khi có một sự thay đổi của một ứng dụng nào đó trong ứng dụng tích hợp, thì không ảnh hưởng đến hoạt động của ứng dụng tích hợp
Từ nhu cầu tích hợp ứng dụng và sử dụng các công nghệ tích hợp một cách hiệu qủa Mục đích của luận văn là tìm hiểu các công nghệ phục vụ cho tích hợp ứng dụng Trong đó, web services là một công nghệ hiện đang được quan tâm nhiều
1.4 Cấu trúc luận văn
Nội dung tiếp theo của luận văn gồm có các chương sau:
Chương 2: Tổng quan về một số công nghệ tích hợp
Giới thiệu các công nghệ tích hợp của các tổ chức, tập đoàn công nghệ thông tin đưa ra, bao gồm các công nghệ :
(i) Công nghệ tích hợp sử dụng cho các ứng dụng có môi trường đồng nhất
(ii) Công nghệ tích hợp sử dụng cho các ứng dụng có cùng môi trường hoặc trên các môi trường khác nhau, và ứng dụng tích hợp ít có sự thay đổi
(iii) Công nghệ tích hợp sử dụng cho các ứng dụng đa nền, đa ngôn ngữ
và đặc biệt là khả năng mở rộng của ứng dụng khi sử dụng công nghệ này
Chương 3: Web services và các chuẩn
Web services là một công nghệ đang trở nên phổ biến cho các ứng dụng tích hợp Đây là công nghệ cho phép các ứng dụng kết nối và trao đổi dữ liệu thông qua các chuẩn, mà không cần quan tâm đến ứng dụng đó được xây
Trang 22dựng trên ngôn ngữ nào, và thực thi trên môi trường nào Công nghệ web services dựa trên kiến trúc hướng dịch vụ, các ứng dụng được đóng gói, modul hóa các chức năng, có thể được công bố như các dịch vụ, và phục vụ cho tất cả những ứng dụng cần tích hợp bất kể trong hay ngoài doanh nghiệp Chương 4: ứng dụng minh họa
Trình bày kịch bản của ứng dụng du lịch Trong đó, ứng dụng được tích hợp từ các dịch vụ đặt vé máy bay, đặt chỗ khách sạn Các dịch vụ được xây dựng trên công nghệ web services, và việc tích hợp ứng dụng cũng được thực hiện bằng web services với các chuẩn WSDL, UDDI, SOAP Qua đó, người đọc có cái nhìn rõ về công nghệ web services trong tích hợp ứng dụng
Chương 5: Kết luận
Trang 23Chương 2 MỘT SỐ CÔNG NGHỆ TÍCH HỢP ỨNG DỤNG
2.1 Giới thiệu
Để góp phần vào chiến lược kinh doanh của các doanh nghiệp, các ứng dụng cần phải đáp ứng được yêu cầu về thông tin tổng hợp: khách hàng, thị trường, đối thủ cạnh tranh, tình hình tài chính… Điều đó đòi hỏi các ứng dụng trong một doanh nghiệp hoặc ngoài doanh nghiệp có thể kết nối và trao đổi dữ liệu Tuy nhiên, việc kết nối cũng gặp nhiều khó khăn, khi mà các ứng dụng hoạt động trong môi trường không đồng nhất Thông thường, các ứng dụng không tập trung trên một máy tính mà nằm ở nhiều máy tính khác nhau,
có khoảng cách địa lý trong phạm vi một doanh nghiệp, một tỉnh thành, một quốc gia hay trên toàn cầu, việc kết nối được thực hiện thông qua môi trường mạng Với một ứng dụng tích hợp gồm các thành phần, các modul là các ứng dụng thì hoạt động trao đổi dữ liệu có thể theo hướng đối tượng hoặc hướng thông điệp Trong mô hình hướng đối tượng, phía yêu cầu có được dữ liệu thông qua các đối tượng và các đối tượng này có thể tập trung trên một máy hoặc nhiều máy Ở mô hình hướng thông điệp, các ứng dụng trao đổi dữ liệu thông qua nội dung của thông điệp
Ngoài vấn đề làm sao để kết nối và trao đổi dữ liệu giữa các ứng dụng, một vấn đề khác không kém phần quan trọng là sự lựa chọn công nghệ tích hợp Hiện nay, các ứng dụng tích hợp được xây dựng trên các công nghệ phân tán chủ yếu của các tổ chức, các hãng như W3C, OMG, IBM, và đặc biệt là tập đoàn khổng lồ Microsoft Do tầm quan trọng của các công nghệ, phần tiếp theo của luận văn sẽ giới thiệu một số công nghệ phân tán sử dụng trong tích hợp ứng dụng
Trang 242.2 Môi trường đồng tích hợp đồng nhất Java – RMI
Công nghệ này[3],[16] sử dụng để tích hợp các ứng dụng có cùng một ngôn ngữ lập trình Do có đặc điểm cùng môi trường tích hợp nên các ứng dụng có kết nối và trao đổi dữ liệu trực tiếp với nhau, không cần thành phần chuyển đổi ngôn ngữ trung gian Công nghệ cho môi trường tích hợp đồng nhất chủ yếu là Java-RMI của IBM và DCOM của Microsoft Tuy nhiên, ngôn ngữ Java chiếm ưu thế cho lập trình phân tán nên Java-RMI được sử dụng nhiều hơn
Công nghệ RMI là một giải pháp mở rộng cho việc xây dựng các ứng dụng phân tán của Java RMI cho phép các mô hình lập trình giống nhau gọi các phương thức hướng đối tượng trên cùng máy cục bộ hay phân tán, các đối tượng được gọi sử dụng ngôn ngữ Java
RMI hỗ trợ các đối tượng từ xa thông qua giao thức JRMI Với công nghệ này, phía yêu cầu thông tin và phía cung cấp thông tin đều được xây dựng trên ngôn ngữ Java Mỗi đối tượng RMI Server định nghĩa một giao diện, để có thể truy cập đối tượng Server bên ngoài JVM hiện hành, và trên JVM của máy tính khác Giao diện là một tập các cách thức để biểu diễn các dịch vụ và triệu gọi đối tượng phía server Nó được xây dựng và biên dịch bằng chương trình RMI Một RMIRegistry trên máy chủ chứa thông tin về các đối tượng Server và cung cấp tên dịch vụ cho RMI Khi client(máy khách) yêu cầu một đối tượng tham chiếu tới đối tượng server(máy chủ) thì client sẽ tìm kiếm trong RMIRegistry Khi một RMI client yêu cầu một dịch vụ từ RMI server, nó thực hiện các bước sau:
+ Kết nối với JVM có chứa các đối tượng ở xa
+ Truyền các thông số cho JVM ở xa
+ Chờ các kết quả của các phương thức yêu cầu
+ Nhận về giá trị cần gọi
Trang 25Bằng việc sử dụng các đối tượng, cả dữ liệu và mã lệnh có thể được trao đổi trực tiếp giữa máy chủ và máy khách Vì thế, một đối tượng có thể chạy được trên cả máy máy chủ lẫn máy khách
RMI là một công nghệ phát triển trên Java nên nó có thể sử dụng được trên nhiều nền khác nhau và trên nhiều hệ điều hành khác nhau
Hình 2.1dưới đây, minh họa một cơ chế giao tiếp giữa các ứng dụng tích hợp
Hình 2.1 Giao tiếp giữa Client và Server qua RMI
Trong hình 2.1, khi máy khách gọi một phương thức phía máy chủ nó sẽ gọi đến đối tượng đại diện Stub Stub chuyển lời gọi đến đối tượng đại diện cho đối tượng thật trên máy chủ là Skelecton thông qua kiến trúc RMI Sau
đó, Skelecton gọi đối tượng thật trên máy chủ và kết quả trả về cho máy khách Quá trình trả kết quả về cho máy khách được thực hiện tuần tự ngược lại với quá trình gọi Ngoài công nghệ Java-RMI, còn có một công nghệ sử dụng cho môi trường tích hợp đồng nhất nữa đó là công nghệ DCOM
DCOM [4] là một chuẩn do tập đoàn Microsoft phát triển, nó là mở rộng của chuẩn COM DCOM cung cấp các đối tượng từ xa thông qua một giao thức được gọi là ORPC ORPC được xây dựng trên DCE/RPC và tương tác với các dịch vụ thực thi trong COM
Client Process
Stub
Server Process
Skeleton RMI
Trang 262.3 Môi trường tích hợp không đồng nhất
Không phải tất cả các ứng dụng đều được xây dựng trên cùng một ngôn ngữ mà nhiều trên nhiều ngôn ngữ khác nhau như Java, C++, và một số ngôn ngữ trực quan: Visual Basic, Visual C++, Do đó, khi tích hợp các ứng dụng không cùng ngôn ngữ thì các công nghệ trong môi trường tích hợp đồng nhất không đáp ứng được Việc này yêu cầu phải có một công nghệ khác có thể hiểu được các ngôn ngữ của các ứng dụng được tích hợp Để giải quyết vấn
đề này, một công nghệ cho môi trường tích hợp không đồng nhất đã ra đời, đó
là công nghệ CORBA
CORBA [5],[6],17]: là công nghệ tích hợp các ứng dụng phân tán được chuẩn hóa bởi tổ chức OMG, sử dụng được trên các nền hệ điều hành tương thích được với nhiều ngôn Trong Corba việc triệu gọi các đối tượng từ xa thông qua giao thức IIOP, tất cả đều dựa vào thành phần môi giới yêu cầu đối tượng ORB hoạt động như một kênh đối tượng trung tâm, mỗi đối tượng Corba có thể tương tác trong suốt với đối tượng Corba khác trên cùng một máy hoặc ở máy khác trong mạng Mỗi đối tượng có một giao diện, và giao diện này mô tả một tập các phương thức Client có thể sử dụng các phương thức gọi trên các đối tượng tham chiếu giống như các đối tượng corba server đang nằm trong không gian địa chỉ của corba client ORB đảm nhận việc tìm một sự thực thi của đối tượng corba, so sánh, nhận gửi đi các yêu cầu, nhận lại các kết quả trả về cho client Đối tượng Corba tương tác với ORB thông qua giao diện của ORB Hình 2.2 sau, biểu diễn sơ đồ kiến trúc của Borba theo mô hình client/server[14]
Trang 27Hình 2.2 Client truy cập dịch vụ thông qua một đối tượng
Trong Corba gồm có thành phần trung gian, đối tượng đại diện cho đối tượng cần gọi phía máy khách là stub, đối tượng đại diện cần triệu gọi phía máy chủ là Skeleton Cả Stub và Skeleton được mô tả bằng ngôn ngữ mô tả giao diện IDL Sau khi xây dựng một giao diện chung, các ứng dụng có thể giao tiếp với nhau thông qua các đối tượng Stub, Skeleton, thành phần môi giới trung gian OBR và môi trường mạng với giao thức IIOP
Một điểm giống với công nghệ Java-RMI của Corba đó là cách triệu gọi phương thức của đối tượng trên ứng dụng khác thông qua các đối tượng đại điện Stub và Skelecton Tuy nhiên, đối tượng Stub và Skelecton của CORBA sinh ra từ ngôn ngữ mô tả giao diện IDL, không giống như của Java-RMI được sinh ra từ định nghĩa đối tượng Java
Hình 2.3 sau, mô tả cơ chế hoạt động trong tích hợp các ứng dụng phân tán[14]
Client
ORB
Object
Object Stub Client
Stub
Trang 28Hình 2.3 Cơ chế hoạt động của Corba
Cơ chế hoạt động của công nghệ Corba theo mô hình client/server Ở đây, các ứng dụng client và server có thể được xây dựng trên cùng một ngôn ngữ, hoặc trên các ngôn ngữ khác nhau ( C++, Java, …)
- Khi ứng dụng client yêu cầu các phương thức của một đối tượng phục
vụ cho việc xử lý thông tin, nó sẽ truy cập đến đối tượng Stub
- Đối tượng Stub chuyển yêu cầu đối tượng tham chiếu tới trình trung gian ORB phía client
- Trường hợp đối tượng cần triệu gọi không có ở ORB client, thì ORB client chuyển yêu cầu tới ORB phía server thông qua giao thức IIOP
- ORB chuyển yêu cầu tới đối tượng đại diện cho cho đối tượng tham chiếu phía Server là Skeleton
- Đối tượng Skeleton yêu cầu đối tượng thực sự từ ứng dụng server
- Sau khi có được đối tượng thực sự, Skeleton chuyển cho ORB server
- ORB server chuyển đối tượng thực sự cho ORB client
Example Class _Skel
ORB IIOP
Trang 29- ORB client chuyển tới Stub
- Cuối cùng Stub chuyển đối tượng thực sự cho ứng dụng client
Rõ ràng, đối tượng mà ứng dụng client yêu cầu là trong suốt, bởi vì ứng dụng client không cần phải quan tâm các đối tượng triệu gọi nằm ở đâu, nó chỉ gọi các đối tượng đó từ đối tượng đại diện Stub
2.4 Công nghệ Web services
Web services[8],[9],[10],[15]cũng là một công nghệ tích hợp ứng dụng, sử dụng trong môi trường tích hợp không đồng nhất, và các ứng dụng luôn có sự thay đổi
Web services là một ứng dụng có khả năng xử lý một công việc độc lập, được modul hóa, tự mô tả và dễ dàng kết nối với các ứng dụng khác để thực hiện xử lý những công việc phức tạp hơn thông qua môi trường mạng Giống như các công nghệ DCOM, RMI, CORBA, web services cũng là một công nghệ dùng cho tích hợp các ứng dụng phân tán Với web services, người sử dụng có thể biết được cách thức triệu gọi các dịch vụ bằng giao diện mô tả dịch vụ Các ứng dụng trao đổi dữ liệu với nhau thông qua các thông điệp được xây dựng theo một cấu trúc chung và sử dụng giao thức truyền thông HTTP Với cách thức giao dịch bằng thông điệp, các ứng dụng gửi và nhận dữ liệu bằng các thông điệp Hình 2.4 sau, minh họa sự trao đổi dữ liệu giữa các ứng dụng
Trang 30
Hình 2.4 Giao tiếp giữa bên sử dụng dịch vụ và cung cấp dịch vụ
Web services được xây dựng từ các chuẩn SOAP, WSDL, UDDI trên nền tảng XML, tạo nên một sự kết nối lỏng dễ dàng cho kết nối và khai thác dịch vụ Người sử dụng có thể tìm thấy dịch vụ ở thư mục UDDI, biết được giao diện của dịch vụ bằng mô tả WSDL và sử dụng dịch vụ thông qua giao thức SOAP Hình 2.5 dưới đây, biểu diễn một kiến trúc đơn giản của Web services[9]
Hình 2.5 Quan hệ giữa các thành phần trong Web services
Web service Web client
Trang 31Ưu điểm của web servies là các chuẩn được xây dựng trên nền tảng ngôn ngữ XML Đây là sự thuận lợi cho mở rộng ứng dụng, mà không ảnh hưởng đến mối liên kết nội tại với các ứng dụng khác Một ưu điểm nữa của web services là không cần bận tâm đến các ứng dụng trên ngôn ngữ nào, thực thi trên nền hệ điều hành nào, cấu hình phần cứng ra sao và định vị ở đâu Qua
đó, Ta có thể thấy các ứng dụng tích hợp có được tính tính tương liên yếu và tính trong suốt khi sử dụng công nghệ web services
• Tính tương liên yếu: Trong môi trường tương liên mạnh, mỗi ứng dụng kết nối với ứng dụng khác qua một tổ hợp các giao diện đóng, giao thức mạng đóng, dẫn đến việc tích hợp các ứng dụng tốn nhiều thời gian, chi phí cao để mở liên kết và liên kết lại các máy tính trong hệ thống Bởi vì những
sự thay đổi đó sẽ dẫn đến sự thay đổi của giao diện Với tính tương liên yếu của web services, mỗi một phần của phần mềm đã đưa lên như là một dịch vụ web, dễ dàng để di chuyển đến các vị trí, và có thể đơn giản để liên kết lại các dịch vụ web Hình 2.6 sau, mô tả tính tương liên yếu của dịch vụ
Hình 3.5 Web service xây dựng trên cơ sở tương liên yếu
Hình 2.6 Tính tương liên yếu của dịch vụ
Sun server
Trang 32Trong phần 1 của hình 2.5, một ứng dụng trên máy tính mini truy cập một web services trên máy mainframe Tuy nhiên, nhà cung cấp máy mainframe muốn thay thế máy cũ với một máy chủ Sun mới
Trong phần 2 hình 2.5, máy Sun server thay thế máy mainframe nhưng ứng dụng trên máy minicomputer này vẫn trao đổi dữ liệu với web services trên máy Sun server bằng thông điệp SOAP Web services không tạo ra sự khác biệt khi đầu cuối là một máy mainframe, một máy Windows, hay bất cứ máy nào khác Khi máy mainframe thay thế bởi máy Sun thì máy minicomputer vẫn tiếp tục truy cập dịch vụ web mà không gặp bất cứ sự rắc rối nào
Trong phần 3 và 4 của hình 2.5, tiến trình thay thế vẫn tiếp tục, nhà cung cấp thay thế máy minicomputer bằng máy Sun server và máy Windows Tuy nhiên, hoạt động của ứng dụng không thay đổi
• Tính trong suốt : tính trong suốt của web services cho phép các ứng
dụng trong ứng dụng tích hợp có thể định vị ở bất kỳ vị trí nào trong mạng,
mà không ảnh hưởng đến hoạt động của ứng dụng tích hợp Bởi vì mỗi dịch
vụ có một địa chỉ URLs riêng và linh hoạt như website trên mạng Internet Do
đó, không cần phải quan tâm dịch vụ được đặt ở đâu, khi cần đến dịch vụ chỉ cần triệu gọi thông qua địa chỉ URLs
Hình 2.7 sau, minh họa cho tính trong suốt của web services
Trang 33Hình 2.7 Tính trong suốt của web services
Trong hình 2.7, một web service có thể được định vị trong hai miền(Domain) khác nhau Một lý do nào đó, miền A bị lỗi không thể hoạt động được, phía sử dụng dịch vụ có thể truy cập dịch vụ web trên miền B mà không hề biết dịch vụ sử dụng đang nằm trên miền B
2.5 Nhận xét đánh giá
Trên đây, giới thiệu một số công nghệ tích hợp ứng dụng gồm Java-RMI, DCOM, CORB và Web services Các công nghệ có điểm chung là được sử dụng để xây dựng các ứng dụng phân tác trên cơ sở môi trường mạng Tuy
Web services
Miền A
Web services
Miền B
1
2
Trang 34nhiên, đi sâu hơn nữa thì các công nghệ đáp ứng được mức độ yêu cầu khác nhau cho một giải pháp tích hợp ứng dụng
• Môi trường tích hợp: Các công nghệ Java-RMI và DCOM tỏ ra hiệu
quả trong môi trường tích hợp đồng nhất, nhưng trong môi trường khác(môi trường không đồng nhất) thì chúng không sử dụng được Để khắc phục vấn đề này, công nghệ CORBA được ra đời để thay thế cho Java-RMI và DCOM trong, nhưng hạn chế của công nghệ này là các ứng dụng tích hợp phụ thuộc vào giao diện IDL Vì thế, web services là ứng cử viên sáng giá cho tích hợp ứng dụng với khả năng sử dụng trong môi trường tích hợp đồng nhất, không đồng nhất
• Hỗ trợ ngôn ngữ lập trình: Trong khi các công nghệ khác chỉ được hỗ
bằng một ngôn ngữ lập trình như Java, Corba, thì web services được hỗ bằng nhiều ngôn ngữ lập trình Visual Basic, Visual C# và Visual J#
• Chuẩn mở: Web services là một công nghệ mới, được xây dựng trên
các chuẩn WSDL, UDDI, SOAP mà nền tảng là ngôn ngữ XML Với đặc điểm này, web services có nhiều ưu điểm hơn các công nghệ khác trong việc tích hợp ứng dụng và đặc biệt là tích hợp ứng dụng doanh nghiệp
• Đơn giản: web services dễ thiết kế, phát triển, và bảo trì Một khung
phát triển, sử dụng là có sẵn và dễ dàng ra quy trình nghiệp vụ mới từ các ứng dụng
• Mềm dẻo: Các giải pháp tích hợp ứng dụng theo kiểu điểm tới điểm,
khi có một sự thay đổi ở một điểm nào đó sẽ dẫn tới sự thay đổi của điểm tiếp theo, làm cho chúng cứng nhắc không linh hoạt Với web services thì hoàn toàn mềm dẻo, nó được xây dựng từ kết nối lỏng giữa ứng dụng công bố dịch vụ và ứng dụng sử dụng dịch vụ đó
Trang 35• Chi phí: Các giải pháp tích hợp ứng dụng, như giải pháp trung gian
thông điệp có chi phí rất cao cho thi hành Với web services trong tương lai sẽ đạt tới mục tiêu rẻ hơn, nhanh hơn
• Phạm vi sử dụng: Các giải pháp tích hợp ứng dụng như trung gian
thông điệp, các ứng dụng tích hợp được xem như các thực thể đơn Trong khi đó, web services cho phép các công ty chia các ứng dụng lớn thành các phần nhỏ độc lập và xây dựng mối quan hệ giữa chúng tạo
nên một hệ thống trong suốt
• Hiệu quả: web services cho phép các ứng dụng phân chia thành các
thành phần nhỏ hơn, làm cho cho tích hợp các ứng dụng dễ dàng mà hoạt động của ứng dụng không có sự tách rời Đây là một công nghệ cho tích hợp ứng dụng mang lại nhiều hiệu quả hơn so với các giải
pháp truyền thống khác
Với các ưu điểm trên, công nghệ web services thực sự nổi trội hơn cả, và đây là một sự lựa chọn hàng đầu về giải pháp công nghệ cho tích hợp ứng dụng Do tầm quan trọng của web services cho các ứng dụng tích hợp, nội dung tiếp theo của luận văn sẽ trình bày chi tiết về công nghệ web services cùng với các chuẩn, và xây dựng một ứng dụng minh họa cho tích hợp ứng dụng bằng web services
Trang 36Chương 3 WEB SERVICES VÀ CÁC CHUẨN
Như đã giới thiệu ở chương 2 của luận văn, web services là một ứng dụng thực hiện một công việc nào đó, nó có thể được tìm thấy và triệu gọi thông qua môi trường web Người phát triển ứng dụng có thể tích hợp web services vào ứng dụng của mình bằng cách thức gọi thủ tục từ xa hoặc thông điệp
Web service có thể kết hợp với các web service khác để thực hiện xử lý một công việc phức tạp hơn Khi đó, một web service đóng vai trò yêu cầu cung cấp dịch vụ, và các web service khác đóng vai trò cung cấp dịch vụ Bởi
vì web services có tính tương liên yếu nên việc tích hợp và phát triển ứng dụng hết sức thuận lợi
Qua đó có thể hiểu web services như sau: Web services là một phần mềm ứng dụng, có thể hoạt động độc lập hoặc kết hợp với các ứng dụng khác để tạo nên một ứng dụng tích hợp Nó được modul hóa, tự mô tả, định vị và triệu gọi theo địa chỉ URLs thông qua môi trường web với giao thức truyền thông HTTP
Với một web service gồm có các thành phần tham gia:
- Provider: Tạo ra các dịch vụ, đăng ký và cung cấp dịch vụ
- Broker: Lưu trữ các thông tin của dịch vụ được đăng ký, là nơi mà các nhà cung cấp dịch vụ có thể công bố và người yêu cầu dịch vụ
có thể tìm dịch vụ ở đây
- Requestor: Tìm kiếm, khai thác và tích hợp dịch vụ vào ứng dụng của mình
Trang 37- Các thành phần tham gia tạo nên mối liên kết chặt chẽ với nhau tạo nên một mối quan hệ khép kín và không tách rời nhau được
Vai trò và hoạt động của các thành phần tham gia được minh họa trong hình 3.1
Hình 3.1 Mối quan hệ giữa các thành phần
Web services không phải là một công nghệ có tính phát minh, nó là công nghệ được xây dựng trên nền tảng XML và sử dụng môi trường mạng
Hình 3.2 dưới đây, mô tả các thành phần kỹ thuật cơ bản của web services
Hình 3.2 Các thành phần kỹ thuật cơ bản của Web services
Service Provider Requestor Service
Service Register
Trang 38Trong hình 3.2, các thành phần kỹ thuật cơ bản của web services gồm có các chuẩn WSDL, UDDI, SOAP được xây dựng trên ngôn ngữ XML và môi trường truyền thông là mạng Internet
Từ các thành phần kỹ thuật cơ bản, một kiến trúc cơ bản của web services được thiết kế dựa trên mối quan hệ giữa các thành phần Hình 3.3 dưới đây, mô tả kiến trúc cơ bản của web services
Hình 3.3 Kiến trúc cơ bản của một dịch vụ web
Trong hình 3.3, WSDL được tạo ra khi xây dựng dịch vụ và được công
bố trong UDDI để người sử dụng dịch vụ biết được cách thức gọi dịch vụ
Rõ ràng, sự thành công của công nghệ web services chính là được xây dựng trên các chuẩn WSDL, UDDI, SOAP mà nền tảng là ngôn ngữ XML
Đăng ký Dịch vụ
Công bố WSDL + UDDI
WSDL
Dịch vụ
Nhà cung cấp dịch vụ
Trang 39Do tầm quan trọng của các chuẩn trong công nghệ web services, đặc biệt là trong ứng dụng tích hợp nên phần tiếp theo của luận văn sẽ trình bày chi tiết
về ngôn ngữ XML và các chuẩn WSDL, UDDI, SOAP
3.1 Ngôn ngữ XML
XML là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị, để tạo
ra các ngôn ngữ đánh dấu khác Đây là một tập con đơn giản của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet Các ngôn ngữ dựa trên XML được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng
Đặc điểm của XML
- XML được dùng để tạo cấu trúc dữ liệu
- XML được sử dụng trong nhiều ngôn ngữ lập trình
- XML là một chuẩn mới
- XML là sự mô đun hóa
- XML được sử dụng miễn phí, có nền độc lập
3.2 Các chuẩn của Web service
Web service là một thành phần đơn lẻ, hoặc được xây dựng từ các thành phần đơn lẻ, để xử lý một công việc, hoặc một phần công việc khi được tích hợp vào một ứng dụng Tuy nhiên, sự thành công của web services chính là
sử dụng các chuẩn WSDL, UDDI và SOAP
Trang 40Hình 3.4 dưới đây, minh họa tài liệu WSDL sử dụng trong Web services
Hình 3.4 Mô tả vai trò của WSDL
Tuy nhiên, WSDL mô tả web services theo một trình tự có cấu trúc Hình 3.5 sau, mô tả cấu trúc của một WSDL
Yêu cầu dịch vụ
Đăng ký dịch vụ
WSDL
Cung cấp
dịch vụ
WSDL