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

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

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

Thông tin tài liệu

Vương Thị Thu Hà giáo dục đào tạo trường đại học bách khoa hà nội - Vương Thị Thu Hà ngành Xử Lý THÔNG TIN Và TRUYềN THÔNG 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 BệNH NHÂN luận văn thạc sỹ Xử Lý THÔNG TIN Và TRUYềN THÔNG 2007 - 2009 Hà nội 2009 Hà Nội 2009 Vương Thị Thu Hà 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 BệNH NHÂN luận văn thạc sỹ Xử Lý THÔNG TIN Và TRUYềN THÔNG NGI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐỨC THUẬN 2007 - 2009 Hµ néi 2009 Hµ Néi – 2009 Mục lục Danh mục từ viết tắt Danh mục hình vẽ MỞ ĐẦU 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 11 I.2.2 Các đặc trưng 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 offline 17 I.3.3.4 Cung cấp việc cài đặt cập nhật thông minh 17 I.3.3.5 Cung cấp mềm dẻo đến 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 Thin Client Smart Client 20 I.4 Mô hình kết hợp Web Services 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 II.2.1.1 Vai trò 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 ngun 27 d) Mơ hì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 SOAP 37 II.3.2.2 Cấu trúc SOAP 38 II.3.2.3 Vai trò SOAP hệ phân tán 40 II.3.3 WSDL: Web Services Description Language 42 II.3.3.1 Giới thiệu 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 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 hạn chế 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 Web Service Software Factory 51 II.5.2 Mơ hình hệ thống 53 II.5.2.1 Hệ sở liệu 54 II.5.2.2 Repository 55 II.5.2.3 Business Logic 56 II.5.2.4 Cấu trúc liệu nội dung thông điệp truyền Server-Client 56 II.5.2.5 Service implementations 58 CHƯƠNG III: KIẾN TRÚC ỨNG DỤNG SMART 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 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 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 TỐ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 toán quản lý bệnh viên 88 V.1.2.1 Hệ thống phân tán triển khai phạm vi rộng 88 V.1.2.2 Đảm bảo làm việc điều kiện đường truyền không ổn định 89 V.1.2.3 Giao diện thân thiện đơn giản 89 V.1.2.4 Đảm bảo tốc độ truy cập 89 V.1.2.5 Đảm bảo bảo mật phân quyền 89 V.1.2.6 Có thể cập nhật 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ý lựa chọn Web Services Smart Client áp dụng cho hệ thống quản lý bệnh viện 91 V.3.1 Tóm tắt lợi Smart Client Web Services 92 V.3.1.1 Các lợi Web Services 92 V.3.1.2 Các lợi Smart Client 92 V.3.1.3 Lợi mơ hình kết hợp Web Services Smart Client 93 V.3.2 Mơ hình hệ thống quản lý bệnh viện với Web Services Smart Client 95 CHƯƠNG VI: ỨNG DỤNG XÂY DỰNG MODULE QUẢN LÝ PHÒNG KHÁM 97 VI.1 Các thành phần 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 quản lý bệnh nhân 101 VI.3.2 Chức khám bệnh 101 VI.3.3 Chức quản lý phiếu thu 102 VI.3.4 Chức quản lý thuốc 103 VI.4 Thiết kế sở liệu phục vụ cho module quản lý phòng khám 104 VI.5 Các chức giao diện cụ thể 104 VI.6 Triển khai đánh giá kết 109 KẾT LUẬN 111 TÀI LIỆU THAM KHẢO 112 Danh mục từ viết tắt TỪ VIẾT TẮT CORBA DCE DCOM DLL HTML TÊN ĐẦY ĐỦ Common Object Request Broker Architecture Distributed Computing Environment Distributed Model Dynamic Link Library Hyper Text Markup Language HTTP Hyper Text Tranfer Protocol JRMI Java Remote Method Invocation ORB Object Request Broker POP3 Post Office Protocol version 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 UML Unified Modeling Language W3C World Wide Web Consortium WSA Web services Architecture WSDL Web Services Description Language XML Extensible Markup Language BEEP Blocks Extensible Exchange Protocol SMTP Simple Mail Transfer Protocol FTP File Transfer Protocol API Application Program Interface SMS UI Microsoft Systems Management Server User Interface CAB Composite UI Application Block MVP Model-View-Presenter MVC Model-View-Controller Danh mục hình vẽ Hình 1.1 Mơ hình kết hợp Web Service 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 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 SOA với SOAP, WSDL, UDDI 31 Hình 2.5 Đặc tả WSDL với thành phần 32 Hình 2.6 Đặc tả WSDL với port 33 Hình 2.7 Mơ hình SOAP 39 Hình 2.8 Cấu trúc 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 Web Services Software Factory 54 Hình 3.1 Các thành phần Enterprise Library 60 Hình 3.2 Mơ hình Smart Client Software Factory 71 Hình 3.3 Vai trị ServiceProxy hệ thống 73 Hình 3.4 Vai trò 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 quản lý bệnh nhân 101 Hình 6.5 Chức khám điều trị bệnh 101 Hình 6.6 Chức quản lý cán 102 Hình 6.7 Chức quản lý đơn vị hành 103 Hình 6.8 Sơ đồ liên kết liệu modul quản lý phòng khám 104 Hình 6.9 Shell form form giao diện làm việc 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 Hình 6.14 View quản lý dịch vụ 109 Hình 6.15 View quản lý phiếu thu 109 MỞ ĐẦU Công nghệ thông tin viễn thông phát triển mạnh mẽ giới nói chung Việt Nam nói riêng Việc ứng dụng cơng nghệ thơng tin vào lĩnh vực sống ngày phổ biến trở thành yêu cầu tất yếu Y tế ngành cần áp dụng cơng nghệ thơng tin vào nhiều Những lợi ích ưu việt CNTT ứng dụng quản lý y tế rõ ràng như: lưu trữ khai thác liệu bệnh viện nhanh xác Việc khai thác liệu cách có hệ thống giúp ích cho quản lý chuyên môn như: thống kê số liệu, truyền tin cấp quản lý, giám sát hoạt động bệnh, giảm thời gian chờ đợi bệnh nhân, tiến hành bệnh viện không giấy – không phim, chia sẻ bệnh án 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 ngành y tế việc lựa chọn cơng nghệ yếu tố quan trọng Tôi lựa chọn nghiên cứu công nghệ Web Services Smart client để xây dựng hệ thống quản lý bệnh viện ứ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, thơng tin liên quan tình trạng sức khỏe người bệnh tra cứu nhanh họ tái khám Bài toán xây dựng hệ thống quản lý bệnh viện tốn khơng đơn giản mođun quản lý phịng khám phần nhỏ Kết chạy thử nghiệm phịng thí nghiệm q trình chạy thử phịng khám đa khoa tư nhân cho thấy kết tốt: Giao diện thân thiện chức thiết kế hợp lý, hệ thống chạy ổn định điều kiện đường truyền hoạt động tốt, công nghệ sử dụng Web Server, kiến trúc Smart Client mang lại nhiều lợi cho việc thiết kế, cài đặt triển khai mở rộng hệ thống 10 CHƯƠNG I: TỔNG QUAN CÔNG NGHỆ I.1 Mở đầu Trong năm gần đây, ngành công nghệ thông tin đạt nhiều thành tựu nhiều lĩnh vực Vai trò công nghệ thông tin ngày khẳng định, góp phần thúc đẩy khoa học kỹ thuật kinh tế phát triển Trước hệ thống mạng máy tính chưa phát triển ứng dụng chủ yếu phát triển mơi trường máy tính hệ điều hành nội mà không quan tâm đến mơi trường ngồi mơi trường mạng máy tính khác Nhưng mạng máy tính phát triển đặc biệt vào năm gần mạng Internet bùng nổ, giao tiếp thông tin ngày trở thành nhu cầu thiết yếu việc phát triển ứng dụng mang tính mềm dẻo, có khả làm việc độc lập liên kết chặt chẽ với hệ thống lại trở thành 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ó tay cơng cụ để lựa chọn thay cho ứng dụng truyền thống Chúng cung cấp cho người dùng giao diện thân thiện ứng dụng Desktop, có khả làm việc offline phương thức để tận dụng tính tài nguyên phần cứng phần mềm máy khách Hơn nữa, chúng thiết kế để chạy nhiều môi trường thiết bị đầu cuối desktop PCs, Tablet PCs, thiết bị cầm tay Pocket PCs Smartphones Với Smart Client người sử dụng có giải pháp hiệu cho ứng dụng mang tính mềm dẻo hướng người dùng Trong đề tài kết hợp Web Services Smart Client để xây dựng hệ thống việc tìm hiểu cơng nghệ áp dụng vào toán thực tế hiệu yếu tố vô quan trọng 11 I.2 Khái niệm Web Services I.2.1 Khái niệm Có nhiều khái niệm Web Service từ nguồn khác Theo tác giả O'Reilly “Bản Chất Web Service”: “Web Services dịch vụ đáp ứng mạng Internet, sử dụng thông điệp hệ thống chuẩn XML để giao tiếp không phụ thuộc vào hệ điều hành ngơn ngữ lập trình nào” Từ quan điểm người phát triển phần mềm, Web Services kiến trúc hướng dịch vụ Tức Web Services tập dịch vụ triển khai để liên tác với với máy khách thông qua giao diện xác định Mà lợi đáng kể kiến trúc hướng dịch vụ nhắc đến cho phép ứng dụng phát triển liên kết mềm dẻo Tính mềm dẻo, linh động thể chỗ cho phép phân tán hệ thống tạo mơi trường suốt với client Như Web Services giải khó khăn người lập trình gặp phải vấn đề 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 tiện ích khơng thể phủ nhận tạo môi trường truy cập suốt, dễ dàng phân tán an tồn sử dụng Tóm lại, lý thuyết web service phải: - Sử dụng Internet Intranet - Sử dụng thông điệp chuẩn XML - Không bị ràng buộc giới hạn hệ điều hành hay ngôn ngữ lập trình - Tự mơ tả thơng qua ngữ pháp XML - Được khám phá chế đơn giản 12 I.2.2 Các đặc trưng Web Services I.2.2.1 Ràng buộc mềm Không giống thiết kế ứng dụng truyền thống, dựa liên kết chặt chẽ phần 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 dịch vụ tạo nên ứng dụng tồn độc lập với Điều cho phép phần nhỏ ứng dụng thay đổi mà khơng ảnh hưởng tới phần không liên quan I.2.2.2 Kiến trúc hướng dịch vụ Web services hội tụ phát triển ứng dụng dựa dịch vụ Web Trong mơ hình SOA (Service Oriented Architecture), mơ đun tạo nên ứng dụng phân chia thành thành phần độc lập, dễ dàng phân tán gọi dịch vụ (services) Các dịch vụ sử dụng lại Solution sử dụng nhiều ngôn ngữ khác để viết nên dịch vụ I.2.2.3 Dễ tích hợp Khơng giống phương pháp tích hợp khác, Web Services trở nên chấp nhận rộng rãi toàn ngành công nghiệp phầm mềm Việc chấp nhận rộng rãi giúp làm giảm bớt lỗi lo ngại công nghệ độc quyền ngăn chặn phát triển chúng tương lai Các chuẩn Web services dần làm cho dễ hiểu công khai, cho phép nhà phát triển biết thực xảy hệ thống Các công cụ phát triển Microsoft.NET hay Rogue Wave Software’s sử dụng định nghĩa dịch vụ WSDL để kiểm soát giao tiếp service, cho phép người phát triển tập trung vào logic hệ thống service tập trung vào cấu trúc Web services 13 I.2.2.4 Dễ dàng truy nhập Web services phân tán Internet Web services sử dụng dựa giao thức có sẵn HTTP, địn bẩy cho sở hạ tầng sẵn có cho phép thơng tin hỏi/đáp đáp ứng thời gian thực Hạ tầng IT sẵn có cho phép an tồn an ninh với ứng dụng Web services I.3 Khái niệm Smart Client Đặc điểm kiểu ứng dụng Smart Client chúng có giao diện thao tác thân thiện ứng dụng sử dụng Client khác, 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ả làm việc offline vừa có khả giao tiếp với server truyền nhận thông điệp Trong kiến trúc Smart Client, kết hợp đặc điểm tốt kiến trúc Rich Client Thin Client Vậy trước hết muốn hiểu khái niệm Smart Client phải tìm hiểu hai khái niệm I.3.1 Khái niệm Rich Client Trước hệ thống mạng phát triển, ứng dụng Client phát triển quan tâm đến mơi trường máy tính thường trú tài nguyên phần cứng, phần mềm tính mà hệ thống hệ điều hành mang lại, mà thường khơng quan tâm quan tâm đến mơi trường khác tài ngun máy tính khác nhiều dịch vụ cung cấp mạng Trong cấu trúc mơ hình ứng dụng việc giao tiếp ứng dụng Rich Client gặp nhiều khó khăn Có số cơng nghệ giúp tăng khả giao tiếp ứng dụng Rich Client Ví dụ ứng dụng hai tầng giúp nhiều người dùng thực việc truy cập liệu thông qua hệ tầng mạng DCOM cho phép ứng dụng thực phân tán nhiều Tuy nhiên việc kết nối ứng dụng lại gặp nhiều khó khăn nhiều Như việc xác định kích thước độ phức tạp tập ứng dụng phân tán, 14 liên kết chặt chẽ ứng dụng dịch vụ chúng sử dụng trở thành vấn đề lớn cần khắc phục muốn trì chúng Với ứng dụng Rich Client, ứng dụng tận dụng khả xử lý thao tác tốt tận dụng tài nguyên hệ thống nội Hơn người dùng có kinh nghiệm nhiều với ứng dụng mang tính Desktop Tuy nhiên chúng lại khó khăn việc triển khai trì Chẳng hạn việc ứng dụng dễ làm đổ vỡ ứng dụng khác có khơng tương thích thành phần thư viện chia sẻ triển khai Hiện tượng gọi tính dễ vỡ ứng dụng (application fragility) Nếu phiên ứng dụng khơng có kiểm soát hợp lý dễ gây nên tượng dẫn đến sụp đổ toàn hệ thống Chính thay đổi hệ thống Server người phát triển phải đến máy tính để thay đổi lại toàn ứng dụng máy khách cho phù hợp Công việc thời gian gặp nhiều khó khăn I.3.2 Khái niệm Thin Client Internet cung cấp lựa chọn khác, thêm vào mơ hình Rich Client truyền thống, giúp giải nhiều vấn đề Rich Client việc triển khai trì hệ thống Thin client có tên khác trình duyệt Web dựa ứng dụng Chúng phát triển cập nhật máy chủ Web trung tâm, chúng dễ dàng gỡ bỏ tính năng, cập nhật triển khai ứng dụng máy tính client Mơ hình cho phép công ty triển khai ứng dụng họ cách hiệu mạng lưới rộng lớn dễ dàng quản lý hệ thống Tuy nhiên ứng dụng Thin Client có vài nhược điểm mà người phát triển cần quan tâm lựa chọn lập trình cho hệ thống Ln ln phụ thuộc vào trình duyệt trình duyệt phải kết nối mạng liên tục thời điểm Điều có nghĩa người dùng lưu động khơng thể truy cập vào ứng dụng chưa kết nối mạng 15 Ngồi có số tính drag-and-drop, undo-redo, trợ giúp… khơng thực được, điều giảm tính hữu dụng ứng dụng Bởi hầu hết ứng dụng logic trạng thái nằm hết server ứng dụng khách thường xuyên phải gửi yêu cầu nhận đáp ứng từ server Việc xử lý logic client đẩy sang cho Server với số lượng lớn yêu cầu làm chậm hệ thống xấu gây sụp đổ hệ thống I.3.3 Khái niệm Smart Client Smart client kiểu ứng dụng tận dụng kết hợp đặc điểm tốt ứng dụng Rich Client Thin Client Tận dụng sức mạnh Client PC: ứng dụng chạy máy tính 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 ứng dụng chạy windows word, excel, outlook Vẫn chạy tốt dù có nối mạng hay không: giống cách thức MS Outlook hoạt động, 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 thực cần gửi/nhận mail hay cập nhật lịch làm việc Cài đặt cập nhật thông minh: ứng dụng tự động cập nhật thay đổi mà cần cho phép người dùng Điều giúp vượt qua vấn đề rắc rối từ trước tới desktop-application phải cài đặt lại máy client có thay đổi Smart Client thiết kế để kết hợp đặc tính tốt Rich Client Thin Client Với lợi mà ứng dụng Smart Client mang lại mở cho nhà phát triển hệ thống hướng lựa chọn công nghệ để áp dụng cho hệ thống Ứng dụng Smart Client có nhiều phần khác phụ thuộc vào phát triển doanh nghiệp, tổ chức Tuy nhiên, ứng dụng Smart Client nói chung bao gồm số tính thành phần sau: 16 - Sử dụng nguồn tài nguyên máy khách - Sử dụng nguồn tài nguyên mạng - Hỗ trợ làm việc online offline - Cung cấp việc cài đặt cập nhật thông minh - Cung cấp mềm dẻo đến 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ế ứng dụng Smart Client đảm bảo mang lại lợi tốt việc triển khai thao tác với ngơn ngữ lập trình, liệu, thực thi truy cập máy client Với giao diện ứng dụng máy bàn thân thiện tận dụng nguồn tài nguyên hệ thống máy khách, Smart Client mang lại lợi định so với ứng dụng Thin Client thông thường Trong dự án Smart Client, cho phép tích hợp với dự án ứng dụng thông thường khác phép giải công việc cách linh hoạt tận dụng lợi ứng dụng Smart Client trì dự án triển khai Như với việc ứng dụng Smart Client có khả làm việc máy bàn tận dụng 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 tài nguyên máy khách, giao diện thân thiện giúp ứng dụng Smart Client dễ chấp nhận với người sử dụng có thói quen sử dụng ứ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 dịch vụ liệu khác thơng qua hệ thống mạng Điều có nghĩa cho phép sử dụng nhiều dịch vụ khác truy lục vào nhiều sở liệu khác để phục vụ cho việc phân tán liệu dịch vụ 17 I.3.3.3 Hỗ trợ làm việc online offline Smart Client hỗ trợ tính giúp cho người sử dụng tiếp tục cơng việc kết nối mạng chuyển tử chế độ online sang chế độ offline Với ứng dụng di động giúp cho việc tối ưu hóa đường truyền việc kết nối để thực gửi yêu cầu nhận u cầu khơng diễn liên tục gây tình trạng chiếm tài nguyên đường truyền gây chậm mạng Cơ chế cho phép Smart Client làm thế? Trả lời câu hỏi Smart Client dùng Data Caching ứng dụng máy khách để lưu liệu truyền truyền về, điều giúp cho việc lưu liệu mềm dẻo nhanh việc truy cập từ liệu thực máy khách thay phải thực thường xuyên thực kết nối máy khách máy chủ để thực phiên truy cập Ví dụ cụ thể chứng minh khác biệt ứng dụng Smart Client ứng dụng khác: với ứng dụng Thin Client thông thường đặc điểm phải luôn kết nối đường truyền Khi đường truyền không liên tục tồn liệu lưu trữ Form bị Với Smart Client đường truyền bị gián đoạn, ứng dụng bị tắt thơng tin lưu trữ Form nguyên bật ứng dụng trở lại Bởi tồn thơng tin lưu trữ Data Caching lưu ổ cứng nhớ ngồi máy tính Client I.3.3.4 Cung cấp việc cài đặt cập nhật thơng minh Có số vấn đề sinh với ứng dụng Rich Client cài đặt, triển khai cập nhật Rất nhiều ứng dụng Rich Client có nhiều yêu cầu cài đặt nhiều mã thực thi file DLL, file đăng ký Registry cài đặt vào phía máy khách Điều làm tăng tính dễ vỡ ứng dụng khó khăn việc cập nhật ứng dụng Với ứng dụng Smart Client khác Chúng thiết kế để thuận tiện việc cài đặt cập nhật Việc cài đặt diễn theo nhiều cách mềm dẻo khác Điều giúp chúng tránh lỗi thường gặp triển khai cập nhật giúp giảm chi phí xây dựng bảo trị hệ thống xuống mức thấp 18 Có số cách để cài đặt ứng dụng smart client bao gồm việc đơn giản chép mã nguồn lưu vào máy người dùng tải mã chương trình từ trung tâm dịch vụ để sử dụng sử dụng dịch vụ cài quản lý việc cấu hình cài đặt máy khách Microsoft Systems Management Server (SMS) Microsoft Ứng dụng Smart client tự động cập nhật người dùng kích hoạt phần cài đặt đặt giống LiveUpdate Symantec Norton Antivirus Điều cho phép ứng dụng cập nhật phần cập nhật theo lộ trình định trước tùy chọn I.3.3.5 Cung cấp mềm dẻo đến thiết bị máy khách Trong nhiều trường hợp có ta phải thiết kế nhiều phiên Smart Client lúc Với tăng lên số lượng chủng loại thiết bị đầu cuối, yêu cầu phải đáp ứng mềm dẻo đến thiết bị đầu cuối cần thiết hệ thống muốn phát triển Với ứng dụng Smart Client ta thiết kế tùy biến để thực điều Smart Client cung cấp mềm dẻo tùy biến môi trường thiết bị đầu cuối, cho phép người sử dụng cấu hình ứng dụng để hỗ trợ tốt cho cách làm làm việc họ Smart Client không bị hạn chế máy để bàn máy cầm tay Smart client thiết kế để thích ứng với mơi trường máy chủ Cung cấp chức thích hợp tương ứng mơi trường máy khách mà cài đặt I.3.4 Các kiểu ứng dụng Smart Client Tùy vào phát triển tổ chức cá nhân mà Smart Client có thiết kế thực thi khác Cơ chế lắp ghép mềm dẻo Smart Client cho phép thực điều Tuy nhiên phân ứng dụng Smart Client thành loại lớn phụ thuộc vào môi trường cư trú chúng: - Ứng dụng Windows Smart Client 19 Ứng dụng loại xây dựng tảng Windows máy để bàn, cung cấp giao diện Windows Form Ứng dụng loại chủ yếu hệ thống quản lý quy trình tổ chức đó, ứng dụng xây dựng 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 luận văn thuộc ứng dụng loại Ví dụ ứng dụng loại Microsoft Outlook - Ứng dụng Office Smart Client Microsoft Office System 2003 cung cấp tảng hữu dụng mà dựa vào để dễ dàng xây dựng ứng dụng Smart Client Với ứng dụng loại Office Smart Client, ta tích hợp tài nguyên liệu truy nhập thông qua Web Service với tính Word 2003, Excel 2003, InfoPath 2003 để phát triển ứng dụng Microsoft Office hỗ trợ XML có khả tách liệu từ tài liệu sử dụng lại ứng dụng khác Và liệu Microsoft Office diễn tả cấu trúc ngữ pháp XML tích hợp với ứng dụng Smart Client Microsoft Office 2003 cung cấp số tính để xây dựng ứng dụng Smart Client: - Smart tags Được gọi 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 liệu Ví dụ thẻ thơng minh sử dụng để cung cấp trạng thái tài khoản sử dụng, hay trạng thái đơn đặt hàng,… - Smart documents Tài liệu thông minh cung cấp phương thức để người sử dụng tương tác với tài liệu nghiệp vụ Web Services Tài liệu thơng minh mơ hình giải pháp cho Word 2003 Excel 2003 chúng hiểu cấu trúc XML Task Pane Task pane sử dụng để hiển thị thông tin ngữ cảnh, công việc, công cụ, bước thực tiếp theo… Người sử dụng khởi tạo hành động cơng việc cách tác động đến task pane cho phép giải pháp nghiệp vụ cấu trúc 20 - Microsoft Visual Studio® Tools for the Microsoft Office System Cơng cụ thuộc tool phát triển để tạo quản lý mã nguồn ứng dụng Office Smart Client - Microsoft Office InfoPath™ 2003 InfoPath 2003 ứng dụng thu thập cấu trúc liệu từ người sử dụng cách sử dụng form giao diện InfoPath 2003 hỗ trợ XML Web Services, giao diện form windows hỗ trợ chuẩn cơng nghệ WSDL UDDI Tóm lại với đặc điểm ứng dụng Microsoft Office mã hóa hiểu cấu trúc liệu cho phép ứng dụng Smart Client tích hợp trở thành ứng dụng loại Office Smart Client - Ứng dụng Mobile Smart Client Ứng dụng Mobile Smart Client ứng dụng chạy thiết bị thông minh Pocket PCs, Smartphones thiết bị khác set-top boxes Các ứng dụng sử dụng NET Compact Framework phần NET Framework .NET Compact Framework có nhiều tính NET Framework hỗ trợ XML, hỗ trợ Web Services Ngồi 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 phát triển ứng dụng loại I.3.5 Lựa chọn Thin Client Smart Client Với dự án việc lựa chọn công nghệ quan trọng, nhiều cơng nghệ cao chưa hẳn phù hợp nhu cầu chi phí khơng phù hợp Vì việc lựa chọn công nghệ quan trọng định đến thành công dự án Bảng sau trình bày tính rút gọn Thin Client Smart Client: Tính Thin client Smart client Cung cấp giao diện Có, khó khăn Có, dễ dàng phát triển, 21 windows form thân thiện triển khai sửa lỗi, phụ kiểm tra sửa lỗi thuộc vào trình duyệt Có thể sử dụng tài ngun Có thơng phần cứng phía máy qua thành phần COM Có khách Có thể tích hợp với Khơng Có Có thể đa tuyến Khơng Có Có chức làm việc Khơng Có Khơng Có Có Có Khó hơn, phụ thuộc ứng dụng khác máy khách Offline Có thể thực mơi trường gián đoạn đường truyền Dễ dàng triển khai vào u cầu ứng dụng Có thể trì với chi phí Có Chưa biết trước Giá thấp thay đổi mã thành phụ thuộc vào nguồn ứng dụng yêu cầu ứng dụng Có thể triển khai Có, ứng dụng số lượng lớn máy khách Thin Client phức tạp yêu tất máy với môi trường đa dạng cầu cấu hình yêu cầu trình khách hỗ trợ NET duyệt Framework (bao gồm Có, triển khai NET Compact 22 Framework) I.4 Mơ hình kết hợp Web Services Smart Client Với khái niệm ban đầu Web Services Smart Client mục tơi đưa mơ hình kết hợp Web Services Smart Client Service Agent Service Proxy Service Agent Message Message XML Message XML XML Service Agent Service Proxy Service Agent Service Proxy Service Agent Smart Client (Máy bàn) Project Proxy (Máy bàn) Web services (Máy chủ) Service Agent Data base Hình 1.1 Mơ hình kết hợp Web Service Smart Client Trong mơ hình này, Smart Client ứng dụng cài đặt hệ thống máy để bàn Web services thiết kế server Ứng dụng Smart Client gửi 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, thao tác với sở liệu để trả kết cho Client thơng điệp XML Trong mơ hình này, tác dụng ứng dụng Smart Client: - Chứa giao diện người sử dụng - Thực thao tác đăng nhập kiểm soát hệ thống - Gửi yêu cầu lên máy chủ, nhận giá trị trả hiển thị Tác dụng Web services: - Chứa tất nghiệp vụ logic cần thiết mang tính chất dùng chung thao tác với hệ sở liệu 23 - Nhận yêu cầu phía máy khách - Xử lý yêu cầu, thao tác với sở liệu - Trả kết cho ứng dụng Client Ngồi theo mơ hình hình 1.1 có thêm khái niệm Proxy Proxy làm nhiệm vụ trung chuyển Smart Client Web services Khái niệm trình bày rõ chương 24 CHƯƠNG II CÔNG NGHỆ WEB SERVICES II.1 Mở đầu Web Services cung cấp tất dịch vụ để cung cấp cho ứng dụng phía máy khách Vậy Web Services lại làm Chương trình bày kiến thức kiểu kiến trúc thành phần Web Services Cuối chương phần quan trọng Web Services Software Factory, kiến trúc phần mềm Microsoft® patterns & practices đưa II.2 Mơ hình Web services II.2.1 Mơ hình tổng quan Web Service II.2.1.1 Vai trò web service Service Requestor ( yêu cầu dịch vụ) Discover Services (Khám phá dịch vụ) Invoke Service (Triệu gọi dịch vụ) Service Registry (Đăng ký dịch vụ) Service Provider (Cung cấp dịch vụ) Hình 2.1 Vai trị Web Services Service provider: Là nơi cung cấp dịch vụ Web Service Nó có nhiệm vụ thực thi dịch vụ triển khai dịch vụ Internet Service requestor: Là máy khách sử dụng dịch vụ Web Services Máy khách sử dụng dịch vụ web service cách tạo kết nối mạng chúng với Server gửi yêu cầu có định dạng XML đợi phản hồi từ phía Server 25 Service registry: Là thư mục kiểm soát logic dịch vụ Registry cung cấp nơi mà nhà phát triển cơng bố dịch vụ họ tìm kiếm dịch vụ tồn nhà cung cấp khác II.2.1.2 Các tầng giao thức web service Hiện tầng giao thức Web Service gồm có tầng cịn tiếp tục mở rộng tương lai: Service transport: Có nhiệm vụ vận chuyển thông điệp ứng dụng Hiện tầng bao gồm giao thức truyền thống HyperText Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP), giao thức 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ầng bao gồm XML-RPC SOAP Service description: Có nhiệm vụ mơ tả cổng kết nối đến Web Service Hiện dịch vụ mô tả thực thông qua Web Service Description Language (WSDL) Service discovery: Có nhiệm vụ kiểm soát dịch vụ Web Service Registry để nhà phát triển dễ dàng cơng bố tìm kiếm dịch vụ web service Hiện dịch vụ sử dụng thơng qua kênh Universal Description, Discovery, and Integration (UDDI) II.2.2 Mơ hình hướng dịch vụ Theo W3C có bốn mơ hình kiến trúc 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 ngun 26 - Mơ hình sách Bốn mơ hình có tương tác với nhau, ta quan sát hình Chính sách Mơ hình hướng sách Mơ hình hướng tài ngun Mơ hình hướng dịch vụ Hành động Tài ngun Mơ hình hướng thơng điệp Thơng điệp Hình 2.2 Bốn mơ hình kiến trúc Web Services Luận văn trình bày khái niệm bốn mơ hình, sau sâu vào phân tích mơ hình quan trọng nhất, 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 thông điệp, truyền tải thông điệp Tuy nhiên mơ hình khơng nói đến tham chiếu thông điệp lý truyền thơng điệp, khơng nói nhiều ý nghĩa Bản chất mơ hình hướng thơng điệp số khái niệm bao quanh thông điệp: Tác nhân gửi nhận thông điệp, cấu trúc thông điệp cung cấp tiêu đề, thân thông điệp chế sử dụng để phân phối thông điệp Và số chi tiết lược đồ mở rộng mơ hình cịn bao gồm nhiều khái niệm mối quan hệ 27 b) Mơ hình hướng dịch vụ Mơ hình lấy các dịch vụ hoạt động hệ thống làm trung tâm Mơ hình hướng dịch vụ mơ hình phức tạp tất mơ hình kiến trúc Web Services Tuy nhiên bao quanh số ý tưởng Một dịch vụ thực tác tử sử dụng tác tử khác Các dịch vụ làm trung gian điều kiện thông điệp trao đổi tác tử yêu cầu tác tử đáp ứng c) Mơ hình hướng tài ngun Mơ hình lấy tài nguyên trọng tâm Nó kế thừa từ khái niệm tài nguyên kiến trúc Web mơ tả tại: http://www.w3.org/TR/webarch/ mở rộng để kết hợp chặt chẽ mối quan hệ tài nguyên chủ sở hữu web services d) Mơ hình sách Mơ hình lấy ràng buộc hành vi tác tử dịch vụ làm trọng tâm Các sách áp dụng với tài nguyên Chúng áp dụng cho tác tử truy nhập vào tài nguyên, đặt nơi thiết lập người thiết lập nên tài ngun Các sách ban hành để mô tả vấn đề liên quan đến bảo mật, chất lượng dịch vụ, quản trị ứng dụng II.2.2.2 Mơ hình hướng dịch vụ (SOA) Web services đưa tài ngun thơng tin truy nhập thông qua Web ứng dụng khác trình giao tiếp dựa giao thức chuẩn Điểm khác biệt Web services ứ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) giao tiếp người-ứng dụng (browser) Web services thiết kế cho phép ứng dụng giao tiếp với mà không cần trợ giúp hay can thiệp người 28 Web services dựa nguyên lý thiết kế middleware thiết lập cho giao tiếp ứng dụng Các nguyên lý biết đến kiến trúc hướng dịch vụ Các hệ SOA trước kể đến RPC, RMI, DCOM, CORBA WSA (Web services Architecture) hội tụ kiến trúc SOA Web Web làm cho WSA độc lập hoàn tồn với tảng ngơn ngữ Web services triển khai ngôn ngữ nào, từ thiết bị nhỏ siêu máy tính Service Broker ( Mơi giới dịch vụ) Register Find Service Contract Service Consumer (Sử dụng dịch vụ) Client Bind Service Provider (Cung cấp dịch vụ) Servieces Hình 2.3 Mơ hình kiến trúc hướng dịch vụ Hình mơ tả mơ hình hoạt động SOA, tơi nói thành phần kiến trúc: Ba thành phần service provider (cung cấp service), service consumer (sử dụng dịch vụ) service broker (mơi giới dịch vụ) Phía service provider tạo service đưa đặc tả giao diện Sau đăng ký (register) dịch vụ với service broker Phía sử dụng dịch vụ (service consumer) truy vấn service broker để tìm service tương thích với Service broker cho service consumer biết nơi có dịch vụ đặc tả chi tiết dịch vụ Service consumer dùng đặc tả để kết gắn client đến service Để có hoạt động trên, hệ SOA phải cung cấp thành phần kiến trúc chức lõi sau: 29 Transport: thành phần đưa định dạng giao thức sử dụng để giao tiếp với service Định dạng liệu đặc tả kiểu liệu định dạng dịng liệu sử dụng để mã hóa liệu thơng điệp Có giao thức đặc tả kỹ thuật đóng gói liệu mã hóa thành thông điệp Giao thức giao vận đặc tả ngữ nghĩa ứng dụng điều khiển việc truyền thông điệp Description: thành phần đưa ngôn ngữ dùng để mô tả service Phần mô tả cung cấp thông tin cần thiết để kết gắn tới 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 hành vi, tham số định dạng thơng điệp mà trao đổi Một ngơn ngữ mơ tả định dạng mà máy hiểu xử lý compiler để tạo mã giao tiếp (communication code) client proxy, server skeleton, stubs, tie Các đoạn mã sinh tự động hóa việc kết nối mã ứng dụng tiến trình giao tiếp, cách ly chương trình khỏi phức tạp bên middleware Discovery: thành phần đưa kỹ thuật để đăng ký quảng bá service, để tìm dịch vụ mơ tả Các kỹ thuật Discovery sử dụng lúc compile runtime Có thể hỗ trợ kết gắn tĩnh hay động Các hệ SOA (SOA Systems) Phần lớn hệ Middleware phân tán cài đặ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ệ định nghĩa tập giao thức định dạng cài đặt phần chức lõi hệ SOA Một hệ SOA thường định nghĩa kỹ thuật gọi hàm (invocation) bao gồm giao diện lập trình ứng dụng tập ngôn ngữ kèm theo Chẳng hạn: 30 So sánh định dạng giao thức kiến trúc SOA Mỗi cơng nghệ middleware nói định nghĩa riêng tập định dạng giao thức chúng để tạo nên chức lõi hệ SOA Cách tiếp cận đảm bảo tính quán ứng dụng dùng chung middleware, lại rào cản ứng dụng sử dụng middleware khác Nó địi hỏi nhà cung cấp dịch vụ phải thống middleware Internet Middleware Có thể xem Web services dạng middleware – gọi Internet middleware Nhưng không giống hệ SOA trước đây, Internet middleware không yêu cầu tập giao thức hoàn toàn Giao thức mà Web services sử dụng chuẩn công nghiệp XML dùng định dạng liệu, dùng để tạo nên tất giao thức Web services khác Ngày nay, phần lớn hệ Internet middleware cài đặt sử dụng tập công nghệ lõi SOAP, WSDL, UDDI Các công nghệ định nghĩa kỹ thuật giao vận, mô tả, khám phá ( cách tương ứng) Mỗi công nghệ định nghĩa cài đặt XML Một lợi ích quan trọng sử dụng XML ứng dụng viết ngôn ngữ nào, chạy hiểu message, đặc tả, kỹ thuật khám phá Web services Công nghệ middleware 31 giao tiếp với Web services Mọi ứng dụng hiểu thơng điệp SOAP cách sử dụng công cụ xử lý XML chuẩn II.2.3 Kiến trúc Web Services Kiến trúc web services đưa tất đặc trưng tốt kiến trúc hướng dịch vụ Trong phần lớn hệ middleware, ba thành phần (Transport, description, discovery) kiến trúc WSA cài đặt tương ứng SOAP, WSDL, UDDI Hình sau minh họa nguyên lý hệ WSA sử dụng công nghệ Service Broker ( Môi giới dịch vụ) UDDI Inquiry find_xxx UDDI Publish saver_xxx WSDL Service Consumer (Sử dụng dịch vụ) XML Client SOAP Service Provider (Cung cấp dịch vụ) Servieces Hình 2.4 Kiến trúc SOA với SOAP, WSDL, UDDI UDDI registry đóng vai trị service broker Các thao tác đăng ký tìm kiếm cài đặt UDDI Inquiry UDDI Publish APIs Một tài liệu WSDL đặc tả chi tiết service, sử dụng để kết gắn client tới service Toàn chức giao vận thực nhờ SOAP Ta xem xét chức kiến trúc WSA II.2.3.1 Transport Thành phần định nghĩa định dạng giao thức dùng để giao tiếp client service Các định dạng WSA giao thức định nghĩa SOAP 32 giao thức mở rộng XML SOAP cung cấp 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 khung kết gắn trừu tượng cho phép thông điệp SOAP truyền nhiều giao thức giao vận bên Đặc tả SOAP định nghĩa giao thức kết gắn với HTTP, ngồi cịn có HTTPS, SMTP, POP3, IMAP, JMS giao thức khác Các thơng tin mở rộng thêm vào phần header thơng điệp SOAP Phần chứa thông tin bảo mật, thông tin liên quan, định phiên, thông tin quản lý II.2.3.2 Description Thành phần định nghĩa ngôn ngữ dùng để mô tả service Phía sử dụng service sử dụng thơng tin mô tả để kết gắn client tới service Ngôn ngữ mô tả WSA ngôn ngữ đặc tả WSDL Đó tập định nghĩa diễn đạt dạng XML Một tài liệu WSDL mô tả chức Web services, cách thức giao tiếp nơi giao tiếp với service Nhiều phần đặc tả Web services chia thành nhiều tài liệu để tăng tính linh động tái sử dụng Mơ hình sau ánh xạ phần đặc tả WSDL Abstract Interface Definition (What Part) Concrete Binding Definition (How part) Implementation Definition (Where part) Hình 2.5 Đặc tả WSDL với thành phần Một tài liệu thực thi WSDL dịch tạo client proxy để gọi Web services SOAP 33 Phần What: Phần What tài liệu WSDL mô tả trừu tượng giao diện Web services Về mơ tả kiểu dịch vụ Phần What định nghĩa giao diện logic bao gồm tập thao tác mà service thực Phần How: Phần How tài liệu WSDL đặc tả giao diện kết gắn tới giao thức cụ thể Việc kết gắn cho biết thông điệp cấu trúc thành RPC hay tài liệu Phần Where: Phần Where tài liệu WSDL mô tả cài đặt service Cài đặt service gồm hay nhiều cổng Mỗi cổng cài đặt kết gắn cụ thể giao diện trừu tượng Cổng đặc tả điểm truy cập dịch vụ Một người dùng đưa nhiều điểm truy nhập cho service cụ thể cổng cài đặt kết gắn khác Hình 2.6 Đặc tả WSDL với port II.2.3.3 Discovery Thành phần cung cấp cho việc đăng kí tìm kiếm service Trong WSA cài đặt dịch vụ discovery UDDI Có thể coi UDDI Web services, người dùng giao tiếp với UDDI việc sử dụng thông điệp SOAP UDDI quản lý thông tin kiểu dịch vụ, nhà cung cấp dịch vụ, cung cấp chế phân loại, tìm, kết gắn với service Các kiểu dịch vụ: Một kiểu dịch vụ, định nghĩa cấu trúc (construct) gọi tModel, định nghĩa service trừu tượng Nhiều nhà cung cấp cung cấp 34 loại service, tất hỗ trợ giao diện dịch vụ tModel cung cấp 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ý dịch vụ cung cấp Với service, nhà cung cấp dịch vụ cung cấp 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ý dịch vụ loại dịch vụ, nhà cung cấp phân loại dịch vụ (business, service, tModel) nhiều nguyên tắc phân loại Đặc tả UDDI định nghĩa tập 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 thêm vào registry để hỗ trợ việc phân loại tìm kiếm tập trung theo yêu cầu nhiều Tìm kiếm: Khi tìm kiếm dịch vụ, phía sử dụng dịch vụ truy vấn UDDI registry, tìm kiếm dịch vụ cần tìm Người dùng tìm kiếm registry theo kiểu dịch vụ nhà cung cấp dịch vụ, truy vấn chuẩn hóa số nguyên tắc Kết gắn tĩnh: Nhà phát triển kết gắn client tới service thời gian dịch thời gian chạy Bằng việc sử dụng phần How nhà phát triển biên dịch giao diện SOAP phía client 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 thêm vào ứng dụng client Kết gắn động: WSA hỗ trợ kết gắn động Chỉ sử dụng phần what WSDL thời gian biên dịch nhà phát triển tạo giao diện Client trừu tượng để làm việc với cài đặt loại service Trong chạy ứng dụng phía client biên dịch động phần Where WSDL (chứa phần How) tạo proxy động (dynamic proxy) cài đặt kết gắn Khám phá động: Vì UDDI Web services, ứng dụng truy vấn registry thời gian chạy, khám phá service động, định vị điểm truy nhập, nhận tài liệu WSDL, tất diễn thời gian chạy Phía client hiểu tài liệu WSDL để tạo lời gọi SOAP 35 II.3 Các thành phần Web Services Phần trình bày thành phần liên quan đến web Services đóng vai trị định hoạt động Web services II.3.1 XML: eXtensible Markup Language Trong hầu hết ngơn ngữ lập trình việc mơ tả cấu trúc 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 địa e-mail cá nhân mô tả ngôn ngữ java sau: Public class Memo { Public string to; Public string from; Public string cc; Public string subject; Public string body; } Nếu diễn đạt ngôn ngữ SQL sở liệu ta tạo bảng liệu Memo tương ứng sau: CREATE TABLE MEMO( to varchar(20), From varchar(20) Cc varchar(20) Subject varchar(50) Body varchar(200)); Còn nhiều cách biểu diễn cấu trúc khác áp dụng hệ quản trị sở liệu, trình ứng dụng Tuy nhiên, chúng khơng thống 36 thường có trình ứng dụng tạo định dạng cấu trúc liệu có khả xử lý cấu trúc liệu Nếu muốn chuyển đổi liệu qua lại trình ứng dụng thường phải qua cơng đoạn xuất (export) từ trình ứng dụng nhập (import) liệu lại vào trình ứng dụng khác Với điều kiện hai trình ứng dụng cho phép chuyển đổi nhập vào khuôn dạng liệu thích hợp XML (eXtensible markup language-tạm dịch ngôn ngữ định dạng mở rộng) đời nhằm giúp việc mô tả liệu trở nên đơn giản dễ xử lý XML mô tả liệu dựa việc dùng thẻ định nghĩa XML định dạng văn mềm dẻo đơn giản dựa chuẩn ngôn ngữ định dạng tổng quát SGML (Standard Generalized Markup Language) XML có vai trị ngày quan trọng việc trao đổi liệu web mơ hình khác HTML cho phép tạo nội dung trang web mà thường gặp Tuy nhiên HTML khơng cung cấp đủ khả khác ngồi việc tạo trang web HTML ngơn ngữ định dạng Ngôn ngữ định dạng tất dùng để mơ tả nội dung tài liệu HTML 1.0 bao gồm khoảng 10 thẻ định dạng Thế phiên HTML gần định nghĩa chứa 100 thẻ Nếu để xử lý liệu web với phát triển ứng dụng mạng rõ ràng 100 thẻ không đủ, tạo thẻ để sử dụng cho mục đích riêng Ví dụ, muốn xây dựng riêng mơ hình tàu thủy muốn trao đổi đặc tả tàu với đồng nghiệp? HTML không chứa thẻ đặc tả tàu với đồng nghiệp? HTML không chứa thẻ định nghĩa ,,, Như cần định nghĩa khai báo cấu trúc XML giải điều XML tảng công nghệ Web Services 37 II.3.2 SOAP: Simple Object Access Protocol SOAP (Tạm dịch giao thức truy cập đối tượng đơn giản) giao thức dựa tảng XML, Giao thức SOAP cho phép thành phần đối tượng ứng dụng Internet dễ dàng trao đổi với thông qua chuẩn giao thức HTTP Nói cách khác, SOAP giao thức xây dựng dựa giao thức có sẵn Nếu giao thức HTTP cung cấp chế gửi nhận (get/post) liệu thơ cách túy SOAP giúp nhận gửi liệu theo mơ hình XML có cấu trúc dễ xử lý Hiện SOAP dần trở thành tảng hệ điều hành windows phần định nghĩa quan trọng công cụ phát triển Visual Studio.net II.3.2.1 Những tính chất quan trọng SOAP Sau tính chất quan trọng SOAP - SOAP giao thức dùng để trao đổi thông tin trình ứng dụng - SOAP định dạng giúp cho việc truyền tải thông tin - SOAP thiết kế để giao tiếp thông qua Internet - SOAP platform độc lập - SOAP hoạt động dựa XML - SOAP mang tính đơn giản có khả mở rộng SOAP cho phép “vượt” tường lửa Ngày nay, vấn đề quan trọng việc phát triển ứng dụng giao tiếp với thông qua Internet Các ứng dụng giao tiếp với sử dụng RPC (Remote Procedure Calls) đối tượng giống DCOM CORBA HTTP khơng đáp ứng điều RPC thỏa mãn vấn đề tương thích bảo mật lại gặp rắc rối với firewalls proxy servers trình truyền tải 38 Vậy cách tốt sử dụng HTTP để giao tiếp ứng dụng HTTP hỗ trợ tất trình duyệt web, SOAP tạo để hoàn tất việc SOAP hỗ trợ khả giao tiếp ứng dụng chạy nhiều hệ điều hành, nhiều công nghệ nhiều ngơn ngữ lập trình khác Phiên SOAP 1.1 ban hành W3C vào tháng năm 2000 II.3.2.2 Cấu trúc SOAP Mỗi thông điệp SOAP thường file XML chứa thành phần sau: Envelope element: thành phần bắt buộc xác định tài liệu XML thông điệp SOAP Header element: thành phần tùy chọn chứa thông tin tiêu đề Body element: thành phần bắt buộc chứa thông tin gọi trả lời Fault element: thành phần tùy chọn cung cấp thông tin lỗi xảy q trình truyền thông điệp Các thành phần thiết lập nên namespace mặc định cho SOAP envelope : http://www.w3.org/2001/12/soap-envelope Và namespace mặc định cho SOAP encoding datatype là: http://www.w3.org/2001/12/soap-encoding Mơ hình SOAP message : 39 Thông điệp SOAP (là tài liệu XML) SOAP Part Vỏ bọc SOAP SOAP Header(có khơng) header header SOAP Body Nội dung XML SOAP Fault (Có thể có hay ko) Hình 2.7 Mơ hình SOAP 40 Có thể thấy SOAPMessage gồm phần : SOAPHeader SOAPBody Và phần đính kèm lựa chọn II.3.2.3 Vai trò SOAP hệ phân tán Giao thức SOAP giao thức quan trọng công nghệ Web Services Chúng ta thấy tầm quan trọng SOAP hệ phân tán qua phân tích sau: Lập trình triệu gọi đối tượng phân tán vấn đề quan tâm hàng đầu công nghệ thông tin Các đối tượng phân tán đối tượng cài đặt chạy máy chủ Internet triệu gọi phương thức thuộc tính máy tính chương trình người dùng cuối Đối tượng phân tán mở khả vô to lớn cho chương trình tích hợp với internet Đã có nhiều mơ hình đối tượng phân tán đời DCOM (Microsoft), RMI(Java), CORBA (Tổ chức corba)…Tất mơ hình có ưu điểm khuyết điểm riêng vấn đề then chốt tất mơ hình giao thức mà đối tượng trị chuyện trao đổi thơng tin với DCOM giao tiếp đối tượng DCOM windows, đối tượng RMI giao tiếp với đối tượng RMI giao thức JRMI với đối tượng JAVA, cịn Corba theo chuẩn ORB Các giải cách xây dựng tầng chuyển tiếp trung gian để đối tượng khác triệu gọi lẫn chúng không thuận tiện phải phụ thuộc vào môi trường cài đặt mơ hình firewall ngăn cách lời gọi đối tượng Các kiến trúc phân tán đối tượng thường dựa vào chế socket để mở kết nối mạng dựa vào số port 41 Web dịch vụ (HTTP) mở cổng 80 Và cổng 80 cổng phổ biến mở rộng rãi cho phép vượt qua hết firewall Và có giải pháp thuyết phục nhà quản trị mạng mở cổng Điều thật khó khăn Cũng có giải pháp khắc phục rào cản kiến trúc gọi đối tượng phân tán xây dựng tầng trung gian dựa giao thức HTTP, nhiên chúng chưa thức trở thành chuẩn Tất khó khăn nên giải tìm giao thức đơn giản chấp nhận rộng rãi tổ chức nhà phát triển HTTP XML ứng cử viên sáng giá cho lựa chọn Ngày Internet gắn liền với HTTP, XML trở nên thiếu với ứng dụng Internet Cả HTTP XML đơn giản không phụ thuộc vào tổ chức độc quyền Và SOAP=HTTP+XML đời để đáp ứng vấn đề SOAP khắc phục vấn đề tường lửa, SOAP định nghĩa cách gọi hàm, phương thức, thuộc tính đối tượng thơng qua XML truyền liệu theo giao thức HTTP Có thể dùng SOAP để triệu gọi đối tượng từ xa ví dụ sau IBM Nếu diễn đạt ngôn ngữ lập trình thơng thường u cầu gọi hàm GetStockPrice(“IBM”), gửi dạng XML 42 Trình chủ Server tiếp nhận yêu cầu triệu gọi hàm GetStockPrice trả kết giao thức SOAP dạng XML sau: 34.5 II.3.3 WSDL: Web Services Description Language II.3.3.1 Giới thiệu WSDL WSDL ngôn ngữ dùng để mô tả Web Services dựa ngơn ngữ tảng XML Nó sử dụng thẻ XML để định nghĩa Web Services, đồng thời cách truy cập sử dụng Web Services WSDL tự động sinh nhờ tiện ích kèm theo cơng cụ làm việc với Web Services Tài liệu WSDL định nghĩa thao tác dùng, định nghĩa chi tiết định dạng thông điệp truyền Web Services Sau đó, thao tác thơng điệp kết hợp, gắn với giao thức mạng hình thành nên điểm cuối giúp truy nhập Web Services vừa định nghĩa nên II.3.3.2 Cấu trúc WSDL Một tài liệu WSDL túy file XML đơn giản Nó chứa tập định nghĩa để xác định Web Services - definitions: Xác định tên service 43 - types: Mô tả loại liệu truyền - message: Xác định tên message truyền - portTypes: Xác định hoạt động - bindings: Xác định việc message truyền - Services: Xác định vị trí service Tài liệu WSDL [Types] {Messages} {Port Types} {Bindings} {Services} Hình 2.8 Cấu trúc WSDL Hình sau cho thấy ví dụ tài liệu WSDL mô tả Web Services: 44 45 Một tài liệu WSDL có thành phần sau: message: định nghĩa thông điệp sử dụng: bao gồm thông điệp gửi nhận types: kiểu liệu dùng Web Services Nó kiểu liệu có sẵn liệu người dùng tự định nghĩa nên operation: định nghĩa hành động hỗ trợ Web Services port: điểm cuối bao gồm kết hợp địa mạng liên kết gắn lên Các port hay điểm cuối làm cho giao tiếp ứng dụng client dễ dàng portType: tập thao tác hỗ trợ điểm cuối đó, port thường dùng để nghe tham chiếu tới thông điệp binding: rõ danh sách giao thức giao tiếp định dạng liệu cho portType Một binding xác định nơi mà thao tác truy cập dịch vụ sử dụng giao thức service: tập port định nghĩa dịch vụ.Web Services tập hợp port tái sử dụng 46 II.3.4 UDDI: Universal Description, Discovery and Integration Chuẩn UDDI, hay cịn gọi chuẩn dịch vụ tích hợp, khám phá mơ tả tồn cầu, hoạt động dịch vụ đăng ký định vị có khả xác nhận phân loại ứng dụng dịch vụ Web, giúp người sử dụng dễ dàng tìm thấy chúng mạng II.3.4.1 Khái niệm UDDI UDDI giao thức dựa XML, cung cấp danh bạ phân tán cho phép doanh nghiệp xem danh bạ internet khám phá dịch vụ khác Giống số điện thoại, doanh nghiệp xem tên, sản phẩm vị trí, dịch vụ web mà họ đề nghị Mặc dù UDDI chuẩn thơng qua, khơng ngừng cải tiến Có nhiều sản phẩm thương mại khác, biết đến công cụ quản lý Web services (Web services Management Tools) thực nhiều chức UDDI thêm vào số tiện ích đo đếm tra dịch vụ UDDI công cụ quản lý Web services giúp cho liên kết service ràng buộc mềm II.3.4.2 Những lợi ích UDDI Trong ngành cơng nghiệp hay thương mại thu lợi ích từ UDDI Trước có UDDI , khơng có chuẩn Internet để doanh nghiệp liên kết với khách hàng đối tác họ để thông báo thông tin sản phẩm dịch vụ Những vấn đề mà UDDI giải : - Giúp tìm hoạt động thương mại tốt từ hàng triệu hoạt động online - Giúp tìm hoạt động thương mại ưa chuộng 47 - Giúp doanh nghiệp phát triển số lượng khách hàng tăng cường mức độ truy nhập khách hàng - Giúp mở rộng thị trường - Đáp ứng nhanh chóng yêu cầu mà khách hàng cần loại bỏ rào cản cho phép hội nhập vào cộng đồng Internet rộng lớn Mô tả dịch vụ q trình giao dịch bn bán chế độ : đơn lẻ, chế độ mở mơi trường an tồn II.3.4.3 Ứng dụng UDDI Ví dụ ngành hàng khơng, thơng qua UDDI cho việc kiểm tra đặt chỗ chuyến bay, cơng ty hàng khơng đăng ký dịch vụ họ vào UDDI directory Các hãng du lịch tìm kiếm UDDI directory để tìm thông tin liên quan đến việc đặt chỗ công ty hàng không Khi thông tin tìm thấy, đại lý du lịch liên lạc với phận dịch vụ để tiến hành việc đặt chỗ cho khách hàng họ Hiện nhiều công ty tổ chức lớn hỗ trợ việc phát triển UDDI : Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP, and Sun II.4 Phát triển Web Services Phát triển ứng dụng dựa Web services đòi hỏi cách tiếp cận khác so với việc phát triển ứng dụng truyền thống Sau cách tiếp cận hướng dịch vụ phát triển ứng dụng II.4.1 Thiết kế Web services, phát triển hướng dịch vụ nói chung, yêu cầu tập trung nhiều vào khâu thiết kế Việc thiết kế ứng dụng xác định service, kiểu liệu, định dạng thông điệp, cách thức chúng tương tác với Thiết kế thường mơ 48 hình hóa dùng công cụ trực quan khác, Web services yêu cầu thiết kế phải diễn tả tài liệu WSDL Tài liệu WSDL liệt kê tất service kiểu liệu tạo nên ứng dụng (trong định dạng biểu đồ XML) Tài liệu WSDL giống file tiêu đề khai báo phương thức (method) kiểu liệu, không cài đặt chi tiết Thông thường, file WSDL đầu vào cho phát triển cơng cụ tích hợp để sau tạo thơng điệp thích hợp, mã hóa giao thức cầu nối Có nhiều cơng cụ chuyển file tiêu đề C++, file nguồn Java hay chí file CORBA IDL thành file WSDL Tuy nhiên điều thích hợp giai đoạn làm quen với WSDL; file WSDL nên tự biên tập dùng cơng cụ Điều WSDL chứa nhiều thơng tin chi tiết service file IDL, hay định nghĩa lớp C++ Java II.4.2 Triển khai Nhờ có tính dàng buộc mềm, Web services đưa nhiều giá trị business logic, không đoạn mã service cụ thể Chẳng hạn, client thực thi dịch vụ “checkCustomerCredit” Phía cung cấp dịch vụ gọi dịch vụ từ phần business để xác minh thẻ người dùng Một thay đổi đơn giản việc triển khai để gọi phần khác thay đổi hành vi service này, không thay đổi logic bên Chọn lựa service gọi theo trình tự thay đổi mạnh mẽ đến logic ứng dụng Trong trường hợp đơn giản nhất, Web services requestor gắn cố định từ nhà cung cấp dịch vụ (service provider) Tuy nhiên, ứng dụng Web services thiết kế tốt địa định bước triển khai, sử dụng file cấu hình, kỹ thuật định tuyến, hay chí UDDI server 49 II.4.3 Ưu điểm hạn chế Web Services II.4.3.1 Ưu điểm Tương thích: việc sử dụng XML làm định dạng thơng điệp sử dụng giao thức chuẩn để giao tiếp nên Web Services có khả tương thích cao với nhiều hệ thống nền, với nhiều ngôn ngữ khác Hiệu quả: Nhờ việc sử dụng Web Services nên công việc cần thực chia nhỏ thành đơn vị dịch vụ việc chia nhỏ hợp lý đem lại hiệu cho công việc chung Làm cho dễ dàng tích hợp thời điểm: Như trình bày trước,các Web Services định vị tích hợp cần Kể từ ứng dụng phân tán thông qua mạng, dịch vụ thành phần tích hợp chúng yêu cầu Giảm phức tạp: Các Web Services giảm phức tạp hỗ trợ đóng gói Các dịch vụ cung cấp cho người sử dụng khơng địi hỏi người dùng phải biết kiến trúc Web Services Người dùng tương tác thông qua giao diện dịch vụ Các tham số mà người dùng cần biết cách thực giao diện dịch vụ cung cấp Web Services Giải vấn đề tương tác với ứng dụng cũ: Các ứng dụng cũ thực thi Web Services cung cấp giao diện giúp hệ thống khác dễ dàng việc trao đổi thơng điệp II.4.3.2 Nhược điểm Những khó khăn phổ biến giải pháp dựa Web services là: Phân tích thơng điệp SOAP: Thơng điệp lớn thời gian cần thiết để phân tích dài 50 Chuyển đổi: Chuyển đổi đối tượng sang dạng XML ngược lại Cấu trúc thơng điệp phức tạp thời gian cần thiết để ánh xạ đối tượng lập trình thành tố XML lớn Khả xử lý WS-Security: có thêm XML Digital Signature XML Encryption Bảo mật ứng dụng đầu cuối cần thiết làm tăng đáng kể việc xử lý bên với yêu cầu dịch vụ Các chuẩn bảo mật phát triển phức tạp để áp dụng Việc có nhiều chuẩn chưa thống gặp nhiều khó khăn.Việc để lộ tất chức năng, định nghĩa Web Services làm giảm mức độ bảo mật hệ thống Hỗ trợ XML: Hiện có XML kỹ thuật làm tảng sở cho Web Services Nên việc hỗ trợ XML cần thiết với hệ thống hay ứng dụng muốn làm việc với Web Services Chi phí cho việc triển khai Web Services : Việc triển khai cho Web Services cịn cao Đó coi mặt hạn chế Web Services Tuy nhiên, mặt hạn chế có giải pháp để khắc phục II.5 Web Services Software Factory Web Service Sofware Factory thiết kế mẫu Microsoft® patterns & practices đưa Sử dụng Web Service Sofware Factory để xây dựng phát triển ứng dụng theo kiến trúc phân tầng mà cung cấp mang lại mốt số hiệu kể là: Nhất quán cấu trúc mã nguồn, không cần quan tâm nhiều đến lớp sở, giúp người phát triển tập trung vào nghiệp vụ logic, ngồi cịn giúp giảm bớt thao tác lập trình viết code phức tạp 51 II.5.1 Các thành phần Web Service Software Factory Kiến trúc Service Sofware Factory phần thành tầng rõ dàng Mỗi tầng có chức cấu trúc riêng - Service interface layer: có nhiệm vụ thực chức liên quan đến giao tiếp với dịch vụ cung cấp cho ứng dụng phía máy khách - Business layer: Cung cấp tính liên quan đến việc sử lý nghiệp vụ logic - Resource access layer: Cung cấp tính liên quan đến việc thao tác với hệ sở liệu Hình 2.9 Mơ hình phân tầng Web Services Software Factory Web Service xây dựng máy chủ nhằm cung cấp dịch vụ chung thao tác với sở liệu để cung cấp cho ứng dụng cài đặt máy khách.Với vai trò kiến trúc rõ ràng tầng ứng dụng làm cho công việc xây dựng phát triển người lập trình trở nên dễ dàng dễ dàng việc bào trì nâng cấp hệ thống 52 Các module mơ hình Web Services Software Factory chia thành module thực chức riêng biệt - Data types Định nghĩa cấu trúc liệu tạo nên mẫu liệu cho nội dung thông điệp - Message types Chúng sử dụng để chuyển data type đến đầu services - Service contracts Chúng xác định hoạt động mà dịch vụ hỗ trợ thơng điệp cần có để tương tác với hoạt động - Service implementations Chúng lớp NET Framework thực thi service contracts - Adapters Chúng triệu gọi hoạt động xử lý nghiệp vụ sau chúng chúng sử dụng EntityTranslator để chuyển đổi message types data types loại liệu yêu cầu hoạt động xử lý nghiệp vụ - Entity translators Chúng chuyển đổi message types data types business entities Entity chuyển đổi đối tượng kết hợp chặt chẽ tầng service interface business layers, thời điểm cung cấp kết hợp mềm dẻo hai tầng Điều có nghĩa có thay đổi từ tầng tầng cịn lại khơng có nghĩa bắt buộc phải thay đổi theo - Business actions Chúng cấu trúc hoạt động xử lý nghiệp vụ logic - BusinessEntity Đây lớp thực thể logic Nó miêu tả thực thể tham chiếu đến liệu bảng database - Repository Nó đối tượng trung gian sử dụng để hỗ trợ kết hợp business logic data access logic 53 II.5.2 Mơ hình hệ thống Trong mơ hình đưa hình 2.9 lớp có vai trị riêng nằm tầng ứng dụng riêng rẽ, chúng có mối liên hệ với chặt chẽ phù hợp với kiến trúc phân tầng ứng dụng Trong mục nói đến vai trò thành phần Ở với kiến trúc cụ thể bạn đọc có nhìn sâu sắc Web Services Software Factory Cấu trúc Web Services Software Fatory phân thành project nhỏ, quy định kiến trúc phần mềm Tên project khơng thể thay đổi suốt q trình phát triển hệ thống Và thông thường số giữ nguyên Bao gồm project sau: - SmartServices.DataAccess: thực chức giao tiếp với hệ sở liệu, chứa lớp repository - SmartServices.BusinessEntities: chứa thực thể bao cấu trúc liệu bảng View - SmartServices.BusinessLogic: thực chức nghiệp vụ xử lý chung Sử dụng repository để thực thi - SmartServices.Datatypes: Chứa datatype định nghĩa cấu trúc thông điệp - SmartServices.ServiceContracts: Chứa Message request response, định nghĩa tất cấu trúc liệu đầu vào trả dịch vụ Ngồi cịn chứa lớp giao diện lớp thực thi ServiceImplementation - SmartServices.ServiceImplementation: Chứa lớp thực thi dịch vụ định nghĩa ServicesAction Ngồi cịn chứa lớp Translator để chuyển đổi Entity thành Datatype ngược lại 54 - SmartServices.Host: Đây project Web Services, chứa dịch vụ đầu hệ thống cung cấp từ lớp thực thi dịch vụ ServiceImplementation Ngoài chứa file Web.config định nghĩa câu lệnh kết nối sở liệu GetAll Data GetAll Data GetOne Data Insert Data Update Data Delete Data Table Units View Adr&Units UnitID UnitID UnitName UnitName AddressID AddressID Type PhoneNumber GetOne Data Store Procedures Store Procedures Command Getall, GetOne, insert, Update, Delete Repository Command Getall, GetOne Entity tblUnits Entity viewAdr&Units Lớp chứa cấu trúc bảng Units Lớp chứa cấu trúc view Adr&Units Business Logic Translator Response DataType tblUnits DataType viewAdr&Units Lớp chứa cấu trúc bảng Units Lớp chứa cấu trúc view Adr&Units Định nghĩa tất liệu trả dịch vụ Response Định nghĩa tất liệu trả dịch vụ Service Emplementation Thực thi dịch vụ định nghĩa Service Contract Service Request Định nghĩa tất liệu đầu vào dịch vụ Update Response Định nghĩa tất liệu đầu dịch vụ Hình 2.10 Mơ hình kiến trúc Web Services Software Factory II.5.2.1 Hệ sở liệu Phần hệ sở liệu không thuộc vào hệ thống ứng dụng Yêu cầu: Hệ sở liệu SQL 2005 Với bảng View có Store Procedure thực thao tác cập nhật, sửa, xóa, thêm lấy liệu Và việc giao tiếp với 55 bảng phải thông qua Store mà không viết truy vấn thao tác trực tiếp với bảng liệu Câu lệnh kết nối sở liệu lưa file Web.config II.5.2.2 Repository Là nơi sử dụng Store Procedure hệ sở liệu để thao tác với hệ thống, liệu đầu vào trả Repository Entity Business Entity Các Repository có hàm Add(entity), GetAll, Delete, Update tương ứng với hàm Store Procedure hệ sở liệu Các hàm gọi đến lớp command tương ứng public void Add(tblAddress tblAddress) { tblAddressInsertFactory insertFactory = new tblAddressInsertFactory(); try { base.Add(insertFactory, tblAddress); } catch (SqlException ex) { HandleSqlException(ex, insertFactory); } } Lớp tblAddressInsertFactory thực giao tiếp với hệ sở liệu, chuyển đổi liệu trả kết cho ứng dụng Mẫu lệnh: DbCommand command = db.GetStoredProcCommand("dbo.InserttblAddress"); Mẫu lệnh trả liệu if(tblAddress.AddressLine != null) { 56 db.AddInParameter(command,"addressLine", tblAddress.AddressLine1); bType.String, } Bởi giá trị đầu vào đầu Repository Entity, phải có chế để chuyển đổi liệu trả cho Entity: public string MapDbParameterToBusinessEntityProperty(string dbParameter) { switch (dbParameter) { case "addressLine": return "AddressLine"; case "addressType": return "AddressType"; default: throw ArgumentException(string.Format(CultureInfo.CurrentCulture, GenericResources.InvalidParameterName), dbParameter); new } } II.5.2.3 Business Logic Business Logic lớp thực nghiệp vụ logic Chúng sử dụng dịch vụ mà Repository cung cấp để thao tác với hệ sở liệu Nếu có liệu đầu vào trả sau lớp Entity liệu hệ thống Nói thêm lớp Business Entity tầng chứa tất lớp thực thể mô tả cấu trúc liệu bảng View sở liệu Các thực thể mô tả cấu trúc liệu chưa chứa liệu II.5.2.4 Cấu trúc liệu nội dung thông điệp truyền Server-Client Các Entity thực thể chứa cấu trúc liệu, dùng tầng Business Layer Dữ liệu tầng Service Interface Layer datatype Datatype định nghĩa cấu trúc liệu thông điệp truyền Server-Client ngược lại Bởi vậy, lớp ứng dụng cao muốn sử dụng lớp xử lý nghiệp vụ mà Business Logic cung cấp phải có chuyển đổi liệu từ Datatype cho Entity Việc thực Translator 57 Trong ví dụ cập nhật liệu vào hai bảng Address University, ta thấy có liên quan đến hai bảng, hai thực thể hai datatype Trong nội dung thông điệp truyền phải chứa hai datatype truyền thông điệp hai lần Vấn đề truyền liệu hai lần gây chậm hệ thống dẫn tới xung đột chí phá hỏng hệ thống Do thiết phải có cấu trúc để chứa datatype Request Message lớp định nghĩa tất liệu đầu vào dịch vụ Bao gồm liệu hệ thống int, string,… tất datatype cần có // Request có chứa hai Datatype DocumentTblAddress // DocumentTblUniversityUnits public class Address_UniversityUnits_Request { private bool dataConnection; private SmartUniServices.DataTypes.DocumentTblAddress addressInputDataReq; private SmartUniServices.DataTypes.DocumentTblUniversityUnits universityUnitInputDataReq; private string unitID; private int addressID; } Tương tự Response Message lớp định nghĩa tất loại liệu kết trả dịch vụ // Response có chứa hai kiểu Datatype DocumentTblAddress // DocumentTblUniversityUnits public class Address_UniversityUnits_Response { private int ouputData; private SmartUniServices.DataTypes.DocumentTblAddress addressOuputDataResp; private SmartUniServices.DataTypes.DocumentTblAddress[] arrAddressOutputDataResp; private SmartUniServices.DataTypes.DocumentTblUniversityUnits universityUnitsOutputDataResp; private SmartUniServices.DataTypes.DocumentTblUniversityUnits[] arrUniversityUnitOutputDataResp; } 58 II.5.2.5 Service implementations Các thao tác dịch vụ tên hàm, liệu đầu vào, liệu trả định nghĩa Service Action [System.Web.Services.WebMethodAttribute(MessageName = "InsertData")] [System.Web.Services.Protocols.SoapDocumentMethodAttribute(Action = "http://SmartUniServices.ServiceContracts/2007/04/InsertData", ParameterStyle = System.Web.Services Protocols.SoapParameterStyle.Bare)] SmartUniServices.ServiceContracts.AddressResponse InsertData(SmartUniServices.ServiceContracts.AddressRequest InsertDataRequest); Các hàm thực thi Service Implementation cách gọi nghiệp vụ lớp business logic Public SmartUniServices.ServiceContracts.Address_UniversityUnits_Response InsertData(SmartUniServices.ServiceContracts.Address_UniversityUnits_Request InsertDataRequest) { Address_UniversityUnits_Response resp = new Address_UniversityUnits_Response(); resp.OuputData = 1; tblAddress _addressEntity = new tblAddress(); tblUniversityUnits _universityEntity = new tblUniversityUnits(); if (InsertDataRequest.AddressInputDataReq != null && InsertDataRequest.UniversityUnitInputDataReq != null) { // Chuyển đổi từ Datatype cho Entity _addressEntity = Translators.TranslateBetweenDocumentTblAddressAndtblAddress TranslateDocumentTblAddressTotblAddress(InsertDataRequest.AddressInputDataReq); // Chuyển đổi từ Datatype cho Entity _universityEntity =Translators TranslateBetweenDocumentTblUniversityUnitsAndtblUniversityUnits TranslateDocumentTblUniversityUnitsTotblUniversityUnits (InsertDataRequest.UniversityUnitInputDataReq); // Gọi business business.insertAddressAndUniversity(_addressEntity,_universityEntity); } return resp; } 59 CHƯƠNG III: KIẾN TRÚC ỨNG DỤNG SMART CLIENT III.1 Mở đầu Trong chương trình bày khái niệm ứng dụng Smart Client Đó kết hợp ưu điểm ứng dụng Rich Client Thin Client Trong chương với cơng cụ hỗ trợ lập trình Microsoft® patterns & practices tơi xây dựng mơ hình hồn chỉnh cấu trúc vấn đề kỹ thuật để phát triển dự án phần mềm với yêu cầu cụ thể môi trường cấu trúc mã nguồn Với phân tích thiết kế mẫu Smart Client Software Factory bạn đọc hiểu sâu kiểu kiến trúc Smart Client Smart Client chuẩn ứng dụng mà tổ chức phát triển Các công cụ hỗ trợ phát triển cho Smart Client Microsoft® patterns & practices đưa bao gồm: - Enterprise Library - Composite UI Application Block - Smart Client Software Factory - Ngồi cịn số cơng cụ khác hỗ trợ việc tạo module tự động hỗ trợ kiểm tra ứng dụng Guidance Automation Extensition hay Nunitnet III.2 Enterprise Library Enterprise Library thiết kế để đóng gói mẫu lệnh thực thi, trợ giúp tốt cho ứng dụng NET, giúp chúng dễ dàng phát triển chậy nhanh Về bản, Enterprise Library là: 60 - Là thư viện khối ứng dụng thực thi phục vụ cho mục đích phổ dụng - Là tập lớp trợ giúp làm việc kiểu kiến trúc - Kiến trúc Enterprise Library giúp tổ chức sử dụng, phát triển mở rộng theo ý muốn - Hồn tồn miễn phí Có thể vào địa http://msdn2.microsoft.com/enus/library/aa480453.aspx để tải phiên phiên khác Enterpise Library máy cài đặt Hình mơ tả thành phần Enterprise Library: Hình 3.1 Các thành phần Enterprise Library Enterprise Library cung cấp khối chức quan trọng sau: 61 III.2.1 Exception Handling Application Block Enterprise Library Exception Handling Application Block cung cấp cấu đơn giản cho phép kiểm sốt tồn ngoại lệ ứng dụng cách quán đơn giản Nó cho phép xác định trì sách quản lý ngoại lệ quán tất tầng ứng dụng Với Exception Handling Application Block, Application đặt câu lệnh kiểm soát try/catch tất class mà tạo xử lý ngoại lệ class cho dù xuất đâu ứng dụng Vì dễ dàng việc quản lý trì sách kiểm sốt ngoại lệ III.2.2 Logging Application Block Cung cấp mơ hình đơn giản để quản lý việc đăng nhập, người lập trình sử dụng khối ứng dụng để kiểm sốt thơng tin đăng nhập nhiều nơi ứng dụng kiện đăng nhập, E-mail, sở liệu, hay hàng đợi thông điệp… Bình thường phát triển ứng dụng người lập trình gặp nhiều khó khăn việc quản lý việc đăng nhập Nhưng với Logging Application Blog giúp cho việc xử lý trở nên đơn giản nhiều, người lập trình cấu hình thiết lập hành vi đăng nhập mà không cần tác động đến mã chương trình III.2.3 Data Access Application Block Enterprise Library Data Access Application Block làm cho việc truy cập sở liệu trở nên đơn giản nhiều Nó cung cấp hầu hết tính ADO.NET hỗ trợ sở liệu Microsoft SQL Server, Microsoft SQL Server CE, Oracle Ở chương sau nói mơ hình hệ thống tơi trình bày kỹ mơ hình truy cập sở liệu Smart Client Việc đọc ghi liệu hỗ trợ thông qua nhiều tầng ứng dụng phân cấp rõ ràng Điều giúp thực tầng chức rõ ràng, chun mơn hóa thuận tiện việc bảo trì nâng cấp hệ thống sau 62 III.2.4 Caching Application Block Được dùng để tạo quản lý vùng đệm liệu cho ứng dụng Caching Application Block hỗ trợ tạo vùng đệm nhớ ngồi máy tính, file lưa ổ cứng sở liệu máy Khi có sử dụng Caching, liệu khơng làm truyền trực tiếp từ máy chủ đến ứng dụng máy khách mà việc gửi nhận liệu thực thông qua Cache đặt máy khách Vì ứng dụng làm việc online, offline trí làm việc điều kiện băng thông mạng không ổn định liên tục III.2.5 Cryptography Application Block Việc phát triển ứng dụng với chức mã hóa thơng tin ngày trở thành nhu cầu tất yếu Tuy nhiên, người lập trình thường gặp khó khăn cơng việc tương tự phát triển ứng dụng họ Với khối ứng dụng mã hóa này, cho phép phát triển ứng dụng có kết hợp tính mã hóa giải mã Ứng dụng sử dụng khối để mã hóa thơng tin, tạo hàm băm từ liệu, so sánh giá trị băm với giá trị thẩm định để xem xét xem có thay đổi thơng tin khơng Nó làm giảm bớt cho việc viết mã chương trình, cung cấp tính mã hóa chuẩn để trợ giúp người lập trình, giúp họ tập trung vào việc xử lý nghiệp vụ Giúp trì sách mã hóa hệ thống quán III.2.6 Security Application Block Giúp người phát triển thực chức có liên quan đến việc phân quyền ứng dụng Ứng dụng sử dụng khối để hỗ trợ việc phân quyền che giấu việc phân quyền người sử dụng phân quyền liệu Cùng với tính Microsoft NET Framework 2.0, người phát triển thực thi chức bảo mật phổ dụng cách dễ dàng // Ví dụ sử dụng chức hỗ trợ phân quyền enterprise library IPrincipal principal = new GenericPrincipal(new GenericIdentity("Username"), new string[]{"Manager"}); 63 IAuthorizationProvider ruleProvider = AuthorizationFactory.GetAuthorizationProvider("RuleProvider"); // xác định xem người dùng in tài liệu không bool authorized = ruleProvider.Authorize(principal, "Print Document"); III.3 Composite UI Application Block (CAB) Composite UI Application Block Farmework dựa Net 2.0 phát triển patterns & practices để trợ giúp người việc xây dựng giao diện UI phức tạp sử dụng WinForms CAB cung cấp chức sau giúp dễ dàng việc thiết kế triển khai ứng dụng Smart Client: - Tự động tải module độc lập vào shell - Tạo giao tiếp mềm dẻo module modules cịn lại - Vẫn sử dụng mẫu lệnh thực thi bình thường - Dựa thực thi lớp mẫu Model-View-Control (MVC) - CAB cung cấp dải dịch vụ: dịch vụ bắt lỗi ngoại lệ, dịch vụ phân quyền, module hóa, module tải dịch vụ CAB xây dựng cho việc thiết kế ứng dụng dựa việc tiếp cận với việc phân chia sử dụng rõ ràng, sử dụng lớp controller presenter Ở client, dịch vụ thêm vào suốt với dịch vụ mà CAB cung cấp Bảng tóm tắt phần có liên quan quan trọng kiến trúc CAB Class / Term Description, Purpose WorkItem Nhìn từ góc độ kỹ thuật, WorkItem nơi chứa đựng đối tượng quản trị, cần thiết để thực công việc trạng thái đối tượng, view, lớp presenters/ controller lệnh để khởi chậy hoạt 64 động Cao WorkItem lớp logic đóng gói thiết kế cho trường hợp sử dụng Nó nhìn nhận trường hợp sử dụng controller Mỗi trường hợp sử dụng có tương ứng WorkItem, đại diện cho trường hợp sử dụng thao tác với tất hoạt động ngồi Ví dụ, WorkItem nắm giữ trạng thái tất các phần có liên quan đến trường hợp sử dụng, việc hiển thị presenter, trường hợp sử dụng Service Trong ứng dụng Smart Client, tính đóng gói dịch vụ hay sử dụng với module xác định cho WorkItem phân cấp WorkItem(ví dụ, cho Sub-WorkItem ứng ) Một dịch vụ dịch vụ bảo mật cho việc xác thực, dịch vụ Web Services khả làm việc offline, dịch vụ chuyển đổi kiểu liệu… Module Sự đa dạng, logic có liên quan đến WorkItem tổng kết vào khối đơn Một module ví dụ khối triển khai Cấu hình Smart Client dựa lớp module CAB cung cấp ProfileCatalog Profile Catalog file cấu hình, rõ modules dịch vụ cần thiết để load vào ứng dụng Mặc định, profile catalog file có định dạng XML File XML này, rõ module cần để thiết để tải vào ứng dụng 65 ModuleLoader Đây dịch vụ tổng quát cung cung cấp CAB, chịu trách nhiệm tải tất module phù hợp vào Profile Catalog Nó xun suốt cấu hình Profile catalog, tải động assmebly vào catalog tìm lớp ModuleInit tương ứng với assembly ModuleInit Mỗi module bao gồm lớp ModuleInit, có nhiệm vụ tải tất dịch vụ WorkItem module cung cấp Vì trước sử dụng dịch vụ module, dịch vụ cần đăng ký với WorkItem, khơng chậy dịch vụ báo lỗi Shell application Ứng dụng Shell ứng dụng chính, có nhiệm vụ khởi tạo ứng dụng, load động module dựa cấu hình khởi chạy dịch vụ sở cho ứng dụng smart client Shell Shell form ứng dụng smart client Nó cung cấp giao diện người sử chủ yếu để load động module Shell WorkItem gốc phân cấp WorkItem, đầu vào tất phần khác ứng dụng, dịch vụ, modules WorkItem tạo đăng ký Workspace Một workspace điều khiển chịu trách nhiệm nắm giữ hiển thị yếu tố liên quan đến giao diện sử dụng tạo WorkItem Thường workSpaces thêm vào Shell(hoặc views mở rộng với phân cấp workitem) hoạt động nơi chứa phần UI điền đầy với UI item mà cung cấp WorkItem Sub-WorkItem Bất kỳ User 66 control workspace cách thực thi giao diện IWorkspace Ngồi ra, CAB cịn bao gồm lớp container control tabbed workspace UIExtensionSite UIExtensionSites nơi lưu giữ riêng biệt dùng cho việc mở rộng phần cố định Shell menu, tool strips status strip Chúng mở rộng cách thêm vào thực thể Command Command lớp sở CAB dùng để thực mẫu lệnh CAB hỗ trợ lớp lệnh tạo bình thường thao tác thủ công lệnh thực thi thuộc tính đến phương thức [CommandHandler], thuộc tính hoạt động điều khiển lệnh Ta đăng ký lời triệu gọi lệnh thay cho kiện kích chuột cho điều khiển EventPublication EventPublications sử dụng việc công bố kiện cho việc kết hợp kiện mềm dẻo với Một công bố kiện thực thi kiện suốt với kiện NET Framework, rõ ràng với thuộc tính [EventPublications] Sự kiện xác định kiện URI(chuỗi nhất) Chỉ có đăng ký sử dụng dịch vụ thuê bao với kiện URI tương tự thông báo CAB Một đăng ký cần thiết phải có thuộc tính với chữ ký giống kiện sử dụng [EventPublication] cần thiết phải khai báo rõ ràng với thuộc tính [EventSubscription] EventSubscription EventSubscription đối lập với EventPublication Bất kỳ lớp 67 muốn đăng ký kiện với kiện URI xác định cần phải thực thi kiện handler, khớp thuộc tính chữ ký EventPublication Ta cần phải đánh dấu kiện handler với thuộc tính [EventSubscription] cơng bố kiện ERI( thuộc tính khởi tạo ) CAB đảm bảo đăng ký thông báo công bố kiện với việc khới kiện URI đăng ký thuộc tính Model Model thực thể xử lý nghiệp vụ quy trình WorkItem View View user control NET Framework thơng thường, có nghĩa vụ diễn tả phần toàn model cho phép người dùng sửa đổi nội dụng với điều khiển SmartPart Một SmartPart user control NET Framework , với thuộc tính ứng dụng [SmartPart] Một SmartPart thực thi giao diện ISmartPartInfoProvider Ví dụ, cung cấp thêm thơng tin nó, tiêu đề phần mô tả Controller Controller lớp, thực thi logic cho việc sửa đổi model Một Controller sửa đổi model nhiều view ObjectBuilder ObjectBuilder thành phần foundation CAB, hoạt động Factory cho việc tạo đối tượng cần để xây dựng nên tính ban đầu hành động Ví dụ ObjectBuilder phối hợp quy tắc 68 factory, chèn framework tạo chiến lược framework Dependency Dependency Injection kiểu cho phép Factory tự Injection động tạo khởi tạo thuộc tính thành viên đối tượng với đối tượng phụ thuộc ObjectBuilder cấp chức năng Hiểu phần vai trò CAB điều quan trọng cho thiết kế Smart client dựa CAB Bạn đọc tìm hiểu thêm tài liệu CAB MSDN III.4 Smart Client Software Factory Smart Client Software Factory tích hợp công cụ, pattern, source code đề quy định cho phát triển ứng dụng smart clients Như ứng dụng phát triển theo cơng nghệ smart client có lợi sau: - Được cung cấp chuẩn để phát triển ứng dụng - Tăng tính hữu dụng kiến trúc patterns components - Ẩn dấu phức tạp - Cho phép nhà phát triển ứng dụng tập trung vào vấn đề thực doanh nghiệp thay phải quan tâm đến thành phần nhỏ ứng dụng mà đc hỗ trợ đầy đủ smartclient Smart Client Software Factory điểm bắt đầu ứng dụng bạn tạo Nó cung cấp sở sử lý cấu thành phần cho ứng dụng smartclient phức tạp Nó bao gồm kiểu mẫu (patterns) Model-View-Presenter (MVP) Asynchrononous Web Service Invocation với Timeout; cung cấp cách tạo Smart Web References, cách tích hợp Business Entities vào User Interface Elements; 69 Ngoài cịn cấp hướng dẫn để phát triển ứng dụng Guidance Automation Toolkit Guidance Automation Extensions Ta tùy chỉnh ứng dụng bạn với mở rộng ý muốn Ta thêm pattern mình, mở rộng guidance để phù hợp với nhu cầu tổ chức Mặc dù CAB cung cấp cách đầy đủ cấu trúc Với CAB yêu cầu nhà phát triển hoàn thành bước tạo lớp kế thừa từ lớp sở WorkItem để tạo trường hợp sử dụng controller tạo lớp Controller, Views, Model Smart Client Software Factory (SCSF) mở rộng với Visual Studio 2005 Professional (hoặc phiên sau) cung cấp tính cho phép tự động tạo thêm module theo chuẩn có sắn Tự động thực công việc SCSF dựa Guidance Automation Extensions, cung cấp nhóm Microsoft patterns & practices SCSF cung cấp nguyên tắc cho CAB dựa smart client việc tự động tạo module trường hợp sử dụng Controller việc thêm vào kiện publications subscriptions Class / Term WorkItemController Mô tả, mục đích Một WorkItemController lớp giới thiệu SCSF, đống gói khởi tạo logic phổ dụng cho WorkItem Khi tạo WorkItem với SCSF, thay kế thừa trực tiếp từ mọt lớp sở WorkItem, ta kế thừa từ lớp để lấy khởi tạo logic ControlledWorkItem Nó lớp trìu tượng cho việc tạo WorkItem dựa WorkItemController Nó khởi chạy thêm thực thể khởi tạo cung cấp WorkItemController 70 ModuleController Lớp ModuleController sử dụng cho việc đóng gói WorkItem đặc biệt với module Mặc định ModuleInit thực thi module tạo với SCSF tự động với WorkItem với tên ModuleController Mặc dù vậy, ModuleController thực thể cho tất WorkItem cung cấp module Presenter Presenter lớp thực thi logic cho SmartPart (view) đơn Presenter dựa mẫu Model-View-Presenter (MVP), sở biến thể đơn giản mẫu Model-View-Controller (MVC) Sự khác biệt lớn MVP MVC với MVP, View hoàn toàn bị khiển hoàn chỉnh presenter, MVC, controller model cập nhật view III.4.1 Mơ hình hệ thống Smart Client Software Factory Trong cấu trúc Web Services Software Factory có cố định project Nhưng với Smart Client Software Factory có số project cố định cịn phát triển ứng dụng phải thêm project vào dự án 71 Service Proxies Services Request Định nghĩa tất liệu đầu vào dịch vụ Translator DataType tblUnits Lớp chứa cấu trúc cua du services Translator Response Định nghĩa tất liệu đầu dịch vụ Translator DataType tblUnits Request Phía Client Response Lớp chứa cấu trúc bảng Units Phía Client Service Agent Translator Services Translator Presenter IView View Shell Form Hình 3.2 Mơ hình Smart Client Software Factory Cấu trúc khung hệ thống gồm project có tên khơng thay đổi: - Infrastructure.Interface Project chứa lớp giao diện cho module Infrastructure chứa đựng thành phần mà cung cấp cho moduel khác ứng dụng Nó bao gồm giao diện dịch vụ, định nghĩa hằng, lệnh, thực thể business(chỉ thực thể dùng chung module), thành phần chia sẻ khác lớp phục vụ mục đích dùng chung… 72 - Infrastructure.Layout Project module, cung cấp view để định nghĩa layout shell - Infrastructure.Library Project chứa ác thành phần thực thi thuộc ứng dụng Smart client - Infrastructure.Module Project module Composite UI Application Block(CAB) Nó hoạt động nơi chứa thực thi thành phần chia sẻ project ứng dụng Khi tạo ra, module rỗng Ta cần sửa đổi để chứa thực thi thành phần mà module khác ứng dụng sử dụng dịch vụ chẳng hạn - Shell Shell Project mà SCSF tạo tạo solution Theo mặc định Shell project đầu solution Shell Form Form ứng dụng Tại có layout phân vùng định nghĩa giúp cho người dùng add thêm module III.4.2 Các thành phần Smart Client Software Factory III.4.2.1 Service Proxies Trong mơ hình này, từ lớp phía ứng dụng Service Proxies chứa dịch vụ kiểu liệu định nghĩa Web Services tải Ở kiểu liệu DataType, Request Response Các kiểu liệu gọi kiểu liệu Services Nói riêng Service Proxy, việc đồng giao tiếp ứng dụng web service quan trọng Người sử dụng phải đợi web service xử lý trả kết Do ứng dụng cần phải tạo time-out hỗ trợ thực thi khơng đồng 73 service.Web proxy tạo Visual Studio Add Web referent vào Project Nhưng mơ hình ta sử dụng Add Smart Web Referent Client không gọi trực tiếp lớp proxy mà lại lớp “smart” proxy Smart proxy giải vấn đề thực thi không đồng service Hình 3.3 Vai trị ServiceProxy hệ thống Quan sát hình để thấy vai trị ServiceProxy giao tiếp ClientServer Các tầng ứng dụng Client không gọi trực tiếp dịch vụ Web Services mà phía Server cung cấp, chúng gọi dịch vụ thơng qua ServieProxy Proxy nơi trung chuyển dịch vụ chuyển yêu cầu từ client lên server trả kết trả từ Server cho phía Client III.4.2.2 Services Agent Ở tầng cao hơn, Services Agent nơi sử dụng dịch vụ mà Services cung cấp Khái niệm Service agent không xác định ứng dụng smart client Nó thành phần mở rộng ứng dụng mà sử dụng dịch vụ (bình thường, services Web Services, thiết kế áp dụng cho loại dịch vụ khác nữa) Sevice agent cung cấp lớp trìu tượng dịch vụ thực thi tập tính năng, có khả làm cho việc sử dụng dịch vụ cách hiệu thuận tiện Trong ứng dụng smart client, ta đăng ký Service agent dịch vụ WorkItem, thể hình 74 Hình 3.4 Vai trò Service Agent Khi phát triển dự án người phát triển sử dụng Service Agent để mở rộng chức cung cấp dịch vụ, Service proxies Service agent nơi thuận tiện để thực thi loại dịch vụ logic sau: - Offline logic - Service location logic, trường hợp nơi có dịch vụ cung cấp đến điểm đầu cuối - Thực xác thực thông điệp logic - Data mappings datagrams business entities sử dụng ứng dụng - Data validation logic (kiểm tra tính hợp lệ liệu) - Security logic, việc mã hóa phân quyền - Kiểm sốt ngoại lệ - Data caching logic - Sự phối hợp logic phần Quan sát lại mơ hình hệ thống Client hình 3.4, mơ hình đó, Web services định nghĩa riêng loại liệu sử dụng dịch vụ chúng Đó kiểu 75 liệu đầu vào Request, liệu trả Respont kiểu liệu hai loại sử dụng Datatype Ba loại đã nói đến phần ứng dụng phía Server Chúng gọi liệu service Ba loại liệu tải Proxy Add Smart Web Referent vào project proxy Ở phía client định nghĩa ba kiểu liệu tương ứng với ba kiểu dứ liệu service Chúng sử dụng tầng ứng dụng Bởi phải có chuyển đổi hai kiểu liệu Client Service Công việc giao cho translator Dưới lấy ví dụ translator hai kiểu Request Client Service // - Lớp translate hai kiểu liệu Request Client Và Service public class TranslateAddress_UniversityUnitRequest : EntityMapperTranslator { // - Hàm BusinessToService chuyển liệu từ Client thành Dữ liệu Service protected override ServiceEntity.Address_UniversityUnits_Request BusinessToService(IEntityTranslatorService service, ClientEntity.Address_UniversityUnits_Request value) { ServiceEntity.Address_UniversityUnits_Request to = new ServiceEntity Address_UniversityUnits_Request(); // to.AddressID = value.AddressID; // to.DataConnection = value.DataConnection; // if (value.AddressInputDataReq != null) { to.AddressInputDataReq = TranslatorsAddress.ClientToServices(value.AddressInputDataReq); } else { to.AddressInputDataReq = null; } // -if (value.UniversityUnitInputDataReq != null) { to.UniversityUnitInputDataReq = TranslatorsUniversityUnits.ClientToServices(value.UniversityUnitInputDataReq); } else { 76 to.UniversityUnitInputDataReq = null; } return to; } Các lớp phải viết theo cấu trúc EntityMapperTranslator và, chúng sử dụng Services Agent Và trước gọi dịch vụ thơng qua Services Agent phải đăng ký translator với lớp Module.cs Việc đăng ký thực sau: [InjectionConstructor] public Module ( [ServiceDependency] WorkItem rootWorkItem, [ServiceDependency] IEntityTranslatorService translator ) { _rootWorkItem = rootWorkItem; _translator = translator; } // đăng ký Tranlator -public override void AddServices() { base.AddServices(); _translator.RegisterEntityTranslator(new Services TranslateAddress_UniversityUnitRequest()); } Trong Service Agent có hai lớp IServiceAgent ServiceAgent // Lớp IserviceAgent chứa lớp giao diện dịch vụ namespace IAddress_UniversityUnits_ServiceAgentCallbacks { public delegate void InsertData(bool success, Address_UniversityUnits_Response returnValue); } public interface IAddress_UniversityUnits_ServiceAgent : IDisposable { void InsertData(Address_UniversityUnits_Request Address_UniversityUnits_Request,IAddress_UniversityUnits_ServiceAgentCallbacks.InsertData callback); } 77 // Lớp ServiceAgent sử dụng translator để chuyển đổi liệu client thành // server sử dụng dịch vụ từ Proxy partial class Address_UniversityUnits_ServiceAgent : IAddress_UniversityUnits_ServiceAgent { private Address_UniversityUnits_ServicesService.IAddress_UniversityUnits_ServicesProxy _serviceProxy; private IEntityTranslatorService _translator = null; [ServiceDependency] public IEntityTranslatorService Translator { get { return _translator; } set { _translator = value; } } public void InsertData(Address_UniversityUnits_Request Address_UniversityUnits_Request,IAddress_UniversityUnits_ServiceAgentCallbacks.InsertData callback) { _serviceProxy.InsertData(TIMEOUT, Translator.Translate(Address_UniversityUnit s_Request), delegate(bool success, Address_UniversityUnits_ServicesService.Address_UniversityUnits_Response returnValue) { callback(success, Translator.Translate(returnValue)); }); } 78 III.4.2.3 Các lớp giao diện – mơ hình Module-View-Presenter Shell Form Menu ToolStrip Module IView Thêm Menu Thêm ToolStrip View Presenter Services Agent Module Translator WorkSpace StatusStrip Module Controller Thêm View Services Thêm trạng thái Hình 3.5 Các lớp giao diện Shell Form đóng vai trị nơi chứa giao diện làm việc ứng dụng, nơi mà người sử dụng giao tiếp sử dụng dịch vụ mà ứng dụng mang lại Shell Form chứa View, hay nói cách khác View tải vào khơng gian làm việc Shell Form khởi tạo ứng dụng có triệu gọi Cấu trúc Shell định nghĩa Infrastructure.Layout.ShellLayoutView Theo mặc định giao diện gồm phần: - Menu: Nơi chứa chức menu hệ thống - ToolStrip: nơi chứa IconStrip - StatusStrip: trạng thái, hiển thị trạng thái View - WorkSpace: Nơi chứa View, hiển thị giao diện giao tiếp với người sử dụng cuối Thơng thường có hai WorkSpace: WorkSpace trái WorkSpace phải 79 Theo mơ hình Smart Client, việc thêm dịch vụ view vào Shell Form giao riêng cho module Cơ chế tải dịch vụ load view thực sau: Module đăng ký file thực thi module.dll với ProfileCatalo.XML Module tải biểu tượng view vào Shell Form, việc thực lớp ModuleController private void AddServices() {} private void ExtendMenu() {} private void ExtendToolStrip() {} private void AddViews() { SPM_AdministrativeUnit _spm_administrativeUnit = WorkItem.SmartParts.AddNew(); WorkItem.Workspaces[WorkspaceNames.RightWorkspace] Show(_spm_administrativeUnit); WorkItem.SmartParts.Remove(_spm_administrativeUnit); } Khi Load Shell Form, tải file thực thi module, có chế để đọc hàm để tải vào Shell Form View UserControl, nơi hiển thị công việc cần thực Tại View gọi nghiệp vụ Presenter Nếu có kết trả cho view, Presenter gọi trực tiếp trở lại View mà phải thông qua lớp Iview lớp giao diện View Từ Presenter gọi dịch vụ mà Services Agent cung cấp 80 public void OnInsertAddress_University(Address_UniversityUnits_Request _Rep) { _IAd_Uni_Agent.InsertData(_Rep, delegate(bool sussecs, Address_UniversityUnits_Response _resp) { if (sussecs) View.OnResult("Thêm thành công"); else View.OnResult("Thêm thất bại"); } ); } 81 CHƯƠNG IV: THẺ TỪ IV.1 Mở đầu Thẻ từ loại thẻ mà có dải băng từ (magnetic stripe), giống băng Casset , băng Video Dải băng từ có từ tính thiết bị đọc ghi thẻ thay đổi nội dung liệu thẻ Có hai loại thẻ từ: - Thẻ từ có mật độ từ cao (hi-co) - Thẻ từ có mật độ từ thấp (lo-co) Để mã hóa thẻ từ hico người ta phải dùng nhiều lượng so với thẻ từ loco thơng tin lưu dải từ hico khó bị phá huỷ vơ tình thẻ từ để gần vật có từ tính nam châm, đài, ti-vi Nhưng để đảm bảo an toàn, người ta thường để thẻ từ ( thẻ chấm cơng, thẻ ATM, thẻ chìa khóa…) tránh xa thiết bị sinh từ tính Có thể ứng dụng cơng nghệ thẻ từ cho chương trình phát hành thẻ như: - Thẻ ATM - Thẻ khách hàng - Thẻ chấm cơng - Thẻ chìa khóa 82 Hình 4.1 Minh họa thẻ từ Hình minh họa thẻ từ thông thường nhựa, có dải băng từ (magnetic stripe) Dải băng từ có từ tính thiết bị đọc ghi thẻ thay đổi nội dung liệu thẻ Có hai loại thẻ từ thẻ từ có mật độ từ cao (hico) thẻ từ có mật độ từ thấp (loco) Để mã hóa thẻ từ hico người ta phải dùng nhiều lượng so với thẻ từ loco thông tin lưu dải từ hico khó bị phá huỷ vơ tình thẻ từ để gần vật có từ tính nam châm, đài, ti-vi Nhưng để đảm bảo an toàn, người ta thường để thẻ từ (thẻ chấm cơng, thẻ ATM…) tránh xa thiết bị có gây từ tính IV.2 Đặc điểm kỹ thuật thẻ từ Tùy theo thiết bị đọc thẻ mà người ta mã hóa thẻ từ theo chuẩn khác thông dụng chuẩn ABA (chuẩn mà ISO lấy làm tiêu chuẩn cho thẻ từ cịn có chuẩn NTT) Thẻ từ chuẩn ISO có ba rãnh từ (track), rãnh thứ ghi kí tự số, hai rãnh cịn lại ghi số Tổng cộng ba rãnh ghi 210 gồm kí tự số Dữ liệu mã hóa từ phải sang trái Mã hóa thường bắt đầu với bit ý nghĩa (bit bên phải bit LSB) Bảng mô tả định dạng track khác 83 Mật độ ghi TRACK liệu (bit/inch) Cấu hình ký tự Nội dung thông tin (Gồm bit chẵn lẻ) (bao gồm ký tự điều khiển) IATA 210 bit/ký tự 79 ký tự chữ số ABA 210 bit/ký tự 40 ký tự số THRIFT 210 bit/ký tự 107 ký tự số Định dạng liệu thẻ - Track 76 ký tự liệu gồm chữ số SS FC PAN FS NAME FS ADDITIONAL DISCRETIONAL DATA DATA ES LRC SS - Start Sentinal: Ký hiệu mở đầu % FC - Format Code: Mã định dạng PAN - Primary Account No Số tài khoản (lớn 19 ký tự số) FS - Field Seperator: Ký hiệu phân tách ^ Name: gồm ký tự chữ số, lớn 26 ký tự ADDITIONAL DATA: Số lượng ký tự ngày hết hạn (YYMM) Số lượng ký tự mã dịch vụ DISCRETIONAL DATA: Số lượng ký tự: *PVKI 1, *PVV, *CVV *CVC 3, trường nêu liệu tùy chọn, tức tùy yêu cầu khác mà thẻ có vài tất trường kể - (PVKI)PIN : Là số xác minh (Verification Key Indicator) 84 - (PVV)PIN: Là giá trị xác minh (Verification Value) - (CVV)Card: Là giá trị xác minh (Verification Value) - (CVC)Card: Là mã xác nhận (Validation Code) ES - End Sentinel: Ký hiệu kết thúc ? LRC - Longitudinal Redundancy check character: Bit kiểm tra Định dạng cụ thể Track 37 ký tự liệu dạng số SS FC PAN FS ADDITIONAL DATA DISCRETIONAL DATA ES LRC SS - Start Sentinal: Ký hiệu mở đầu ; (dạng Hex B) FC - Format Code: Mã định dạng PAN - Primary Account No Số tài khoản (lớn 19 ký tự số) FS - Field Seperator: Ký hiệu phân tách = (dạng Hex D) Name: gồm ký tự chữ số, lớn 26 ký tự ADDITIONAL DATA: Số lượng ký tự ngày hết hạn (YYMM) Số lượng ký tự mã dịch vụ DISCRETIONAL DATA: Số lượng ký tự: *PVKI 1, *PVV, *CVV *CVC 3, trường nêu liệu tùy chọn, tức tùy yêu cầu khác mà thẻ có vài tất trường kể - (PVKI)PIN : Là số xác minh (Verification Key Indicator) - (PVV)PIN: Là giá trị xác minh (Verification Value) - (CVV)Card: Là giá trị xác minh (Verification Value) - (CVC)Card: Là mã xác nhận (Validation Code) 85 ES - End Sentinel: Ký hiệu kết thúc ? ( dạng Hex F) LRC - Longitudinal Redundancy check character: Bit kiểm tra Track 3: Mục đích track để đọc/ghi liệu, ví dụ: thẻ tín dụng mã hóa thơng tin số dư tài khoản ngân hàng track 104 ký tự liệu dạng số SS FC PAN FS ADDITIONAL DATA DISCRETIONAL DATA ES LRC SS - Start Sentinal: Ký hiệu mở đầu ; (dạng Hex B) FC - Format Code: Mã định dạng (2 ký tự số) PAN - Primary Account No Số tài khoản (lớn 19 ký tự số) FS - Field Seperator: Ký hiệu phân tách = (dạng Hex D) ADDITIONAL DATA: Số lượng ký tự ngày hết hạn (YYMM) Số lượng ký tự mã dịch vụ DISCRETIONAL DATA: Số lượng ký tự: *PVKI 1, *PVV, *CVV *CVC 3, trường nêu liệu tùy chọn, tức tùy yêu cầu khác mà thẻ có vài tất trường kể - (PVKI)PIN : Là số xác minh (Verification Key Indicator) - (PVV)PIN: Là giá trị xác minh (Verification Value) - (CVV)Card: Là giá trị xác minh (Verification Value) - (CVC)Card: Là mã xác nhận (Validation Code) ES - End Sentinel: Ký hiệu kết thúc ? ( dạng Hex F) LRC - Longitudinal Redundancy check character: Bit kiểm tra 86 Bộ ký tự củaTracks & – gồm Bit BCD bit chắn lẻ Ký P B4 B3 B2 B1 ASCII tự Ký tự P B4 B3 B2 B1 ASCII 0 38 0 0 30 1 0 39 0 0 31 : (AS) 1 3A 0 32 ; (SS) 1 3B 0 1 33 < 1 0 3C 0 0 34 = (FS) 1 3D 1 35 > 1 3E 1 36 ? (ES) 1 1 3F 0 1 37 Để chuyển sang mã ASCII, bỏ qua bit parity cộng giá trị đọc từ thẻ từ (các bit B[4:0]) với giá trị hexa 30 Ví dụ chuyển đổi ký tự ; sau: B + 30 = 3B IV.3 Ứng dụng thẻ từ vào quản lý bệnh nhân Ứng dụng thẻ từ vào hệ thống quản lý bệnh nhân với kiến trúc hệ thống sau: - Thẻ từ: cấp cho bệnh nhân - Máy quẹt thẻ từ: đặt phòng tiếp nhận bệnh nhân phòng - Phần mềm quản lý phòng khám: Quản lý mã số bệnh nhân, bệnh án điện tử bệnh nhân 87 - Thông tin bệnh án Đầu đọc thẻ từ LAN Internet Server Client Hình 4.2 Mơ hình ứng dụng thẻ từ vào quản lý bệnh nhân Bệnh nhân đến khám bệnh lần sẽ cấp thẻ từ có lưu thơng tin cá nhân bệnh nhân Với thẻ này, bệnh nhân có mật truy cập vào trang web hệ thống để xem thông tin hồ sơ bệnh án Tấm 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, thông tin liên quan tình trạng sức khỏe người bệnh tra cứu nhanh họ tái khám Bên cạnh việc minh bạch hóa bệnh án điện tử hình thức giúp y, bác sỹ khoa phải tự trau dồi kiến thức chuyên môn, cập nhật thơng tin y học để có chẩn đốn xác 88 CHƯƠNG V: ĐẶT VẤN ĐỀ BÀI TỐN VÀ LÝ DO LỰA CHỌN CƠNG NGHỆ V.1 Bài toán quản lý bệnh viện V.1.2 Yêu cầu xây dựng tốn quản lý bệnh viên Cơng việc quản lý bệnh viện với số lượng lớn bệnh nhân, bác sỹ, cán phòng ban truy cập vấn đề khó khăn Các yêu cầu quản lý đặt cần phải thực đồng bộ, phối hợp nhịp nhàng chuẩn xác Chính vị việc xây dựng mơ hình quản lý bệnh viện áp có áp dụng công nghệ thông tin yêu cầu cần thiết Hệ thống phải vừa đáp ứng truy cập bệnh nhân vào hệ thống để xem hồ sơ khám điều trị bênh, xem lịch làm việc bác sỹ,… bên cạnh phải hỗ trợ việc truy cập bác sỹ, cán phịng ban để quản lý thơng tin nhanh thuận tiện Tóm lại u tốn xây dựng hệ thống quản lý bệnh viện gồm vấn đề lớn sau: V.1.2.1 Hệ thống phân tán triển khai phạm vi rộng Trong mơ hình hệ thống quản lý bệnh viện, cán phòng ban, bác sỹ bệnh nhân truy cập hệ thống để thực mục đích khác Bên cạnh kết nối thơng tin bệnh viện Do yêu cầu phân tán hệ thống u cầu tất yếu Bên cạnh đó, tính chất truy cập đối tượng khác nhau: ví dụ cán phịng hành truy cập hệ thống để thực chức quản lý hành chính, bác sỹ quản lý hồ sơ bệnh án bệnh nhân, bệnh nhân truy cập hệ thống với mục đích xem đăng ký thơng tin… Do vậy, hệ thống phải đáp ứng yêu cầu bắt buộc chức quản lý phải thực khoa, phòng bệnh viện, cá chức khác thực ngồi phạm vi bệnh viện 89 V.1.2.2 Đảm bảo làm việc điều kiện đường truyền không ổn định Trong điều kiện đường truyền hệ thống nước ta chưa thật tốt việc yêu cầu hệ thống luôn trạng thái sẵn sàng kể có cố mạng xảy yêu cầu quan trọng Điều làm cho hệ thống luôn ổn định làm việc lại bình thường đường truyền kết nối lại V.1.2.3 Giao diện thân thiện đơn giản Bởi đối tượng sử dụng hệ thống đa dạng, với trình độ hiểu biết thao tác với hệ thống nhiều mức độ khác Do yêu cầu quan trọng hệ thống quản lý bệnh viện giao diện đơn giản, thân thiện dễ sử dụng V.1.2.4 Đảm bảo tốc độ truy cập Trong mơ hình quản lý, với số lượng lớn cán bộ, bác sỹ bệnh nhân truy cập Một giả thiết đặt đồng thời có nhiều người truy cập vào hệ thống hệ thống đủ đáp ứng không? Như với yêu cầu hệ thống ln ln sẵn sàng u cầu đảm bảo tốc độ truy cập yêu cầu quan trọng V.1.2.5 Đảm bảo bảo mật phân quyền Công việc quản lý bệnh viện phải diễn điều kiện an tồn thơng tin u cầu bắt buộc Bên cạnh việc đa dạng người sử dụng quyền thao tác với hệ thống hệ thống phải thực việc phân quyền rõ ràng Đảm bảo chức thực người, chỗ V.1.2.6 Có thể cập nhật nâng cấp thường xuyên Với hệ thống quản lý bệnh viện chế quản lý, sách, phịng ban,… thường xun có thay đổi qua thời kỳ Vì việc hệ thống thường xuyên phải cập nhật nâng cấp yêu cầu bắt buộc 90 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 Với yêu cầu đặt trên, việc tìm hiểu công nghệ để đáp ứng yêu cầu toán yếu tố định đến thành công dự án Công nghệ lựa chọn Web Services Smart Client Việc thấy tính lợi cơng nghệ tơi phân tích mục chương Tuy nhiên để bạn đọc thấy việc lựa chọn xác tơi đưa số giải pháp đáp ứng yêu cầu toán xây dựng hệ thống quản lý bệnh viện Phân tích mặt yếu mạnh giải pháp giúp bạn đọc thấy lợi sử kết hợp công nghệ kiến trúc mang lại V.2.1 Xây dựng hệ thống Thin Client (ứng dụng web site) Đây giải pháp đơn giản Cán phòng ban bác sỹ, kỹ thuật viên bệnh nhân truy cập vào địa web site để quản lý thao tác với hệ sở liệu Các chức hệ thống thiết kế hệ thống máy chủ, đầu hệ thống giao diện web site đơn giản Lợi thế: - Đơn giản - Dễ triển khai - Cán phịng ban tác động vào hệ thống đâu Bất lợi: - Việc hồn tồn phụ thuộc vào đường truyền Internet làm gián đoạn cơng việc cán phịng ban đường truyền Tức hệ thống hoàn tồn khơng thể làm việc Offline - Hệ thống chậm xảy tải cho máy chủ truy nhập nhiều - Khó khăn việc bảo mật hệ thống 91 V.2.2 Xây dựng hệ thống Rich Client Hệ thống ứng dụng Rich Client Các cán phòng ban, bác sỹ, kỹ thuật viên bệnh nhân truy nhập vào ứng dụng máy bàn thực công việc riêng Lợi thế: - Việc xây dụng Rich client có nhiều thuận lợi việc thiết kế Các chức hệ thống đảm bảo, phân quyền, công tác bảo mật tốt, làm việc offline Bất lợi: - Ứng dụng Rich Client có nhược điểm lớn khó khăn việc triển khai Với hệ thống quản lý phải triển khai phạm vi rộng có nhiều khối chức riêng biệt với yêu cầu riêng Rich Client không đáp ứng - Ứng dụng Rich Client gặp nhiều khó khăn việc cập nhật hệ thống Nếu có thay đổi dễ gây đổ vỡ hệ thống khơng trùng phiên V.3 Lý lựa chọn Web Services Smart Client áp dụng cho hệ thống quản lý bệnh viện Rõ ràng hai giải pháp đưa đáp ứng yêu cầu toán xây dựng hệ thống quản lý bệnh viện Vậy đâu giải pháp tối ưu? Giải pháp áp dụng Web Services Smart Client vào xây dựng hệ thống quản lý bệnh viện Đâu lý do? Ở đưa yêu cầu toán quản lý bệnh viện Dưới tóm tắt lại lợi Smart Client Web Services mang lại để bạn đọc so sánh thấy lựa chọn hợp lý 92 V.3.1 Tóm tắt lợi Smart Client Web Services V.3.1.1 Các lợi Web Services − Tương thích: việc sử dụng XML làm định dạng thông điệp sử dụng giao thức chuẩn để giao tiếp nên Web Services có khả tương thích cao với nhiều hệ thống nền, với nhiều ngôn ngữ khác − Hiệu quả: Nhờ việc sử dụng Web Services nên công việc cần thực chia nhỏ thành đơn vị dịch vụ việc chia nhỏ hợp lý đem lại hiệu cho cơng việc chung − Làm cho dễ dàng tích hợp thời điểm: Như trình bày trước, dịch vụ Web Services định vị tích hợp cần Kể từ ứng dụng phân tán thông qua mạng, dịch vụ thành phần tích hợp chúng yêu cầu − Giảm phức tạp: Web Services giảm phức tạp hỗ trợ đóng gói Các dịch vụ cung cấp cho người sử dụng khơng địi hỏi người dùng phải biết kiến trúc Web Services Người dùng tương tác thông qua giao diện dịch vụ Các tham số mà người dùng cần biết cách thực giao diện dịch vụ cung cấp Web Services − Giải vấn đề tương tác với ứng dụng cũ: Các ứng dụng cũ thực thi Web Services cung cấp giao diện giúp hệ thống khác dễ dàng việc trao đổi thông điệp V.3.1.2 Các lợi Smart Client − Tận dụng sức mạnh Client PC: Ứng dụng chạy máy tính người dùng cuối tận dụng tài nguyên phần cứng phần mềm máy để bàn 93 − Tận dụng nguồn tài nguyên mạng: Nó cho phép sử dụng nhiều dịch vụ khác truy lục vào nhiều sở liệu khác để phục vụ cho việc phân tán liệu dịch vụ − 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 ứng dụng chạy windows word, excel, outlook… − Hỗ trợ làm việc Online Offline: Cơ chế mềm dẻo đồng liệu cho phép liệu lưu giữ vùng đệm đặt máy khách cho phép ứng dụng Smart Clien làm việc Online Offline làm việc điều kiện đường truyền ko liên tục − Cài đặt cập nhật thông minh: Ứng dụng tự động cập nhật thay đổi mà cần cho phép người dùng Điều giúp vượt qua vấn đề rắc rối từ trước tới desktop-application phải cài đặt lại máy client có thay đổi − Cung cấp mềm dẻo đến thiết bị máy khách: Có nhiều thiết bị đầu cuối sử dụng ứng dụng Smart Client Và tùy vào thiết bị mà Smart có phân thành kiểu tương ứng V.3.1.3 Lợi mơ hình kết hợp Web Services Smart Client Sự kết hợp Web Services Smart Client kết hợp mềm dẻo công nghệ kiểu kiến trúc phần mềm mà tơi lựa chọn luận văn Đó lợi mà Smart Client Software Web Services Factory mang lại, lợi liệt kê bao gồm: − Nhất quán cấu trúc mã nguồn mơ hình phân tầng: Với thiết kế mẫu này, người lập trình có lợi định lập trình Viết ứng dụng theo mẫu người lập trình khơng phải quan tâm đến tầng để tập trung vào việc xây dựng nghiệp vụ logic Hơn mơ hình phân tầng rõ ràng Smart Client Software Factory Web 94 Services Factory mang lại làm cho công việc bảo trì hệ thống chun mơn hóa nghiệp vụ trở nên dễ dàng − Rút ngắn thời gian xây dựng mã nguồn: Với số người lập trình việc thao tác với lượng lớn thơng tin sở liệu phải viết mã xác cơng việc khó khăn Với cơng thức xây dựng mã mà Microsoft® patterns & practices hỗ trợ lập trình giúp giảm bớt nhiều khối lượng công việc làm cho mã nguồn xác rõ ràng − Hỗ trợ làm việc Online Offline: Với việc sử dụng DataCaching, Smart Client thực có giải pháp hiệu để hỗ trợ cho ứng dụng làm việc online offline Điều ứng dụng Thin Client thực − Dễ dàng cài đặt: Bởi Module ứng dụng Smart Client viết theo chế Module tải, tức việc viết module độc lập với mã sở Cho nên triển khai ứng dụng hệ thống cần copy file thực vào thư mục thay đổi thông tin file đăng ký tải module vào hệ thống Việc xây dựng ứng dụng cho phép cập nhật ứng dụng dễ dàng phạm vi rộng lớn cách đặt file cập nhật hệ thống người dùng tự tải file thực cập nhật.(tham khảo thêm công nghệ ClickOne) − Giao diện thân thiện: Giao diện người dùng giao diện ứng dụng Desktop, thân thiện tận dụng kinh nghiệm người dùng Việc xây dựng module tải cho phép gọi đến nhiều form mà thực nhiều công việc khác − Tốc độ nhanh: Việc phân cấp chức rõ ràng cho tầng ứng dụng thiết kế làm tốc độ làm việc ứng dụng tăng lên nhiều Hơn tận dụng nguồn tài nguyên máy khách mạng ứng dụng cải thiện tốc độ làm việc hệ thống trạng thái sẵn sàng 95 − Đảm bảo tính bảo mật an tồn thơng tin: Với hỗ trợ chế truyền việc sử dụng sở liệu đảm bảo việc quản lý thông tin dễ dàng an toàn − Vượt tường lửa: Việc Web Services sử dụng thông điệp định dạng XML truyền qua cổng 80 với giao thức truyền với giao thức web phổ dụng http cho phép vượt tường lửa − Ngồi cịn lợi mà Web Servies Smart Client mang lại V.3.2 Mơ hình hệ thống quản lý bệnh viện với Web Services Smart Client Với việc áp dựng Smart Client Web Services vào xây dựng hệ thống quản bệnh viện có lợi định Dưới mơ hình hệ thống Mơ hình hệ thống quản lý bệnh viện gồm phần: Web Services xây dựng Servers, phần ứng dụng xây dựng Client Smart Client hệ thống web site Hình 5.1 Mơ hình quản lý bệnh viện Hệ thống phía Server: 96 Phát triển dựa mơ hình Web Services Software Factory, cung cấp dịch vụ phần Desktop Web, thực thao tác xử lý nghiệp vụ chung, truy nhập, xử lý cập nhật sở liệu Hệ thống Desktop: Phát triển ứng dụng dựa Smart Client Software Factory, phục vụ cho cán phòng ban, bác sỹ, kỹ thuật viên truy cập xử lý nghiệp vụ quản lý chun mơn quản lý hành Hệ thống Web Site: Phát triển ứng dụng web, phục vụ cho bệnh nhân truy cập để đăng ký khám bệnh công việc khác lấy thông báo từ phía bệnh viện, xem đơn thuốc, chuẩn đốn bệnh,… 97 CHƯƠNG VI: ỨNG DỤNG XÂY DỰNG MODULE QUẢN LÝ PHỊNG KHÁM VI.1 Các thành phần quy trình quản lý bệnh viện Hình 6.1 Sơ đồ hệ thống quản lý bệnh viện Hệ thống quản lý bệnh viện chia thành mảng lớn: quản lý hành quản lý chun mơn Hai mảng xây dựng độc lập giao tiếp liệu với tùy yêu cầu Hệ thống quản lý hành chính: Hệ thống quản lý hành bao gồm chức như: - Quản lý nhân - Quản lý tài sản (vật tư, trang thiết bị) 98 - Quản lý tài kế tốn - Quản lý công văn… - Giao tiếp nội Hệ thống quản lý chuyên môn: Hệ thống quản lý chuyên môn đặc thù riêng ngành y tế, phân biệt với đơn vị hành khác Tất liên quan đến bệnh nhân liệu bệnh nhân đưa vào hệ thống quản lý chuyên môn Hệ thống quản lý chuyên môn tập hợp nhiều chức năng, chức thực nhiệm vụ riêng liên kết liệu: - Tiếp nhận bệnh nhân: tiếp nhận tìm kiếm thơng tin bệnh nhân - Viện phí nội – ngoại trú: quản lý việc đóng viện phí bệnh nhân - Khám chữa bệnh ngoại trú: dùng cho bác sĩ phòng khám, cung cấp tiện ích cần thiết cho bác sĩ phịng khám toa thuốc điện tử, định cận lâm sàng, phiếu hẹn, giới thiệu, xử trí kết quả… - Quản lý xét nghiệm: quản lý liệu xét nghiệm - Chẩn đốn hình ảnh: quản lý tài liệu hình ảnh y khoa, lưu trữ tài liệu hình ảnh từ máy siêu âm, nội soi, X quang, CT, Giải phẫu bệnh, Tế Bào Học, Soi đáy mắt … - Quản lý ngân hàng máu - Quản lý phẩu thuật – thủ thuật - Quản lý bệnh án nội trú: quản lý xuất nhập viện - Quản lý dược nội trú – ngoại trú – bảo hiểm y tế - Quản lý vật tư tiêu hao - … Các phân hệ phân theo chức năng, nghiệp vụ riêng Được thực hệ thống Desktop hay website Nhưng tất phải viết dịch vụ server 99 Sau tơi sâu vào việc phân tích triển khai ứng dụng module cụ thể VI.2 Phân hệ quản lý phịng khám Nhiệm vụ phân hệ là: Quản lý thông tin hành bệnh nhân Mỗi bệnh nhân cấp mã số riêng làm sở cho việc chia sẻ truy tìm thơng tin bệnh nhân ghi lại trình khám bệnh điều trị bệnh nhân Quản lý thơng tin dịch vụ viện phí bệnh nhân Thơng tin viện phí giúp kiểm sốt nguồn thu bệnh viện đồng thời cơng cụ giám sát việc sử dụng dịch vụ bệnh viện Modun thu phí kết nối với modul tiếp nhận Chỉ định bác sĩ giúp cho việc nhập liệu cực ký nhanh chóng xác 100% Mơ tả cấu trúc phân hệ: Hình 6.2 Cấu trúc phân hệ quản lý phòng khám Phân hệ Quản lý phòng khám bao gồm chức sau: - Quản lý bệnh nhân - Quản lý khám bệnh điều trị bệnh 100 - Quản lý viện phí - Quản lý thuốc VI.3 Phân tích thiết kế mơ-đun quản lý phịng khám Phân hệ quản lý phòng khám tập trung vào việc xây dựng modun để phục vụ cho việc quản lý theo dõi khám chữa bệnh cho bệnh nhân Với modun quản lý phòng khám cho phép thêm, sửa, xóa tra cứu thơng tin liên quan đến bệnh nhân, tiền sử bệnh, trình khám chuẩn đốn bệnh, viện phí bệnh nhân Quản lý khám điều trị bệnh Quản lý viện phí Quản lý bệnh nhân Module Quản lý phịng khám Quản lý thuốc Bác sỹ, điều dưỡng, thu ngân Hình 6.3 Cấu trúc module quản lý phòng khám Tác nhân tham gia: - Bác sỹ - Điều dưỡng - Thu ngân Các chức mô-đun: - Quản lý bệnh nhân - Quản lý khám bệnh điều trị bệnh - Quản lý viện phí - Quản lý thuốc 101 VI.3.1 Chức quản lý bệnh nhân Thêm bệnh nhân Tra cứu bệnh nhân Cập nhật thông tin bệnh nhân Xóa bệnh nhân Quản lý bệnh nhân Nhân viên phịng tiếp nhận bệnh nhân, bác sỹ Hình 6.4 chức quản lý bệnh nhân Quản lý thông tin hành bệnh nhân Khi tiếp nhận bệnh nhân mới, hệ thống cho phép nhập thông tin cấp thẻ bệnh nhân Nếu bệnh nhân khám lại hệ thống hỗ trợ chức tìm kiếm quẹt thẻ bệnh nhân để tra cứu thông tin nhanh Tác nhân tham gia: - Nhân viên phòng tiếp nhận bệnh nhân Các trường hợp sử dụng: - Thêm/ Sửa/ Xóa thơng tin bệnh nhân - Tra cứu thơng tin bệnh nhân VI.3.2 Chức khám bệnh Quản lý sinh hiệu Quản lý khám bệnh Quản lý phiếu khám bệnh Quản lý định Quản lý khám điều trị bệnh Bác sỹ, điều dưỡng Quản lý trình điều trị bệnh Hình 6.5 Chức khám điều trị bệnh Chức khám bệnh quản lý toàn phiếu khám bệnh bệnh nhân 102 Hoàn thành tiếp nhận, thơng tin bệnh nhân chuyển sang phịng khám để bác sỹ bắt đầu khám bệnh, đưa chuẩn đoán sơ yêu cầu bệnh nhân thực dịch vụ (xét nghiệm, chụp chiếu, nội soi,…) Sau có kết xét nghiệm, nội soi,… bác sỹ kết luận bệnh đưa hướng điều trị Tác nhân tham gia: - Điều dưỡng - Bác sỹ Các trường hợp sử dụng: - Quản lý phiếu khám bệnh - Quản lý sinh hiệu - Quản lý chuẩn đốn - Quản lý q trình điều trị - Quản lý định VI.3.3 Chức quản lý phiếu thu Thêm phiếu thu Cập nhật phiếu thu Tra cứu phiếu thu Quản lý phiếu thu viện phí Xóa phiếu thu Cán thu ngân Hình 6.6 Chức quản lý cán Chức quản lý phiếu thu quản lý tồn phiếu thu viện phí, dịch vụ Sau nhận phiếu yêu cầu dịch vụ bác sỹ khám, bệnh nhân phải thực nộp phí bàn thu ngân, nhận phiếu thu bắt đầu làm xét nghiệm, nội soi, Tác nhân tham gia: 103 - Cán thu ngân Các trường hợp sử dụng: - Thêm/ Sửa/ Xóa phiếu thu - Tra cứu danh sách phiếu thu VI.3.4 Chức quản lý thuốc Thêm thuốc Cập nhật thông tin thuốc Tra cứu thuốc Quản lý thuốc Xóa thuốc Bác sỹ, dược sỹ Hình 6.7 Chức quản lý đơn vị hành Quản lý tồn thuốc có kho dược bệnh viện Các bác sỹ tra cứu thuốc kho để lập phiếu điều trị cho bệnh nhân Tác nhân tham gia: - Dược sỹ - Bác sỹ Các trường hợp sử dụng: - Thêm/ Sửa/ Xóa thuốc - Tra cứu thuốc 104 VI.4 Thiết kế sở liệu phục vụ cho module quản lý phịng khám Hình 6.8 Sơ đồ liên kết liệu modul quản lý phòng khám Module quản lý phòng khám sử dụng chủ yếu 10 bảng sở liệu VI.5 Các chức giao diện cụ thể Với yêu cầu cụ thể toán dựa phân tích thiết kế chức mô-đun xây dựng nên giao diện hệ thống Trong chương tơi trình bày form giao diện chức cụ thể mô đun 105 Giao diện form làm việc chính: Hình 6.9 Shell form form giao diện làm việc View Quản lý bệnh nhân : 106 Hình 6.10 View quản lý bệnh nhân Chứa danh sách thông tin bệnh nhân Mỗi bệnh nhân lưu vào ghi chứa DatagridView Các thông tin sửa, xóa Ngồi view cho phép lọc danh sách bệnh nhân dựa vào điều kiện lọc View Tiếp nhận bệnh nhân: Hình 6.11 View tiếp nhận bệnh nhân Thực chức nhập thơng tin hành bệnh nhân 107 View Quản lý phiếu khám: Hình 6.12 View quản lý phiếu khám Chứa danh sách thông tin phiếu khám Mỗi phiếu khám lưu vào ghi chứa DatagridView Các thơng tin sửa, xóa Ngồi view cho phép lọc danh sách phiếu khám dựa vào điều kiện lọc 108 View Phiếu khám bệnh: Hình 6.13 View phiếu khám bệnh Thực chức khám bệnh cho bệnh nhân gồm công việc sinh hiêu, khám bệnh, định dịch vụ, điều trị cho bệnh nhân View Quản lý dịch vụ: 109 Hình 6.14 View quản lý dịch vụ Chứa danh sách thông tin dịch vụ Mỗi dịch lưu vào ghi chứa DatagridView Các thơng tin sửa, xóa Ngồi view cho phép lọc danh sách dịch vụ dựa vào điều kiện lọc View Quản lý phiếu thu: Hình 6.15 View quản lý phiếu thu VI.6 Triển khai đánh giá kết Cấu hình thiết bị sử dụng tiến hành cài đặt 110 Cấu hình máy chủ máy chủ: Cấu hình máy trạm: • HP model Proliant ML150G3 • Hệ điều hành: WindowsXP SP2 • Hệ điều hành: Windows2003 Server • CPU: Pentium IV 2.0 GHz • Cơ sở liệu: Microsoft SQLServer • Bộ nhớ RAM: 512 MB Tiến hành cài đặt thử nghiệm: Hệ thống bao gồm phần máy chủ, máy khách website Tuy nhiên vào thời điểm phát triển hai hệ thống máy chủ máy khách Tôi tiến hành cài đặt thử nghiệm hệ thống máy chủ client phòng khám đa khoa tư nhân Trên hệ thống phía máy chủ: Cài đặt ứng dụng SmartUniServices chạy dịch vụ Web Services Trên Client cài đặt ứng dụng SmartUniClient 111 KẾT LUẬN Bài toán xây dựng hệ thống quản lý bệnh viện tốn khơng đơn giản mođun quản lý phòng khám phần nhỏ Kết chạy thử nghiệm phịng thí nghiệm q trình chạy thử phòng khám đa khoa tư nhân cho thấy kết tốt - Giao diện thân thiện chức thiết kế hợp lý - Hệ thống chạy ổn định điều kiện đường truyền hoạt động tốt - Công nghệ sử dụng Web Server, kiến trúc Smart Client mang lại nhiều lợi cho việc thiết kế, cài đặt triển khai mở rộng hệ thống HƯỚNG PHÁT TRIỂN Trong thời gian tới tiếp tục bổ sung tính mới, bổ sung module để xây dựng hệ thống hoàn thiện Triển khai hệ thống thành công nhiều máy với nhiều cấu hình khác Nghiên cứu sâu công nghệ Web Service Smart Client để áp dụng cho hệ thống khác Mở hướng cho phát triển ứng dụng kết hợp hai công nghệ kiểu kiến trúc 112 TÀI LIỆU THAM KHẢO Tiếng Việt: Đoàn Quang Minh, Lập trình Net Csharp phát triển ứng dụng, 2008 Tiếng Anh: James W Cooper, T J Watson , Introduction to Design Patterns in C#, IBM Research Center, 2002 Douglas J Reilly, Designing Microsoft ASP.NET Applications, Microsoft Press â, 2002 Addison Wesley, C#đ Developer's Guide to ASP.NET, XML, and ADO.NET, 2002 Developing.XML Web Services & Server Components with VB.NET & C sharp.NET Niel M Bornstein, DotNET and XML, O'Reilly, 2004 Sybex, dotNET Web Services Solutions Apress, Expert Web Services Security in NET Platform Sybex, Mastering ASP.NET with C# 10 Wiley, Mastering Web Services Security 11 Sybex, NET Web Services Solutions 12 Syngress, XML, NET Developers Guide 13 O'Reilly, Web Services Essentials 14 Prentice, Web Services Explained 15 Brad Wilson, Development Lead, Smart Client Baseline Architecture Toolkit, 2006 16 Service Factory Introduction (power point) 17 Raiffeisen, CAB SCSF - Architecture Guidance 18 EV_SmartClient Offline Data Caching and Synchronization by RoyOsherove (power point) 19 Eric Gunnerson, Aprogammer’s introduction to C#, Apress © 2000 20 Một số trang web: http://webservices.xml.com/ http://msdn.microsoft.com/smartclient/ http://www.codeplex.com/smartclient/ http://www.W3.org/ ... Thu Hà 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 BệNH NHÂN luận văn thạc sỹ Xử Lý THÔNG TIN Và TRUYềN THÔNG NGI HNG DN KHOA HC:... 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ý lựa chọn Web Services... dựng hệ thống quản lý bệnh viện ứ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

Ngày đăng: 25/02/2021, 15:44

Mục lục

  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan