Tải bản đầy đủ (.doc) (25 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (444.91 KB, 25 trang )

ĐẠ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:

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

<<include>>

<<include>>

<<include>>

<<include>>


<<include>>

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

<<include>>

<<include>>

Quan Ly Lam Sang Quan Ly Can Lam Sang

Khoa Lam Sang

Khoa Can Lam
Sang

<<include>>

<<include>>

<<include>>

<<include>>


<<include>>

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


×