Tải bản đầy đủ

Công nghệ web service và ứng dụng để xây dựng kiến trúc hướng dịch vụ

ĐẠ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Ĩ


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ê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


TS. NGUYỄN VIỆT HÀ

Hà Nội – 2009


LỜ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


MỤ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.


2.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.
vụ

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
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



BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
Tên viết tắt

STT

Tên đầy đủ

1.

CORBA

Common Object Request Broker Architecture

2.

DCOM

Distributed Component Object Model

3.

DLL

Dynamic Link Library

4.

ESB

Enterprise Service Bus

5.

FTP

File Transfer Protocol

6.

HTTP

Hypertext Transfer Protocol

7.

RMI

Remote Method Invocation

8.

RPC

Remote Procedure Call

9.

SMTP

Simple Mail Transfer Protocol

10.

SOA

Service – Oriented Architecture

11.

SOAP

Simple Object Access Protocol

12.

UDDI

Universal Description, Discovery, and
Integration

13.

WSDL

Web Service Definition Language

14.

XML

eXtensible Markup Language



DANH 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.


DANH MỤC CÁC HÌNH

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.


Hì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


MỞ ĐẦ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.


Để 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:


TÀ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/


[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”



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×