জাভা আরএমআই এবং আরপিসির মধ্যে পার্থক্য কী?


163

জাভা আরএমআই এবং আরপিসির মধ্যে আসল পার্থক্য কী?

আমি কিছু জায়গায় পড়েছি যে আরএমআই অবজেক্ট ব্যবহার করে?


আমি মনে করি RMIজাভা মত কিছু gRPCনেট করুন ...
Yousha Aleayoub

উত্তর:


137

আরপিসি সি ভিত্তিক, এবং এর যেমন এটির কাঠামোগত প্রোগ্রামিং শব্দার্থক রয়েছে, অন্যদিকে, আরএমআই একটি জাভা ভিত্তিক প্রযুক্তি এবং এটি অবজেক্ট অরিয়েন্টেড।

আরপিসির সাহায্যে আপনি কেবল একটি সার্ভারে রফতানি করা দূরবর্তী ফাংশনগুলি কল করতে পারবেন, আরএমআইতে আপনি দূরবর্তী বস্তুগুলির জন্য উল্লেখ পেতে পারেন এবং তাদের পদ্ধতিগুলি জানতে চাইতে পারেন, এবং আরও অনেক রিমোট অবজেক্ট রেফারেন্সগুলি পাস করতে পারেন এবং অনেকগুলি জেভিএম উদাহরণগুলির মধ্যে বিতরণ করা যেতে পারে, তাই এটি আরও শক্তিশালী ।

খাঁটি ক্লায়েন্ট-সার্ভার আর্কিটেকচারের চেয়ে আরও জটিল কিছু বিকাশ করার প্রয়োজন দেখা দিলে আরএমআই দাঁড়িয়ে থাকে। কোনও নেটওয়ার্কের মাধ্যমে সমস্ত ক্লায়েন্টকে স্বতন্ত্রভাবে সংযোগগুলি সুস্পষ্টভাবে স্ট্যাব্লিশ না করে যোগাযোগ করতে সক্ষম করে এমন জিনিসগুলি ছড়িয়ে দেওয়া খুব সহজ।


19
এটি ভুল। আরপিসি জাভা ভিত্তিক। জ্যাকস-আরপিসি ১.১ এর পরিবর্তে ২.০ প্রতিস্থাপন করা হয়েছিল, এর পরে জ্যাকস-ডাব্লুএস নামকরণ করা হয়েছিল। জাভাতে, আপনি যখন আরপিসির কথা বলবেন, আপনি এসওএপি এবং ওয়েব পরিষেবাদি সম্পর্কে কথা বলছেন। জ্যাকস-আরপিসি 1.1 সম্পর্কে জ্যাকস-ডাব্লুএসে পরিবর্তন সম্পর্কে আইবিএম নিবন্ধটি এখানে দেওয়া হয়েছে। আইবিএম.com
ডেভেলপ

1
@ ম্যাটসি আমার মনে হয় আপনি যে নিবন্ধটি সংযুক্ত করেছেন তাতে উল্লেখ করা হয়েছে যে এই নামটি "জ্যাক্স-আরপিসি" থেকে "জ্যাকস-ডাব্লুএস" পরিবর্তিত হওয়ার কারণটি হ'ল মূল নামটি সঠিক ছিল না, কারণ এই স্পেসিফিকেশনটি কেবল "আরপিসি" এর চেয়ে বেশি জড়িত ছিল গতানুগতিক অর্থে। সুতরাং এই উত্তরটি, যা আরপিসির traditionতিহ্যগত অর্থ কী তা নিয়ে কথা বলে, এখনও সঠিক।
এক্সজি

2
হ্যাঁ, আমি যেটি বোঝাতে চাইছি তা হল সিপি / ইউনিক্স বিশ্বে আরপিসির উদ্ভব হয়েছিল (কমপক্ষে সবচেয়ে সাধারণ আরপিসি বাস্তবায়ন, ওএনসিআরপিসি) এবং যেমন এটি গণনা মডেলের পরে মডেল করা হয়েছে; অবশ্যই অন্য কোনও প্রোগ্রামিং ভাষার উপরে এটি প্রয়োগ করতে বাধা দেয় না
16'15

6
শব্দার্থক যেভাবে ব্যবহৃত হয় সে সম্পর্কে সামান্য পার্থক্য কোনও উত্তর ভুল (বা বিভ্রান্তিমূলক) দেয় না। যে কেউ এটি পড়ে সহজেই বুঝতে পারে যে "সি ভিত্তিক" মূলত "প্রক্রিয়া ভিত্তিক" - জাভা শিখেছে যে কেউ পিওপি বনাম ওওপি পার্থক্য জানে।
নবীন ইসরানী

কোনও নোডেজ ক্লায়েন্ট (বলুন) সার্ভারে আরএমআই কল কল করতে পারে? এরকম কোনও উপায় আছে কি?
হিতেশ বাজাজ

45

আরপিসি এবং আরএমআইয়ের মধ্যে প্রধান পার্থক্য হ'ল আরএমআইতে বস্তুগুলি জড়িত । প্রক্সি ফাংশন ব্যবহার করে দূরবর্তী পদ্ধতিগুলিকে কল করার পরিবর্তে আমরা পরিবর্তে একটি প্রক্সি অবজেক্ট ব্যবহার করি

আরএমআই-এর সাথে বৃহত্তর স্বচ্ছতা রয়েছে, যথা প্রযুক্তিটিতে ভাষাতে সংহত হওয়ার কারণে অবজেক্টস, রেফারেন্স, উত্তরাধিকার, বহুমুখীতা এবং ব্যতিক্রমগুলির শোষণের কারণে due

আরএমআই আরপিসির চেয়েও উন্নত, গতিশীল ডাকে , যেখানে রানটাইমের সময় ইন্টারফেসগুলি পরিবর্তিত হতে পারে এবং অবজেক্ট অ্যাডাপশন , যা বিমূর্তির একটি অতিরিক্ত স্তর সরবরাহ করে allowing


18

1. পদ্ধতি:

আরএমআই একটি অবজেক্ট-ভিত্তিক দৃষ্টান্ত ব্যবহার করে যেখানে ব্যবহারকারীর অবজেক্টটি জানতে এবং তাকে যে জিনিসটি চাওয়ার প্রয়োজন তা জানতে হবে।

আরপিসি বস্তুর সাথে ডিল করে না। বরং এটি নির্দিষ্ট সাববুটাইনগুলিকে কল করে যা ইতিমধ্যে প্রতিষ্ঠিত।

2. কাজ:

আরপিসির সাথে, আপনি একটি পদ্ধতি কল পান যা দেখতে অনেকটা স্থানীয় কলের মতো দেখতে। স্থানীয় থেকে রিমোট কম্পিউটারে কল পাস করার সাথে জড়িত জটিলতাগুলি আরপিসি পরিচালনা করে।

আরএমআই খুব একই কাজ করে তবে আরএমআই বস্তু এবং যে পদ্ধতিটি বলা হচ্ছে তার একটি রেফারেন্স দেয় passes

আরএমআই = আরপিসি + অবজেক্ট-ওরিয়েন্টেশন

৩. আরও ভাল:

আরএমসি হ'ল আরপিসির তুলনায় আরও ভাল পদ্ধতির, বিশেষত বৃহত্তর প্রোগ্রামগুলির সাথে এটি একটি ক্লিনার কোড সরবরাহ করে যা কিছু ভুল হয়ে যায় কিনা তা সনাক্ত করা সহজ।

৪. সিস্টেমের উদাহরণ:

আরপিসি সিস্টেমস: সান আরপিসি, ডিসিই আরপিসি

আরএমআই সিস্টেমস: জাভা আরএমআই, করবা, মাইক্রোসফ্ট ডিসিওএম / সিওএম +, এসওএপি (সাধারণ অবজেক্ট অ্যাক্সেস প্রোটোকল)


আমার অ্যাপ্লিকেশনটিতে, আমি সাবান পরিষেবাগুলি প্রকাশ / উপভোগ করতে JAX-WS ব্যবহার করছি। আমি কি এটিকে RPC টাইপ মেকানিজম বলতে পারি? আমার উপলব্ধি অনুসারে, জ্যাক্স-ডাব্লুএসে আমরা জাভা প্রতিবিম্ব এপিআই ব্যবহার করে দূরবর্তী পদ্ধতিতে প্রার্থনা করছি। সুতরাং আরপিসির সংজ্ঞার সাথে এর মিল রয়েছে। দয়া করে নিশ্চিত করুন !
গুঞ্জন শাহ

11

রিমোট প্রক্রিয়া কল (আরপিসি) একটি আন্তঃ প্রক্রিয়া যোগাযোগ যা স্থানীয় বা দূরবর্তী মেশিনে থাকা অন্য প্রক্রিয়াতে কোনও ফাংশনকে কল করার অনুমতি দেয়।

রিমোট মেথড ইনভোকেশন (আরএমআই) একটি এপিআই, যা জাভাতে আরপিসি প্রয়োগ করে অবজেক্ট অরিয়েন্টেড প্যারাডিজমের সমর্থন করে।

  1. আপনি আরপিসিকে আহ্বান করার কথা ভাবতে পারেন এটি একটি সি পদ্ধতি অনুসরণ করার মতো। আরপিসি আদিম ডাটা টাইপগুলিকে সমর্থন করে যেখানে আরএমআই সমর্থন পদ্ধতি হিসাবে পরামিতিগুলি / জাভা অবজেক্ট হিসাবে ফেরত প্রকার হিসাবে।

  2. আরএমসি আরপিসির বিপরীতে প্রোগ্রাম করা সহজ। আপনি আপনার ব্যবসায়িক যুক্তিগুলিকে আদিম ডেটা ধরণের ক্রমের পরিবর্তে অবজেক্টের ক্ষেত্রে বিবেচনা করতে পারেন।

  3. আরপিসি আরএমআই এর থেকে ভিন্ন ভাষা নিরপেক্ষ, যা জাভাতেই সীমাবদ্ধ

  4. আরএমসি আরপিসির চেয়ে সামান্য ধীর

সিটিতে আরপিসি বাস্তবায়নের জন্য এই নিবন্ধটি দেখুন


6

আরএমআই বা রিমোট মেথড ইনভোকেশন আরপিসি বা রিমোট প্রসিডিউর কলের সাথে খুব মিল, যাতে ক্লায়েন্ট উভয়ই সার্ভারে প্রক্সি অবজেক্ট (বা স্টাব) প্রেরণ করে তবে সূক্ষ্ম পার্থক্যটি হ'ল ক্লায়েন্ট সাইড আরপিসি প্রক্সি ফাংশনটির মাধ্যমে ফাংশনগুলি আহ্বান করে এবং আরএমআই এর মাধ্যমে মেথডসকে অনুরোধ করে প্রক্সি ফাংশন আরএমআইটিকে কিছুটা উচ্চতর হিসাবে বিবেচনা করা হয় কারণ এটি আরপিসির একটি অবজেক্ট-ভিত্তিক সংস্করণ।

থেকে এখানে

আরও তথ্য এবং উদাহরণের জন্য, এখানে একবার দেখুন


5
পদ্ধতি হ'ল জাভাতে ফাংশন যাকে বলা হয়, ফাংশনকে সি / সি ++ তে কী পদ্ধতি বলা হয়। তবুও কি পার্থক্য?
স্টারকর্ন

1
একটি পার্থক্য হ'ল (উদাহরণ পদ্ধতিগুলির ক্ষেত্রে), একটি আমন্ত্রণকারী বস্তু রয়েছে। আমন্ত্রণকারী বস্তুটি হয় প্রেরণ করতে হবে (তার কোড সহ) বা সরানোর সার্ভারে থাকতে হবে তবে স্থানীয় সার্ভারে রেফারেন্স করার উপায় রয়েছে a
এলেন স্পারটাস

নির্দিষ্ট প্রোগ্রামিং ভাষাগুলি পদ্ধতিগুলি বনাম কীভাবে আচরণ করে তা উপেক্ষা করে, সাহিত্যের অর্থ হ'ল ফাংশনগুলি এমন কোনও মান দেয় যেখানে পদ্ধতিগুলি রাষ্ট্রকে পরিবর্তন করে।
ড্যান

আরপিসি প্রক্সি ফাংশনটির মাধ্যমে ফাংশনগুলিকে আহ্বান জানায় এবং আরএমআই প্রক্সি ওবিজেইসিটি ব্যবহার করে মেথোডিএস আহ্বান করে। রাইট?
নূর নওয়াজ

ক্লায়েন্ট সাধারণত সার্ভারে প্রক্সি অবজেক্ট (বা স্টাব) প্রেরণ করে না। নিম্ন মানের উদ্ধৃতি।
মার্কুইস

6

আরপিসি এবং আরএমআইয়ের মধ্যে একমাত্র আসল পার্থক্য হ'ল আরএমআইয়ের সাথে জড়িত বস্তুগুলি রয়েছে: প্রক্সি ফাংশনটির মাধ্যমে ফাংশন চাওয়ার পরিবর্তে আমরা প্রক্সি দিয়ে পদ্ধতিগুলি প্রার্থনা করি।


6

আরএমআই এবং আরপিসির মধ্যে পার্থক্য হ'ল:

  • নাম হিসাবে আরএমআই রিমোট পদ্ধতিটি চালানো ইঙ্গিত করে: এটি কোনও পদ্ধতি বা কোনও অবজেক্টকে ডাকে। এবং
  • আরপিসি এটি একটি ফাংশন প্রার্থনা করে।

2
আপনি স্পষ্টতই জোর দিয়েছিলেন এমন পার্থক্যগুলি কী কী, তবে একটি methodএবং ক এর মধ্যে স্পষ্ট করে না function? জাভাতে কোনও ফাংশন নেই ... তবে ওওপিতে যতদূর আমি মনে করতে পারি সেগুলি প্রতিশব্দ, এবং তাই invocationএবং call
মিনিট

আরপিসি একটি প্রক্রিয়া / ফাংশন প্রার্থনা করে - ফ্ল্যাট আউট।
ফু

3

আরপিসি এটি একটি পুরানো প্রোটোকল যা সি.আই এর উপর ভিত্তি করে এটি একটি দূরবর্তী প্রক্রিয়া শুরু করে এবং এটি একটি স্থানীয় কলের মতো দেখায় R আরপিসি সেই দূরবর্তী অনুরোধটিকে সার্ভারে পাস করার এবং ক্লায়েন্টের কাছে ফলাফল পাওয়ার জটিলতাগুলি পরিচালনা করে।

জাভা RMI একই জিনিস কিন্তু সামান্য differently.It ব্যবহারসমূহ রেফারেন্স অর্জন দূরবর্তী বস্তু .So, এটি কী এটা invoke.It করার পদ্ধতি নামে বরাবর দূরবর্তী বস্তুর একটি রেফারেন্স পাঠায় কারণ এটি ক্লিনার ফলাফল ভাল হয় বৃহত প্রোগ্রামগুলির ক্ষেত্রে কোড এবং নেটওয়ার্কের মাধ্যমে বস্তুর বিতরণ একাধিক ক্লায়েন্টকে পৃথকভাবে প্রতিটি সংযোগ স্থাপনের পরিবর্তে সার্ভারে পদ্ধতিগুলি আহ্বান করতে সক্ষম করে।


বিশেষত "আরপিসি" কোন প্রোটোকল? আমার জানা মতে, আরপিসির জন্য দু'জন প্রোটোকল রয়েছে এবং জাভার জন্য উপলব্ধ অর্ধেক রয়েছে।
foo 20

@ ফু নিঃসন্দেহে তিনি সান-আরপিসির কথা উল্লেখ করছেন, তবে সমস্ত আরপিসির অর্থ দূরবর্তী প্রক্রিয়া কল, কোনও বস্তু বা পদ্ধতি নয়, সুতরাং এটি সত্যিই প্রাসঙ্গিক নয়।
লার্নের মারকুইস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.