Nghiên cứu công nghệ để xây dựng hệ thống quản lý phòng khám đa khoa và ứng dụng thẻ từ vào quản lý thông tin Nghiên cứu công nghệ để xây dựng hệ thống quản lý phòng khám đa khoa và ứng dụng thẻ từ vào quản lý thông tin luận văn tốt nghiệp thạc sĩ
Trang 3M ục lục
Danh mục các từ viết tắt 5
Danh mục các hình vẽ 7
MỞ ĐẦU 1
CHƯƠNG I: TỔNG QUAN CÔNG NGHỆ 10
I.1 Mở đầu 10
I.2 Khái niệm Web Services 11
I.2.1 Khái niệm cơ bản 11
I.2.2 Các đặc trưng cơ bản của Web Services 12
I.2.2.1 Ràng buộc mềm 12
I.2.2.2 Kiến trúc hướng dịch vụ 12
I.2.2.3 Dễ tích hợp 12
I.2.2.4 Dễ dàng truy nhập 13
I.3 Khái niệm Smart Client 13
I.3.1 Khái niệm Rich Client 13
I.3.2 Khái niệm Thin Client 14
I.3.3 Khái niệm Smart Client 15
I.3.3.1 Tận dụng nguồn tài nguyên phía máy khách 16
I.3.3.2 Tận dụng nguồn tài nguyên mạng 16
I.3.3.3 Hỗ trợ làm việc online và offline 17
I.3.3.4 Cung cấp việc cài đặt và cập nhật thông minh 17
I.3.3.5 Cung cấp mềm dẻo đến các thiết bị máy khách 18
I.3.4 Các kiểu ứng dụng Smart Client 18
I.3.5 Lựa chọn giữa Thin Client và Smart Client 20
I.4 Mô hình kết hợp giữa Web Services và Smart Client 22
CHƯƠNG II: CÔNG NGHỆ WEB SERVICES 24
II.1 Mở đầu 24
II.2 Mô hình Web services 24
II.2.1 Mô hình tổng quan Web Service 24
Trang 4II.2.1.1 Vai trò của web service 24
II.2.1.2 Các tầng giao thức web service 25
II.2.2 Mô hình hướng dịch vụ 25
II.2.2.1 Bốn mô hình Web Services 26
a) Mô hình hướng thông điệp 26
b) Mô hình hướng dịch vụ 27
c) Mô hình hướng tài nguyên 27
d) Mô hình chính sách 27
II.2.2.2 Mô hình hướng dịch vụ (SOA) 27
II.2.3 Kiến trúc Web Services 31
II.2.3.1 Transport 31
II.2.3.2 Description 32
II.2.3.3 Discovery 33
II.3 Các thành phần Web Services 35
II.3.1 XML: eXtensible Markup Language 35
II.3.2 SOAP: Simple Object Access Protocol 37
II.3.2.1 Những tính chất quan trọng của SOAP 37
II.3.2.2 Cấu trúc của SOAP 38
II.3.2.3 Vai trò của SOAP trong hệ phân tán 40
II.3.3 WSDL: Web Services Description Language 42
II.3.3.1 Giới thiệu về WSDL 42
II.3.3.2 Cấu trúc WSDL 42
II.3.4 UDDI: Universal Description, Discovery and Integration 46
II.3.4.1 Khái niệm UDDI 46
II.3.4.2 Những lợi ích của UDDI 46
II.3.4.3 Ứng dụng UDDI 47
II.4 Phát triển Web Services 47
II.4.1 Thiết kế 47
II.4.2 Triển khai 48
II.4.3 Ưu điểm và hạn chế của Web Services 49
II.4.3.1 Ưu điểm 49
II.4.3.2 Nhược điểm 49
II.5 Web Services Software Factory 50
II.5.1 Các thành phần của Web Service Software Factory 51
II.5.2 Mô hình hệ thống 53
II.5.2.1 Hệ cơ sở dữ liệu 54
Trang 5II.5.2.2 Repository 55
II.5.2.3 Business Logic 56
II.5.2.4 Cấu trúc dữ liệu nội dung thông điệp truyền giữa Server-Client 56
II.5.2.5 Service implementations 58
CHƯƠNG III: KIẾN TRÚC ỨNG DỤNGSMART CLIENT 59
III.1 Mở đầu 59
III.2 Enterprise Library 59
III.2.1 Exception Handling Application Block 61
III.2.2 Logging Application Block 61
III.2.3 Data Access Application Block 61
III.2.4 Caching Application Block 62
III.2.5 Cryptography Application Block 62
III.2.6 Security Application Block 62
III.3 Composite UI Application Block (CAB) 63
III.4 Smart Client Software Factory 68
III.4.1 Mô hình của hệ thống Smart Client Software Factory 70
III.4.2 Các thành phần Smart Client Software Factory 72
III.4.2.1 Service Proxies 72
III.4.2.2 Services Agent 73
III.4.2.3 Các lớp giao diện – mô hình Module-View-Presenter 78
CHƯƠNG IV: THẺ TỪ 81
IV.1 Mở đầu 81
IV.2 Đặc điểm kỹ thuật của thẻ từ 82
IV.3 Ứng dụng thẻ từ vào quản lý bệnh nhân 86
CHƯƠNG V: ĐẶT VẤN ĐỀ BÀI TOÁN VÀLÝ DO LỰA CHỌN CÔNG NGHỆ 88
V.1 Bài toán quản lý bệnh viện 88
V.1.2 Yêu cầu xây dựng bài toán quản lý bệnh viên 88
V.1.2.1 Hệ thống phân tán và được triển khai trên phạm vi rộng 88
V.1.2.2 Đảm bảo làm việc trong điều kiện đường truyền không ổn định 89
V.1.2.3 Giao diện thân thiện và đơn giản 89
V.1.2.4 Đảm bảo tốc độ truy cập 89
V.1.2.5 Đảm bảo về bảo mật và phân quyền 89
Trang 6V.1.2.6 Có thể cập nhật và nâng cấp thường xuyên 89
V.2 Một số giải pháp khác xây dựng hệ thống quản lý bệnh viện 90
V.2.1 Xây dựng hệ thống Thin Client (ứng dụng web site) 90
V.2.2 Xây dựng hệ thống Rich Client 91
V.3 Lý do lựa chọn Web Services và Smart Client áp dụng cho hệ thống quản lý bệnh viện 91
V.3.1 Tóm tắt các lợi thế Smart Client và Web Services 92
V.3.1.1 Các lợi thế Web Services 92
V.3.1.2 Các lợi thế Smart Client 92
V.3.1.3 Lợi thế trong mô hình kết hợp Web Services và Smart Client 93
V.3.2 Mô hình hệ thống quản lý bệnh viện với Web Services và Smart Client 95
CHƯƠNG VI: ỨNG DỤNG XÂY DỰNGMODULE QUẢN LÝ PHÒNG KHÁM 97
VI.1 Các thành phần và quy trình quản lý bệnh viện 97
VI.2 Phân hệ quản lý phòng khám 99
VI.3 Phân tích thiết kế mô-đun quản lý phòng khám 100
VI.3.1 Chức năng quản lý bệnh nhân 101
VI.3.2 Chức năng khám bệnh 101
VI.3.3 Chức năng quản lý phiếu thu 102
VI.3.4 Chức năng quản lý thuốc 103
VI.4 Thiết kế cơ sở dữ liệu phục vụ cho module quản lý phòng khám 104
VI.5 Các chức năng và giao diện cụ thể 104
VI.6 Triển khai và đánh giá kết quả 109
KẾT LUẬN 111
TÀI LIỆU THAM KHẢO 112
Trang 7Danh m ục các từ viết tắt
TỪ VIẾT TẮT TÊN ĐẦY ĐỦ
CORBA Common Object Request Broker Architecture DCE Distributed Computing Environment
DLL Dynamic Link Library
HTTP Hyper Text Tranfer Protocol JRMI Java Remote Method Invocation ORB Object Request Broker
POP3 Post Office Protocol version 3 RMI Remote Method Invocation RPC Remote Procedure Calls SAML Sercurity Assertion Markup Language SGML Standard Generalized Markup Language SMTP Simple Mail Tranfer Protocol
SOA Service Oriented Architecture SOAP Simple Object Access Protocol UDDI Universal Description, Discovery and Integration
WSA Web services Architecture WSDL Web Services Description Language XML Extensible Markup Language
BEEP Blocks Extensible Exchange Protocol
Trang 8SMTP Simple Mail Transfer Protocol FTP File Transfer Protocol
API Application Program Interface SMS Microsoft Systems Management Server
UI User Interface CAB Composite UI Application Block
Trang 9Danh m ục các hình vẽ
Hình 1.1 Mô hình kết hợp Web Service và Smart Client 22
Hình 2.1 Vai trò Web Services 24
Hình 2.2 Bốn mô hình kiến trúc của Web Services 26
Hình 2.3 Mô hình kiến trúc hướng dịch vụ 28
Hình 2.4 Kiến trúc cơ bản của SOA với SOAP, WSDL, và UDDI 31
Hình 2.5 Đặc tả WSDL với các thành phần 32
Hình 2.6 Đặc tả WSDL với port 33
Hình 2.7 Mô hình cơ bản của SOAP 39
Hình 2.8 Cấu trúc của một WSDL 43
Hình 2.9 Mô hình phân tầng Web Services Software Factory 51
Hình 2.10 Mô hình kiến trúc của Web Services Software Factory 54
Hình 3.1 Các thành phần của Enterprise Library 60
Hình 3.2 Mô hình Smart Client Software Factory 71
Hình 3.3 Vai trò của ServiceProxy trong hệ thống 73
Hình 3.4 Vai trò của Service Agent 74
Hình 3.5 Các lớp giao diện 78
Hình 4.1 Minh họa thẻ từ 82
Hình 4.2 Mô hình ứng dụng thẻ từ vào quản lý bệnh nhân 87
Hình 5.1 Mô hình quản lý bệnh viện 95
Hình 6.1 Sơ đồ hệ thống quản lý bệnh viện 97
Hình 6.2 Cấu trúc phân hệ quản lý phòng khám 99
Hình 6.3 Cấu trúc module quản lý phòng khám 100
Hình 6.4 chức năng quản lý bệnh nhân 101
Hình 6.5 Chức khám và điều trị bệnh 101
Hình 6.6 Chức năng quản lý cán bộ 102
Hình 6.7 Chức năng quản lý các đơn vị hành chính 103
Hình 6.8 Sơ đồ liên kết dữ liệu modul quản lý phòng khám 104
Hình 6.9 Shell form là form giao diện làm việc chính 105
Hình 6.10 View quản lý bệnh nhân 106
Hình 6.11 View tiếp nhận bệnh nhân 106
Hình 6.12 View quản lý phiếu khám 107
Hình 6.13 View phiếu khám bệnh 108
Trang 10Hình 6.14 View quản lý dịch vụ 109
Hình 6.15 View quản lý phiếu thu 109
Trang 11M Ở ĐẦU
Công nghệ thông tin và viễn thông đang phát triển mạnh mẽ trên thế giới nói chung và Việt Nam nói riêng Việc ứng dụng công nghệ thông tin vào các lĩnh vực trong cuộc sống ngày càng phổ biến và trở thành một yêu cầu tất yếu Y tế là một trong những ngành cần áp dụng công nghệ thông tin vào nhiều nhất
Những lợi ích ưu việt của CNTT khi ứng dụng trong quản lý y tế rất rõ ràng như: lưu trữ và khai thác dữ liệu bệnh viện nhanh và chính xác Việc khai thác dữ liệu một cách có hệ thống giúp ích cho quản lý và chuyên môn như: thống kê số liệu, truyền tin giữa các cấp quản lý, giám sát hoạt động bệnh, giảm thời gian chờ đợi của bệnh nhân, tiến hành bệnh viện không giấy – không phim, chia sẻ bệnh án giữa các bệnh viện… Với yêu cầu triển khai hệ thống đảm bảo tính thuận tiện, phù hợp với đặc thù khám chữa bệnh của ngành y tế thì việc lựa chọn công nghệ là một trong những yếu tố cực kỳ quan trọng Tôi đã lựa chọn nghiên cứu về công nghệ Web Services và Smart client để xây dựng hệ thống quản lý bệnh viện và ứng dụng thẻ từ để quản lý thông tin bệnh nhân, thẻ bệnh nhân còn có tác dụng giúp giảm tải, hạn chế lượng người chầu chực xếp hàng đăng ký khám, rút ngắn tối đa thủ tục chờ đợi khám bệnh cho bệnh nhân Nhờ thẻ bệnh nhân, những thông tin liên quan tình trạng sức khỏe của người bệnh sẽ được tra cứu nhanh nếu họ tái khám
Bài toán xây dựng hệ thống quản lý bệnh viện là một bài toán không đơn giản trong đó mođun quản lý phòng khám chỉ là một phần nhỏ Kết quả chạy thử nghiệm trong phòng thí nghiệm cũng như quá trình chạy thử tại một phòng khám đa khoa tư nhân cho thấy kết quả tốt: Giao diện thân thiện và các chức năng được thiết kế hợp lý,
hệ thống chạy ổn định trong điều kiện đường truyền hoạt động tốt, công nghệ được sử dụng Web Server, kiến trúc Smart Client mang lại nhiều lợi thế cho việc thiết kế, cài đặt và triển khai cũng như mở rộng hệ thống
Trang 12CHƯƠNG I: T ỔNG QUAN CÔNG NGHỆ
I.1 M ở đầu
Trong những năm gần đây, ngành công nghệ thông tin đã đạt được rất nhiều thành tựu trong nhiều lĩnh vực Vai trò của công nghệ thông tin ngày càng được khẳng định, góp phần thúc đẩy khoa học kỹ thuật và kinh tế phát triển
Trước đây khi hệ thống mạng máy tính chưa phát triển thì các ứng dụng chủ yếu phát triển trên môi trường của máy tính và hệ điều hành nội tại mà không quan tâm đến các môi trường ngoài như môi trường mạng hoặc là máy tính khác Nhưng khi mạng máy tính phát triển và đặc biệt vào nhưng năm gần đây khi mạng Internet bùng nổ, giao tiếp thông tin ngày càng trở thành một nhu cầu thiết yếu thì việc phát triển các ứng dụng mang tính mềm dẻo, có khả năng làm việc độc lập trong khi vẫn liên kết chặt chẽ với hệ thống lại trở thành một vấn đề lớn mà người lập trình phải suy nghĩ
Với ứng dụng Smart Client người lập trình có trong tay một công cụ để lựa chọn thay thế cho các ứng dụng truyền thống Chúng cung cấp cho người dùng một giao diện thân thiện như ứng dụng Desktop, có khả năng làm việc offline và một phương thức để tận dụng được các tính năng của tài nguyên phần cứng và phần mềm của máy khách Hơn nữa, chúng có thể được thiết kế để chạy trên rất nhiều môi trường của các thiết bị đầu cuối như desktop PCs, Tablet PCs, các thiết bị cầm tay như Pocket PCs và Smartphones Với Smart Client người sử dụng đã có một giải pháp hiệu quả cho các ứng dụng mang tính mềm dẻo hướng người dùng
Trong đề tài kết hợp giữa Web Services và Smart Client để xây dựng hệ thống thì việc tìm hiểu công nghệ và áp dụng vào bài toán thực tế hiệu quả là một yếu tố vô cùng quan trọng
Trang 13I.2 Khái ni ệm Web Services
Có rất nhiều khái niệm về Web Service từ các nguồn khác nhau
Theo tác giả O'Reilly trong cuốn “Bản Chất của Web Service”: “Web Services là bất kỳ một dịch vụ nào có thể đáp ứng trên mạng Internet, sử dụng các thông điệp hệ thống chuẩn XML để giao tiếp và không phụ thuộc vào bất kỳ một hệ điều hành cũng như ngôn ngữ lập trình nào”
Từ quan điểm của người phát triển phần mềm, Web Services là một kiến trúc hướng dịch vụ Tức là Web Services là một tập các dịch vụ được triển khai để liên tác với nhau và với máy khách thông qua giao diện xác định Mà lợi thế đáng kể của kiến trúc hướng dịch vụ có thể nhắc đến là cho phép các ứng dụng được phát triển và liên kết mềm dẻo Tính mềm dẻo, linh động thể hiện ở chỗ nó cho phép phân tán hệ thống
và tạo môi trường trong suốt với client Như vậy Web Services đã giải quyết được khó khăn của người lập trình khi gặp phải vấn đề trong lập trình ứng dụng phân tán
Từ quan điểm người sử dụng, Web Services mang lại những tiện ích không thể phủ nhận như tạo môi trường truy cập trong suốt, dễ dàng phân tán và an toàn trong sử dụng
Tóm lại, về lý thuyết một web service phải:
- Sử dụng được trên Internet hoặc trên Intranet
- Sử dụng các thông điệp chuẩn XML
- Không bị ràng buộc và giới hạn bởi bất kỳ một hệ điều hành hay ngôn ngữ lập trình nào
- Tự mô tả thông qua ngữ pháp XML
- Được khám phá bởi cơ chế đơn giản
Trang 14I 2.2 Các đặc trưng cơ bản của Web Services
I.2.2.1 Ràng buộc mềm
Không giống như các thiết kế ứng dụng truyền thống, dựa trên liên kết chặt chẽ giữa các phần của chương trình, Web Services có tính chất ràng buộc mềm Ràng buộc mềm nghĩa là các dịch vụ tạo nên ứng dụng tồn tại độc lập với nhau Điều này cho phép các phần nhỏ của ứng dụng có thể được thay đổi mà không ảnh hưởng tới các phần không liên quan
I 2.2.2 Kiến trúc hướng dịch vụ
Web services là sự hội tụ giữa phát triển ứng dụng dựa dịch vụ và Web Trong
mô hình SOA (Service Oriented Architecture), các mô đun tạo nên ứng dụng được phân chia thành các thành phần độc lập, dễ dàng phân tán gọi là các dịch vụ (services) Các dịch vụ này có thể sử dụng lại của nhau và trong cùng một Solution có thể sử dụng nhiều ngôn ngữ khác nhau để viết nên dịch vụ
I 2.2.3 Dễ tích hợp
Không giống như các phương pháp tích hợp khác, Web Services đang trở nên được chấp nhận rộng rãi trong toàn bộ ngành công nghiệp phầm mềm Việc chấp nhận rộng rãi này giúp làm giảm bớt lỗi lo ngại về các công nghệ độc quyền có thể ngăn chặn sự phát triển của chúng trong tương lai Các chuẩn về Web services đang dần được làm cho dễ hiểu và công khai, cho phép nhà phát triển biết được cái gì đang thực
sự xảy ra trong hệ thống
Các công cụ phát triển như Microsoft.NET hay Rogue Wave Software’s sử dụng các định nghĩa dịch vụ bằng WSDL để kiểm soát giao tiếp giữa các service, cho phép người phát triển tập trung vào logic của hệ thống trong các service đó hơn là tập trung vào cấu trúc của Web services
Trang 15I 2.2.4 Dễ dàng truy nhập
Web services phân tán trong Internet Web services được sử dụng dựa trên giao thức có sẵn như HTTP, là đòn bẩy cho cơ sở hạ tầng sẵn có và cho phép thông tin hỏi/đáp được đáp ứng trong thời gian thực Hạ tầng IT sẵn có cho phép an toàn an ninh với các ứng dụng Web services
I.3 Khái ni ệm Smart Client
Đặc điểm của kiểu ứng dụng Smart Client là chúng có giao diện và thao tác thân thiện như các ứng dụng được sử dụng trên Client khác, trong khi vẫn có thể liên tác với ứng dụng phía Server thông qua môi trường mạng Ứng dụng Smart client vừa có khả năng làm việc offline vừa có khả năng giao tiếp với server truyền và nhận các thông điệp
Trong kiến trúc Smart Client, nó kết hợp được các đặc điểm tốt nhất của kiến trúc Rich Client và Thin Client Vậy trước hết muốn hiểu khái niệm Smart Client thì phải tìm hiểu hai khái niệm này
Trước khi hệ thống mạng phát triển, các ứng dụng Client phát triển chỉ quan tâm đến môi trường của máy tính thường trú như tài nguyên phần cứng, phần mềm và các tính năng mà hệ thống cũng như hệ điều hành mang lại, mà thường là không quan tâm hoặc ít quan tâm đến môi trường khác như tài nguyên của máy tính khác hoặc rất nhiều dịch vụ được cung cấp trên mạng Trong cấu trúc của mô hình ứng dụng thì việc giao tiếp giữa các ứng dụng Rich Client gặp rất nhiều khó khăn
Có một số công nghệ giúp tăng khả năng giao tiếp giữa các ứng dụng Rich Client
Ví dụ như ứng dụng hai tầng giúp rất nhiều người dùng có thể thực hiện việc truy cập
dữ liệu thông qua hệ tầng mạng và DCOM cho phép các ứng dụng có thể thực hiện phân tán nhiều hơn Tuy nhiên việc kết nối giữa ứng dụng lại gặp nhiều khó khăn hơn nhiều Như là việc xác định kích thước và độ phức tạp của tập các ứng dụng phân tán,
Trang 16và sự liên kết chặt chẽ giữa các ứng dụng và các dịch vụ chúng sử dụng trở thành một vấn đề lớn cần khắc phục nếu muốn duy trì được chúng
Với ứng dụng Rich Client, ứng dụng sẽ tận dụng được khả năng xử lý và thao tác rất tốt vì tận dụng được tài nguyên hệ thống nội tại Hơn nữa người dùng thì có kinh nghiệm nhiều hơn với các ứng dụng mang tính Desktop như thế này Tuy nhiên chúng lại rất khó khăn trong việc triển khai và duy trì Chẳng hạn như việc một ứng dụng rất
dễ làm đổ vỡ các ứng dụng khác nếu có sự không tương thích về thành phần và thư viện chia sẻ trong khi triển khai Hiện tượng này được gọi là tính dễ vỡ của ứng dụng
(application fragility) Nếu một phiên bản ứng dụng mới không có sự kiểm soát hợp lý rất dễ gây nên hiện tượng này và dẫn đến sụp đổ toàn bộ hệ thống Chính vì vậy khi thay đổi hệ thống trên Server người phát triển sẽ phải đến từng máy tính để thay đổi lại toàn bộ các ứng dụng trên máy khách cho phù hợp Công việc này rất mất thời gian và gặp rất nhiều khó khăn
Internet cung cấp một sự lựa chọn khác, thêm vào các mô hình Rich Client truyền thống, nó sẽ giúp giải quyết được rất nhiều vấn đề của Rich Client trong việc triển khai
và duy trì hệ thống Thin client có một cái tên khác là trình duyệt Web dựa trên ứng dụng Chúng được phát triển và cập nhật trên một máy chủ Web trung tâm, bởi vậy chúng dễ dàng gỡ bỏ các tính năng, cập nhật cũng như triển khai các ứng dụng ở các máy tính client Mô hình này cho phép các công ty triển khai các ứng dụng của họ một cách hiệu quả trên một mạng lưới rộng lớn và dễ dàng quản lý được hệ thống hơn Tuy nhiên ứng dụng Thin Client cũng có một vài nhược điểm mà người phát triển cần quan tâm khi lựa chọn lập trình cho hệ thống của mình
Luôn luôn phụ thuộc vào một trình duyệt và trình duyệt phải kết nối mạng liên tục tại mọi thời điểm Điều này có nghĩa là người dùng lưu động sẽ không thể truy cập vào ứng dụng nếu như nó chưa được kết nối mạng
Trang 17Ngoài ra có một số tính năng như drag-and-drop, undo-redo, trợ giúp… có thể không thực hiện được, điều đó giảm đi tính hữu dụng của ứng dụng
Bởi vì hầu hết các ứng dụng logic và trạng thái đều nằm hết trên server do vậy các ứng dụng khách thường xuyên phải gửi các yêu cầu và nhận các đáp ứng từ server Việc xử lý logic được client đẩy sang cho Server cho nên nếu như với một số lượng lớn các yêu cầu có thể làm chậm hệ thống hoặc xấu hơn là gây sụp đổ hệ thống
Smart client là kiểu ứng dụng tận dụng và kết hợp được các đặc điểm tốt của ứng dụng Rich Client và Thin Client
Tận dụng sức mạnh của Client PC: ứng dụng chạy trên máy tính của người dùng cuối (giống desktop-application)
Tận dụng kinh nghiệm người dùng: tuân theo việc người dùng đã quen với cách thức hoạt động của các ứng dụng chạy trên windows như word, excel, outlook
Vẫn chạy tốt dù có nối mạng hay không: giống như cách thức MS Outlook hoạt động, nó vẫn có thể làm việc dù ko kết nối với email server Người dùn không cần kết nối với server cho tới khi thực sự cần gửi/nhận mail hay cập nhật lịch làm việc
Cài đặt và cập nhật thông minh: ứng dụng tự động cập nhật thay đổi mà chỉ cần
sự cho phép của người dùng Điều này giúp vượt qua một trong những vấn đề rắc rối nhất từ trước tới nay của desktop-application là phải cài đặt lại từng máy client mỗi khi
có sự thay đổi
Smart Client được thiết kế để kết hợp giữa các đặc tính tốt của Rich Client và Thin Client Với những lợi thế mà ứng dụng Smart Client mang lại sẽ mở ra cho các nhà phát triển hệ thống một hướng lựa chọn công nghệ mới để áp dụng cho hệ thống Ứng dụng Smart Client có rất nhiều phần khác nhau và phụ thuộc vào sự phát triển của từng doanh nghiệp, từng tổ chức Tuy nhiên, một ứng dụng Smart Client nói chung sẽ bao gồm một số tính năng và thành phần sau:
Trang 18- Sử dụng được nguồn tài nguyên của máy khách
- Sử dụng được nguồn tài nguyên mạng
- Hỗ trợ làm việc online và offline
- Cung cấp việc cài đặt và cập nhật thông minh
- Cung cấp mềm dẻo đến các thiết bị máy khách
I 3.3.1 Tận dụng nguồn tài nguyên phía máy khách
Thiết kế của ứng dụng Smart Client đảm bảo mang lại những lợi thế tốt trong việc triển khai thao tác với ngôn ngữ lập trình, dữ liệu, thực thi và truy cập trong ngay máy client Với giao diện của ứng dụng máy bàn thân thiện và tận dụng được nguồn tài nguyên hệ thống máy khách, Smart Client đã mang lại một lợi thế nhất định so với các ứng dụng Thin Client thông thường Trong dự án Smart Client, cho phép tích hợp với các dự án của ứng dụng thông thường khác để cho phép giải quyết công việc một cách linh hoạt và tận dụng được các lợi thế của ứng dụng Smart Client trong khi vẫn duy trì được các dự án đã triển khai
Như vậy với việc ứng dụng Smart Client có khả năng làm việc trên máy bàn và tận dụng được các nguồn tài nguyên hệ thống giúp giảm bớt việc xử lý phía máy chủ Tận dụng được tài nguyên của từng máy khách, giao diện thân thiện giúp ứng dụng Smart Client dễ được chấp nhận hơn với người sử dụng đã có thói quen sử dụng các ứng dụng Desktop
I 3.3.2 Tận dụng nguồn tài nguyên mạng
Smart Client cho phép sử dụng các dịch vụ và dữ liệu khác nhau thông qua hệ thống mạng Điều đó có nghĩa rằng nó cho phép sử dụng nhiều dịch vụ khác nhau truy lục vào nhiều cơ sở dữ liệu khác nhau để phục vụ cho việc phân tán dữ liệu và dịch vụ
Trang 19I 3.3.3 Hỗ trợ làm việc online và offline
Smart Client hỗ trợ các tính năng giúp cho người sử dụng có thể tiếp tục công việc khi kết nối mạng chuyển tử chế độ online sang chế độ offline Với ứng dụng di động sẽ giúp cho việc tối ưu hóa đường truyền vì việc kết nối để thực hiện gửi yêu cầu
và nhận yêu cầu có thể không diễn ra liên tục gây tình trạng chiếm tài nguyên đường truyền và gây chậm mạng Cơ chế nào cho phép Smart Client làm được như thế? Trả lời câu hỏi này thì Smart Client dùng Data Caching trên mỗi ứng dụng trên máy khách
để lưu dữ liệu truyền đi và truyền về, điều này giúp cho việc lưu dữ liệu mềm dẻo và nhanh hơn vì việc truy cập từ dữ liệu được thực hiện ngay trên máy khách thay vì phải thực hiện thường xuyên thực hiện kết nối máy khách và máy chủ để thực hiện một phiên truy cập Ví dụ cụ thể chứng minh sự khác biệt này giữa ứng dụng Smart Client
và các ứng dụng khác: với ứng dụng Thin Client thông thường đặc điểm là phải luôn luôn kết nối đường truyền Khi đường truyền không liên tục thì toàn bộ dữ liệu lưu trữ trên Form sẽ bị mất Với Smart Client thì khi đường truyền bị gián đoạn, hoặc ngay cả ứng dụng bị tắt đi thì những thông tin được lưu trữ trên Form vẫn còn nguyên khi bật ứng dụng trở lại Bởi vì toàn bộ thông tin đó được lưu trữ trong Data Caching được lưu trong ổ cứng hoặc là bộ nhớ ngoài của máy tính Client
I 3.3.4 Cung cấp việc cài đặt và cập nhật thông minh
Có một số vấn đề này sinh với ứng dụng Rich Client khi cài đặt, triển khai và cập nhật Rất nhiều ứng dụng Rich Client có rất nhiều yêu cầu khi cài đặt và rất nhiều mã thực thi như file DLL, file đăng ký Registry được cài đặt vào phía máy khách Điều đó làm tăng tính dễ vỡ của ứng dụng và khó khăn trong việc cập nhật ứng dụng
Với ứng dụng Smart Client thì khác Chúng được thiết kế để thuận tiện trong việc cài đặt và cập nhật Việc cài đặt có thể diễn ra theo nhiều cách mềm dẻo khác nhau Điều đó giúp chúng tránh được các lỗi thường gặp khi triển khai và cập nhật và giúp giảm chi phí xây dựng và bảo trị hệ thống xuống mức thấp nhất
Trang 20Có một số cách để cài đặt ứng dụng smart client bao gồm cả việc đơn giản nhất là sao chép mã nguồn và lưu vào trong máy của người dùng hoặc cũng có thể tải mã chương trình từ trung tâm dịch vụ về để sử dụng hoặc có thể sử dụng một dịch vụ cài quản lý việc cấu hình và cài đặt trên máy khách như Microsoft Systems Management Server (SMS) của Microsoft
Ứng dụng Smart client cũng có thể tự động cập nhật hoặc người dùng có thể kích hoạt từng phần cài đặt đặt giống như LiveUpdate của Symantec hoặc Norton Antivirus Điều đó cho phép ứng dụng có thể cập nhật từng phần hoặc cập nhật theo một lộ trình định trước tùy chọn
I 3.3.5 Cung cấp mềm dẻo đến các thiết bị máy khách
Trong nhiều trường hợp có khi ta phải thiết kế nhiều phiên bản của Smart Client cùng một lúc Với sự tăng lên về số lượng và chủng loại của các thiết bị đầu cuối, yêu cầu phải đáp ứng mềm dẻo đến các thiết bị đầu cuối là rất cần thiết nếu hệ thống muốn phát triển Với ứng dụng Smart Client ta có thể thiết kế tùy biến để thực hiện được điều
đó
Smart Client cung cấp mềm dẻo và tùy biến đối với môi trường của thiết bị đầu cuối, cho phép người sử dụng có thể cấu hình ứng dụng để hỗ trợ tốt nhất cho cách làm làm việc của họ Smart Client không bị hạn chế bởi máy để bàn hoặc máy cầm tay Smart client cũng có thể được thiết kế để thích ứng với môi trường máy chủ Cung cấp các chức năng thích hợp tương ứng với lại môi trường máy khách mà nó được cài đặt
Tùy vào sự phát triển của các tổ chức và cá nhân mà Smart Client có sự thiết kế
và thực thi khác nhau Cơ chế lắp ghép mềm dẻo của Smart Client cho phép thực hiện điều đó Tuy nhiên có thể phân ứng dụng Smart Client thành 3 loại lớn phụ thuộc vào môi trường cư trú của chúng:
- Ứng dụng Windows Smart Client
Trang 21Ứng dụng loại này được xây dựng trên nền tảng Windows và máy để bàn, cung cấp giao diện Windows Form Ứng dụng loại này chủ yếu là các hệ thống quản lý quy trình của một tổ chức nào đó, các ứng dụng được xây dựng trên desktop, laptop,… phục vụ đông đảo đối tượng người dùng Với hệ thống quản lý bệnh viện trong luận văn cũng thuộc ứng dụng loại này Ví dụ của ứng dụng loại này là Microsoft Outlook
- Ứng dụng Office Smart Client
Microsoft Office System 2003 cung cấp một nền tảng rất hữu dụng mà dựa vào
đó để dễ dàng xây dựng được các ứng dụng Smart Client Với ứng dụng loại Office Smart Client, ta có thể tích hợp tài nguyên dữ liệu truy nhập thông qua Web Service với các tính năng của Word 2003, Excel 2003, InfoPath 2003 để phát triển ứng dụng Microsoft Office hỗ trợ XML và nó có khả năng tách dữ liệu từ một tài liệu vì vậy nó có thể được sử dụng lại bởi các ứng dụng khác Và bởi vì dữ liệu trong Microsoft Office có thể diễn tả dưới cấu trúc của ngữ pháp XML cho nên nó có thể được tích hợp với ứng dụng Smart Client
Microsoft Office 2003 cung cấp một số tính năng để xây dựng ứng dụng Smart Client:
- Smart tags Được gọi là thẻ thông minh, chúng mang lại cho ứng dụng cách
để cung cấp đến người sử dụng trạng thái nội dung của dữ liệu Ví dụ thẻ thông minh có thể được sử dụng để cung cấp trạng thái của tài khoản sử dụng, hay trạng thái của đơn đặt hàng,…
- Smart documents Tài liệu thông minh cung cấp các phương thức để người
sử dụng tương tác với các tài liệu và nghiệp vụ trên Web Services Tài liệu thông minh là một mô hình giải pháp mới cho Word 2003 và Excel 2003 bởi
vì chúng có thể hiểu được cấu trúc của XML và Task Pane Task pane có thể được sử dụng để hiển thị thông tin về ngữ cảnh, công việc, công cụ, bước thực hiện tiếp theo… Người sử dụng có thể khởi tạo các hành động và công việc bằng cách tác động đến task pane cho phép các giải pháp nghiệp vụ được cấu trúc
Trang 22- Microsoft Visual Studio® Tools for the Microsoft Office System Công cụ
này thuộc bộ tool có thể được phát triển để tạo ra và quản lý mã nguồn của ứng dụng Office Smart Client
- Microsoft Office InfoPath™ 2003 InfoPath 2003 là một ứng dụng có thể
thu thập cấu trúc dữ liệu từ người sử dụng bằng cách sử dụng các form giao diện InfoPath 2003 hỗ trợ XML Web Services, một giao diện form windows
và hỗ trợ các chuẩn công nghệ như WSDL và UDDI
Tóm lại là với đặc điểm của các ứng dụng Microsoft Office có thể mã hóa và hiểu được cấu trúc của dữ liệu cho phép các ứng dụng Smart Client có thể tích hợp và trở thành các ứng dụng loại Office Smart Client
- Ứng dụng Mobile Smart Client
Ứng dụng Mobile Smart Client là các ứng dụng chạy trên các thiết bị thông minh như Pocket PCs, Smartphones và các thiết bị khác như set-top boxes Các ứng dụng này sử dụng NET Compact Framework là một phần trong bộ NET Framework
.NET Compact Framework có rất nhiều các tính năng của NET Framework như
hỗ trợ XML, hỗ trợ Web Services Ngoài ra chúng còn hỗ trợ Windows Form dùng để phát triển giao diện người sử dụng Sử dụng Visual Studio NET Smart Device Projects, ta có thể phát triển ứng dụng loại này
Với mỗi một dự án việc lựa chọn công nghệ rất quan trọng, nhiều khi công nghệ cao chưa hẳn đã phù hợp bởi vì nhu cầu và chi phí không phù hợp Vì vậy việc lựa chọn công nghệ là rất quan trọng quyết định đến sự thành công của dự án Bảng sau trình bày về các tính năng rút gọn của Thin Client và Smart Client:
Cung cấp giao diện Có, nhưng khó khăn trong Có, dễ dàng phát triển,
Trang 23windows form thân thiện triển khai và sửa lỗi, phụ
thuộc vào trình duyệt
kiểm tra và sửa lỗi
Có thể sử dụng tài nguyên
phần cứng của phía máy
khách
Có nhưng chỉ có thể thông qua thành phần COM
Có thể thực hiện trong môi
trường gián đoạn về đường
truyền
vào yêu cầu của ứng dụng
Có thể duy trì với chi phí
thấp và có thể thay đổi mã
nguồn ứng dụng
thành phụ thuộc vào yêu cầu của ứng dụng
Có thể triển khai trên một
số lượng lớn máy khách
với môi trường đa dạng
Có, mặc dù các ứng dụng Thin Client phức tạp vẫn yêu cầu cấu hình yêu cầu trình duyệt
Có, có thể triển khai trên tất cả các máy khách hỗ trợ NET Framework (bao gồm
cả NET Compact
Trang 24Framework)
I.4 Mô hình k ết hợp giữa Web Services và Smart Client
Với các khái niệm cơ bản ban đầu về Web Services và Smart Client ở trong mục này tôi đưa ra mô hình kết hợp giữa Web Services và Smart Client
Service Proxy
Service Proxy
Service Proxy
Web services ( Máy chủ)
Hình 1.1 Mô hình k ết hợp Web Service và Smart Client
Trong mô hình này, Smart Client là ứng dụng được cài đặt trên hệ thống máy để bàn còn Web services được thiết kế trên server
Ứng dụng Smart Client gửi các thông điệp yêu cầu có định dạng XML đến Web Services Ứng dụng Web service xử lý yêu cầu, có thể thao tác với cơ sở dữ liệu để trả kết quả về cho Client cũng bằng các thông điệp XML
Trong mô hình này, tác dụng của ứng dụng Smart Client:
- Chứa giao diện người sử dụng
- Thực hiện các thao tác đăng nhập và kiểm soát hệ thống
- Gửi yêu cầu lên máy chủ, nhận giá trị trả về và hiển thị
Tác dụng của Web services:
- Chứa tất cả các nghiệp vụ logic cần thiết và mang tính chất dùng chung cũng như thao tác với hệ cơ sở dữ liệu
Trang 25- Nhận yêu cầu phía máy khách
- Xử lý yêu cầu, thao tác với cơ sở dữ liệu
- Trả kết quả về cho ứng dụng Client
Ngoài ra theo như mô hình trong hình 1.1 thì có thêm một khái niệm là Proxy Proxy làm nhiệm vụ trung chuyển giữa Smart Client và Web services Khái niệm này
sẽ được trình bày rõ hơn trong chương 3
Trang 26CHƯƠNG II CÔNG NGH Ệ WEB SERVICES
II.2 Mô hình Web services
II.2.1.1 Vai trò c ủa web service
Service Requestor ( yêu cầu dịch vụ)
Service Registry ( Đăng ký dịch vụ)
Service Provider ( Cung cấp dịch vụ)
1
2
Discover Services (Khám phá dịch vụ)
Invoke Service (Triệu gọi dịch vụ)
Hình 2.1 Vai trò Web Services
Service provider: Là nơi cung cấp các dịch vụ Web Service Nó có nhiệm vụ thực thi các dịch vụ và triển khai các dịch vụ đó trên Internet
Service requestor: Là bất kỳ máy khách nào sử dụng dịch vụ của Web Services Máy khách sử dụng các dịch vụ web service bằng cách tạo ra các kết nối mạng giữa chúng với Server và gửi các yêu cầu có định dạng XML và đợi phản hồi từ phía Server
Trang 27Service registry: Là thư mục kiểm soát logic của các dịch vụ Registry cung cấp nơi mà các nhà phát triển có thể công bố các dịch vụ của họ hoặc tìm kiếm các dịch vụ đã tồn tại của nhà cung cấp khác
II.2.1.2 Cá c tầng giao thức web service
Hiện tại các tầng giao thức của Web Service gồm có 4 tầng và vẫn còn tiếp tục
mở rộng trong tương lai:
Service transport: Có nhiệm vụ vận chuyển các thông điệp giữa các ứng dụng Hiện tại tầng này bao gồm các giao thức truyền thống HyperText Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP), và giao thức mới Blocks Extensible Exchange Protocol (BEEP)
XML messaging: Có nhiệm vụ mã hóa thông điệp thành định dạng XML Hiện tại tầng này bao gồm XML-RPC và SOAP
Service description: Có nhiệm vụ mô tả các cổng kết nối đến các Web Service Hiện tại dịch vụ mô tả này được thực hiện thông qua Web Service Description Language (WSDL)
Service discovery: Có nhiệm vụ kiểm soát các dịch vụ Web Service trong một Registry
để các nhà phát triển có thể dễ dàng công bố và tìm kiếm các dịch vụ web service Hiện tại thì dịch vụ này được sử dụng thông qua kênh Universal Description, Discovery, and Integration (UDDI)
Theo W3C thì có bốn mô hình kiến trúc của Web Services Mỗi mô hình có ưu nhược điểm riêng
- Mô hình hướng thông điệp
- Mô hình hướng dịch vụ
- Mô hình hướng tài nguyên
Trang 28- Mô hình chính sách
Bốn mô hình đều có sự tương tác với nhau, ta có thể quan sát ở hình dưới
Mô hình hướng chính sách
Thông điệp
Mô hình hướng tài nguyên
Tài nguyên
Hình 2.2 B ốn mô hình kiến trúc của Web Services
Luận văn sẽ trình bày về khái niệm của bốn mô hình, sau đó là đi sâu vào phân tích mô hình quan trọng nhất, đó là mô hình hướng dịch vụ
II 2.2.1 Bốn mô hình Web Services
a) Mô hình hướng thông điệp
Lấy thông điệp làm trọng tâm: cấu trúc của thông điệp, truyền tải thông điệp Tuy nhiên trong mô hình này không nói đến các tham chiếu của thông điệp như lý do truyền thông điệp, cũng không nói nhiều về ý nghĩa của nó Bản chất của mô hình hướng thông điệp là một số khái niệm bao quanh thông điệp: Tác nhân gửi và nhận
thông điệp, cấu trúc của thông điệp được cung cấp trong tiêu đề, thân thông điệp và cơ
chế được sử dụng để phân phối thông điệp Và một số chi tiết về lược đồ mở rộng của
mô hình này còn bao gồm rất nhiều khái niệm và mối quan hệ
Trang 29b) Mô hình hướng dịch vụ
Mô hình này lấy các các dịch vụ và các hoạt động của hệ thống làm trung tâm
Mô hình hướng dịch vụ là mô hình phức tạp nhất của tất cả các mô hình kiến trúc Web Services Tuy nhiên nó cũng bao quanh một số ý tưởng Một dịch vụ được thực hiện bởi một tác tử và được sử dụng bởi một tác tử khác Các dịch vụ làm trung gian bởi các điều kiện của các thông điệp trao đổi giữa các tác tử yêu cầu và các tác tử đáp ứng
c) Mô hình hướng tài nguyên
Mô hình này lấy tài nguyên là trọng tâm Nó được kế thừa từ các khái niệm về tài nguyên của kiến trúc Web được mô tả tại: http://www.w3.org/TR/webarch/ tại đây nó
đã được mở rộng để kết hợp chặt chẽ mối quan hệ giữa tài nguyên và chủ sở hữu của web services
d) Mô hình chính sách
Mô hình này lấy ràng buộc giữa các hành vi của các tác tử và dịch vụ làm trọng tâm Các chính sách được áp dụng với tài nguyên Chúng được áp dụng cho các tác tử truy nhập vào tài nguyên, và được đặt ở một nơi hoặc là được thiết lập bởi người thiết lập nên tài nguyên Các chính sách có thể được ban hành để mô tả các vấn đề liên quan đến bảo mật, chất lượng dịch vụ, quản trị và các ứng dụng
II 2.2.2 Mô hình hướng dịch vụ (SOA)
Web services đưa ra một tài nguyên thông tin có thể được truy nhập thông qua Web bởi các ứng dụng khác và quá trình giao tiếp dựa trên các giao thức chuẩn
Điểm khác biệt giữa Web services và các ứng dụng Web-based khác là: Web services hỗ trợ giao tiếp ứng dụng đến ứng dụng Các ứng dụng Web-based hỗ trợ giao tiếp người-người (email, instant message) hoặc giao tiếp người-ứng dụng (browser) Web services được thiết kế cho phép các ứng dụng giao tiếp với nhau mà không cần sự trợ giúp hay can thiệp của con người
Trang 30Web services dựa trên các nguyên lý thiết kế middleware được thiết lập cho giao tiếp giữa các ứng dụng Các nguyên lý này được biết đến như kiến trúc hướng dịch vụ Các hệ SOA trước đây có thể kể đến là RPC, RMI, DCOM, CORBA
WSA (Web services Architecture) là sự hội tụ của kiến trúc SOA và Web Web làm cho WSA độc lập hoàn toàn với nền tảng và ngôn ngữ Web services có thể được triển khai bằng bất kỳ ngôn ngữ nào, trên bất kỳ nền nào từ thiết bị nhỏ nhất cho tới các siêu máy tính
Service Broker ( Môi giới dịch vụ)
Service Consumer (Sử dụng dịch vụ)
Register
Service Provider (Cung cấp dịch vụ)
Service Contract
Find
Bind
Hình 2.3 Mô hình kiến trúc hướng dịch vụ
Hình trên mô tả mô hình hoạt động của SOA, dưới đây tôi sẽ nói về từng thành phần kiến trúc:
Ba thành phần cơ bản là service provider (cung cấp service), service consumer (sử dụng dịch vụ) và service broker (môi giới dịch vụ) Phía service provider tạo ra service và đưa ra đặc tả giao diện của nó Sau đó đăng ký (register) dịch vụ với một service broker Phía sử dụng dịch vụ (service consumer) sẽ truy vấn service broker để tìm ra service tương thích với nó Service broker cho service consumer biết nơi có dịch
vụ và đặc tả chi tiết của dịch vụ đó Service consumer sẽ dùng đặc tả này để kết gắn client đến service
Để có được các hoạt động trên, một hệ SOA phải cung cấp 3 thành phần kiến trúc chức năng lõi sau:
Trang 31Transport: thành phần này đưa ra các định dạng và giao thức được sử dụng để giao tiếp với một service Định dạng dữ liệu đặc tả các kiểu dữ liệu và định dạng dòng
dữ liệu được sử dụng để mã hóa dữ liệu trong thông điệp Có giao thức đặc tả kỹ thuật đóng gói dữ liệu được mã hóa thành thông điệp Giao thức giao vận đặc tả ngữ nghĩa của ứng dụng điều khiển việc truyền thông điệp
Description: thành phần này đưa ra các ngôn ngữ dùng để mô tả service Phần mô
tả sẽ cung cấp các thông tin cần thiết để kết gắn tới một service Ở mức tối thiểu, ngôn ngữ mô tả phải cung cấp phương tiện để đặc tả chi tiết service, bao gồm cả các hành vi, các tham số định dạng thông điệp mà nó trao đổi Một ngôn ngữ mô tả là một định dạng mà máy có thể hiểu được và có thể được xử lý bởi một compiler để tạo ra mã giao tiếp (communication code) như client proxy, server skeleton, stubs, và tie Các đoạn
mã được sinh ra này tự động hóa việc kết nối giữa mã ứng dụng và tiến trình giao tiếp, cách ly chương trình khỏi sự phức tạp bên dưới của middleware
Discovery: thành phần này đưa ra các kỹ thuật để đăng ký hoặc quảng bá một service, để tìm dịch vụ và mô tả của nó Các kỹ thuật Discovery có thể được sử dụng trong lúc compile hoặc runtime Có thể hỗ trợ kết gắn tĩnh hay động
Các hệ SOA (SOA Systems)
Phần lớn các hệ Middleware phân tán cài đặt một SOA Một số ví dụ như:
- RMI: Java Remote Method Invocation
- CORBA: Common Object Request Broker Architecture
- DCE: Distributed Computing Environment
- DCOM: Distributed Computing Object Model
Mỗi hệ trên định nghĩa một tập các giao thức và định dạng cài đặt phần các chức năng lõi của hệ SOA Một hệ SOA cũng thường định nghĩa kỹ thuật gọi hàm (invocation) bao gồm một giao diện lập trình ứng dụng và một tập ngôn ngữ kèm theo Chẳng hạn:
Trang 32So sánh giữa các định dạng và giao thức kiến trúc SOA
Mỗi công nghệ middleware nói trên đều định nghĩa riêng một tập các định dạng
và giao thức của chúng để tạo nên chức năng lõi của hệ SOA Cách tiếp cận này đảm bảo tính nhất quán giữa các ứng dụng dùng chung nền middleware, nhưng lại là rào cản của các ứng dụng sử dụng các middleware khác nhau Nó cũng đòi hỏi rằng mỗi nhà cung cấp dịch vụ phải thống nhất về middleware
Internet Middleware
Có thể xem Web services như một dạng mới của middleware – được gọi là Internet middleware Nhưng không giống như các hệ SOA trước đây, Internet middleware không yêu cầu một tập các giao thức mới hoàn toàn Giao thức cơ bản nhất
mà Web services sử dụng là một chuẩn công nghiệp XML được dùng như định dạng
dữ liệu, và nó cũng được dùng để tạo nên tất cả các giao thức Web services khác Ngày nay, phần lớn các hệ Internet middleware được cài đặt sử dụng một tập các công nghệ lõi là SOAP, WSDL, và UDDI Các công nghệ này định nghĩa các kỹ thuật giao vận,
mô tả, và khám phá ( một cách tương ứng) Mỗi công nghệ này đều được định nghĩa và cài đặt bằng XML Một lợi ích quan trọng khi sử dụng XML là mọi ứng dụng viết trên bất kỳ ngôn ngữ nào, chạy trên bất kỳ nền nào đều có thể hiểu được các message, đặc
tả, và kỹ thuật khám phá của Web services Công nghệ middleware nào cũng có thể
Trang 33giao tiếp với Web services Mọi ứng dụng đều có thể hiểu thông điệp SOAP bằng cách
sử dụng các công cụ xử lý XML chuẩn
Kiến trúc web services đưa ra tất cả các đặc trưng tốt nhất của kiến trúc hướng dịch vụ Trong phần lớn các hệ middleware, ba thành phần cơ bản (Transport, description, discovery) trong kiến trúc WSA được cài đặt tương ứng bằng SOAP, WSDL, UDDI Hình sau sẽ minh họa nguyên lý của một hệ WSA sử dụng 3 công nghệ này
Service Broker ( Môi giới dịch vụ)
Service Consumer ( Sử dụng dịch vụ) ( Cung cấp dịch vụ) Service Provider
WSDL
XML
UDDI Publish saver_xxx UDDI Inquiry
find_xxx
SOAP
Hình 2.4 Ki ến trúc cơ bản của SOA với SOAP, WSDL, và UDDI
UDDI registry đóng vai trò của service broker Các thao tác đăng ký và tìm kiếm được cài đặt bằng UDDI Inquiry và UDDI Publish APIs Một tài liệu WSDL sẽ đặc tả chi tiết service, và được sử dụng để kết gắn client tới service Toàn bộ các chức năng giao vận được thực hiện nhờ SOAP Ta sẽ xem xét 3 chức năng cơ bản của kiến trúc WSA
II.2.3.1 Transport
Thành phần này định nghĩa các định dạng và giao thức dùng để giao tiếp giữa client và service Các định dạng WSA và các giao thức được định nghĩa bằng SOAP
Trang 34một giao thức mở rộng XML SOAP cung cấp một khung chuyển thông điệp đơn giản cho phép ứng dụng gửi thông điệp XML tới ứng dụng khác
SOAP định nghĩa một khung kết gắn trừu tượng cho phép các thông điệp SOAP được truyền đi bằng nhiều giao thức giao vận bên dưới Đặc tả SOAP định nghĩa một giao thức kết gắn với HTTP, ngoài ra còn có HTTPS, SMTP, POP3, IMAP, JMS và các giao thức khác
Các thông tin mở rộng có thể được thêm vào phần header của thông điệp SOAP Phần này có thể chứa thông tin như bảo mật, thông tin liên quan, định phiên, hoặc thông tin quản lý
II.2.3.2 Description
Thành phần này định nghĩa các ngôn ngữ dùng để mô tả service Phía sử dụng service sẽ sử dụng thông tin mô tả để kết gắn client tới service Ngôn ngữ mô tả của WSA là ngôn ngữ đặc tả WSDL Đó là một tập các định nghĩa được diễn đạt dưới dạng XML Một tài liệu WSDL mô tả chức năng của Web services, cách thức giao tiếp và nơi giao tiếp với service Nhiều phần của đặc tả Web services có thể được chia thành nhiều tài liệu để tăng tính linh động và tái sử dụng Mô hình sau ánh xạ 3 phần của một đặc tả WSDL
Implementation Definition (Where part)
Trang 35Ph ần What: Phần What của tài liệu WSDL mô tả trừu tượng giao diện của Web
services Về cơ bản nó mô tả kiểu dịch vụ Phần What định nghĩa một giao diện logic bao gồm một tập các thao tác mà service thực hiện
Ph ần How: Phần How của tài liệu WSDL đặc tả một giao diện kết gắn tới các
giao thức cụ thể Việc kết gắn này cho biết thông điệp sẽ được cấu trúc thành một RPC hay như một tài liệu
Ph ần Where: Phần Where của tài liệu WSDL mô tả cài đặt service Cài đặt
service gồm một hay nhiều cổng Mỗi cổng cài đặt một kết gắn cụ thể giao diện trừu tượng Cổng cũng đặc tả điểm truy cập của dịch vụ Một người dùng có thể đưa ra nhiều điểm truy nhập cho một service cụ thể mỗi cổng cài đặt một kết gắn khác nhau
Các kiểu dịch vụ: Một kiểu dịch vụ, được định nghĩa bởi cấu trúc (construct) gọi
là tModel, định nghĩa một service trừu tượng Nhiều nhà cung cấp có thể cung cấp
Trang 36cùng loại service, tất cả cùng hỗ trợ một giao diện dịch vụ tModel cung cấp một con trỏ tới tài liệu WSDL mô tả giao diện trừu tượng (phần What)
Các nhà cung cấp dịch vụ: Nhà cung cấp dịch vụ đăng ký các dịch vụ cung cấp
Với mỗi service, nhà cung cấp dịch vụ sẽ cung cấp các thông tin kết gắn giúp cho việc gắn kết đến dịch vụ
Phân loại: Khi nhà cung cấp đăng ký một dịch vụ hoặc loại dịch vụ, nhà cung cấp
có thể phân loại dịch vụ đó (business, service, tModel) bằng nhiều nguyên tắc phân loại Đặc tả UDDI định nghĩa một tập các nguyên tắc phân loại Chẳng hạn theo vị trí địa lý, mã sản phẩm Các nguyên tắc phân loại thêm khác có thể được thêm vào registry để hỗ trợ việc phân loại và tìm kiếm tập trung và theo yêu cầu nhiều hơn
Tìm kiếm: Khi tìm kiếm một dịch vụ, phía sử dụng dịch vụ sẽ truy vấn UDDI
registry, tìm kiếm dịch vụ cần tìm Người dùng có thể tìm kiếm registry theo kiểu dịch
vụ hoặc nhà cung cấp dịch vụ, và các truy vấn có thể được chuẩn hóa bằng một số nguyên tắc
K ết gắn tĩnh: Nhà phát triển có thể kết gắn client tới service trong thời gian dịch
hoặc trong thời gian chạy Bằng việc sử dụng phần How nhà phát triển có thể biên dịch giao diện SOAP phía client hoặc stub cài đặt kết gắn cần thiết để giao tiếp với Web services Stub tiền biên dịch có thể được thêm vào ứng dụng client
Kết gắn động: WSA cũng hỗ trợ kết gắn động Chỉ sử dụng phần what WSDL
trong thời gian biên dịch nhà phát triển có thể tạo ra giao diện Client trừu tượng để có thể làm việc với bất kỳ cài đặt của loại service nào Trong khi chạy ứng dụng phía client có thể biên dịch động phần Where WSDL (chứa phần How) và tạo ra proxy động (dynamic proxy) cài đặt kết gắn
Khám phá động: Vì chính UDDI là một Web services, một ứng dụng có thể truy
vấn registry trong thời gian chạy, khám phá service động, định vị điểm truy nhập, nhận
về tài liệu WSDL, tất cả đều diễn ra trong thời gian chạy Phía client hiểu tài liệu WSDL để tạo ra các lời gọi SOAP
Trang 37II.3 Các thành ph ần Web Services
Phần này sẽ trình bày các thành phần chính liên quan đến web Services và đóng vai trò quyết định trong hoạt động của Web services
II.3.1 XML: eXtensible Markup Language
Trong hầu hết các ngôn ngữ lập trình việc mô tả cấu trúc dữ liệu thường đóng vai trò chủ yếu để xây dựng nên ứng dụng Ví dụ, đối tượng Memo chứa thông tin về địa chỉ e-mail của một cá nhân được mô tả bằng ngôn ngữ java như sau:
Public class Memo
{
Public string to;
Public string from;
Public string cc;
Public string subject;
Public string body;
Còn rất nhiều cách biểu diễn cấu trúc khác được áp dụng trong các hệ quản trị cơ
sở dữ liệu, trong các trình ứng dụng Tuy nhiên, chúng không được thống nhất và
Trang 38thường chỉ có trình ứng dụng nào tạo ra định dạng của cấu trúc dữ liệu thì mới có khả năng xử lý cấu trúc dữ liệu đó Nếu muốn chuyển đổi dữ liệu qua lại giữa các trình ứng dụng thường chúng ta phải qua công đoạn xuất (export) từ trình ứng dụng này và nhập (import) dữ liệu lại vào trình ứng dụng khác Với điều kiện cả hai trình ứng dụng đều cho phép chuyển đổi và nhập vào khuôn dạng dữ liệu thích hợp
XML (eXtensible markup language-tạm dịch là ngôn ngữ định dạng mở rộng) ra đời nhằm giúp việc mô tả dữ liệu trở nên đơn giản hơn và dễ xử lý hơn XML mô tả dữ liệu dựa trên việc dùng các thẻ định nghĩa XML là một định dạng văn bản mềm dẻo và đơn giản dựa trên chuẩn ngôn ngữ định dạng tổng quát SGML (Standard Generalized Markup Language) XML có vai trò ngày càng quan trọng trong việc trao đổi dữ liệu trên web và trên mô hình khác
HTML cho phép tạo nội dung các trang web mà chúng ta vẫn thường gặp Tuy nhiên HTML không cung cấp đủ khả năng gì khác ngoài việc tạo trang web HTML là một ngôn ngữ định dạng
Ngôn ngữ định dạng là tất cả những gì dùng để mô tả nội dung một tài liệu HTML 1.0 chỉ bao gồm khoảng 10 thẻ định dạng Thế nhưng phiên bản HTML gần đây đã định nghĩa và chứa hơn 100 thẻ Nếu để xử lý dữ liệu trên web và với sự phát triển của ứng dụng mạng thì rõ ràng hơn 100 thẻ vẫn không đủ, chúng ta không thể tạo
ra được những thẻ để sử dụng cho mục đích riêng của mình
Ví dụ, nếu muốn xây dựng riêng một mô hình tàu thủy và muốn trao đổi những đặc tả về chiếc tàu với các đồng nghiệp? HTML không chứa các thẻ đặc tả về chiếc tàu với các đồng nghiệp? HTML không chứa các thẻ định nghĩa như
<BEAMWIDTH>,<MIZZHEGHT>,<DRAF>,<SHIPCLASS>
Như vậy cần định nghĩa và khai báo cấu trúc dữ và XML đã giải quyết được điều
đó XML là nền tảng trong công nghệ Web Services
Trang 39II.3.2 SOAP: Simple Object Access Protocol
SOAP (Tạm dịch là giao thức truy cập đối tượng đơn giản) là giao thức dựa trên nền tảng XML, Giao thức SOAP cho phép các thành phần đối tượng và ứng dụng Internet có thể dễ dàng trao đổi với nhau thông qua chuẩn giao thức HTTP Nói cách khác, SOAP là giao thức được xây dựng dựa trên giao thức có sẵn Nếu như giao thức HTTP chỉ cung cấp cơ chế gửi nhận (get/post) dữ liệu thô một cách thuần túy thì SOAP
sẽ giúp nhận và gửi dữ liệu theo mô hình XML có cấu trúc và dễ xử lý hơn Hiện nay SOAP đang dần trở thành nền tảng của hệ điều hành windows và là một phần định nghĩa quan trọng trong bộ công cụ phát triển Visual Studio.net
II 3.2.1 Những tính chất quan trọng của SOAP
Sau đây là những tính chất quan trọng của SOAP
- SOAP là một giao thức dùng để trao đổi thông tin giữa các trình ứng dụng
- SOAP là một định dạng giúp cho việc truyền tải các thông tin
- SOAP được thiết kế để giao tiếp thông qua Internet
- SOAP là một platform độc lập
- SOAP hoạt động dựa trên XML
- SOAP mang tính đơn giản và có khả năng mở rộng SOAP cho phép
“vượt” tường lửa Ngày nay, một vấn đề quan trọng trong việc phát triển các ứng dụng là có thể giao tiếp với nhau thông qua Internet Các ứng dụng giao tiếp với nhau sử dụng RPC (Remote Procedure Calls) giữa các đối tượng giống như DCOM và CORBA nhưng HTTP thì không đáp ứng được điều này RPC thỏa mãn được vấn đề tương thích và bảo mật nhưng lại gặp rắc rối với firewalls và proxy servers trong quá trình truyền tải
Trang 40Vậy cách tốt nhất là sử dụng HTTP để giao tiếp giữa các ứng dụng do HTTP được hỗ trợ bởi tất cả các trình duyệt web, SOAP được tạo ra để hoàn tất việc này SOAP hỗ trợ khả năng giao tiếp giữa các ứng dụng chạy trên nhiều hệ điều hành, nhiều công nghệ và nhiều ngôn ngữ lập trình khác nhau
Phiên bản SOAP 1.1 được ban hành bởi W3C vào tháng 3 năm 2000
II.3.2.2 Cấu trúc của SOAP
Mỗi thông điệp SOAP thường là một file XML chứa các thành phần như sau:
Envelope element: là thành phần bắt buộc xác định tài liệu XML này là một thông điệp SOAP
Header element: là thành phần tùy chọn chứa các thông tin tiêu đề
Body element: là thành phần bắt buộc chứa các thông tin được gọi và trả lời
Fault element: là thành phần tùy chọn cung cấp các thông tin về lỗi có thể xảy ra trong quá trình truyền thông điệp
Các thành phần trên thiết lập nên một namespace mặc định cho SOAP envelope