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

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 518 KB

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

Nội dung

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ủachương

Trang 1

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

Trang 2

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 11

ỨNG DỤNG THỰC TẾ 11

1 Đặt Vấn Đề 11

2 Phân Tích 11

2.1 Phân Tích Yêu Cầu 11

2.2 Biểu Đồ Usecase 12

2.3 Biểu Đồ lớp phân tích 12

2.4 Biểu Đồ Tuần Tự 13

2.5 Biểu đồ lớp thiết kế 16

3 Thiết Kế và Thuật toán 16

3.1 Kiến Trúc 16

3.2 Database 17

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

Trang 3

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ủachươ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ínhkhá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ủachươ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ựngcác ứng dụng Client-Server Trong hệ thống RPC, Server chính là máy tính cung cấpcá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áncủ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ủaClient 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 ứngdụ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ầnnhư sơ đồ dưới đây:

Trang 4

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 ứngnằ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ênServer

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 thicùng với các tham số nếu có Sau đó nó sẽ nhờ hệ thống RPCRuntime cục bộ gởithô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áyClient 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ếtquả trả về từ Server

Khi nhận được thông tiệp từ RPCRuntime của Client gởi sang, RPCRuntimebên phía server chuyển thông điệp lên phần ServerStub

Trang 5

ServerStub mở thông điệp ra xem, xác định hàm ở xa mà Client muốn thực hiệncù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ầnServer

Khi nhận được yêu cầu của ServerStub, Server cho thực thi thủ tục được yêucầ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ầnRPCRuntime 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ầnClientStub 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ằngcá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ềuhà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 quantrọ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ềnplatform khác ngoài Microsoft Windows không đáng kể Để các đối tượng COM thuậntiệ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ểnnữa, hay nói cách khác DCOM là phần mở rộng của COM Trong khi COM cho phéptạ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ôngchỉ ở tại máy client? Đó chính là một ứng dụng phân tán Do vậy, Microsoft đã mất

Trang 6

DCOM DCOM xây dựng một đối tuợng lời gọi thủ tục từ xaObject 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 đốitượng Một đối tượng COM có thể hỗ trợ nhiều giao diện, mỗi giao diện có một khungnhì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ứcliê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ượngCOM 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ươngthứ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ể đ ượcviế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ácnhau 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ùngmộ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 haytrê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ượngJava 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

Trang 7

Một chương trình Client có thể kích hoạt các phương thức ở xa trên một haynhiề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:

Trang 8

1.4 CORBA

Common Object Request Broker Architecture (CORBA) là đặc tả của ObjectManagement Group-OMG-giành cho việc đạt được tính tương tác giữa các nút tínhtoá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épnhữ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ộtngô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ấpkhá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ầumộ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ếtbằ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ả trongIDL và Client không biết đến đối tượng thi hành thực sự IDL cũng giống như các

Trang 9

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 đốitượ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 đichính xác bởi HTTP và TCP/IP

Trang 10

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ớinhữ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ữacá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 Protocol-BEEP)

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ứcthự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 Webservice 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ềntham 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ũngphả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

Trang 11

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 quamộ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ậtthô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ênXML (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ớiIIOP 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 khiDCOM 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ônthức Common Data Representation (CDR) XML là một platform-gắn thẻ trunglậ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 trongmột khuôn thức thông điệp mà dễ dàng giải mã trong bất kì platform nào Tuynhiên, không giống như DR và CDR, XML sử dụng đơn giản, đưa ra một

Trang 12

khuôn thức dữ liệu linh động, dễ dàng mở rộng, và được hỗ trợ hầu như trongmọ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ôngtươ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ênmứ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 RequestBrokers (ORBs) RMI cung cấp chỉ đối với các giao diện Java Mặt khác, WebServices cung cấp WSDL, là một IDL dịch vụ dựa trên XML (XML-basedservice 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 WebServices 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úcRPC, tiếp theo sau bước đi của DCOM, CORBA và RMI, nhưng với những cảitiến đáng kể trong tương tác và dễ dàng phát triển

Trang 13

CHƯƠNG II ỨNG DỤNG THỰC TẾ

1 Đặt Vấn Đề

Phòng khám X là một phòng khám đa khoa chuyên về khám chữa bệnh Phòngkhá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ậnlâ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ônglư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

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

HÌNH ẢNH LIÊN QUAN

Hình 1 - Quản lý tài khoản - 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
Hình 1 Quản lý tài khoản (Trang 20)
Hình 2 - Homepage - 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
Hình 2 Homepage (Trang 21)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w