মিডলওয়্যার ঠিক কী?


202

মিডলওয়্যার নিয়ে সম্প্রতি আমি প্রচুর লোকের কথা শুনেছি , তবে মিডলওয়্যারের সঠিক সংজ্ঞা কী? আমি মিডলওয়্যারটি যখন দেখি তখন আমি প্রচুর তথ্য এবং কিছু সংজ্ঞা পাই তবে এই তথ্য এবং সংজ্ঞাটি পড়ার সময় মনে হয় বেশিরভাগ সমস্ত জিনিসপত্রই কোনও কিছুর মাঝখানে থাকে। তো, সব কি মিডলওয়্যার?

বা আপনার কাছে এমন কোনও গুদামের উদাহরণ রয়েছে যা মিডওয়্যার নয়?

উত্তর:


219

আমাদের কোম্পানির 4 টি আলাদা আলাদা পণ্য তৈরি করা যাক, আপনার ক্লায়েন্টের আরও 3 টি আলাদা কোম্পানির আরও 3 টি আলাদা পণ্য রয়েছে।

একদিন ক্লায়েন্ট ভেবেছিল, কেন আমরা আমাদের সমস্ত সিস্টেমকে একটি বিশাল সিস্টেমে সংহত করি না। দশ মিনিট পরে তাদের আইটি বিভাগ জানিয়েছে যে 2 বছর সময় লাগবে।

আপনি (বুদ্ধিমান বিকাশকারী) বলেছেন, কেন আমরা কেবল সমস্ত ভিন্ন সিস্টেমকে সংহত করে একজাতীয় পরিবেশে তাদের একসাথে কাজ করতে দিই না? ক্লায়েন্ট ম্যানেজার আপনাকে দেখছে ... আপনি চালিয়ে গেছেন, আমরা একটি মিডলওয়্যার ব্যবহার করব, আমরা সমস্ত বিভিন্ন সিস্টেমের ইনপুট / আউটপুট, তারা যে সংস্থানগুলি ব্যবহার করি সেগুলি এবং তারপরে একটি উপযুক্ত মিডলওয়্যার কাঠামো বেছে নেব study


মাঝখানে মিডওয়্যার ফ্রেমওয়ার্কের সাথে নন-টেক ম্যানেজারকে এখনও ব্যাখ্যা করে , প্রথম সিস্টেমটি এক্স স্টাফ তৈরি করবে, ওয়াই এবং জেড সিস্টেমটি এই আউটপুটগুলি গ্রাস করবে।


দুর্দান্ত উদাহরণ! এইভাবে কি এটি ভিন্ন ভিন্ন পরিবেশে পরিণত হবে না? একজাতীয় নয়।
রাবিয়া নাজ খান

মিডলওয়্যার একটি ডেটা (সমষ্টি + রূপান্তর) উপাদান।
ওভাররেক্সচেঞ্জ

92

মিডলওয়্যার একটি ভয়াবহ নেবুলাস শব্দ। একটি ক্ষেত্রে "মিডলওয়্যার" কী তা অন্য ক্ষেত্রে হবে না। সাধারণভাবে, আপনি নিম্নোক্ত বৈশিষ্ট্যগুলির জন্য মিডলওয়্যার হিসাবে শ্রেণিবদ্ধ কিছু আশা করতে পারেন:

  • প্রাথমিকভাবে (সাধারণত একচেটিয়া) সফ্টওয়্যার; সাধারণত কোনও বিশেষায়িত হার্ডওয়ারের প্রয়োজন হয় না।

  • যদি এটি না থাকে, তবে নির্ভর করে এমন অ্যাপ্লিকেশনগুলিকে তাদের আবেদনের অংশ হিসাবে এটি অন্তর্ভুক্ত করতে হবে এবং প্রচুর সদৃশ হবে experience

  • প্রায় অবশ্যই দুটি অ্যাপ্লিকেশন সংযোগ করে এবং তাদের মধ্যে ডেটা পাস করে।

আপনি লক্ষ্য করবেন যে এটি অপারেটিং সিস্টেমের মতো একই সংজ্ঞা definition সুতরাং, উদাহরণস্বরূপ, একটি টিসিপি / আইপি স্ট্যাক বা ক্যাশিং মিডলওয়্যার হিসাবে বিবেচনা করা যেতে পারে। তবে আপনার ওএস একই বৈশিষ্ট্যগুলি সরবরাহ করতে পারে। প্রকৃতপক্ষে মিডলওয়্যারটি কোনও অপারেটিং সিস্টেমের জন্য একটি বিশেষ এক্সটেনশনের মতো ভাবা যেতে পারে, এটি নির্ভর করে এমন অ্যাপ্লিকেশনগুলির একটি সেটের জন্য নির্দিষ্ট। এটি কেবলমাত্র একটি উচ্চ স্তরের পরিষেবা সরবরাহ করে।

মিডলওয়্যারের কয়েকটি উদাহরণ:

  • বিতরণ ক্যাশে
  • বার্তা সারি
  • লেনদেন মনিটর
  • প্যাকেট রাইটার
  • স্বয়ংক্রিয় ব্যাকআপ সিস্টেম

20

উইকিপিডিয়ায় বেশ ভাল ব্যাখ্যা রয়েছে: http://en.wikedia.org/wiki/Middleware

এটি দিয়ে শুরু হয়

মিডলওয়্যার হ'ল কম্পিউটার সফ্টওয়্যার যা সফ্টওয়্যার উপাদান বা অ্যাপ্লিকেশনগুলিকে সংযুক্ত করে। সফ্টওয়্যারটিতে পরিষেবাগুলির একটি সেট রয়েছে যা এক বা একাধিক মেশিনে একাধিক প্রক্রিয়া চলতে সক্ষম হয় interact

মিডলওয়্যার কী তা কয়েকটি উদাহরণ দেয়।


1
আমি এটি নিজেকে অলরেডি পেয়েছি, তবে এটি উইকিপিডিয়া বলে মনে হচ্ছে সবকিছু মিডলওয়্যার বা আপনার কাছে এমন কোনও জিনিস রয়েছে যা মিডওয়্যারের নয়
মিশেল

2
আমি যোগ করে স্পষ্ট করে বলব ... "এক বা একাধিক মেশিন যাতে আন্তঃব্যক্তির সাথে যোগাযোগ করতে পারে না"। অন্যথায়, রাজি হোন, উত্তরটি দিয়ে কোনও ভুল নেই।
জেরিলে

1
"এক বা একাধিক [প্রক্রিয়া] যা দেশীয়ভাবে সক্ষম হবে না" তা ইন্টারঅ্যাক্ট করার জন্য আরও ভাল।
fstuijt

19

আমি অবগত যে তিনটি পৃথক সংজ্ঞা আছে (কমপক্ষে)

  • ব্যবসায়িক কম্পিউটিংয়ে, মিডলওয়্যার হ'ল অ্যাপ্লিকেশন এবং পরিষেবাদির মধ্যে বার্তা এবং একীকরণ সফ্টওয়্যার

  • গেমিংয়ে, মিডলওয়্যারটি তৃতীয় পক্ষের সরবরাহিত বেশ ভাল কিছু

  • এম্বেডেড সফ্টওয়্যার সিস্টেমগুলিতে (মিডলওয়্যার) এমন পরিষেবাগুলি সরবরাহ করে যা অ্যাপ্লিকেশনগুলি ব্যবহার করে যা হার্ডওয়্যার বিমোচন স্তর দ্বারা প্রদত্ত ফাংশনগুলি থেকে রচিত - এটি অ্যাপ্লিকেশন স্তর এবং হার্ডওয়্যার বিমূর্ততা স্তরটির মধ্যে বসে।


15

সোজা কথায় মিডলওয়্যার একটি সফ্টওয়্যার উপাদান যা পৃথক ব্যবস্থাগুলি একসাথে সংহত করার জন্য পরিষেবা সরবরাহ করে।

একটি জটিল এন্টারপ্রাইজ পরিবেশে, যখন একে অপরের সাথে কথা বলার জন্য আপনার দুটি বা ততোধিক এন্টারপ্রাইজ সিস্টেম একত্রিত করার দরকার হয় তখন অনেকগুলি চ্যালেঞ্জ রয়েছে। সাধারণত এই সিস্টেমগুলি একে অপরের ভাষা বুঝতে পারে না কারণ সেগুলি বিভিন্ন প্ল্যাটফর্মে বিভিন্ন ভাষা ব্যবহার করে (যেমন সি ++, জাভা, কোবোল ইত্যাদি) বিকাশ করা হয়।

সুতরাং এখানে মিডলওয়্যার সফটওয়্যার আসে ছবিতে যা পরিষেবাগুলি সরবরাহ করে

  • একটি অ্যাপ্লিকেশন থেকে অন্য অ্যাপ্লিকেশনে বার্তাগুলি বিন্যাসের রূপান্তর,
  • সুরক্ষার যত্ন নেওয়ার পাশাপাশি বার্তাগুলিকে রুট করা এবং সমৃদ্ধ করা,
  • জোড়া লাগানো,
  • বৈধতা এবং
  • এই বার্তাগুলিতে বিভিন্ন বিধি বিধান প্রয়োগ করা হচ্ছে।

মিডলওয়্যারের একটি সাধারণ উদাহরণ হ'ল আইবিএম মেসেজ ব্রোকার (ডাব্লুএমবি / আইআইবি), ডাব্লুইএসবি, ডেটাপাওয়ার এক্সআইআর 50, ওরাকল ফিউশন, মুল এবং আরও অনেকের মতো একটি ইএসবি পণ্য।

সুতরাং, মিডলওয়্যার বেশিরভাগ পরিষেবা গ্রহণকারী অ্যাপ্লিকেশন এবং পরিষেবা সরবরাহকারী অ্যাপ্লিকেশনগুলির মধ্যে বসে এবং এই অ্যাপগুলিকে একে অপরের সাথে কথা বলতে সহায়তা করে।


14

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

  1. ব্যতিক্রম / ত্রুটি পরিচালনা
  2. স্ট্যাটিক ফাইল সার্ভার
  3. প্রমাণীকরণ
  4. MVC Middlewares

উপরের চিত্রটিতে যেমন দেখানো হয়েছে, এএসপি.এনইটিতে বিভিন্ন মিডলওয়্যার উপাদান রয়েছে যা আগত অনুরোধটি গ্রহণ করে এবং এটি একটি সি # শ্রেণিতে পুনঃনির্দেশ করে (এই ক্ষেত্রে একটি নিয়ামক শ্রেণীর)।


10

মিডলওয়্যার হ'ল সফটওয়্যারগুলির একটি সাধারণ শব্দ যা "একসাথে আঠালো" আলাদা, প্রায়শই জটিল এবং ইতিমধ্যে বিদ্যমান প্রোগ্রামগুলিতে কাজ করে। মিডওয়্যারের সাথে ঘন ঘন সংযুক্ত থাকা কয়েকটি সফ্টওয়্যার উপাদানগুলির মধ্যে রয়েছে এন্টারপ্রাইজ অ্যাপ্লিকেশন এবং ওয়েব পরিষেবাদি।


6

ওয়েব অ্যাপ্লিকেশন বিকাশে একটি সাধারণ সংজ্ঞা রয়েছে যা (এবং আমি এই শব্দটি তৈরি করছি তবে এটি উপযুক্ত মনে হয়): একটি উপাদান যা একটি এইচটিটিপি অনুরোধ এবং / অথবা প্রতিক্রিয়া সংশোধন করার জন্য ডিজাইন করা হয়েছে তবে (সাধারণত) প্রতিক্রিয়া পরিবেশন করে না সম্পূর্ণরূপে, অনুরোধ প্রক্রিয়াজাতকরণের সময় আচরণগত পরিবর্তনের পাইপলাইন গঠনের জন্য একসাথে বেঁধে রাখা হয়েছে।

মিডলওয়্যার দ্বারা সাধারণত কার্যকর করা কার্যগুলির উদাহরণ:

  • জিজিপ প্রতিক্রিয়া সংক্ষেপণ
  • HTTP প্রমাণীকরণ
  • লগিংয়ের জন্য অনুরোধ করুন

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

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

ব্যক্তিগতভাবে, আমি এর উদারতার জন্য "মিডলওয়্যার" শব্দটি ঘৃণা করি তবে এটি সাধারণভাবে ব্যবহৃত হয়।

এখানে একটি অতিরিক্ত বিবরণ দেওয়া আছে যা বিশেষতঃ রেল অন রেলের জন্য প্রযোজ্য।


6

Middleware ওয়েব অ্যাপ্লিকেশন এবং ওয়েব পরিষেবাগুলির মধ্যে দাঁড়িয়ে রয়েছে যা স্থানীয়ভাবে যোগাযোগ করতে পারে না এবং প্রায়শই বিভিন্ন ভাষা / ফ্রেমওয়ার্কে লেখা হয়।

এর একটি উদাহরণ OWIN middleware for .NETপরিবেশ, owউইনের আগে লোকে একটি মাইক্রোসফ্ট হোস্টিং সফটওয়্যারটিতে ওয়েব অ্যাপ্লিকেশন হোস্ট করতে বাধ্য হয়েছিল IIS। ওউন বিকশিত হওয়ার পরে, এটি আইআইএস এবং স্ব হোস্ট উভয়কেই হোস্ট করার ক্ষমতা যুক্ত করেছে, আইআইএসে ওউইনের পক্ষে কেবল সমর্থন যোগ করা হয়েছিল যা একটি ইন্টারফেস হিসাবে অভিনয় করেছিল। এছাড়াও এটি সম্ভব হয়েছে host .NET web apps on Linux via Mono, যা আবার ওউইনের সমর্থন যোগ করেছিল।

এটি Single Page Applicationsওউইন হ্যান্ডলিংয়ের Httpঅনুরোধ / প্রতিক্রিয়া প্রসঙ্গে তৈরির ক্ষমতাও যুক্ত করেছে , সুতরাং ওউয়ের শীর্ষে আপনি authentication/authorizationOAuth2 এর মাধ্যমে যুক্তি যুক্ত করতে পারেন উদাহরণস্বরূপ, আপনি মিডলওয়্যারটিকে এমন একটি শ্রেণি রেজিস্টার করতে কনফিগার করতে পারেন যাতে ব্যবহারকারীর প্রমাণীকরণের যুক্তি যুক্ত থাকে (প্রাক্তন OAuth2 বাস্তবায়নের জন্য) বা ক্লাসে কীভাবে http অনুরোধ / প্রতিক্রিয়া বার্তাগুলি পরিচালনা করবেন তার যুক্তি রয়েছে, আপনি কোনও অ্যাপ্লিকেশন / পরিষেবাদির সাথে বিভিন্ন ডেটা ফর্ম্যাট (যেমন জেসন, এক্সএমএল, ইত্যাদি যদি আপনি ওয়েব টার্গেট করছেন তবে) এর মাধ্যমে যোগাযোগ করতে পারবেন।


3

মিডলওয়্যারের কয়েকটি উদাহরণ: CORBA, রিমোট মেথড ইনভোকেশন (আরএমআই), ...

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


2

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


2

এটি কেবলমাত্র একটি সফ্টওয়্যার বা একটি সরঞ্জাম যার উপর আপনার অ্যাপ্লিকেশন স্তর কোড পরিবর্তনের বিষয়ে বিরক্ত না করে উচ্চতর প্রাপ্যতা, স্কেলাবিলিটি, অন্যান্য সফ্টওয়্যার বা সিস্টেমের সাথে সংহতকরণের ক্ষেত্রে আপনার অ্যাপ্লিকেশন কার্যকর করে এবং রেপ্লিকেশন ক্ষমতা capabilities

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

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

উদাহরণ 3: আপনার একাধিক পৃথক সফ্টওয়্যার রয়েছে এবং আপনার একে অপরের সাথে কথা বলার বা একটি সাধারণ ফর্ম্যাটে ডেটা প্রেরণ করা দরকার যা সমস্ত সিস্টেমের দ্বারা বোধগম্য হয় তবে এটি যেখানে মিডলওয়্যার সিস্টেমগুলি কাজে আসে।

আশা করি প্রদত্ত তথ্যগুলি সাহায্য করবে।


2

এটি অপারেটিং সিস্টেম এবং একটি নেটওয়ার্কের মধ্যে বিতরণ করা কম্পিউটিং সিস্টেমের প্রতিটি পক্ষের অ্যাপ্লিকেশনগুলির মধ্যে একটি সফ্টওয়্যার স্তর। আসলে এটি ভিন্নজাতীয় নেটওয়ার্ক এবং সফ্টওয়্যার সিস্টেমগুলিকে সংযুক্ত করে।


0

আমি সর্বদা এটি আমার প্রাচীনতম সফ্টওয়্যারটি ইনস্টল করতে হয়েছিল বলে ভেবেছিলাম। মোট অ্যাপ্লিকেশনটিতে একটি ওয়েব সার্ভার, একটি ডাটাবেস সার্ভার এবং একটি অ্যাপ্লিকেশন সার্ভার ব্যবহৃত হয়েছে। ওয়েব সার্ভার ডেটা এবং অ্যাপ্লিকেশন মধ্যে মিডওয়্যার হয়।


0

যদি আমি ভুল না, am সফটওয়্যার অ্যাপ্লিকেশান ফ্রেমওয়ার্ক উপর ভিত্তি করে কনটেক্সট , আপনি বিবেচনা করতে পারেন middlewareনিম্নলিখিত জন্য ভূমিকা যাতে ব্যবহারকারী মধ্যে নির্দিষ্ট কার্যক্রম সম্পাদন করার জন্য মিলিত হতে পারে requestএবং আবেদন response

  • এডাপটার
  • sanitizer
  • ভ্যালিডেটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.