Hà Nội – 2009ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Bình Giang CÔNG NGHỆ WEB SERVICE VÀ ỨNG DỤNG ĐỂ XÂY DỰNG KIẾN TRÚC HƯỚNG DỊCH VỤ Ngành: Công nghệ thông tin Chuyê
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Bình Giang
CÔNG NGHỆ WEB SERVICE VÀ ỨNG DỤNG ĐỂ XÂY DỰNG KIẾN TRÚC HƯỚNG DỊCH VỤ
LUẬN VĂN THẠC SĨ
Trang 2Hà Nội – 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thị Bình Giang
CÔNG NGHỆ WEB SERVICE VÀ ỨNG DỤNG ĐỂ
XÂY DỰNG KIẾN TRÚC HƯỚNG DỊCH VỤ
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm.
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC
Trang 3TS NGUYỄN VIỆT HÀ
Hà Nội – 2009
Trang 4LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn TS Nguyễn Việt Hà – Trưởng Bộ môn Công nghệ Phần mềm, Trường Đại học Công nghệ - đã tận tình hướng dẫn, chỉ bảo và giúp đỡ em trong quá trình hoàn thành luận văn này
Em xin cảm ơn tới các thầy cô giáo Trường Đại học Công nghệ - Đại học Quốc gia
Hà nội nói chung, Khoa Công nghệ Thông tin nói riêng đã truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong suốt thời gian học tập tại trường Em xin gửi lời cảm ơn tới Ban lãnh đạo Trung tâm CNTT - Ngân hàng TMCP Công Thương Việt Nam đã tạo điều kiện thuận về thời gian và sắp xếp công việc trong suốt quá trình học tập và hoàn thành luận văn này
Tuy nhiên do thời gian và trình độ có hạn nên luận văn này không thể tránh khỏi những thiếu sót Rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo, bạn bè, những ai quan tâm tới vấn đề này để luận văn được hoàn thiện hơn
Trân trọng cảm ơn!
Hà Nội, 12/2009
Nguyễn Thị Bình Giang
Trang 5MỤC LỤC
LỜI CẢM ƠN 4
MỤC LỤC 5
BẢNG KÝ HIỆU CÁC CHỮVIẾT TẮT 7
DANH MỤC CÁC BẢNG 9
DANH MỤC CÁC HÌNH 10
MỞĐẦU 11
CHƯƠNG 1 TỔNG QUAN VỀWEB SERVICE Error! Bookmark not
defined.
1.1 Các công nghệ hỗ trợtrước web service Error! Bookmark not
defined.
1.2 Web service là gì .Error! Bookmark not defined 1.3 Lợi ích của việc sửdụng web service Error! Bookmark not defined 1.4 Kiến trúc tổng quan của web service Error! Bookmark not defined CHƯƠNG 2 CÁC CÔNG NGHỆNỀN TẢNG CỦA WEB SERVICE Error! Bookmark not
defined.
2.1 XML Error! Bookmark not defined 2.1.1 Khái niệm về XML Error! Bookmark not defined 2.1.2 Các quy tắc cú pháp của XML Error! Bookmark not defined 2.1.3 XML có đị nh dạng tốt (Well-formed XML)Error! Bookmark not defined 2.1.4 XML đúng đắn (Valid XML) Error! Bookmark not defined 2.1.5 Không gian tên (Namespaces) Error! Bookmark not defined 2.1.6 Tên viết tắt (Qualified Names - QNames) Error! Bookmark not defined 2.1.7 CDATA Error! Bookmark not defined 2.1.8 Trình diễn dữliệu XML trên web Error! Bookmark not defined 2.2 SOAP Error! Bookmark not defined 2.2.1 Đặc trưng của SOAP Error! Bookmark not defined.
Trang 62.2.2 Cấu trúc một thông điệp (Message) theo dạng SOAP Error! Bookmark not defined.
2.2.3 SOAP trong HTTP Error! Bookmark not defined 2.3 WSDL Error! Bookmark not defined 2.4 UDDI Error! Bookmark not defined 2.5 Hoạt động chung của một web service Error! Bookmark not defined.
CHƯƠNG 3 ỨNG DỤNG WEB SERVICE ĐỂXÂY DỰNG KIẾN TRÚC HƯỚNG DỊ CH
VỤError! Bookmark not defined.
3.1 Tổng quan về kiến trúc hướng dị ch vụ Error! Bookmark not defined 3.1.1 SOA là gì? Error! Bookmark not defined 3.1.2 Các lợi ích của SOA: Error! Bookmark not defined 3.1.3 Khi nào sửdụng SOA ? Error! Bookmark not defined.
3.1.4 Mối quan hệ giữa web service và kiến trúc hướng dị ch vụ (SOA)
Error! Bookmark not defined.
3.2 Bài toán ứng dụng công nghệ Web Service trong xây dựng kiến trúc hướng dị
ch vụ Error! Bookmark not defined.
3.2.1 Mô tả hoạt động của web service Error! Bookmark not defined 3.2.2 Đặc tả về các hệ thống giao tiếp Error! Bookmark not defined.
3.2.3 Đặc tả về giao diện kết nối Error! Bookmark not defined CHƯƠNG 4 THỰC NGHIỆM Error! Bookmark not defined 4.1 Thực nghiệm Error! Bookmark
not defined 4.1.1 Giao dị ch vấn tin tài khoản (Account Inquiry)Error! Bookmark not defined 4.1.1 Giao dị ch cập nhật số dưtài khoản (Balance Update)Error! Bookmark not defined.
4.2 Đánh giá kết quả thực nghiệm Error! Bookmark not defined KẾT LUẬN .Error! Bookmark not defined TÀI LIỆU THAM KHẢO 13
Trang 8BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
12. UDDI Universal Description, Discovery, andIntegration
Trang 10DANH MỤC CÁC BẢNG
B ả ng 2.1: Các thành ph ầ n logic c ủ a web service 43
Bảng 4 1: Bảng mô tả chi tiết các trường trong phần header của thông điệp Error! Bookmark not defined.
Bảng 4.2: Bảng mô tả chi tiết các trường trong phần dữliệu của thông điệp gửi
điError! Bookmark not defined.
Bảng 4.3: Bảng mô tả chi tiết các trường trong phần dữliệu của thông điệp trả
vềError! Bookmark not defined.
Bảng 4 4: Bảng mô tả chi tiết các trường trong phần dữliệu của thông điệp gửi
điError! Bookmark not defined.
Trang 11DANH MỤC CÁC
Hình 1.1: Kiến trúc của Web Service .Error! Bookmark not defined Hình 2.1: Mô hình trình diễn dữliệu XML trên Web Error! Bookmark not defined Hình 2.2: SOAP với các giao thức HTTP, SMTP, và Raw TCP/IP Error! Bookmark not defined.
Hình 2.3: Cấu trúc của thông điệp SOAP .Error! Bookmark not defined Hình 2.4: SOAP message path .Error! Bookmark not defined Hình 2.5: Message path của thông điệp SOAP purchase-Order Error! Bookmark not defined.
Hình 2 6: Mô hình hoạt động của SOAP Error! Bookmark not defined Hình 2.7: Thông điệp yêu cầu của SOAP Error! Bookmark not defined Hình 2.8: Thông điệp hồi đáp của SOAP Error! Bookmark not defined Hình 2.9: Cấu trúc của WSDL Error! Bookmark not defined.
Hình 2.10: Các thành phần logic của web service 45
Hình 2.11: Biểu đồ ca sử dụng của web service 46
Hình 2.12: Biểu đồ tuần tự 46
Hình 3.1: Mô hình SOA phát triển lên từmô hình đối tượng Error! Bookmark not defined.0 Hình 3.2: Mô hình kết nối giữa 2 hệ thống Error! Bookmark not defined. Hình 3.3:Mô hình kiến trúc SOA cho ngân hàng của IBM 53
Hình 3.4: Hệ thống theo kiến trúc SOA sử dụng công nghệ WS 55
Hình 3.5: Thông điệp theo đị nh dạng ABCS Error! Bookmark not defined Hình 3.6: File đặc tả các trường trong header Error! Bookmark not defined Hình 4.1: Thông điệp gửi đến .Error! Bookmark not defined Hình 4.2: Thông điệp sau khi được thêm header và chuyển sang định dạng của hệ thống core 58
Hình 4.3: Thông điệp gửi đến .Error! Bookmark not defined Hình 4.4: Giao diện luông xửlý thông điệp .Error! Bookmark not defined Hình 4.5: Thao tác với file đặc tả WSDL 61
Hình 4.6: Luồng xử lý tại nút Inquiry 62
Hình 4.7: Giao diện làm việc với môi trường coding 62
Hình 4.8: Đoạn lập trình các thao tác làm việc với core 63
Hình 4.9: Giao diện web service Error! Bookmark not defined.
Trang 12Hình 4.10: Giao diện đăng ký web service với UDDIRegistry Error! Bookmark not defined.
Hình 4.11: Thử nghiệm với thông điệp đầu vào của giao dịch Vấn tin TK 64 Hình 4.12: K ế t qu ả tr ả v ề .65
Trang 13MỞ ĐẦU
Tích hợp dữ liệu (Data Integration) là qui trình trao đổi dữ liệu giữa các hệ thống quản lý thông tin kinh doanh để đưa ra được thông tin đầy đủ nhằm phục vụ mục đích quản trị Khi hai ứng dụng (Applications) trao đổi dữ liệu dựa trên thông tin của các qui trình định sẵn, chúng ta gọi là tích hợp ứng dụng (Enterprise Application Integration hay
là EAI) Thông thường khi triển khai phần mềm, doanh nghiệp đều gặp phải vấn đề khó khăn là làm sao để dữ liệu từ các phần mềm khác nhau (về mặt kiến trúc và định nghĩa dữ liệu), phục vụ cho các mục đích của các bộ phận nghiệp vụ khác nhau được tập trung về
hệ thống quản lý tài chính trung tâm, nhằm đáp ứng những nhu cầu thông tin quản lý để ban lãnh đạo kịp thời ra quyết định Trong bối cảnh cạnh tranh ngày càng khốc liệt hiện nay, các doanh nghiệp đang phải đối mặt những đối thủ khổng lồ, với hệ thống thông tin tích hợp hiện đại và chính xác thì nhu cầu tích hợp càng bức thiết cho bất cứ doanh nghiệp nào muốn đứng vững trên thị trường [4]
Trong quá trình hình thành doanh nghiệp, các doanh nghiệp quản lý phần mềm thường theo nhu cầu tự phát, thiếu tính chiến lược – Các phần mềm chủ yếu là do doanh nghiệp mua hoặc tự phát triển để đáp ứng được nhanh nhất các yêu cầu về quản lý và nghiệp vụ Khi có nhu cầu cao hơn, doanh nghiệp lại tiếp tục phát triển các phần mềm mới hoặc nâng cấp các phần mềm hiện có để nhằm thỏa mãn những nhu cầu khác nhau Dần dà, doanh nghiệp nhận ra mình đang sở hữu rất nhiều phần mềm, mỗi phần mềm chỉ thỏa mãn được một nhu cầu nào đó, nhưng các phần mềm này lại không chia sẻ dữ liệu với nhau, hoặc phối hợp với nhau một cách thiếu đồng bộ Đến thời điểm hiện nay những
hệ thống như vậy bộc lộ quá nhiều khuyết điểm do nhiều nguyên nhân khách quan cũng như chủ quan như sau [3]:
- Các phần mềm thiếu một kiến trúc và chuẩn dữ liệu đồng nhất
- Các phần mềm thiếu cơ sở đồng nhất về hạ tầng
- Do doanh nghiệp phát triển nhanh chóng, số lượng giao dịch tăng làm ảnh hưởng đến hoạt động của phần mềm mà mục đích chỉ sử dụng cho các giao dịch đơn lẻ
- Có quá nhiều phần mềm nhỏ lẻ, khó quản lý, chi phí cho đội ngũ quản lý và bảo trì phần mềm rất lớn
- Việc báo cáo định kỳ đòi hỏi sự phối hợp và trao đổi dữ liệu giữa các phòng ban,
do đó Ban điều hành chậm nhận được báo cáo về tình hình hoạt động của doanh nghiệp, gây chậm trễ trong việc ra quyết định
- Việc quản lý sẽ trở nên khó kiểm soát nếu doanh nghiệp có nhiều chi nhánh hoặc
bộ phận trong nước và nước ngoài, hay công ty muốn chuyển đổi thành tập đoàn hay công ty đa quốc gia
Trang 14Để khắc phục các điểm yếu trên, doanh nghiệp thường chọn một trong hai giải pháp:
1 Chọn mua một phần mềm hoàn toàn mới, có tất cả chức năng cần thiết cho việc quản lý tổng thể với chi phí phần mềm và chi phí triển khai, bảo trì cao với sự chuyển đổi dữ liệu phức tạp
2 Xác định một phần mềm tích hợp trung tâm (Central Integration Hub), liên kết đồng bộ dữ liệu từ các hệ thống đơn lẻ về hệ thống tích hợp này, sau đó gửi dữ liệu đã được cập nhật trực tuyến đến các hệ thống khác
Gần đây, một số doanh nghiệp lớn trong nước bắt đầu chuyển sang mua và triển khai các phần mềm ERP đã được sử dụng nhiều trên thế giới như của Oracle, SAP, Sun System , các phần mềm chuyên biệt cho hệ thống khách sạn, bảo hiểm, ngân hàng, bệnh viện với chi phí đầu tư lên đến vài trăm nghìn hoặc vài triệu USD Không phải tất cả những doanh nghiệp này đều đã nghĩ đến bài toán Tích hợp hệ thống Họ đã chọn nhiều phần mềm khác nhau để triển khai Có công ty đã chọn Oracle cho kế toán tài chính; SAP cho phân hệ CRM; Solomon cho kho bãi và phân phối [4] Triển khai như thế có lợi là sẽ
sử dụng được tất cả thế mạnh của mỗi phần mềm, nhưng việc tích hợp các hệ thống này trong tương lai sẽ là một bài toán khó cho bất kỳ một đội ngũ IT mạnh mẽ nào
Trước thực trạng trên ta thấy được bài toán tích hợp ứng dụng trong các hệ thống
là bài toán mà bất kỳ doanh nghiệp nào cũng có thể gặp phải, tuy nhiên, việc sử dụng công nghệ nào để có thể tích hợp giữa các hệ thống lại là một bài toán khác Nếu trước đây, người ta thường đề cập đến nhiều công nghệ khác nhau như COM (Common Object Manifest), CORBA (Common Object Request Broker Architecture), RMI (Remote Method Invocation), RPC (Remote Procedure Call) được dùng để gọi đối tượng từ xa thì những năm gần đây, thuật ngữ “Web service” được rất nhiều người nhắc đến như là một giải pháp lý tưởng cho bài toán tích hợp doanh nghiệp Và khi nhắc đến Web Service, người ta thường coi đó là một trong những cách thức hiệu quả để xây dựng kiến trúc hướng dịch vụ SOA (Service Oriented Architecture) – một trong những kiểu kiến trúc được đánh giá là có khả năng đem lại cho doanh nghiệp một kiến trúc linh hoạt và khả chuyển
Bài luận văn tập trung vào hai nội dung chính là: tìm hiểu những khái niệm cơ bản
về web service, và vai trò của web service trong việc tích hợp ứng dụng và khả năng ứng dụng của Web service trong việc xây dựng kiến trúc hướng dịch vụ như thế nào
Các phần còn lại của luận văn được cấu trúc như sau:
Trang 15TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] PHẠM HẢI,“IBM chia sẻ kinh nghiệm SOA”, Tạp chí PC World
[2] NGUYỄN PHƯƠNG LAN, HOÀNG ĐỨC HẢI (2001), “XML nền tảng và ứng
dụng”, Nhà xuất bản Giáo Dục.
[3] NGÂN HÀNG CÔNG THƯƠNG VIỆT NAM (2010), “Giải pháp tích hợp
với bên ngoài và tích hợp nội bộ cho Vietinbank”, tr.10-12.
[4] NGUYỄN QUANG (2008); “Tổng quan về tích hợp ứng dụng”; Tạp chí PC
World, tr 24-26.
[5] BÙI QUANG THÁI (2006); “SOA và Web Services”, Diễn đàn Java Việt Nam.
[6] NGUYỄN ANH TUẤN; “Tìm hiểu SOA”; Tạp chí Thế giới vi tính.
[7] “Phát triển dịch vụ thanh toán trung gian”, Tạp chí Thế giới vi tính
Tiếng Anh:
[8] ELIZABETH BOOK (2006), “Web Services in Retail Banking”
[9] SANDEEP CHATTERJEE, JAMES WEBBER (2003), “Developing Enterprise
Web Services: An Architec’s Guide”, Prentice Hall.
[10] THOMAS ERL (2005), “Service-Oriented Architecture-Concepts, Technology,
and Design”, Prentice Hall, pp.26-67.
[11] BILL EVJENET (2007); “Professional XML”, Wrox Press, pp.34-90
[12] ITNOW EXTRA (2006) “The future of banking technology?”
[13] SHARAD GARG (2004), “Web Services Architecture Requirements”,
http://www.w3.org/TR/wsa-reqs/
Trang 16[14] RICHARDMONSON HAEFEL (2003), “J2EE Web Services”, Addition Wesley,
pp 39-69
[15] REI LAI (2003), “J2EE Platform Web Services”, Prentice Hall.
[16] QUSAY H MAHMOUD (2005), “Service-Oriented Architecture (SOA) and Web
Services: The Road to Enterprise Application Integration (EAI)”,
http://java.sun.com/developer/technicalArticles/WebServices/soa/
[17] FILIP NOWAK, MOHSIN QASIM, “A Comparison of Distributed Object
Technologies CORBA vs DCOM”
[18] OBJECT MANAGEMENT GROUP (2009), “COBRA BASIC”
http://www.omg.org/gettingstarted/corbafaq.htm
[19] DAVID REILLY ,“Introduction to Java RMI”
[20] CHIYOUNG SEO, “Web Service Architecture”