ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐINH THỊ HUYỀN TRANG ỨNG DỤNG CÔNG NGHỆ JAVA WEB SERVICE VÀ XSL TRONG VIỆC XÂY DỰNG CÁC DỊCH VỤ NGÂN HÀNG TRỰC TUYẾN LUẬN VĂN THẠC SỸ.
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐINH THỊ HUYỀN TRANG
ỨNG DỤNG CÔNG NGHỆ JAVA WEB SERVICE
VÀ XSL TRONG VIỆC XÂY DỰNG CÁC DỊCH VỤ
NGÂN HÀNG TRỰC TUYẾN
LUẬN VĂN THẠC SỸ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐINH THỊ HUYỀN TRANG
ỨNG DỤNG CÔNG NGHỆ JAVA WEB SERVICE
VÀ XSL TRONG VIỆC XÂY DỰNG CÁC DỊCH VỤ
Trang 3LỜI CAM ĐOAN Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân, không sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Hà Nội, ngày 31 tháng 10 năm 2007
Đinh Thị Huyền Trang
Trang 4LỜI CẢM ƠN Trước tiên em xin được bày tỏ sự trân trọng và lòng biết ơn đối với thầy giáo PGS.TS Nguyễn Văn Vỵ, giảng viên bộ môn Công Nghệ Phần Mềm – Khoa Công Nghệ Thông Tin – Trường Đại học Công Nghệ - ĐHQGHN Trong suốt thời gian học và làm luận văn tốt nghiệp, thầy đã dành rất nhiều thời gian quí báu
để tận tình chỉ bảo, hướng dẫn, định hướng cho em trong việc nghiên cứu và thực hiện luận văn
Em xin được cảm ơn các GS, TS, các thầy cô trong trường đại học Công Nghệ - ĐHQGHN đã giảng dạy em trong quá trình học tập, thực hành, làm bài tập, đọc và nhận xét luận văn của em, giúp em hiểu thấu đáo hơn lĩnh vực mà em đang nghiên cứu, những hạn chế mà em cần khắc phục trong việc học tập, nghiên cứu và thực hiện luận văn này
Xin cảm ơn bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập và làm luận văn tốt nghiệp
Hà nội, ngày 31 tháng 10 năm 2007
Đinh Thị Huyền Trang
Trang 5TÓM TẮT KẾT QUẢ Luận văn này bao gồm những kết quả sau:
- Nghiên cứu và trình bày các khái niệm nền tảng, những công nghệ liên quan để xây dựng một Web Service
- Nghiên cứu và trình bày chi tiết các bước để xây dựng, cách thức triển khai và sử dụng một Web Service
- Phân tích thiết kế sử dụng công nghệ hướng đối tượng “Hệ thống thông tin khách hàng trực tuyến”
- Áp dụng công nghệ Web Service để triển khai, xây dựng hệ thống trên Ứng dụng đã kết nối được với dữ liệu của hệ thống thanh toán trong ngân hàng, cho phép khách hàng có thể truy vấn thông tin về tài khoản, các giao dịch phát sinh trên tài khoản mở tại ngân hàng
Trang 6MỤC LỤC
DANH MỤC CHỮ VIẾT TẮT 1
DANH MỤC HÌNH VẼ 2
MỞ ĐẦU 4
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT CỦA WEB SERVICE 5
1.1 Web Services 5
1.1.1 Giới thiệu 5
1.1.2 Khái niệm 6
1.1.3 Ưu thế và ứng dụng của Web Service 7
1.1.4 Cấu trúc của Web Service 11
1.2 Các công nghệ nền tảng của Web Service 12
1.2.1 XML 12
1.2.1.1 Khái niệm về XML 12
1.2.1.2 Các quy tắc cú pháp của XML 12
1.2.1.3 XML có định dạng tốt (Well-formed XML) 14
1.2.1.4 XML đúng đắn (Valid XML) 15
1.2.1.5 Không gian tên (Namespaces) 18
1.2.1.6 Tên viết tắt (Qualified Names - QNames) 19
1.2.1.7 CDATA 20
1.2.1.8 Trình diễn dữ liệu XML trên web 21
1.2.2 SOAP 22
1.2.2.1 Đặc trưng của SOAP 22
1.2.2.2 Cấu trúc một thông điệp (Message) theo dạng SOAP 23
1.2.2.3 SOAP trong HTTP 23
1.2.3 WSDL 26
1.2.4 UDDI 27
1.3 Phát triển hệ thống 29
1.3.1 Cấu trúc thành phần của hệ thống và hoạt động của nó 29
1.3.1.1 Các thành phần của hệ thống Web Service 29
1.3.1.2 Các bước xây dựng và hoạt động của hệ thống Web Service 30
1.3.2 Các giai đoạn trong quá trình xây dựng 30
CHƯƠNG 2 XÂY DỰNG HỆ THỐNG WEB SERVICES CUNG CẤP CÁC DỊCH VỤ THÔNG TIN KHÁCH HÀNG TRỰC TUYẾN 32
2.1 Mô tả bài toán 32
2.1.1 Hiện trạng 32
Trang 7Đinh Thị Huyền Trang – K11T3
2.1.2 Các yêu cầu đặt ra 33
2.1.3 Các vấn đề cần giải quyết 34
2.2 Mô hình nghiệp vụ của hệ thống 35
2.2.1 Các chức năng của hệ thống 35
2.2.2 Mô hình khái niệm lĩnh vực nghiệp vụ 36
2.2.3 Các khái niệm 36
2.2.4.Các tác nhân nghiệp vụ 37
2.2.4.1 Nhân viên hệ thống mức quản trị chung (Admin) 38
2.2.4.2 Nhân viên chi nhánh mức quản trị chi nhánh (Branch Admin) 39
2.2.4.3 Khách hàng (Customer) 40
2.2.4.4 Core Bank 40
2.2.5 Mô hình ca sử dụng của hệ thống 41
2.2.5.1 Mô hình ca sử dụng mức cao 41
2.2.5.2 Mô hình các gói ca sử dụng 41
2.2.5.3 Mô tả chi tiết ca sử dụng 47
2.3 Mô hình phân tích hệ thống 51
2.3.1 Phân tích từng ca sử dụng 51
2.3.1.1 Ca sử dụng thêm mới chi nhánh 51
2.3.1.2 Ca sử dụng thêm mới người quản trị chi nhánh 53
2.3.1.3 Ca sử dụng đăng ký khách hàng 55
2.3.1.4 Ca sử dụng vấn tin lịch sử giao dịch của tài khoản 58
2.3.1.5 Biều đồ mô tả tổng hợp một số ca sử dụng điển hình 61
2.4 Mô hình triển khai 61
2.5 Xây dựng WSDL 64
2.5.1 Definitions 64
2.5.2 Types 64
2.5.3 Message 65
2.5.4 PortType 65
2.5.5 Binding 66
2.5.6 Service và Port 66
2.6 SOAP server 67
2.6.1 Apache Axis 67
2.6.2 SOAP message 69
2.6.3 Triển khai hệ thống Web Services 71
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG WEB THÔNG TIN KHÁCH HÀNG SỬ DỤNG DỊCH VỤ WEB SERVICES 73
3.1 Mô hình hoạt động 73
Trang 8Đinh Thị Huyền Trang – K11T3
3.1.1 Mô hình tổng quan 73
3.1.2 Mô hình tương tác đối tượng 74
3.2 Xây dựng ứng dụng 75
3.2.1 Các chức năng của ứng dụng 75
3.2.2 Axis engine 75
3.2.3 Biểu diễn dữ liệu trên máy khách 77
3.2.3.1 Chuyển đổi dữ liệu sang XML 77
3.2.3.2 Kết hợp XML và XSLT để định dạng hiển thị dữ liệu 78
3.3 An ninh bảo mật 82
3.3.1 Các biện pháp đã được sử dụng 82
3.3.1.1 An ninh mạng 82
3.3.1.2 An ninh ứng dụng 82
3.3.2 Những vấn đề còn tồn đọng cần giải quyết 83
3.4 Giao diện ứng dụng 83
KẾT LUẬN 87
Những kết quả đạt được 87
Hạn chế và hướng phát triển 87
TÀI LIỆU THAM KHẢO 88
Trang 9DANH MỤC CHỮ VIẾT TẮT
CSS Casscading Style Sheet
DTD Document Type Definition
FTP File Transfer Protocol
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
RPC Remote Protocol Control
SMTP Simple Mail Transfer Protocol
SOAP Simple Object Access Protocol
UDDI Universal Description Discovery and Integration WSDL Web Services Description Language
XML eXtensible Markup Language
XSL eXtensible Stylesheet Language
XSLT eXtensible Stylesheet Language Transform
Trang 10DANH MỤC HÌNH VẼ
Hình 1.1: Các lớp của Web Service 7
Hình 1.2: Ứng dụng web không sử dụng Web Service 8
Hình 1.3: Ứng dụng web sử dụng Web Service (1) 9
Hình 1.4: Ứng dụng web sử dụng Web Service (2) 10
Hình 1.5: Thành phần của Web Service 11
Hình 1.6: Mô hình trình diễn dữ liệu XML trên Web 22
Hình 1.7: Cấu trúc của thông điệp SOAP 23
Hình 1.8: Mô hình hoạt động của SOAP 24
Hình 1.9: Thông điệp yêu cầu của SOAP 25
Hình 1.10: Thông điệp hồi đáp của SOAP 25
Hình 1.11: Cấu trúc của WSDL 26
Hình 1.12: Những bộ phận cấu thành của Web Service và sự tương tác giữa chúng khi hoạt động 29
Hình 2.1 Biểu đồ miền lĩnh vực của hệ thống thông tin tài khoản trực tuyến 36
Hình 2.2 Mô hình ca sử dụng mức tổng thể của hệ thống TTTKTT 41
Hình 2.3 Biểu đồ ca sử dụng chi tiết của gói quản trị chi nhánh 42
Hình 2.4 Biểu đồ ca sử dụng chi tiết của gói quản trị người dùng 43
Hình 2.5 Biểu đồ ca sử dụng chi tiết của gói quản trị thông tin dịch vụ 45
Hình 2.6 Biểu đồ ca sử dụng chi tiết của gói dịch vụ khách hàng 46
Hình 2.7 Biểu đồ tuần tự hệ thống thêm mới chi nhánh 52
Hình 2.8 Biểu đồ lớp phân tích thực thi ca sử dụng thêm mới chi nhánh 52
Hình 2.9 Biểu đồ tương tác ca sử dụng thêm mới chi nhánh 52
Hình 2.10 Giao diện thêm mới chi nhánh 53
Hình 2.11 Biểu đồ tuần tự hệ thống thêm mới người quản trị chi nhánh 53
Hình 2.12 Biểu đồ lớp phân tích thực thi ca sử dụng thêm mới người quản trị chi nhánh 54
Hình 2.13 Biểu đồ tương tác ca sử dụng thêm mới người quản trị chi nhánh 54
Hình 2.14 Giao diện thêm mới người quản trị chi nhánh 55
Hình 2.15 Biều đồ tuần tự hệ thống đăng ký khách hàng 55
Hình 2.16 Biểu đồ lớp phân tích thực thi ca sử dụng đăng ký khách hàng 56
Hình 2.17 Biểu đồ tương tác ca sử dụng đăng ký khách hàng 57
Hình 2.18 Giao diện đăng ký khách hàng 58
Hình 2.19 Biểu đồ tuần tự hệ thống vấn tin lịch sử giao dịch của tài khoản 59
Trang 11Đinh Thị Huyền Trang – K11T3
Hình 2.20 Biểu đồ lớp thực thi ca sử dụng vấn tin lịch sử giao dịch 59
Hình 2.21 Biều đồ tương tác ca sử dụng vấn tin lịch sử giao dịch 60
Hình 2.22 Giao diện vấn tin lịch sử giao dịch của tài khoản 60
Hình 2.23 Biểu đồ mô tả tổng hợp các biểu đồ phân tích khái niệm của một số ca sử dụng điển hình 61
Hình 2.24 Cấu trúc của MessageContext 68
Hình 2.25 Quá trình xử lý thông điệp trên máy chủ Axis 69
Hình 3.1 Mô hình tổng quan của hệ thống 73
Hình 3.2 Mô hình tương tác của hệ thống 74
Hình 3.3 Quá trình xử lý thông điệp trên ứng dụng 75
Hình 3.4 Kết quả biến đổi tài liệu XML sử dụng XSLT 81
Hình 3.5 Mô hình bảo mật của ứng dụng 82
Hình 3.6 Màn hình đăng nhập hệ thống 83
Hình 3.7 Màn hình đăng ký sử dụng hệ thống 84
Hình 3.8 Màn hình danh sách tài khoản của khách hàng 85
Hình 3.9 Màn hình trạng thái tài khoản 85
Hình 3.10 Màn hình vấn tin lịch sử giao dịch của tài khoản 86
Hình 3.11 Màn hình hiện thị kết quả trả về 86
Trang 12MỞ ĐẦU Ngày nay, với sự phát triển rất nhanh chóng của xã hội cũng như hạ tầng công nghệ thông tin, hầu như mọi doanh nghiệp cá nhân đều có sự trao đổi, tìm kiếm thông tin trên Internet Nhu cầu truy cập thông tin về tài khoản của khách hàng thông qua thư điện tử hay truy cập trực tiếp vào trang web của ngân hàng là rất lớn Hơn nữa, việc truy cập thông tin qua Internet đem lại sự thuận tiện cho khách hàng khi họ có thể xem thông tin tại bất cứ vị trí, thời điểm nào họ muốn, không phải trực tiếp đến quầy giao dịch của ngân hàng
Để đáp ứng được yêu cầu đó cần phải xây dựng một hệ thống thông tin hỗ trợ khách hàng thông qua Internet Hệ thống này đảm bảo cho khách hàng có thể truy cập được các thông tin về tài khoản, về giao dịch trên tài khoản khi truy cập vào trang web của ngân hàng Đây cũng chính là cơ sở nền tảng, là giai đoạn đầu của quá trình xây dựng một hệ thống giao dịch trực tuyến, một ứng dụng banking online theo đúng nghĩa của nó
Trên thực tế, hiện nay hầu hết các ngân hàng tại Việt Nam đều có một hạ tầng ứng dụng công nghệ thông tin cho việc thanh toán và quản lý dữ liệu ngân hàng tập trung, còn được gọi là Core Bank Do vậy với yêu cầu đặt ra như trên, chúng ta cần xây dựng ứng dụng có thể kết nối với hệ thống Core Bank để lấy thông tin về các hoạt động giao dịch cũng như có thể thực hiện các giao dịch một cách trực tuyến Vì vậy “Ứng dụng công nghệ Java Web Service và XSL trong việc xây dựng các dịch vụ ngân hàng trực tuyến” đã được chọn làm đề tài cho luận văn này
Luận văn tốt nghiệp này trình bày một công nghệ có thể dễ dàng giải quyết bài toán trên theo hướng mở, hiện đại Đó chính là công nghệ Web Services Nội dung chính của luận văn bao gồm 4 chương:
Chương 1: Giới thiệu những công nghệ nền tảng của Web Service
Chương 2: Mô tả bài toán và xây dựng hệ thống Web Service cung cấp các dịch vụ hỗ trợ cho hệ thống thông tin khách hàng trực tuyến
Chương 3: Xây dựng hệ thống thông tin khách hàng trực tuyến trên nền tảng Web Service
Cuối cùng là kết luận và những hướng phát triển tiếp theo của đề tài
Trang 13CHƯƠNG 1 CƠ SỞ LÝ THUYẾT CỦA WEB
ví dụ các thư viện thương mại của C++ chứa các phương thức thao tác chuẩn trên ngày và giờ Điều này giúp các lập trình viên tiết kiệm đáng kể thời gian Khi các ngôn ngữ mới như Java và C# xuất hiện, các chức năng cơ bản này mặc nhiên là một phần của ngôn ngữ Tuy nhiên, khái niệm một kho mã nguồn tập trung không phải lúc nào cũng đúng Ví dụ, các nghiệp vụ của các công ty luôn khác nhau, không thể có một kho tập trung cho các loại mã như vậy Trong trường hợp này, các thư viện thương mại chỉ có thể cung cấp các chức năng cơ bản và các lớp tổng quát cần thiết, nhưng các thư viện này không thể chứa các chức năng nghiệp vụ, vì chúng là duy nhất cho mỗi công ty Đối với một số các nghiệp vụ, như nghiệp vụ của ngân hàng, các nhà cung cấp có thể tạo ra các gói thư viện dùng chung vì luật của chính phủ đảm bảo các nghiệp vụ đó phải tuân theo các logic nhất định
Ban đầu, các đối tượng chỉ có thể lập trình để chạy trên cùng một máy, ví
dụ như các tập tin DLL (Dynamic Link Library – Thư viện liên kết động) Các thư viện này chứa thông tin cho các ứng dụng khác dùng để tạo các đối tượng Tuy nhiên, nếu trong một tập đoàn lớn, với yêu cầu phải bảo trì hàng trăm ngàn máy trạm và các ứng dụng trên mỗi hệ thống, việc có những thư viện này trên mỗi hệ thống sẽ là một vấn đề gây đau đầu khi phải tiến hành bảo trì Do đó, việc dùng các đối tượng từ xa là một cách tuyệt vời để sử dụng lại mã nguồn ở mức ứng dụng trên một máy cục bộ Các đối tượng từ xa là các đối tượng được tạo ra
ở trên một máy chủ trung tâm và có thể được truy cập từ máy trạm thông qua mạng, kể cả Internet Một đối tượng từ xa phải luôn sẵn sàng cho một chương trình thông qua mạng hoặc Internet Các công nghệ như COM (Common Object
Trang 14Đinh Thị Huyền Trang – K11T3
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 [11] Mục tiêu của các phương thức này là cho phép người lập trình có thể thay đổi mã tại một nơi và tất cả các hệ thống và ứng dụng sử dụng các phương thức này ngay lập tức được truy cập đến mã nguồn mới Điều bất lợi
là khi việc lập trình trên máy chủ có lỗi thì tất cả hệ thống đều bị lỗi
Microsoft đã tạo ra một giao thức chuẩn dựa trên XML gọi là SOAP (Simple Object Access Protocol – Giao thức truy cập đối tượng đơn giản) Giao thức này là sự kết hợp việc lưu trữ dữ liệu dưới định dạng XML và một giao thức chuẩn cho phép truyền tải dữ liệu qua Internet Những giao thức mà SOAP thường sử dụng để truyền tải bao gồm SMTP (Simple Mail Transfer Protocol), FTP (File Transfer Protocol) và HTTP (Hypertext Transfer Protocol) [7] Các nhà phát triển thường xem những giao thức này như là chồng các giao thức của Web Service
Điểm khác biệt giữa SOAP và một Web Service: SOAP là một giao thức dùng để di chuyển dữ liệu trên Internet, còn một Web Service là một đối tượng dùng SOAP trong việc truyền tải dữ liệu đến một ứng dụng hoặc một trang web
1.1.2 Khái niệm
Web Service có thể hiểu là dịch vụ trao đổi dữ liệu qua mạng Internet Web
Service bao gồm các phương thức thực thi các yêu cầu thông qua các thông điệp (messages) [6]
Trước đây, khi chưa có một chuẩn chung, các công ty lớn đã tự xây dựng các chuẩn riêng để cài đặt các Web Service theo cách riêng của họ Microsoft có công nghệ Distributed COM/ Object RPC, tổ chức OMG đưa ra IIOP/CORBA, tập đoàn Sun Microsystem có công nghệ Java RMI/RPC Đó là các giao thức dạng nhị phân, không tương thích với nhau Sau đó tổ chức W3C đã thống nhất chuẩn SOAP (Simple Object Access Protocol) với khả năng lưu trữ thông tin và trao đổi dữ liệu dựa trên XML
Hiện tại với SOAP, Web Service có thể coi là đã có một giao thức chung, cho phép các ứng dụng phía máy khách có thể được viết bằng bất kỳ ngôn ngữ nào, chạy trên bất kỳ hệ thống nào, có thể kết nối và tương tác với các Web Service thông qua mạng Intranet/Internet Bản thân SOAP không định nghĩa các
cú pháp dữ liệu được truyền đi mà SOAP cung cấp một cơ chế đóng gói các dữ
Trang 15Đinh Thị Huyền Trang – K11T3
liệu định dạng XML và truyền qua mạng theo các chuẩn như HTTP, HTTPS, SMTP hay FTP [7]
Web Service bao gồm nhiều lớp Về cơ bản, đó là một cơ chế chuẩn liên quan đến việc nhận biết, mô tả, và tìm kiếm các chức năng được cung cấp bởi một ứng dụng Web Service Các lớp được mô tả trong hình dưới đây [8]:
Hình 1.1: Các lớp của Web Service
1.1.3 Ưu thế và ứng dụng của Web Service
Web Service có những ưu thế sau:
Chia sẻ dữ liệu: Web Service cho phép các ứng dụng chia sẻ dữ liệu, cung cấp khả năng gọi đến các ứng dụng khác mà không cần quan tâm đến các ứng dụng đó được phát triển bằng ngôn ngữ nào, chạy trên hệ điều hành hoặc môi trường nào, v.v… Mặc dù các ứng dụng Web Service là độc lập với nhau, nhưng chúng có thể liên kết với nhau để thực hiện một công việc cụ thể Do đó, người dùng có thể sử dụng bất kỳ chương trình phía khách nào để gọi đến các phương thức của các Web Service, tương tác và lấy kết quả về theo yêu cầu để xử lý Chi phí thấp: Web Service được xây dựng trên công nghệ XML Như vậy
dữ liệu có thể được truyền qua các môi trường và hệ điều hành khác nhau mà không bị phụ thuộc vào các ngôn ngữ lập trình được sử dụng Do đó, giảm được chi phí và thời gian để xây dựng một môi trường giao tiếp dữ liệu linh hoạt giữa các hệ thống khác nhau
Trang 16Đinh Thị Huyền Trang – K11T3
Thông tin được cập nhật thường xuyên và linh hoạt: Web Service không chỉ cho phép các hệ thống kết nối với nhau mà còn cho phép kết nối thông tin giữa người sử dụng thông tin và các thông tin mà họ cần khai thác Sau đó thông tin có thể được sử dụng theo bất cứ một khuôn dạng nào mà người sử dụng thông tin mong muốn Người sử dụng thông tin có thể yêu cầu bất cứ thông tin nào, tại một thời điểm bất kỳ từ địa điểm cung cấp các dịch vụ Web mà không phải đợi thông tin được chuyển lên theo định kỳ
Lượng thông tin phong phú: Tăng khả năng thu thập và trao đổi thông tin
từ nhiều nguồn khác nhau thông qua việc liên kết thông tin giữa các Web Service Do đó, giảm được gánh nặng lưu trữ dữ liệu tại trung tâm lưu trữ (khả năng lưu trữ phân tán)
Khả năng bảo mật cao: Các phương thức của Web Service có thể yêu cầu một số thông tin từ phía người dùng trong các yêu cầu được gửi đến cho chúng Các thông tin trao đổi (mô tả bằng XML) có thể được mã hóa theo chuẩn mã hóa XML Nếu các Web Service sử dụng các phương thức trao đổi dữ liệu dưới dạng nhị phân (thông qua cơ chế gọi thủ tục từ xa – Remote Procedure Call), chúng sẽ được tăng cường bảo mật bởi chính các công nghệ RPC của từng nhà cung cấp dịch vụ [11]
Hình 1.2: Ứng dụng web không sử dụng Web Service
Trang 17Đinh Thị Huyền Trang – K11T3
Khả năng ứng dụng của Web Service vào các ứng dụng hiện nay là hết sức
to lớn Ta hãy xét một ví dụ về việc đặt vé máy bay Bình thường, nếu một khách
du lịch muốn đặt vé máy bay qua trang web của một đại lý bán vé máy bay, anh
ta sẽ phải biết được thông tin về các chuyến bay phù hợp hiện có và điền vào phiếu đặt vé máy bay những thông tin liên quan đến chuyến bay mà anh ta muốn Khi đó, trước hết anh ta sẽ phải tra cứu trên trang web của hãng máy bay hàng tiếng đồng hồ để tìm ra các thông tin đó (thông tin về các chuyến bay còn vé hay hết vé, thông tin thời gian chuyến bay có thể đặt vé được, …) Sau đó, do chương trình ứng dụng của đại lý bán vé và hãng máy bay không có dịch vụ trao đổi dữ liệu đăng ký vé máy bay, nên anh ta phải ghi lại các thông số chuyến bay mà anh
ta chọn được, để điền vào biểu mẫu đăng ký vé máy bay trong ứng dụng của đại
lý bán vé Như vậy, anh ta sẽ phải mất nhiều thời gian và nhiều công sức để có được một chiếc vé cho mình
Hình 1.3: Ứng dụng web sử dụng Web Service (1)
Khi hãng máy bay và đại lý bán vé nâng cấp chương trình của họ, cung cấp các Web Service để chia sẻ thông tin chuyến bay và đặt vé máy bay, thì tình hình lại khác Người khách hàng chỉ việc truy cập vào trang web của đại lý bán vé
Trang 18Đinh Thị Huyền Trang – K11T3
máy bay để tra cứu các thông tin về các chuyến bay được cung cấp thông qua Web Service, sau đó chọn các thông tin từ dịch vụ này, chúng sẽ được tự động điền vào biểu mẫu đăng ký mua vé máy bay Thời gian đặt vé có thể chỉ kéo dài trong vài phút
Một khi các khách sạn, siêu thị trực tuyến, công ty dịch vụ cho thuê xe cũng
có các ứng dụng Web Service tham gia vào hệ thống trên, thì chúng ta sẽ có một
hệ thống dịch vụ liên hoàn hỗ trợ cho khách du lịch một cách hết sức hiệu quả, tiện lợi, nhanh chóng
Khi khách hàng, nhà cung cấp đều đã tạo được tiếng nói chung trong môi trường trực tuyến, thì sự góp mặt của một tổ chức tài chính là điều tất yếu để hoàn thiện dịch vụ Nó cho phép khách hàng, nhà cung cấp có thể thực hiện ngay các giao dịch thanh khoản chỉ ở một nơi bất kỳ, mà không cần phải đến trực tiếp ngân hàng
Hình 1.4: Ứng dụng web sử dụng Web Service (2)
Mô hình phát triển các dịch vụ theo công nghệ Web Service đặc biệt có thế mạnh trong việc xây dựng các dịch vụ ngân hàng trực tuyến Xuất phát từ thực tế
Trang 19Đinh Thị Huyền Trang – K11T3
là, các ngân hàng đều có một hệ thống phần mềm điện tử thực hiện quản lý các giao dịch của ngân hàng được áp dụng trên toàn hệ thống, việc xây dựng các dịch
vụ ngân hàng trực tuyến chính là việc kết nối giữa các trang web đến hệ thống này theo hướng sử dụng dịch vụ Với yêu cầu đó, việc xây dựng các Web Service
là một giải pháp lý tưởng Nó cho phép các trang web và ứng dụng desktop, có thể phát triển bằng bất kỳ ngôn ngữ nào, và hệ thống Core Banking của ngân hàng có thể trao đổi thông tin với nhau một cách dễ dàng, thuận tiện mà không cần phải xây dựng ra một hệ thống chương trình chuyển đổi trung gian
Như vậy, nếu như Web Service được ứng dụng và triển khai rộng rãi thì các công việc cần xử lý sẽ đơn giản, nhẹ nhàng hơn nhiều mà mọi hoạt động vẫn diễn
ra nhịp nhàng, uyển chuyển và ăn khớp với nhau
1.1.4 Cấu trúc của Web Service
Web Service, theo chuẩn SOAP 1.2 của W3C [8], bao gồm có các thành phần sau:
Trỏ đến mô tả dịch vụ
Mô tả dịch vụ
Giao tiếp bằng thông điệp XML
Trỏ đế
n dịch vụ
Người sử
dụng dịch vụ
Tìm kiếm dịch vụ
Hình 1.5: Thành phần của Web Service
SOAP – Simple Object Access Protocol: giao thức chuẩn cho việc gửi và
Trang 20Đinh Thị Huyền Trang – K11T3
Internet khác
WSDL – Web Services Description Language: ngôn ngữ dựa trên XML, được dùng với mục đích mô tả chính xác các giao diện lập trình của các Web Service
UDDI – Universal Description Discovery and Integration: chuẩn đăng ký nghiệp vụ, dùng cho việc lập chỉ mục các Web Service, để các công cụ phát triển
và các ứng dụng có thể định vị, tìm kiếm được các Web Service
1.2 Các công nghệ nền tảng của Web Service
Điểm khác biệt chính giữa HTML và XML là, trong khi các cặp thẻ của HTML chứa ý nghĩa về cách trình bày (formatting) các dữ liệu, thì các cặp thẻ của XML còn bao hàm nội dung cả về cấu trúc và trình diễn của dữ liệu Khi muốn trình bày các dữ kiện của một trang XML theo một kiểu nào đó, phục vụ hiển thị trên các thiết bị khác nhau, ta dùng một bảng định kiểu (Style Sheet) tương ứng cho nó [14] Ví dụ, muốn trình bày cùng một nội dung tài liệu XML nhưng hiển thị trên hai thiết bị khách nhau, một trên PC và một trên Mobile Phone (điện thoại di động), ta sẽ dùng hai Style Sheet khác nhau, một cho PC, cái kia cho Mobile Phone
Trang 21Đinh Thị Huyền Trang – K11T3
Tất cả các phần tử XML đều phải nằm trong một cặp thẻ Ví dụ:
Khai báo như trên là không hợp lệ do thẻ <address> nằm trong cặp thẻ <name>
và </name>, còn thẻ </address> lại nằm ngoài
Tất cả các tài liệu XML đều phải có một cặp thẻ định nghĩa một phần tử gốc của tài liệu Tất cả các phần tử con của nó phải nằm trong phần tử gốc này Tất cả các phần tử trong XML đều có thể có một hoặc nhiều các phần tử con Những phần tử con này phải nằm giữa cặp thẻ định nghĩa phần tử cha Ví dụ:
<root>
<child>
Trang 22Đinh Thị Huyền Trang – K11T3
Do đó, khi xây dựng một trang XML cần phải tuân theo đúng các qui luật sau:
1 Tất cả các tài liệu XML đều phải có một phần tử gốc
2 Tất cả các phần tử phải nằm trong một cặp thẻ
3 Tất cả các thẻ trong XML đều phân biệt chữ hoa, chữ thường
4 Các cặp thẻ không được xen kẽ nhau
5 Các giá trị của các thuộc tính phải nằm trong dấu ngoặc kép
Trang tài liệu XML tuân theo các quy luật trên (hay nói cách khác là đúng cú pháp) sẽ được coi là Well-Formed
Trang 23Đinh Thị Huyền Trang – K11T3
1.2.1.4 XML đúng đắn (Valid XML)
XML chứa các dữ liệu bằng cách dùng những cặp thẻ, nhưng tự nó không đòi hỏi các dữ liệu nào cần phải có hay chúng phải liên hệ với nhau như thế nào Một cách để thực hiện việc này là thêm vào phần đầu của một trang XML những qui luật mà các dữ liệu phải tuân theo để trang XML đuợc xem là có ý nghĩa Tập hợp các qui luật đó được gọi là Document Type Definition (DTD) DTD phải nằm trong một định nghĩa DOCTYPE, có cấu trúc cú pháp như sau:
<!DOCTYPE root-element [element-declarations]>
DOCTYPE được sử dụng để khai báo phần tử gốc của XML Trong DTD, một phần tử của XML được khai báo bằng một định nghĩa có cú pháp:
<!ELEMENT element-name category>
hoặc
<!ELEMENT element-name (element-content)>
Ví dụ định nghĩa kiểu dữ liệu DTD được thêm vào đầu file XML:
<!ELEMENT title (#PCDATA)>
<!ELEMENT publisher_list (publisher*)>
<! publisher children >
<!ELEMENT publisher (name, email?, homepage?,
address?, voice?, fax?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT homepage (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
Trang 24Đinh Thị Huyền Trang – K11T3
Ví dụ, nhà xuất bản Alfred Publishing chỉ có tên và địa chỉ Các phần tử được quy định bắt buộc phải có kiểu là Character (#PCDATA - Parsed Character Data) Trang XML nào tuân theo DTD đi kèm thì được gọi là đúng đắn (valid) Tuy nhiên, DTD còn có nhiều giới hạn, thí dụ như không định nghĩa chính xác được các kiểu dữ liệu (data type) Do đó, Microsoft đề xướng sơ đồ XML (XML Schemas) với những ưu điểm sau:
- Dễ học và dùng hơn DTD, chính sơ đồ cũng là một trang thuộc loại XML
- Nó cho phép định nghĩa chính xác các kiểu dữ liệu (data type)
- Dùng lại được các phần tử bằng cách thừa kế (inheritance)
- Linh động, dễ thêm bớt các phần tử của sơ đồ
Mọi sơ đồ XML đều có phần tử gốc là <Schema>, phần tử này có thể bao gồm một số thuộc tính và được khai báo như sau:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com">
Trong đó phần:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xác định các phần tử và kiểu dữ liệu sử dụng trong sơ đồ này, xuất phát từ không gian tên “http://www.w3.org/2001/XMLSchema”, và có tiền tố là “xs:” Phần: targetNamespace="http://www.w3schools.com"
xác định các phần tử được định nghĩa bởi sơ đồ này, xuất phát tử không gian tên