Tiểu luận môn Lập trình nâng cao: TÌM HIỂU CÁC CÔNG NGHỆ TRIỆU GỌI HÀM TỪ XA VÀ ỨNG DỤNG

25 471 0
Tài liệu đã được kiểm tra trùng lặp
Tiểu luận môn Lập trình nâng cao: TÌM HIỂU CÁC CÔNG NGHỆ TRIỆU GỌI HÀM  TỪ XA VÀ ỨNG DỤNG

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

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

Thông tin tài liệu

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn BÁO CÁO TIỂU LUẬN MÔN HỌC LẬP TRÌNH NÂNG CAO NGÀNH KHOA HỌC MÁY TÍNH ĐỀ TÀI: TÌM HIỂU CÁC CÔNG NGHỆ TRIỆU GỌI HÀM TỪ XA VÀ ỨNG DỤNG Học Viên: TRẦN HỮU PHƯỚC Lớp: Cao học KHMT Khóa 31 Giảng Viên: TS HUỲNH CÔNG PHÁP ĐÀ NẴNG, 9/2016 MỤC LỤC CHƯƠNG I .1 LÝ THUYẾT 1 1.RPC, DCOM/COM+, RMI, CORBA Và Web Services .1 1.1.RPC 1 1.2.DCOM/COM+ 3 1.3.RMI 4 1.4.CORBA .6 1.5.Web Service 7 1.6.So sánh Web Service và các công nghệ trước đó .9 CHƯƠNG II 10 ỨNG DỤNG THỰC TẾ .10 1.Đặt Vấn Đề 10 2.Phân Tích 11 2.1.Phân Tích Yêu Cầu 11 2.2.Biểu Đồ Usecase .11 2.3.Biểu Đồ lớp phân tích .12 12 2.4.Biểu Đồ Tuần Tự .12 2.5.Biểu đồ lớp thiết kế 15 16 3.Thiết Kế và Thuật toán 16 3.1.Kiến Trúc 16 3.2.Database 16 3.3.Thiết Kế Giao Diện 17 3.4.Sinh mã 20 4.Triển Khai 22 5.Kết Luận .22 TÀI LIỆU THAM KHẢO 23 Báo Cáo Lập Trình Nâng Cao CHƯƠNG I LÝ THUYẾT 1 RPC, DCOM/COM+, RMI, CORBA Và Web Services 1.1 RPC RPC- Remote Procedure Call, Lời gọi thủ tục xa là một cơ chế cho phép một chương trình có thể gọi thực thi một thủ tục (hay hàm) trên một máy tính khác Trong chương trình lúc này, tồn tại hai loại thủ tục: thủ tục cục bộ và thủ tục ở xa Thủ tục cục bộ là thủ tục được định nghĩa, cài đặt và thực thi tại máy của chương trình Thủ tục ở xa là thủ tục được định nghĩa, cài đặt và thực thi trên một máy tính khác Cú pháp giữa lời gọi thủ tục cục bộ và ở xa thì giống nhau Tuy nhiên, khi một thủ tục ở xa được gọi đến, một thành phần của chương trình gọi là Stub sẽ chuyển hướng để kích hoạt một thủ tục tương ứng nằm trên một máy tính khác với máy của chương trình gọi Đối với người lập trình, việc gọi thủ tục xa và thủ tục cục bộ thì giống nhau về mặt cú pháp Đây chính là cơ chế cho phép đơn giản hóa việc xây dựng các ứng dụng Client-Server Trong hệ thống RPC, Server chính là máy tính cung cấp các thủ tục ở xa cho phép các chương trình trên các máy tính khác gọi thực hiện Client chính là các chương trình có thể gọi các thủ tục ở xa trong quá trình tính toán của mình Một Client có thể gọi thủ tục ở xa của nhiều hơn một máy tính Như vậy sự thực thi của chương trình Client lúc này không còn gói gọn trên một máy tính của Client mà nó trải rộng trên nhiều máy tính khác nhau Đây chính là mô hình của ứng dụng phân tán (Distributed Application) Một ứng dụng Client-Server theo cơ chế RPC được xây dựng gồm có sáu phần như sơ đồ dưới đây: Học Viên: Trần Hữu Phước – K31 KHMT 1 Báo Cáo Lập Trình Nâng Cao Phần Client là một quá trình người dùng, nơi khởi tạo một lời gọi thủ tục từ xa Mỗi lời gọi thủ tục ở xa trên phần Client sẽ kích hoạt một thủ tục cục bộ tương ứng nằm trong phần Stub của Client Phần ClientStub cung cấp một bộ các hàm cục bộ mà phần Client có thể gọi Mỗi một hàm của ClientStub đại diện cho một hàm ở xa được cài đặt và thực thi trên Server Mỗi khi một hàm nào đó của ClientStub được gọi bởi Client, ClientStub sẽ đóng gói một thông điệp để mô tả về thủ tục ở xa tương ứng mà Client muốn thực thi cùng với các tham số nếu có Sau đó nó sẽ nhờ hệ thống RPCRuntime cục bộ gởi thông điệp này đến phần Server Stub của Server Phần RPCRuntime quản lý việc truyền thông điệp thông qua mạng giữa máy Client và máy Server Nó đảm nhận việc truyền lại, báo nhận, chọn đường gói tin và mã hóa thông tin RPCRuntime trên máy Client nhận thông điệp yêu cầu từ ClientStub, gởi nó cho RPCRuntime trên máy Server bằng lệnh send() Sau đó gọi lệnh wait() để chờ kết quả trả về từ Server Khi nhận được thông tiệp từ RPCRuntime của Client gởi sang, RPCRuntime bên phía server chuyển thông điệp lên phần ServerStub Học Viên: Trần Hữu Phước – K31 KHMT 2 Báo Cáo Lập Trình Nâng Cao ServerStub mở thông điệp ra xem, xác định hàm ở xa mà Client muốn thực hiện cùng với các tham số của nó ServerStub gọi một thủ tục tương ứng nằm trên phần Server Khi nhận được yêu cầu của ServerStub, Server cho thực thi thủ tục được yêu cầu và gởi kết quả thực thi được cho ServerStub ServerStub đóng gói kết quả thực trong một gói tin trả lời, chuyển cho phần RPCRuntime cục bộ để nó gởi sang RPCRuntime của Client RPCRuntime bên phía Client chuyển gói tin trả lời nhận được cho phần ClientStub ClientStub mở thông điệp chứa kết quả thực thi về cho Client tại vị trí phát ra lời gọi thủ tục xa Trong các thành phần trên, RPCRuntime được cung cấp bởi hệ thống ClientStub và ServerStub có thể tạo ra thủ công (phải lập trình) hay có thể tạo ra bằng các công cụ cung cấp bởi hệ thống Cơ chế RPC được hỗ trợ bởi hầu hết các hệ điều hành mạng cũng như các ngôn ngữ lập trình 1.2 DCOM/COM+ COM+ là một sự tiến triển của công nghệ cũ COM (Component Object Model) COM là một đặc tả đối tợng, định nghĩa các giao diện cho các đối tượng Các đối tượng khác nhau có thể nói chuyện với đối tượng khác bằng cách sử dụng các giao diện đó, COM là một đặc tả ngôn ngữ trung lập và ngôn ngữ nào đối với nó là không quan trọng, các đối tượng tự chúng mã hoá được miễn là chúng thực thi các giao diện COM COM có thể được thực thi trên bất cứ hệ điều hành nào, sự hỗ trợ trên những nền platform khác ngoài Microsoft Windows không đáng kể Để các đối tượng COM thuận tiện nói chuyện với nhau, đặc tả COM đã được mở rộng và được gọi là DCOM (Distributed COM) DCOM là COM (Component Object model) nhng có thêm một vài sự phát triển nữa, hay nói cách khác DCOM là phần mở rộng của COM Trong khi COM cho phép tạo ra các thành phần có khả năng sử dụng lại được, thì một vấn đề đặt ra là chuyện gì sẽ xảy ra nếu bạn muốn các thành phần này nạp trong các máy khác nhau mà không chỉ ở tại máy client? Đó chính là một ứng dụng phân tán Do vậy, Microsoft đã mất một thời gian dài để tạo ra sự mở rộng mới của COM, gọi là Distributed COMHọc Viên: Trần Hữu Phước – K31 KHMT 3 Báo Cáo Lập Trình Nâng Cao DCOM DCOM xây dựng một đối tuợng lời gọi thủ tục từ xa-Object RPC (ORPC) nằm trên tầng của DCE RPC để hỗ trợ các đối tợng từ xa Một COM server có thể tạo một đối tượng là một trường hợp của các lớp đa đối tượng Một đối tượng COM có thể hỗ trợ nhiều giao diện, mỗi giao diện có một khung nhìn hoặc cách đối xử khác nhau Một giao diện bao gồm một tập các phương thức liên quan đến tính năng cơ sở của hàm Một COM client tương tác với một đối tượng COM bằng việc có được một con trỏ tới một trong những giao diện và gọi các phương thức liên thông qua con trỏ này, như thể object này cư trú tại một không gian địa chỉ của client nhất định COM chỉ định rằng bất kì giao diện nào cần phải theo một sự bố trí bộ nhớ chuẩn, cái mà tương tự như trong bảng hàm ảo C++ Kể từ khi đặc tả này có tại mức nhị phân, nó cho sự phép tích hợp của các thành phần nhị phân có thể được viết trong các ngôn ngữ lập trình khác nhau như C++, Java, Visual Basic DCOM cho phép các thành phần COM có thể chạy trên các máy tính khác nhau Thành phần của DCOM thường hay chạy trên các máy khác nhau (tuy nhiên có lúc không cần thiết), và chạy trên chính vùng xử lí của nó Nó có thể chạy trên cùng một máy cục bộ hay chạy trên các máy từ xa, thậm chí còn có thể tiến hành trên mạng, vì vậy mà các thành phần có khả năng thi hành trên chính chương trình của bạn hay trên các thành phần khác 1.3 RMI RMI là một sự cài đặt cơ chế RPC trong ngôn ngữ lập trình hướng đối tượng Java Hệ thống RMI cho phép một đối tượng chạy trên một máy ảo Java này có thể kích hoạt một phương thức của một đối tượng đang chạy trên một máy ảo Java khác Đối tượng có phương thức được gọi từ xa gọi là các đối tượng ở xa (Remote Object) Một ứng dụng RMI thường bao gồm 2 phần phân biệt: Môt chương trình Server và một chương trình Client – Chương trình Server tạo một số các Remote Object, tạo các tham chiếu (reference) đến chúng và chờ những chương trình Client kích hoạt các phương thức của các Remote Object này – Chương trình Client lấy một tham chiếu đến một hoặc nhiều Remote Object trên Server và kích hoạt các phương thức từ xa thông qua các tham chiếu Học Viên: Trần Hữu Phước – K31 KHMT 4 Báo Cáo Lập Trình Nâng Cao Một chương trình Client có thể kích hoạt các phương thức ở xa trên một hay nhiều Server Tức là sự thực thi của chương trình được trải rộng trên nhiều máy tính Đây chính là đặc điểm của các ứng dụng phân tán Nói cách khác, RMI là cơ chế để xây dựng các ứng dụng phân tán dưới ngôn ngữ Java Kiến trúc một chương trình Client-Server theo cơ chế RMI được mô tả như hình dưới đây: Trong đó: – Server là chương trình cung cấp các đối tượng có thể được gọi từ xa – Client là chương trình có tham chiếu đến các phương thức của các đối tượng ở xa trên Server – Stub chứa các tham chiếu đến các phương thức ở xa trên Server – Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương thức tương ứng trên Server – Remote Reference Layer là hệ thống truyền thông của RMI Con đường kích hoạt một phương thức ở xa được mô tả như hình dưới đây: Học Viên: Trần Hữu Phước – K31 KHMT 5 Báo Cáo Lập Trình Nâng Cao 1.4 CORBA Common Object Request Broker Architecture (CORBA) là đặc tả của Object Management Group-OMG-giành cho việc đạt được tính tương tác giữa các nút tính toán phân tán Mục tiêu của chúng đã định nghĩa một cấu trúc mà có thể cho phép những môi trường không đồng nhất có thể liên lạc tại mức đối tượng, không quan tâm đến người nào đã thiết kế ra hai điểm cuối của ứng dụng phân tán CORBA là một ngôn ngữ trung lập được thực thi rộng rãi hơn trên các nền platform khác nhau hơn là COM Nhưng có vài tính không tương hợp giữa những thực thi của các nhà cung cấp khác nhau, CORBA sử dụng một giao thức gọi là IIOP (Internet Inter-ORB Protocol) để liên lạc giữa các hệ thống khác nhau CORBA hỗ trợ khái niệm Client/Server Để yêu cầu một dịch vụ, client yêu cầu một đối tượng từ xa thi hành (tương tự như Server trong mô hình Client/ Server) Dịch vụ cung cấp bởi Server được bao gói như một đối tượng và có giao diện được mô tả trong ngôn ngữ định nghĩa giao diện Interface Definition Language (IDL) IDL là ngôn ngữ đặc tả giao diện, không phải ngôn ngữ thủ tục (Có nghĩa là chương trình viết bằng ngôn ngữ IDL không thể dịch thành mã máy để có thể thi hành được) Giao diện được định nghĩa trong một tệp IDL Server như là sự qui ước giữa Server và Client của nó Client tơng tác với Server bằng cách yêu cầu các phương thức được mô tả trong IDL và Client không biết đến đối tượng thi hành thực sự IDL cũng giống như các Học Viên: Trần Hữu Phước – K31 KHMT 6 Báo Cáo Lập Trình Nâng Cao ngôn ngữ lập trình hướng đối tượng khác, có hỗ trợ khái niệm: bao gói, đa hình, thừa kế đơn, thậm chí CORBA còn hỗ trợ khái niệm thừa kế bội Trong CORBA, sự tương tác giữa một tiến trình client (client process) và một đối tượng server (object server) được thi hành như là kiểu gọi thủ tục từ xa (RPC) hướng đối tượng Để yêu cầu một hàm từ xa, client tạo một lời gọi tới client stub Client stub mã hoá các tham số của lời gọi vào trong một thông điệp yêu cầu (request message), và yêu cầu một giao thức ở mức dưới vận chuyển tới server skeleton Server skeleton sẽ giải mã thông điệp yêu cầu và gọi hàm xác định trên đối tượng 1.5 Web Service Tin học phân tán làm tăng cường môi trường tin học để đạt được khả năng sử dụng máy điện toán to lớn, sự thực thi, có khả năng CORBA dãn và sử dụng lại được Web Services là sự bổ sung mới nhất vào các công nghệ phân tán đang tồn tại như EJB/RMI, CORBA và DCOM Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration) Hình dưới mô tả chồng giao thức của Web service, trong đó UDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ thể trong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một Web service Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP Học Viên: Trần Hữu Phước – K31 KHMT 7 Báo Cáo Lập Trình Nâng Cao Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính: Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange ProtocolBEEP) Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Web service cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web service sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà Web service cung cấp Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một Web service có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác Một Web service cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này Học Viên: Trần Hữu Phước – K31 KHMT 8 Báo Cáo Lập Trình Nâng Cao Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc Web service, chúng ta có thêm các tầng Policy, Security, Transaction, Management 1.6 So sánh Web Service và các công nghệ trước đó – Web Services sử dụng SOAP như giao thức nằm dưới trong khi CORBA và DCOM sử dụng IIOP và DCE tương ứng SOAP là một giao thức dựa trên XML (hay nói cách khác nó dựa trên văn bản text) và do đó dễ hiểu hơn so với IIOP và DCE là hai giao thức nhị phân Nhưng ngược lại dùng văn bản text sẽ chậm hơn so với các giao thức nhị phân này – Web Services sử dụng XML như khuôn thức giá trị tham số trọng tải trong khi DCOM sử dụng khuôn thức Network Data Representation (DR) đối với tham số trọng tải, và CORBA sử dụng khuôn thức không tương thích khuôn thức Common Data Representation (CDR) XML là một platform-gắn thẻ trung lập-ngôn ngữ trình bày dữ liệu Nó cho phép dữ liệu được tuần tự hoá bên trong một khuôn thức thông điệp mà dễ dàng giải mã trong bất kì platform nào Tuy nhiên, không giống như DR và CDR, XML sử dụng đơn giản, đưa ra một Học Viên: Trần Hữu Phước – K31 KHMT 9 Báo Cáo Lập Trình Nâng Cao khuôn thức dữ liệu linh động, dễ dàng mở rộng, và được hỗ trợ hầu như trong mọi platform tin học Thêm nữa XML mở và được chấp nhận rộng rãi – DCOM sử dụng việc định tên với các sự miêu tả OBJREF, trong khi CORBA sử dụng một Interoperable Object Reference (IOR) OBJREFs và IORs không tương quan với nhau, và chuyển đổi giữa chúng rất mơ hồ, không chắc chắn Tương phản với điều đó, Web Services và RMI sử dụng URLs mà được hiểu và chấp nhận phổ biến khắp nơi – DCOM sử dụng trên sự bố trí bộ nhớ chuẩn của COM, cái mà nó chỉ định trên mức nhị phân CORBA cung cấp Interface Definition Language (IDL) của nó cùng với APIs của nó, cho phép các đối tượng tơng tác với Object Request Brokers (ORBs) RMI cung cấp chỉ đối với các giao diện Java Mặt khác, Web Services cung cấp WSDL, là một IDL dịch vụ dựa trên XML (XML-based service IDL) để định rõ các đặc tính của một Web Service, bao gồm những gì nó làm, nơi nó cư trú, và làm thế nào để gọi nó – Một lập trình viên có thể sử dụng WSDL để tạo các service proxy cho các Web Services từ xa Các proxy này có thể được coi như là các client stub (tương tự các stub trong CORBA hoặc RMI hoặc các proxy trong DCOM), đó là sự miêu tả cục bộ của một chương trình từ xa là đặc điểm của tất cả các kiến trúc RPC Bởi vậy, một kiến trúc Web Services có thể được xem như là một kiến trúc RPC, tiếp theo sau bước đi của DCOM, CORBA và RMI, nhưng với những cải tiến đáng kể trong tương tác và dễ dàng phát triển CHƯƠNG II ỨNG DỤNG THỰC TẾ 1 Đặt Vấn Đề Học Viên: Trần Hữu Phước – K31 KHMT 10 Báo Cáo Lập Trình Nâng Cao Phòng khám X là một phòng khám đa khoa chuyên về khám chữa bệnh Phòng khám có dùng một số phần mềm ”soạn và in toa thuốc”, “in các phiếu xét nghiệm cận lâm sàng”, ”quản lý thuốc”…Những phần mềm này được dùng riêng lẻ, đa số không lưu hồ sơ bệnh nhân, không nối kết nhau, không dùng chung cở sở dữ liệu nên quản lý không chặt chẽ khiến dễ có sự nhầm lẫn và thao tác phức tạp Hiện tại, phòng khám có nhu cầu cần một hệ thống để quản lý các thông tin chung để dễ quản lý Hệ thống được xây dựng kiểu client-server với client có thể được deploy bất cứ nơi đâu 2 Phân Tích 2.1 Phân Tích Yêu Cầu Hệ thống được xây dựng theo mô hình Client-Server Hệ thống có hai loại người dùng: Super Admin và Normal User Cả hai loại đều có các chức năng như sau: - Đăng nhập Đăng xuất Cấu hình thông tin hệ thống View các thống kê của hệ thống Xem, sửa các thông tin Đổi mật khẩu của mình Ngoài ra, Super Admin user có thêm chức năng: - Xem, thêm, sửa thông tin người dùng trong hệ thống và phân quyền Login 2.2 Biểu Đồ Usecase Quan Ly Kham Benh Quan Ly Benh An Quan Ly Danh Muc Bao Hiem Quan Ly Duoc Bo Phan Tiep Nhan Kham Benh Khoa Duoc Quan Ly Lam Sang Quan Ly Can Lam Sang Khoa Lam Sang Khoa Can Lam Sang Quan Ly Vien Phi Quan Ly Kham Chuy en Khoa Quan Ly Nhan Su Quan Ly Thu Chi Toan PK Quan Ly Tai Khoan Bo Phan Thu Ngan Bo Phan Chuy en Khoa Bo Phan Nhan Su Bo Phan Ke Toan Admin Giam Doc PK Học Viên: Trần Hữu Phước – K31 KHMT Bao Cao - Thong Ke 11 Báo Cáo Lập Trình Nâng Cao 2.3 Biểu Đồ lớp phân tích Phong Kham Phieu Kham Benh 0 * Benh An 0 1 0 1 0 1 0 * 0 1 0 1 BHYT 0 1 0 * 0 * 0 * Thu Ngan Khoa 0 1 Nhan Su 1 * Hoa Don Can Lam Sang Khoa Duoc Lam Sang Chuyen Khoa 1 * Thuoc 2.4 Biểu Đồ Tuần Tự 2.4.1 Login Học Viên: Trần Hữu Phước – K31 KHMT 12 Nhan Vien Khac Bac Sy Y Ta Báo Cáo Lập Trình Nâng Cao Client Server : Normal User 1: Submit Login Info 2: Send Login Info 3: Valid Login Info 4: Return Result 5: Display result 2.4.2 Logout Client : Normal User 1: Logout 2: Remove Login Info 3: Return result 2.4.3 Thêm Mới Học Viên: Trần Hữu Phước – K31 KHMT 13 Báo Cáo Lập Trình Nâng Cao Client Server : Normal User 1: Submit New Supplier 2: Send New Supplier 3: Valid And Add New Supplier 4: Return Result 5: Display Result 2.4.4 Chỉnh sửa Client Server : Normal User 1: Submit Edit Supplier 2: Send Edit Supplier 3: Valid And Update Edit Supplier 4: Return Result 5: Display Result 2.4.5 Xem Danh Sách Học Viên: Trần Hữu Phước – K31 KHMT 14 Báo Cáo Lập Trình Nâng Cao Client Server : Normal User 1: Submit Request 2: Send Request 3: Valid And Query List Suppliers 4: Return Result 5: Display Result 2.4.6 Xóa Client Server : Normal User 1: Submit Supplier Id 2: Send Request 3: Valid And Delete Supplier By Id 4: Return Result 5: Display Result 2.5 Biểu đồ lớp thiết kế Học Viên: Trần Hữu Phước – K31 KHMT 15 Báo Cáo Lập Trình Nâng Cao Benh An Ma Benh An : String Ho Ten Benh Nhan : String Gioi Tinh Dia Chi : String SDT Trieu Chung : String Ket Luan Cua Bac Sy : String 0 1 0 * Phong Kham Ma Phong Kham : String Ten Phong Kham : String Ma Khoa : Khoa Ma Phieu Kham Benh : Phieu Kham Benh Ma BHYT : BHYT 0 1 Ma Benh An : Benh An Ma Nhan Vien : Nhan Su 0 1 0 1 0 1 0 * Khoa Ma Khoa : String Ten Khoa : String Ma Phong Kham Can Lam Sang Ma Dich Vu Ten Dich Vu Ma Khoa Ket Qua() Ket Qua() Lam Sang Ma Khoa 0 1 Ket Qua() Phieu Kham Benh Ma Phieu Ngay Kham Ho Ten Benh Nhan Trieu Chung 0 * Nhan Su Ma Nhan Vien Loai Nhan Vien 0 * 0 * 0 1 Thu Ngan Ma Phong Kham Cap Nhap Dich Vu Da Dung() Luong() BHYT Ma BH : String Ten BH : String Phan Tram 1 * Bac Sy Ma NV Ten NV Dia Chi Bang Cap Y Ta Ma NV Ten NV Dia Chi Bang Cap Luong() Luong() Nhan Vien Khac Ma NV Ten NV Dia Chi Bang Cap Hoa Don Ma Hoa Don Ten Hoa Don Cac Dich Vu Da Dung Tong Tien() Khoa Duoc Ngay Nhap Thuoc So Luong Thuoc Da Cap So Thuoc Hien Tai So Thuoc Ton Ma Khoa Chuyen Khoa Ma Chuyen Khoa Ket Qua() Thong Tin Thuoc() 1 * Thuoc Ma Thuoc : String Ten Thuoc : String Ngay Nhap : Date So Luong Nhap : Double Don GIa : Double Nha Cung Cap : String Luong() 3 Thiết Kế và Thuật toán 3.1 Kiến Trúc - Xây dựng theo kiến trúc client-server Server: Nhận request và truy vấn xử lý dữ liệu, tương tác với client Client: Trung gian tương tác giữa người dùng và server, bao gồm các giao diện để người dùng sử dụng Kiến trúc hệ thống 3.2 Database Học Viên: Trần Hữu Phước – K31 KHMT 16 Báo Cáo Lập Trình Nâng Cao 3.3 Thiết Kế Giao Diện Login Học Viên: Trần Hữu Phước – K31 KHMT 17 Báo Cáo Lập Trình Nâng Cao Đổi mật khẩu Hình 1 - Quản lý tài khoản Học Viên: Trần Hữu Phước – K31 KHMT 18 Báo Cáo Lập Trình Nâng Cao Hình 2 - Homepage Hình 3 - Quản lý Bệnh nhân Học Viên: Trần Hữu Phước – K31 KHMT 19 Báo Cáo Lập Trình Nâng Cao 3.4 Sinh mã 1 public class BenhAn { public string Mabenhan, Tenbenhnhan, Gioitinh, Sodt, Diachi, Trieuchung, Ketluan; public PhongKham BAPK; } 2 public class PhieuKhamBenh { public string Maphieu, Hotenbenhnhan, Trieuchung; public date Ngay kham; public PhongKham PKBPK; } 3 abstract class NhanSu { public string Manhanvien, Loainhanvien; public PhongKham NSPK; abstract public float Luong(); } 4 abstract { class Khoa public string Makhoa, Tenkhoa, Maphongkham; public PhongKham KPK; abstract public void Ketqua(); } 5 abstract class ThuNgan { public String Maphongkham; abstract public void capnhatdichvudadung(); abstract public void capnhathoadon(); public Hoadon[] TNHD; } 6 public class BHYT { public string Mabaohiem, Tenbaohiem; public float Phantram; public PhongKham BHYTPK; } //BenhAn,PhieuKhamBenh,Nhansu,Khoa,BHYT,ThuNgan va PhongKham co moi quan he thu nap 7 public class PhongKham { public string Maphongkham, Tenphongkham; public BenhAn[] BAPK; public PhieuKhamBenh[] PKBPK; public NhanSu[] NSPK; public Khoa[] KPK; public BHYT[] BHYTPK; public ThuNgan[] TNPK; Học Viên: Trần Hữu Phước – K31 KHMT 20 Báo Cáo Lập Trình Nâng Cao } // BacSi,YTa,NhanVienKhac ke thua NhanSu 8 class BacSi extends NhanSu { public string Diachi, Bangcap; public float Luong() { } } 9 class YTa extends NhanSu { public string Diachi, Bangcap; public float Luong() { } } 10 class NhanVienKhac extends NhanSu { public string Diachi, Bangcap; public float Luong() { } } //ThuNgan va HoaDon co quan he 1-n 11 public class HoaDon { public String Mahd,Tenhd; public void cacdichvudadung(){}; public float tongtien(){}; } // CanLamSang,LamSang,ChuyenKhoa,KhoaDuoc ke thua Khoa 12 class CanLamSang extends Khoa { public string Madichvu, Tendichvu,Makhoa; public void Ketqua() { } } 13 class LamSang extends Khoa { public string Makhoa; public void Ketqua() { } Học Viên: Trần Hữu Phước – K31 KHMT 21 Báo Cáo Lập Trình Nâng Cao } 14 class ChuyenKhoa extends Khoa { public string Machuyenkhoa; public void Ketqua() { } } //Khoaduoc va Thuoc co quan he 1-n 15 abstract class KhoaDuoc extends Khoa { public String Makhoa,ngaynhapthuoc,slthuocdacap,slthuocton, slthuochientai; abstract public void thongtinthuoc(); public Thuoc[] KDT; } 16 class Thuoc { } public String mathuoc,tenthuoc,ngaynhap,slnhap,dongia,nhacc; public KhoaDuoc KDT; 4 Triển Khai Nền tảng Công cụ Hệ quản trị dữ liệu NET 4.5, Windows 7 Visual Studio 2013, C# MS SQL 2012 5 Kết Luận - Về lý thuyết Đã tìm hiểu về các công nghệ RPC, DCOM/COM+, RMI, CORBA và Web Services Qua đó thấy được sự phát triển cải tiến của công nghệ gọi từ xa trong lập trình ứng dụng qua mạng - Về thực hành Đã xây dựng được một chương trình theo mô hình client/Server Chương trình đáp ứng được một số chức năng cơ bản của một hệ thống quản lý Tuy nhiên hệ thống vẫn còn một số lỗi cần khắc phục cũng như cải tiến hiệu năng sao cho mượt mà hơn Học Viên: Trần Hữu Phước – K31 KHMT 22 Báo Cáo Lập Trình Nâng Cao TÀI LIỆU THAM KHẢO [1] Lê Văn Sơn, Giáo trình Lập trình mạng máy tính, Tài liệu giảng dạy dành cho học viên Công nghệ thông tin, Trường Đại học Sư phạm-Đại học Đà Nẵng, Đà Nẵng, 2001 [2] Mark D Hanes, Stanley C Ahalt, Ashok K Krishnamurthy - Comparison of Java RMI, CORBA, and Web Services Technologies for Distributed SIP Applications [3] N.A.B Gray - Comparison of Web Services, Java-RMI, and CORBA Service Implementations [4] Các tài liệu tham khảo trên internet Học Viên: Trần Hữu Phước – K31 KHMT 23

Ngày đăng: 20/11/2016, 17:23

Mục lục

  • ỨNG DỤNG THỰC TẾ

  • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan