1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

114 32 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 114
Dung lượng 1,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

M ụ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 4

II.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 5

II.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 6

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

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

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

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

Hình 6.14 View quản lý dịch vụ 109

Hình 6.15 View quản lý phiếu thu 109

Trang 11

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

CHƯƠ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 13

I.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 14

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

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

và 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 17

Ngoà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 19

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

Có 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 23

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

Framework)

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 26

CHƯƠ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 27

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

b) 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 30

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

Transport: 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 32

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

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

mộ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 35

Ph ầ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 36

cù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 37

II.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 38

thườ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 39

II.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 40

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

Ngày đăng: 12/02/2021, 12:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đoàn Quang Minh, Lập trình .Net và Csharp phát triển ứng dụng, 2008. Tiếng Anh Sách, tạp chí
Tiêu đề: Lập trình .Net và Csharp phát triển ứng dụng
Tác giả: Đoàn Quang Minh
Nhà XB: Tiếng Anh
Năm: 2008
2. James W. Cooper, T J Watson , Introduction to Design Patterns in C#, IBM Research Center, 2002 Sách, tạp chí
Tiêu đề: Introduction to Design Patterns in C#
Tác giả: James W. Cooper, T J Watson
Nhà XB: IBM Research Center
Năm: 2002
3. Douglas J. Reilly, Designing Microsoft ASP.NET Applications, Microsoft Press ©, 2002 Sách, tạp chí
Tiêu đề: Designing Microsoft ASP.NET Applications
Tác giả: Douglas J. Reilly
Nhà XB: Microsoft Press
Năm: 2002
4. Addison Wesley, C#® Developer's Guide to ASP.NET, XML, and ADO.NET, 2002 Sách, tạp chí
Tiêu đề: C#® Developer's Guide to ASP.NET, XML, and ADO.NET
Nhà XB: Addison Wesley
Năm: 2002
6. Niel M. Bornstein, DotNET and XML, O'Reilly, 2004 Sách, tạp chí
Tiêu đề: DotNET and XML
Tác giả: Niel M. Bornstein
Nhà XB: O'Reilly
Năm: 2004
13. O'Reilly, Web Services Essentials Sách, tạp chí
Tiêu đề: Web Services Essentials
Tác giả: O'Reilly
14. Prentice, Web Services Explained Sách, tạp chí
Tiêu đề: Web Services Explained
Tác giả: Prentice
15. Brad Wilson, Development Lead, Smart Client Baseline Architecture Toolkit, 2006 Sách, tạp chí
Tiêu đề: Smart Client Baseline Architecture Toolkit
Tác giả: Brad Wilson
Năm: 2006
16. Service Factory Introduction (power point) 17. Raiffeisen, CAB SCSF - Architecture Guidance Sách, tạp chí
Tiêu đề: Service Factory Introduction
Tác giả: Raiffeisen
Nhà XB: CAB SCSF - Architecture Guidance
18. EV_SmartClient Offline Data Caching and Synchronization by RoyOsherove (power point) Sách, tạp chí
Tiêu đề: EV_SmartClient Offline Data Caching and Synchronization
Tác giả: Roy Osherove
19. Eric Gunnerson, Aprogammer’s introduction to C#, Apress © 2000 Sách, tạp chí
Tiêu đề: Aprogammer’s introduction to C#
20. Một số trang web: http://webservices.xml.com/ http://msdn.microsoft.com/smartclient/ Link
5. Developing.XML Web Services &amp; Server Components with VB.NET &amp; C sharp.NET Khác
7. Sybex, dotNET Web Services Solutions Khác
8. Apress, Expert Web Services Security in .NET Platform Khác
10. Wiley, Mastering Web Services Security Khác
11. Sybex, NET Web Services Solutions Khác
12. Syngress, XML, NET Developers Guide Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w