RMI এর মধ্যে Stub এবং Skeleton এর ভূমিকা

RMI এর কাজের প্রক্রিয়া - জাভা আরএমআই (Java RMI) - Java Technologies

325

Java RMI (Remote Method Invocation) হল একটি প্রযুক্তি যা জাভার মাধ্যমে বিভিন্ন JVM (Java Virtual Machine) এর মধ্যে দূরবর্তী পদ্ধতি (Remote Methods) কল করতে সক্ষম করে। RMI ব্যবহারের মূল ধারণা হল, একটি JVM এ চলমান একটি অবজেক্টের পদ্ধতি অন্য JVM থেকে কল করা যায়। RMI এর মধ্যে Stub এবং Skeleton গুরুত্বপূর্ণ ভূমিকা পালন করে।


Stub এবং Skeleton কী?

  1. Stub:
    • Stub হল ক্লায়েন্ট সাইড প্রক্সি অবজেক্ট, যা রিমোট অবজেক্টের একটি লুকানো প্রতিনিধি।
    • ক্লায়েন্ট যখন কোনো রিমোট মেথড কল করে, Stub সেই মেথড কল ধরে এবং এটিকে নেটওয়ার্কের মাধ্যমে সার্ভারে পাঠায়।
    • Stub মূলত:
      • মেথড প্যারামিটারগুলিকে সিরিয়ালাইজ করে (serialize)।
      • নেটওয়ার্কের মাধ্যমে রিমোট মেথড কল সার্ভারে পাঠায়।
      • সার্ভার থেকে রিটার্ন করা মান বা এক্সসেপশন গ্রহণ করে এবং ক্লায়েন্টকে রিটার্ন করে।
  2. Skeleton:
    • Skeleton হল সার্ভার সাইড প্রক্সি অবজেক্ট, যা Stub থেকে আসা কল গ্রহণ করে।
    • Skeleton মূলত:
      • Stub থেকে আসা ডেটা ডিসিরিয়ালাইজ করে (deserialize)।
      • সার্ভারে সংশ্লিষ্ট রিমোট অবজেক্টে মেথড কল ফরোয়ার্ড করে।
      • রিমোট মেথড থেকে রিটার্ন হওয়া মান বা এক্সসেপশন Stub এ পাঠিয়ে দেয়।

Stub এবং Skeleton এর কাজের ধাপ

  1. ক্লায়েন্ট মেথড কল:
    • ক্লায়েন্ট একটি রিমোট মেথড কল করে। Stub এই কল গ্রহণ করে।
  2. মেথড কল সিরিয়ালাইজেশন:
    • Stub কল করা মেথডের প্যারামিটারগুলিকে সিরিয়ালাইজ করে এবং নেটওয়ার্কের মাধ্যমে Skeleton এর কাছে পাঠায়।
  3. Skeleton ডিসিরিয়ালাইজেশন:
    • Skeleton Stub থেকে আসা ডেটাকে ডিসিরিয়ালাইজ করে।
  4. রিমোট অবজেক্টে মেথড কল:
    • Skeleton রিমোট অবজেক্টে সংশ্লিষ্ট মেথড কল করে।
  5. ফলাফল (Result) পাঠানো:
    • মেথড কল শেষে Skeleton এর মাধ্যমে রিটার্ন মান Stub এ ফিরে যায়।
    • Stub ফলাফলটি ক্লায়েন্টকে প্রদান করে।

উদাহরণ: Stub এবং Skeleton এর ভূমিকা

1. Stub উদাহরণ

public interface MyRemote extends java.rmi.Remote {
    String sayHello() throws java.rmi.RemoteException;
}
public class MyRemoteImpl extends java.rmi.server.UnicastRemoteObject implements MyRemote {
    public MyRemoteImpl() throws java.rmi.RemoteException {
        super();
    }

    @Override
    public String sayHello() {
        return "Hello from RMI Server!";
    }
}

Stub এর কাজ:

  • ক্লায়েন্ট যখন sayHello() মেথড কল করে, Stub এই কল গ্রহণ করে এবং Skeleton এর কাছে পাঠায়।

2. Skeleton উদাহরণ

// Skeleton (সার্ভার সাইডে) Stub থেকে কল গ্রহণ করে:
public static void main(String[] args) {
    try {
        MyRemoteImpl server = new MyRemoteImpl();
        java.rmi.Naming.rebind("RemoteHello", server);
        System.out.println("RMI Server is ready.");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Skeleton এর কাজ:

  • Stub থেকে sayHello() কল গ্রহণ করে এবং MyRemoteImpl অবজেক্টে মেথড চালায়।

Java RMI (Stub এবং Skeleton এর প্রক্রিয়া)

ধাপ ১: Stub থেকে Skeleton এর ডেটা পাঠানো

  1. ক্লায়েন্ট sayHello() কল করে।
  2. Stub মেথড কল ও প্যারামিটার সিরিয়ালাইজ করে এবং নেটওয়ার্কের মাধ্যমে Skeleton এ পাঠায়।

ধাপ ২: Skeleton এর মাধ্যমে রিমোট অবজেক্টে কাজ সম্পন্ন

  1. Skeleton সিরিয়ালাইজড ডেটা গ্রহণ করে এবং ডেসিরিয়ালাইজ করে।
  2. Skeleton রিমোট অবজেক্টের সংশ্লিষ্ট মেথড কল চালায়।

ধাপ ৩: ফলাফল Stub এ পাঠানো

  1. Skeleton রিটার্ন মান গ্রহণ করে।
  2. Stub রিটার্ন মান ক্লায়েন্টে পাঠায়।

Stub এবং Skeleton এর ভবিষ্যৎ (Java 1.5 এর পরবর্তী পরিবর্তন)

Java RMI এর প্রাথমিক সংস্করণগুলিতে Stub এবং Skeleton আলাদা ক্লাস হিসাবে বিদ্যমান ছিল। তবে, Java 1.5 (JDK 5.0) এর পর থেকে Skeleton এর ভূমিকা সরাসরি JVM এর দ্বারা পরিচালিত হয়। বর্তমানে:

  1. Stub নিজেই Skeleton এর কিছু কাজ করে।
  2. Dynamic Proxy ব্যবহারের মাধ্যমে Skeleton এর সরাসরি প্রয়োজনীয়তা কমে গেছে।

Stub প্রজন্ম:

  • Java 5.0 এর পর, Stub জেনারেট করার জন্য rmic কমান্ড আর প্রয়োজন হয় না। এটি Dynamic Proxy ব্যবহার করে স্বয়ংক্রিয়ভাবে তৈরি হয়।

Stub এবং Skeleton হল Java RMI এর মূল উপাদান যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের মাধ্যম হিসেবে কাজ করে:

  1. Stub ক্লায়েন্টের পক্ষ থেকে রিমোট মেথড কল পরিচালনা করে।
  2. Skeleton সার্ভারের পক্ষ থেকে Stub এর কল প্রসেস করে।

Java RMI এর ডায়নামিক প্রক্সি এবং নতুন সংস্করণগুলো Stub এবং Skeleton এর ব্যবস্থাপনা আরও সহজ ও কার্যকর করেছে।

Content added By
Promotion

Are you sure to start over?

Loading...