Metadata Exchange (MEX) এবং Discovery Behaviors

WCF Service Behaviors এবং Custom Behaviors Creation - উইন্ডোজ কমিউনিকেশন সিস্টেম (WCF) - Microsoft Technologies

333

Metadata Exchange (MEX) এবং Discovery Behaviors WCF (Windows Communication Foundation)-এ দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা সার্ভিস এবং ক্লায়েন্টের মধ্যে মেটাডেটা আদান-প্রদান এবং সার্ভিসের আবিষ্কার প্রক্রিয়া সহজতর করে। এই বৈশিষ্ট্যগুলি WCF সার্ভিসের সাথে যোগাযোগের নিরাপত্তা, কার্যকারিতা এবং স্কেলেবিলিটি বাড়াতে সাহায্য করে।


১. Metadata Exchange (MEX)

Metadata Exchange (MEX) হলো WCF এর একটি ফিচার, যা সার্ভিসের মেটাডেটা (যেমন, সার্ভিস কনট্র্যাক্ট, অপারেশন কনট্র্যাক্ট) ক্লায়েন্টকে সরবরাহ করে। MEX-এর মাধ্যমে, ক্লায়েন্ট সার্ভিসের সাথে যোগাযোগ শুরু করার আগে সার্ভিসের কনফিগারেশন ও মেটাডেটা সম্পর্কে জানতে পারে।

MEX এর সুবিধা:

  • Service Description: সার্ভিসের কনট্র্যাক্টের পুরো বিবরণ (ইন্টারফেস এবং অপারেশন) প্রদান করে।
  • Client Generation: MEX ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে স্বয়ংক্রিয়ভাবে সার্ভিস রেফারেন্স তৈরি করতে সাহায্য করে, যা সার্ভিসের কনট্র্যাক্ট অনুযায়ী ক্লায়েন্ট স্টাব গুলি তৈরি করতে সক্ষম হয়।
  • Dynamic Communication: এটি ডাইনামিক্যালি সার্ভিসের মেটাডেটা অ্যাক্সেস করতে পারে এবং কোনো কনফিগারেশন ছাড়াই সার্ভিসের তথ্য ব্যবহার করতে সক্ষম।

MEX Endpoint কনফিগারেশন:

WCF সার্ভিসে MEX সমর্থন যোগ করতে, আপনাকে একটি MEX Endpoint কনফিগার করতে হবে, যা সার্ভিসের মেটাডেটা ক্লায়েন্টকে সরবরাহ করবে।

App.config বা Web.config-এ MEX Endpoint কনফিগার করা:

<system.serviceModel>
  <services>
    <service name="MyService">
      <endpoint address="http://localhost:8080/MyService"
                binding="basicHttpBinding"
                contract="IMyService" />
      <endpoint address="mex" 
                binding="mexHttpBinding"
                contract="IMetadataExchange" />
    </service>
  </services>
</system.serviceModel>

এখানে:

  • MEX Endpoint: mexHttpBinding ব্যবহার করে সার্ভিসের মেটাডেটা পাওয়া যাবে।
  • Address: mex নামের এন্ডপয়েন্টটি ব্যবহার করা হয়েছে, যা মেটাডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয়।

সার্ভিস থেকে MEX পেতে:

একটি ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সার্ভিসের মেটাডেটা পেতে, আপনাকে svcutil.exe অথবা Visual Studio এর মাধ্যমে Add Service Reference অপশন ব্যবহার করতে হবে।


২. Discovery Behaviors

Discovery Behaviors WCF এ একটি সার্ভিস বা ক্লায়েন্ট স্বয়ংক্রিয়ভাবে একে অপরকে আবিষ্কার করার প্রক্রিয়া। এর মাধ্যমে ক্লায়েন্ট সার্ভিসের অবস্থান এবং কনফিগারেশন সম্পর্কিত তথ্য জানতে পারে, এবং সার্ভিসটি ম্যানুয়ালি কনফিগার করার প্রয়োজন ছাড়াই ক্লায়েন্টের জন্য উপলব্ধ হয়।

WCF এ Service Discovery হল একটি সার্ভিস বা ক্লায়েন্টের জন্য একটি নেটওয়ার্ক ভিত্তিক সিস্টেম, যা সার্ভিসের অবস্থান খুঁজে বের করে এবং এটি ক্লায়েন্টকে জানান দেয়। এই বৈশিষ্ট্যটি WCF সার্ভিসে WS-Discovery প্রোটোকল ব্যবহার করে।

Discovery Behaviors কনফিগারেশন:

Service Discovery এবং Client Discovery কনফিগার করার জন্য আপনাকে সার্ভিস এবং ক্লায়েন্ট উভয়ের জন্য DiscoveryBehavior কনফিগার করতে হবে।

সার্ভিসের Discovery Behavior কনফিগারেশন:

App.config ফাইলে Discovery Behavior কনফিগার করার জন্য:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="serviceBehavior">
        <serviceDiscovery enabled="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service name="MyService" behaviorConfiguration="serviceBehavior">
      <endpoint address="http://localhost:8080/MyService"
                binding="basicHttpBinding"
                contract="IMyService" />
    </service>
  </services>
</system.serviceModel>

এখানে:

  • serviceDiscovery enabled="true": সার্ভিসের Discovery Behavior সক্ষম করা হয়েছে, যাতে সার্ভিসের অবস্থান স্বয়ংক্রিয়ভাবে আবিষ্কৃত হয়।
ক্লায়েন্টের Discovery Behavior কনফিগারেশন:

App.config ফাইলে ক্লায়েন্টের জন্য Discovery Behavior কনফিগার করতে:

<system.serviceModel>
  <behaviors>
    <clientBehaviors>
      <behavior name="clientBehavior">
        <clientCredentials>
          <serviceCertificate>
            <authentication certificateValidationMode="PeerOrChainTrust" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
    </clientBehaviors>
  </behaviors>
</system.serviceModel>

এখানে:

  • clientBehaviors: ক্লায়েন্টের জন্য নির্দিষ্ট কনফিগারেশন সমর্থন করে, যার মাধ্যমে ক্লায়েন্ট সার্ভিসটি আবিষ্কার করতে পারে।
  • serviceCertificate: ক্লায়েন্ট সার্ভিসের সার্টিফিকেট যাচাই করতে ব্যবহৃত হয় (যদি সার্ভিস নিরাপদ হয়)।

৩. সার্ভিস এবং ক্লায়েন্টের Discovery এর উদাহরণ

ধরা যাক, একটি WCF সার্ভিস সার্ভার মেশিনে চলমান এবং ক্লায়েন্টটি সার্ভিসের অবস্থান জানে না। Discovery Behaviors ব্যবহার করে, ক্লায়েন্টটি সার্ভিসটি খুঁজে পাবে এবং এটি ব্যবহার করবে।

সার্ভিসের Discovery কনফিগারেশন:

<system.serviceModel>
  <services>
    <service name="MyService">
      <endpoint address="http://localhost:8080/MyService"
                binding="basicHttpBinding"
                contract="IMyService" />
      <endpoint address="mex"
                binding="mexHttpBinding"
                contract="IMetadataExchange" />
    </service>
  </services>
</system.serviceModel>

ক্লায়েন্টের Discovery কনফিগারেশন:

<system.serviceModel>
  <client>
    <endpoint address="http://localhost:8080/MyService"
              binding="basicHttpBinding"
              contract="IMyService" />
  </client>
</system.serviceModel>

এখন, ক্লায়েন্ট সার্ভিসের mex এন্ডপয়েন্ট ব্যবহার করে সার্ভিসের মেটাডেটা আবিষ্কার করবে এবং এর সাথে সংযোগ করবে।


সারাংশ

  • Metadata Exchange (MEX) হলো WCF-এর একটি বৈশিষ্ট্য যা সার্ভিসের মেটাডেটা ক্লায়েন্টকে সরবরাহ করে। এটি সার্ভিসের কনট্র্যাক্টের পূর্ণ বিবরণ প্রদান করে, যা ক্লায়েন্টের জন্য স্বয়ংক্রিয়ভাবে সার্ভিস রেফারেন্স তৈরি করতে সাহায্য করে।
  • Discovery Behaviors হল সার্ভিস এবং ক্লায়েন্টের মধ্যে স্বয়ংক্রিয় যোগাযোগ ব্যবস্থা, যা সার্ভিস এবং ক্লায়েন্টের অবস্থান খুঁজে বের করতে সহায়ক। এটি সার্ভিসের অবস্থান আবিষ্কার এবং ডাইনামিক সার্ভিস কনফিগারেশন সমর্থন করে।

MEX এবং Discovery Behaviors WCF সার্ভিসের কার্যকারিতা ও ব্যবহার সহজ করে তোলে, বিশেষ করে যদি সার্ভিস এবং ক্লায়েন্টের মধ্যে নেটওয়ার্ক কনফিগারেশন পরিবর্তনযোগ্য বা ডাইনামিক হয়।

Content added By
Promotion

Are you sure to start over?

Loading...