Hai vấn đề chính đối với giao thức rpc là gì?

Table Of Contents:

RPC và RMI RPC [Remote Procedure Call] và RMI [Remote Method Invocation] là hai cơ chế cho phép người dùng gọi hoặc gọi các quy trình sẽ chạy trên một máy tính khác với máy tính mà người dùng đang sử dụng. Sự khác biệt chính giữa hai là cách tiếp cận hoặc mô hình được sử dụng. RMI sử dụng một khung mẫu hướng đối tượng, nơi người dùng cần biết đối tượng và phương pháp của đối tượng mà anh ta cần phải gọi. Để so sánh, RPC không phải là định hướng đối tượng và không xử lý các đối tượng. Thay vào đó, nó gọi các thủ tục con cụ thể đã được thiết lập.

RPC là một giao thức tương đối cũ dựa trên ngôn ngữ C, do đó kế thừa mô hình của nó. Với RPC, bạn sẽ nhận được một cuộc gọi thủ tục trông giống như một cuộc gọi địa phương. RPC xử lý các sự phức tạp liên quan đến việc chuyển cuộc gọi từ địa phương đến máy tính từ xa. RMI cũng làm điều tương tự; xử lý sự phức tạp của đi cùng với lời kêu gọi từ các địa phương đến máy tính từ xa. Nhưng thay vì đi qua một cuộc gọi thủ tục, RMI chuyển một tham chiếu tới đối tượng và phương thức đang được gọi. RMI được phát triển bởi Java và sử dụng máy ảo của nó. Do đó, việc sử dụng nó chỉ dành cho các ứng dụng Java để gọi các phương thức trên các máy tính ở xa.

Cuối cùng, RPC và RMI chỉ là hai phương tiện để đạt được cùng một điều chính xác. Tất cả đi xuống đến ngôn ngữ bạn đang sử dụng và mô hình mà bạn đang sử dụng. Sử dụng RMI hướng đối tượng là cách tiếp cận tốt hơn giữa hai, đặc biệt với các chương trình lớn hơn vì nó cung cấp một mã sạch hơn và dễ dàng hơn để theo dõi một khi có vấn đề gì đó xảy ra. Việc sử dụng RPC vẫn được chấp nhận rộng rãi, đặc biệt khi bất kỳ giao thức điều khiển từ xa thay thế nào không phải là một lựa chọn.

Tóm tắt:

1. RMI là định hướng đối tượng trong khi RPC không

2. RPC là cơ sở C, trong khi RMI là Java chỉ có
3. RMI gọi các phương thức trong khi RPC gọi hàm
4. RPC bị lỗi thời trong khi RMI là tương lai

Sự khác biệt giữa nhau và nhau Sự khác biệt giữa

Sự khác biệt giữa các cụm từ 'lẫn nhau' và 'khác nhau' là gì? Cả hai cụm từ này đều được sử dụng khi hai hoặc nhiều người làm cùng một điều. Có nghĩa là

Sự khác biệt giữa Corba và RMI Sự khác biệt giữa

Corba và RMI Không có nghi ngờ về sự phổ biến của Java trong các nhà phát triển. Với Java, các khả năng đã mở rộng hơn nữa. Java cực kỳ cầm tay

Sự khác biệt giữa RPC và Web Service Sự khác nhau giữa

RPC so với dịch vụ Web Việc tạo ra các dịch vụ web sử dụng giao thức SOAP đòi hỏi một trong hai lựa chọn được sử dụng. Một trong hai có thể làm theo các tài liệu SOAP

Trong ngành nghề lập trình phân tán chứa một số cách đc thiết lập để giải quyết vấn đề truyền tin giữa những chương trình riêng biệt.

Bài Viết: Remote procedure call là gì

Trong rất đông những giải pháp, từ những chuyển động socket cấp thấp [low-level] cho đến cấp cao [high-level] and những hệ thống đàm luận thông tin trong ngành nghề chi tiết, có hai cách thức tiếp cận “cấp trung [middle-level]” tính chất hấp dẫn ở chỗ chúng ẩn đi các cụ thể thực thi đồng thời thỏa mãn nhu cầu một giao diện chung có thể đc thi công trong một loạt những ngành nghề phần mềm. Hai giải pháp đấy là truyền tinhướng RPC and messaging.

Bài viết này sẽ nỗ lực làm đặc biệt sự khác biệt chủ yếu giữa hai cách truyền tinnày.

Ưu and nhượccủa RPC

RPC, đấy là chữ viết tắt của Remote Procedure Calls [tạm dịch là những cuộc gọi thủ tục từ xa], là một khái niệm nhằm nỗ lực khái quát một lời gọi thủ tục đôi khi trong điều kiện mà caller and receiver không cùng bên trong một process – và đã được phân tán trên những máy riêng biệt.

Quy mô RPC [Remote Procedure Calls]

Mục tiêu chính của cách đấy là khiến cho lời gọi từ xa RPC cũng tương tự như thể lờigọi thủ tục đôi khi cục bộvà ẩn đi việc truyền dữ liệu trở về qua mạng.

Mục tiêu này rất quyến rũ ở chỗ nó có khả năng được phép chuyển sự phân tán của hệ thống cuối cùng vào một quyết định ở thời hạn thi công – hay nói cách thức khác, từ quan điểm của lập trình viên thì không quan trọng việc cuộc gọi đấy là tất cả hay từ xa miễn là nó có cú pháp giống nhau, and quyết định cuối cùng về sự phân tán của những thành phần hệ thống riêng lẻ có thể đc tiến hành sau này. Việc loại trừ khía cạnh phân tán từ code có thể đem lại rất đông lợi ích cho những dự án vì ở giai đoạn đầu thì những cụ thể cuối cùng của việc thi công thường chưa đc biết đầy đủ. Lập trình viêncó thể tùy biến chuyển từ lời gọi tất cả sang lời gọi từ xa RPC mà không căn sửa quá to kết cấu bước đầu của chương trình.

Xem Ngay:  Hợp Đồng Điện Tử Là Gì

Tuy vậy, các lợi ích tiềm năng của RPC cũng có cái giá của nó:

Trong cơ chế gọi hàm trong nội bộ một process, lập trình viên thường không âu yếm đến thời điểm chuyển thực thi từ đối tượng người sử dụng gọi [caller] vào đối tượng người sử dụng bị gọi [receiver].Thời hạn này rất ngắn, chương trình nạp biến tất cả của caller vào stack. Ngược lại trongmô hìnhRPC thực tiễn, khoảng thời điểm truyền tham số đối tượng người sử dụng gọi [caller] đến đối tượng người sử dụng bị gọi [receiver] ở xa, rồi kết quả trả về sẽ đi từ receivervề tới caller là không bé dại. Lập trình viên đành phải chấp nhận hoặc lờ đi hoặc đặt cơ chế hết hạn [time out]. Cách thức lập trình viên tối ưu chương trình tất cả là chia bé dại chương trình thành nhiều đối tượng người sử dụng gọi nhau, hoặc những hàm tái dùng đc gọi lại. Nhưng với RPC, cách thức chia nhiều hàm để gọinày chưa chắc hợp lý khi thời điểm trễ mỗi lần gọi RPC là khó có thể bỏ quả, càng rất nhiều lần gọi, tổng thời điểm trễ sẽ tăng, khả năng nghẽn cổ chai do kiểu Giải bày Kiến Thức Cộng Đồng liên tục sẽ tăng. Nhiều nơigọi là chatty ~ gọi vặt liên tục.

Xem Ngay: hạn mức tín dụng tiếng anh là gì ?

Vấn đề của RPC là bởi nó ẩn đi thực tiễn phân tán ở mức cú pháp, điều đó gây nan giải hơn cho những lập trình viên để giải quyết đúng chuẩn những thử thách cố hữu đi cùng với những khía cạnh vật lý của phân tán.

Messaging như 1 giải pháp thay thế

Messaging là một khái niệm truyền tinkhác rất đông nếu với RPC trong đó nó không nỗ lực che giấu đi các khía cạnh vật lý của truyền dữ liệu từ caller đến receiver. Nó che giấu phần nàocác cụ thể thực thi, nhưng không đến mức độ bác bỏ những khái niệm ảnh hưởng đến những giá trị run-time trong việc đàm luận dữ liệu.

Messaging là một khái niệm truyền tincó thể đc giải thích một cách thức dễ dàng vì có các điểm hệt nhau với hệ thống e-mail. Điều quan trọng nhất của các điểm hệt nhau đấy là một thực tiễn rằng những message đc công nhận là những thực thể first-class, and người mua nghĩ rằng mỗi message là một đồ gì đó hữu hình. Trọng tâm ở đây không cần là để ẩn đi [hiding] các thử thách trong tiếp thị quảng cáo, thay vào đấy là sẽ đóng gói [encapsulation] and nêu ra một bề ngoài mà người mua có thể tương tác đc. Trong hệ thống e-mail, một message là một đồ gì đó không các đc truyền đi, mà nó cũng có thể đc sao lưu hoặc in ấn.

Cơ chế gửi tin nhắn [messaging]

Xem Ngay:  Initiatives Là Gì - Initiative Là Gì, Nghĩa Của Từ Initiative

Sau đó là một danh sách gần đầy đủ vềcác ưu điểmcó thể có, tùy thuộc theo việc thực thi, bộc lộ những nổi trội thường sẽ có của một hệ thống messaging:

Khả năng quản trị and phản xạ với những chậm trễ [delay] trong truyền tin. Một hệ thống messaging có thể có những thời điểm timeout đc kiểm soát với mức độ tùy ý – thậm chí ở cấp độ của những message riêng lẻ.Khả năng giám sát tiến độ [and ước lượng thời điểm thực tiễn] của việc truyền dữ liệu vật lý.Những mức độ ưu ái của message được phép tầng giao vận [transport layer] nhận ra những message dựa trên tầm quan trọng của chúng.Khả năng lưu trữ những message một cách thức an toàn và tin cậy [message persistency]hoặc được phép tách rời tuyệt đối những sender and receiver trong giới hạn thời điểm thực thi của chúng. Nhờ khả năng này receiverkhông nhất thiết phải lắng nghe hoặc sống khi message truyền tới. Hoặc message có thể đc gửi lại nhiều hơn 1 lần.Khả năng thích nghi đối với cả những hệ thống giao vận thẳng trực tiếp and gián tiếp, bao đến cả việc có thể auto tái tạo lại content. Trong hệ thống e-mail, danh sách mail [bao đến cả phần archives] là các ví dụ rất tốt về những hệ thống giao vận gián tiếp mà không cần bất kể phần mở rộng nào cho những khái niệm căn bản của e-mail.Message tagging, meta-information and tracing – ví dụ, tuyệt đối có thể thu đc một báo cáo đầy đủ về con đường vận chuyển đã đc “ghé thăm” bởi một message cho đến khi message này đến đc đích của nó. Nhờ phần meta-information, những message cũng có thể biến thành bộ phận của các kết cấu tiếp thị quảng cáo ở cấp cao hơn. Trong hệ thống e-mail, chúng đc gọi là “threads” trong những nhóm trao đổi cho cảm nhận một phần mềm có thể có của các khái niệm này.Những công dụng ảnh hưởng đến bảo mật như bút ký số của content dữ liệu and những card truy cập [access token] có thể đc dùng cho mỗi message để kiểm soát cụ thể việc ai có quyền làm các gì trong hệ thống phân tán đó.Nếu mà RPC thường là “1 gọi 1” hay “Peer lớn Peer”, thì messaging lại thêm nhiều quy mô đa chủng loại hơn:Một gọi nhiều.Một gọi cho nhóm nhưng chọn đối tượng người sử dụng bình luận trước tiên.Tùy thuộc vào đặc tính hoặcnội dung thông điệp, quyết định đối tượng người sử dụng nào để được nhận.Phân tải đều đặn kiểu xoay vòng: round robinPhân tải nhưng có nhớ đc lần trước thông điệp đc gửi đến đối tượng người sử dụng nào, nay gửi đúng đối tượng người sử dụng đó để bảo đảm hai bêncó đầy đủ lịch sử trò chuyện.

Xem Ngay:  Đá Granite Là Gì - ƯU ĐIỂM CỦA 2 LoẠI ĐÁ Nã€Y

Danh sách trên cho cảm nhận các bất cập trong cơ chế RPC mở ra thời cơ to khi chuyển sang dùng cơ chế messaging.

Xem Ngay: Mana có nghĩa là gì ý nghĩa là gì – Mana Trong trò chơi có nghĩa là gì ý nghĩa là gì

Vẫn có thể dùng messaging như 1 thực thi phân tán của những “cuộc gọi [call]” and trong thực tiễn thì cách hướng đối tượng người sử dụng dùng thuật ngữ “message” để ám chỉ những nhu cầu có thể đc gửi giữa những đối tượng người sử dụng [object]. Tuy vậy, lợi thế của messaging là bằng cách thức bộc lộ thực tiễn của tiếp thị quảng cáo trong một bề ngoài hữu hình của message như 1 thực thể first-class, những lập trình viên có nhiều thời cơ để mở rộng sang những miền chức năng khác hoặc là do cảm nhận không nhẹ nhõm với các ràng buộc của một “lối tư duy gọi thủ tục [procedure call mindset]” hay chỉ vì không hề tiến hành đc theo cách thức cũ.

Bản dịch của Phùng Tùng Huy, thực tập sinh lập trình webtại hethongbokhoe.vncó sự thay đổi của giảng viên hướng dẫnLink bài viết xem thêm: //www.inspirel.com/articles/RPC_vs_Messaging.html

Thể Loại: Giải bày Kiến Thức Cộng Đồng

Video liên quan

Chủ Đề