Báo cáo môn học Lập trình nâng cao - Remote Procedure Call (RPC)

17 1.4K 1
Báo cáo môn học Lập trình nâng cao - Remote Procedure Call (RPC)

Đ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

Remote Procedure Call (RPC) – Thủ tục gọi hàm từ xa là một kỹ thuật tiến bộ cho quá trình kết nối từ Client đến Server để sử dụng các ứng dụng và dịch vụ. RPC cho phép client có thể kết nối tới 1 dịch vụ sử dụng dynamic port nằm ở một máy tính khác. Trong hệ thống mạng máy tính hiện nay có rất nhiều dịch vụ và ứng dụng sử dụng cơ chế kết nối RPC, ví dụ quá trình đồng bộ của các Domain Controller trong hệ thống Active Directory, hoặc khi MS Outlook kết nối tới MS Exchange Server…

BÀI TẬP LỚN MƠN HỌC LẬP TRÌNH NÂNG CAO PHẦN I: Các công nghệ triệu gọi hàm/ phương thức từ xa I RPC (Remote Procedure Call ) Giới thiệu Remote Procedure Call (RPC) – Thủ tục gọi hàm từ xa kỹ thuật tiến cho trình kết nối từ Client đến Server để sử dụng ứng dụng dịch vụ RPC cho phép client kết nối tới dịch vụ sử dụng dynamic port nằm máy tính khác Trong hệ thống mạng máy tính có nhiều dịch vụ ứng dụng sử dụng chế kết nối RPC, ví dụ q trình đồng Domain Controller hệ thống Active Directory, MS Outlook kết nối tới MS Exchange Server… Lời gọi thủ tục xa chế cho phép chương trình gọi thực thi thủ tục (hay hàm) máy tính khác Trong chương trình lúc này, tồn hai loại thủ tục: thủ tục cục thủ tục xa Thủ tục cục thủ tục định nghĩa, cài đặt thực thi máy chương trình Thủ tục xa thủ tục định nghĩa, cài đặt thực thi máy tính khác Cú pháp lời gọi thủ tục cục xa giống Tuy nhiên, thủ tục xa gọi đến, thành phần chương trình gọi Stub chuyển hướng để kích hoạt thủ tục tương ứng nằm máy tính khác với máy chương trình gọi Đối với người lập trình, việc gọi thủ tục xa thủ tục cục giống mặt cú pháp Đây chế cho phép đơn giản hóa việc xây dựng ứng dụng Client-Server Trong hệ thống RPC, Server máy tính cung cấp thủ tục xa cho phép chương trình máy tính khác gọi thực Client chương trình gọi thủ tục xa q trình tính tốn Một Client gọi thủ tục xa nhiều máy tính Như thực thi chương trình Client lúc khơng cịn gói gọn máy tính Client mà trải rộng nhiều máy tính khác Đây mơ hình ứng dụng phân tán (Distributed Application) Remote Procedure Call (RPC) Kiến trúc chế hoạt động Một ứng dụng Client-Server theo chế RPC xây dựng gồm có sáu phần sơ đồ đây: Kiến trúc chương trình kiểu RPC Phần Client trình người dùng, nơi khởi tạo lời gọi thủ tục từ xa Mỗi lời gọi thủ tục xa phần Client kích hoạt thủ tục cục tương ứng nằm phần Stub Client Phần Client Stub cung cấp hàm cục mà phần Client gọi Mỗi hàm Client Stub đại diện cho hàm xa cài đặt thực thi server Mỗi hàm Client Stub gọi Client, Client Stub đóng gói thơng điệp để mô tả thủ tục xa tương ứng mà Client muốn thực thi với tham số có Sau nhờ hệ thống RPC Runtime cục gởi thông điệp đến phần Server Stub Server Phần RPCRuntime quản lý việc truyền thông điệp thông qua mạng máy Client máy Server Nó đảm nhận việc truyền lại, báo nhận, chọn đường gói tin mã hóa thơng tin RPCRuntime máy Client nhận thơng điệp u cầu từ ClientStub, gởi cho RPCRuntime máy Server lệnh send() Sau gọi lệnh wait() để chờ kết trả từ Server Khi nhận thông tiệp từ RPCRuntime Client gởi sang, RPCRuntime bên phía server chuyển thơng điệp lên phần Server Stub Server Stub mở thông điệp xem, xác định hàm xa mà Client muốn thực với tham số Server Stub gọi thủ tục tương ứng nằm phần Server Khi nhận yêu cầu Server Stub, Server cho thực thi thủ tục yêu cầu gởi kết thực thi cho Server Stub ServerStub đóng gói kết thực gói tin trả lời, chuyển cho phần RPC Runtime cục để gởi sang RPC Runtime Client RPC Runtime bên phía Client chuyển gói tin trả lời nhận cho phần Client Stub ClientStub mở thông điệp chứa kết thực thi cho Client vị trí phát lời gọi thủ tục xa Trong thành phần trên, RPC Runtime cung cấp hệ thống Client Stub Server Stub tạo thủ cơng (phải lập trình) hay tạo cơng cụ cung cấp hệ thống Cơ chế RPC hỗ trợ hầu hết hệ điều hành mạng ngơn ngữ lập trình II DCOM/COM+ Giới thiệu Là cơng nghệ độc quyền MS, định nghĩa thành phần phần mềm phân tán qua mạng máy tính để truyền thơng với thành phần khác Ngồi ra, cịn hỗ trợ kết nối đối tượng kết nối thay đổi lúc chạy COM (Component Object Model) cách thức để viết thành phần phần mềm (software componet) cung cấp chức phục vụ cho ứng dụng, thành phần khác Viết thành phần COM viết hàm API động, hướng đối tượng Các thành phần COM nối kết với ứng dụng thành phần COM khác COM đặc tả Nó làm để xây dựng thành phần thay cách “động” COM cung cấp “chuẩn” để ứng dụng thành phần phải tuân theo để chúng hoạt động với sử dụng lại thư viện Thành phần Thành phần COM đoạn mã thực hàm, chức chứa file DLL EXE Thành phần COM cần phải thỏa mãn “chuẩn” COM Các thành phần COM liên kết động Các thành phần COM “bao gói” lại thỏa mãn ràng buộc: Thành phần COM hoàn toàn độc lập với ngơn ngữ thực Thành phần COM thực nhiều ngôn ngữ Visual C++, Visual Basic, Java … Giao diện (Interface) Giao diện tất COM Các ứng dụng nhìn thấy truy xuất đến thành phần COM thơng qua giao diện Giao diện làm tăng mức độ độc lập ứng dụng thành phần COM nhờ có giao diện mà thành phần COM thay động mà không ảnh hưởng đến ứng dụng chạy Giao diện không thay đổi Nếu muốn nâng cấp giao diện giao diện phải tồn song song với giao diện cũ Các kiến trúc : Ứng dụng Client ứng dụng COM chạy máy: Mục đích xây dựng thành phần mơ hình : Ứng dụng COM tái sử dụng cho nhiều ứng dụng Client khác Làm cho chương trình dễ viết, dễ kiểm tra lỗi, nâng cấp mà không ảnh hưởng đến ứng dụng Client chạy Ứng dụng Client chạy máy, Ứng dụng COM chạy máy Nhưng hai máy mạng local Lúc thành phần COM gọi DCOM Có cách để giao tiếp ứng dụng Client Ứng dụng COM: ActiveX (.exe) Dùng MTS (Microsoft Transaction Server) để triển khai ActiveX DLL từ xa RDS (Remote Data Access) III RMI Tổng quan RMI chế cho phép đối tượng chạy máy ảo Java ( Java Virtual Machine) gọi phương thức đối tượng tồn máy ảo Java khác (JVM) Thực chất RMI chế gọi phương thức từ xa thực tích hợp ngơn ngữ Java Vì Java ngơn ngữ lập trình hướng đối tượng, nên phương pháp lập trình RMI phương pháp hướng đối tượng thao tác hay lời gọi phương thức liên quan đến đối tượng Ngồi ra, RMI cịn cho phép Client gửi tới đối tượng đến cho Server xử lý, đối tượng xem tham số cho lời gọi hàm từ xa, đối tượng có liệu bên hành vi đối tượng thực Lập trình đối tượng phân tán vấn đề nóng cơng nghệ phân tán phần mềm ngày Java ngôn ngữ tiên phong với RMI (Remote Method Invocation) - kĩ thuật cài đặt đối tượng phân tán vô hiệu linh động Thông thường chương trình viết dạng thủ tục hàm việc hàm gọi lẫn nhau, truyền tham số hay kết cho xảy máy cục Kỷ thuật RMI (Remote Method Invoke) – mang ý nghĩa triệu gọi phương thức từ xa cách thức giao tiếp đối tượng Java có mã lệnh cài đặt nằm máy khác triệu gọi lẫn Để giải số vấn đề việc truyền thông Client/Server RMI không gọi trực tiếp mà thông qua lớp trung gian Lớp tồn hai phía Client Server Lớp máy Client gọi Stub, lớp máy Server gọi Skel (Skeletion) Mục đích RMI Hỗ trợ gọi phương thức từ xa đối tượng máy ảo khác Hỗ trợ gọi ngược phương thức ngược từ server tới applet Tích hợp mơ hình đối tượng phân tán vào ngơn ngữ lập trình Java theo cách tự nhiên trì ngữ cảnh đối tượng ngơn ngữ lập trình Java Làm cho khác biệt mơ hình đối tượng phân tán mơ hình đối tượng cục khơng có khác biệt Tạo ứng dụng phân tán có độ tin cậy cách dễ dàng Duy trì an tồn kiểu cung cấp mơi trường thời gian chạy tảng Java Hỗ trợ ngữ cảnh tham chiếu khác cho đối tượng từ xa Duy trì mơi trường an tồn Java trình bảo an trình nạp lớp RMI công nghệ phân tán cho phép phương thức máy ảo Java gọi từ xa Đây cách đơn giản để truyền tin ứng dụng với ứng dụng khác so với truyền tin trực tiếp với TCP socket, cách truyền tin địi hỏi hai phía sử dụng giao thức Thay viết chương trình cài đặt giao thức, người phát triển tương tác với phương thức đối tượng định nghĩa giao tiếp dịch vụ RMI Mỗi có tham chiếu tới đối tượng từ xa, tham chiếu xem đối tượng cục bộ, cách trực quan để phát triển ứng dụng mạng Lập trình đối tượng phân tán vấn đề nóng cơng nghệ phân tán phần mềm ngày Java ngôn ngữ tiên phong với RMI (Remote Method Invocation) - kĩ thuật cài đặt đối tượng phân tán vô hiệu linh động Các đặt tính RMI RMI mơ hình đối tượng phân tán Java, giúp cho việc truyền thơng đối tượng phân tán dễ dàng RMI API bậc cao xây dựng dựa lập trình Socket RMI khơng cho phép truyền liệu đối tượng hệ thống máy tính khác nhau, mà cịn triệu gọi phương thức đối tượng xa (Remote Object) Việc truyền liệu máy khác xử lý cách suốt máy ảo Java (Java virtual machine) Tương tự mơ hình Client/Server, RMI lấy/duy trì khái niệm Client Server, nhiên cách tiếp cận (approach) RMI linh hoạt hơn, mềm dẻo so với mơt hình Client/Server Một điều thuận lợi quan RMI cung cấp cớ chế callbacks, cho phép Server triệu gọi phương thức Client Kiến trúc RMI Remote interface: Nên extend từ java.rmi.remote.Nó khai báo tất phương thức mà Client triệu gọi Tất method interface nên throw RemoteException Remote implementation: Được thực thi từ Remote interface mở rộng từ UnicastRemoteObject Triển khai method khai báo Interface Nó Remote Object thực Phát sinh hai lớp trung gian Stub Skel Server class bao gồm: - RMI registry: Bộ đăng kí đăng kí Remote object với Naming Registry Giúp Remote object chấp nhận gọi method từ xa - Các class thực thi server Client class: Truy vấn tên Remote object RMI registry, thông qua stub để gọi phương thức server Cách làm việc RMI Các Đối tượng phía Server đăng kí với đăng kí RMI registry Client kiểm tra đối tượng xa RMI Registry Vị trí đối tượng xa xác định RMI Registry Một stub trả cho Client Remote object sử dụng tương tự Local object để truy xuất đến toàn tài nguyên Việc truyền thông Client Server xử lý Stub Skel IV CORBA Giới thiệu CORBA CORBA cịn gọi ngơn ngữ đặc tả giao tiếp (IDL-Interface Description Language) Mô tả chức đối tượng thông qua hàm, phương thức, thuộc tính… Khơng chứa cài đặt mã lệnh Đặc tả đối tượng dựa khái niệm interface Java CORBA mơ hình phân tán Trình mơi giới trung gian ORB (Object Request Broker) Cơ chế làm việc ORB Giao thức IIOP (Interoperate Internet Object Protocol) Các đối tượng sau tạo ngôn ngữ lập trình khác phải gọi thơng qua chương trình mơi giới trung gian CORBA gọi ORB ORB hoạt động nhờ ngôn ngữ đặc tả IDL Dựa vào IDL, ORB biết tên phương thức cần gọi, đối số, trị trả về,…Từ ORB gọi phương thức đối tuợng ORB hồn tồn suốt (transparent) lập trình viên người sử dụng C++ Corba Object Network ORB ORB Delphi Corba Object ORB Java Corba Object ORB (Object Request Broker) Cơ chế hoạt động : Java Corba Object C++ Client Intermidiate class _Stub Intermidiate class _Skel IIOP ORB Client ORB Server V Web Services Tổng quan Web Services cách chuẩn để tích hợp ứng dụng web (Web-based applications) Các ứng dụng sử dụng thành phần khác để tạo thành dịch vụ, ví dụ máy chủ chạy trang web thương mại điện tử kết nối với cổng toán điện tử qua API - Application Programming Interface ( tạo tởi cơng nghệ NET web services máy chủ (IIS - Internet Information Services), thành phần toán, thành phần NET coi component (các thành phầm bên ngoài) Các thành phần gọi phương thức SOAP (Khác phương thức POST, GET) nên không bị gặp phải firewall truy xuất thành phần bên máy chủ Và tồn thành phần gọi Web Services Các Web Services cho phép tổ chức thực truyền thông liệu mà không cần phải có kiến thức hệ thống IT phía sau tường lửa Một số Web Services có sẵn miễn phí ngày hướng dần vào doanh nghiệp Theo định nghĩa W3C (World Wide Web Consortium), Web Service hệ thống phần mềm thiết kế để hỗ trợ khả tương tác ứng dụng máy tính khác thơng qua mạng Internet, giao diện chung gắn kết mơ tả XML Web Service tài nguyên phần mềm xác định địa URL, thực chức đưa thông tin người dùng yêu cầu Một dịch vụ Web tạo nên cách lấy chức đóng gói chúng cho ứng dụng khác dễ dàng nhìn thấy truy cập đến dịch vụ mà thực hiện, đồng thời u cầu thơng tin từ dịch vụ Web khác Nó bao gồm mô đun độc lập cho hoạt động khách hàng doanh nghiệp thân thực thi server Web Service mô tả cách thức chuẩn để tích hợp ứng dụng dựa tảng Web, sử dụng chuẩn mở XML (Extensible Markup Language), SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language) UDDI (Universal Description Discovery and Integration) thông qua giao thức Internet Cơ chế hoạt động Một ứng dụng web Service bao gồm phần: Client Server giao tiếp với qua giao thức HTTP Client gửi yêu cầu qua lời gọi hàm thông qua HTTP Request đến Server Server gửi kết thực thi hàm thông qua HTTP Response VI So sánh công nghệ triệu gọi hàm/ phương thức từ xa Gọi phương thức từ xa khơng phải khái niệm Thậm chí trước đời lập trình hướng đối tượng phần mềm gọi hàm thủ tục từ xa Các hệ thống RPC sử dụng nhiều năm sử dụng Trước hết, Java ngôn ngữ độc lập với cho phép ứng dụng Java truyền tin với ứng dụng Java chạy phần cứng hệ điều hành có hỗ trợ JVM Sự khác biệt hai mục tiêu RPC hỗ trợ đa ngôn ngữ, ngược lại RMI hỗ trợ ứng dụng viết Java Ngồi vấn đề ngơn ngữ hệ thống, có số khác biệt RPC RMI Gọi phương thức từ xa làm việc với đối tượng, cho phép phương thức chấp nhận trả đối tượng Java kiểu liệu nguyên tố (premitive type) Ngược lại gọi thủ tục từ xa không hỗ trợ khái niệm đối tượng Các thông điệp gửi cho dịch vụ RPC (Remote Procedure Calling) biểu diễn ngôn ngữ XDR (External Data Representation): dạng thức biểu diễn liệu Chỉ có kiểu liệu định nghĩa XDR truyền Ưu điểm  RMI: cần lời gọi phương thức đối tượng gọi diện máy ảo máy Đồng thời, sử dụng nhiều tảng di động, tích hợp sẵn Java  RPC: thủ tục gọi hàm không cần biết thực máy giống hay khác  CORBA: dịch vụ viết nhiều ngơn ngữ khác nhau, thực thi nhiều tảng khác nhau, truy cập tảng ngơn ngữ với ánh xạ ngôn ngữ định nghĩa giao diện (IDL) Hỗ trợ liệu nguyên gốc, loạt kiến trúc liệu Dễ dàng kết nối liệu hệ thống với Client không cần biết interface cho server object Cung cấp lựa chọn lấy kết trả  DCOM: dễ triển khai, chi phí thấp, tính ổn định, khơng phụ thuộc vào địa lý, quản lý kết nối hiệu dễ mở rộng  WEB SERVICE: khả vượt firewall Hoạt động đa môi trường, linh hoạt dễ chuyển đổi Cung cấp khả hoạt động rộng lớn với ứng idnjg phần mềm khác chạy tảng khác Sử dụng giao thức chuẩn mở Nâng cao khả tái sử dụng, thúc đẩy hệ thống tích hợp, tạo mối quan hệ tương tác lẫn mềm dẻo thành phần hệ thống Nhược điểm:  RMI: gắn chặt với tảng hỗ trợ Java Tuy nhiên, RMI hạn chế chức hạn chế bảo mật  RPC:  CORBA: việc sử dụng ngôn ngữ phải định nghĩa sẵn Đồng thời, số công cụ tích hợp CORBA khơng hỗ trợ thay đổi với mã có Chương trình phức tạp Chi phí cao Dễ gây lỗi  DCOM: giới hạn hệ thống MS  WEB SERVICE: liệu truyền nhiều Đồng thời, không hỗ trợ kết nối thời gian dài PHẦN II : Bài tập lớn – Xây dựng phần mền quản lý học sinh PTTH I Đặt vấn đề Hiện nay, công ngh ệ thông tin đư ợc xem ngành mũi nhọn quốc gia, đặc biệt quốc gia phát triển, tiến hành cơng nghi ệp hóa đại hố nư ớc ta Sự bùng nổ thơng tin phát triển mạnh mẽ công nghệ kỹ thuật số, yêu cầu muốn phát triển phải tin học hoá vào tất ngành lĩnh vực Cùng với phát triển nhanh chóng phần cứng máy tính, phần mềm ngày trở nên đa dạng,phong phú, hoàn thiện hỗ trợ hiệu cho người Các phần mềm ngày mơ ph ỏng nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử lý nhanh chóng, số nghiệp vụ tự động hoá cao Do mà việc phát triển phần mềm, địi hỏi khơng xác, xử lý nhiều nghiệp vụ thực tế mà phải đáp ứng yêu cầu khác tốc độ, giao diện thân thiện, mơ hình hố thực tế vào máy tính để người sử dụng tiện lợi, quen thuộc, tính tương thích cao, b ảo mật cao (đối với liệu nhạy cảm), … Các phần mềm giúp tiết kiệm lượng lớn thời gian, công sức người, tăng độ xác hiệu cơng việc (nhất việc sửa lỗi tự động đồng hoá) Một ví dụ cụ thể, việc quản lý học vụ trường trung học phổ thơng Nếu khơng có hỗ trợ tin học, việc quản lý phải cần nhiều người, chia thành nhiều khâu, quản lý tồn hồ sơ, học sinh (thơng tin, điểm số, kỷ luật, học bạ, …), lớp học (sỉ số, GVCN, thời khố biểu, …), giáo viên (thơng tin, l ịch dạy, …) … nghi ệp vụ thời khố biểu, tính điểm trung bình, x ếp loại học lực cho học sinh toàn trường (số lượng học sinh lên đến hai ba ngàn học sinh).Các cơng việc địi hỏi nhiều thời gian cơng s ức, mà xác hiệu khơng cao, đa số làm thủ cơng tự động Một số nghiệp vụ tra cứu, thống kê, hiệu chỉnh thông tin v ất vả Ngồi cịn có số khó khăn vấn đề lưu trữ đồ sộ, dễ bị thất lạc, tốn kém,… Trong đó, nghiệp vụ hồn tồn tin học hố cách dễ dàng Với giúp đỡ tin học, việc quản lý học vụ trở nên đơn giản, thuận tiện, nhanh chóng hiệu nhiều II Đặt tả Cơ sở liệu Database có user : xuanloi , pass: 12345 Đã tạo database vidu có table Hocsinh Dangnhap Chương trình Tuần tự công việc Tiến hành đăng nhập: Vào bật Server kết nối CSDL thành cơng: Chạy phía Client kết nối Server : Phía Client xây dựng thao tác - Xem tất học sinh - Lưu lại: sửa thông tin học sinh - Thêm: nhập hoc sinh - Tìm theo mã học sinh - Xóa theo mã học sinh - Đóng Client - Send: gởi yêu cầu thông tin đến Server - Save nhật ký : lưu lại tất thông tin nhật ký với Server - Open File : mở xem file - Save as: chỉnh sửa lưu lại file mở Mở, chỉnh sửa lưu lại file: Một Server phục vụ cho nhiều Client lúc: III Kết luận Đã ứng dụng giao thức TCP/IP để làm tập lớn thầy giao Chương trình có chức đơn giản Sau có nhiều thời gian tơi tiếp tục ứng dụng công nghệ để làm chương trình hồn chỉnh Rất cảm ơn thầy tạo điều kiện môn học mong đóng góp quý báu thầy IV Tài liệu tham khảo .NET Toàn Tập - Tập 1: C# Căn Bản Và Visual Studio NET IDE - Lập Trình Visual C# Thế Nào? (Sách Tự Học) - Dương Quang Thiện .NET Toàn Tập - Tập 2: C# Và.NET Framework - Lập Trình Visual C# Thế Nào? (Sách Tự Học) - Dương Quang Thiện .NET Toàn Tập - Tập 3: Lập Trình Giao Diện Người Dùng Theo C# (Lập Trình Visual C# Thế Nào?) - Dương Quang Thiện .NET Tồn Tập - Tập 4: Lập Trình Căn Cứ Dữ Liệu Dùng ADO NET Và C# - Lập Trình Visual C# Thế Nào (Sách Tự Học) - Dương Quang Thiện .NET Tồn Tập - Tập 5: Lập Trình Web Dùng ASP.NET Và C# - Lập Trình Visual C# Thế Nào (Sách Tự Học) - Dương Quang Thiện C # Cho Người Mới Học - Lê Minh Trung - Phạm Phương Hoa Tự Học SQL Server 2005 Trong 10 Tiếng - KS Hoàng Anh Quang Quản Lý Cơ Sở Dữ Liệu Với Microsoft SQL Server 2005 - Nguyễn Nam Thuận Lữ Đức Hào

Ngày đăng: 06/10/2016, 09:26

Từ khóa liên quan

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

Tài liệu liên quan