একটি ESB কি এবং এটি কি জন্য ভাল?


89

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

এটি কি কোনও কংক্রিটের জিনিস (সার্ভিস / সার্ভার / ব্রোকার / ইত্যাদি) যে আপনি আপনার সমস্ত অ্যাপ্লিকেশনগুলিকে কেবল বিভিন্ন উপায়ে এনেছেন, বা এটি সিস্টেমগুলি ডিজাইনের আরও একটি ধারণামূলক উপায়?

ভাল উদাহরণগুলির জন্য কোনও ব্যাখ্যা বা লিঙ্কগুলি প্রশংসিত হবে। ধন্যবাদ


4
আপনি যদি মার্টিন ফাউলারের কাছে জিজ্ঞাসা করেন, তিনি আপনাকে এটির অর্থ হ'ল এগারিজিয়াস স্প্যাগেটি বক্স।
anataliocs

আপনি এখানে ইএসবি সম্পর্কিত তথ্যও পেতে পারেন: wso2.com/library/articles/2017/07/ কি-is- wso2-esb যদিও এটি wso2 এসএসবি সম্পর্কে বিশেষভাবে কথা বলেছে speaks
রিয়াফা আব্দুল হামেদ

উত্তর:


54

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

এর মধ্যে বেমানান প্রোটোকল, ডেটা এবং মিথস্ক্রিয়া পুনরায় মিলনের মধ্যস্থতা অন্তর্ভুক্ত থাকতে পারে।

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

আসল বাস্তবায়ন

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

ইন্টারনেটের সাথে সাদৃশ্য

বিস্তৃত বিভিন্ন ব্যবহার এবং ডেটা সহ একটি বড় যোগাযোগের বাস, তবে সমস্ত চলমান প্রোটোকলকে মানক করে।

প্রকৃতপক্ষে, কোনও এফটিপি সংযোগকারীকে এমন একটি এইচটিটিপি লিখতে পারেন যা ব্রাউজারগুলিকে কোনও এফটিপি ক্লায়েন্টকে না ডেকেই এফটিপি সাইটগুলিতে অ্যাক্সেস করতে দেয় (সাধারণত ব্রাউজারে এখন নির্মিত)।

ম্যাশআপস

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

সমস্ত সম্পূর্ণ আলাদা পরিষেবা, নিজের দ্বারা বেমানান, কিন্তু স্ট্যান্ডার্ড সংযোজকগুলি (ইয়াহু পাইপগুলি উদাহরণস্বরূপ) তারা একত্রিত করে কার্যকর এবং কার্যকর সামগ্রীতে টানা যেতে পারে।

-আডাম


46

দাবি অস্বীকার: আমি আইবিএমের জন্য কাজ করি এবং ওয়েবস্পিয়ার ইএসবি-র সাথে পরামর্শ করি, একটি আইবিএম পণ্য যার সাথে ইএসবি তৈরির জন্য ডিজাইন করা হয়েছে। নিম্নলিখিত আমার মতামত এবং অগত্যা আইবিএম এর অবস্থান প্রতিফলিত করে না।

দুর্ভাগ্যক্রমে, একটি ইএসবি বিভিন্ন ব্যক্তির কাছে আলাদা জিনিস।

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

এই ক্ষেত্রে, ESB বাস্তবায়নগুলি (বা আরও সুনির্দিষ্টভাবে বলতে গেলে, ESBs তৈরির জন্য বিক্রি করা সফ্টওয়্যার - যেমন আমি পরামর্শ করি) প্রায়শই প্রযুক্তিগতভাবে মেসেজিং বা কুইউং ব্রোকার হিসাবে পরিচিত যা একই রকম ছিল যদিও উদ্দেশ্য কিছুটা আলাদা although , কারণ (সংক্ষিপ্ত শব্দে বোঝা যাচ্ছে) এটি বার্তা এক স্থান থেকে অন্য জায়গায় সরিয়ে না দেওয়ার চেয়ে পরিষেবাগুলিকে ঘিরে। প্রযুক্তিগত দিক থেকে পার্থক্যটি কতটা গুরুত্বপূর্ণ তা মতামতের বিষয়।



37

বাণিজ্যিক ESB এর সাথে আমার অভিজ্ঞতা হ'ল এটি একটি ওভারব্লাউন এবং ব্যয়বহুল প্রযুক্তি যা এর সমাধান হিসাবে যত সমস্যার সৃষ্টি করে। ইএসবি নতুন সিস্টেম এবং উত্তরাধিকারকে সংযুক্ত করবে, বাসের মাধ্যমে বার্তা উড়ে যাবে এবং সমস্ত কিছু নির্বিঘ্নে কথা বলতে সক্ষম হবে। কিছু স্থিতিস্থাপকতা, অর্কেস্টেশন নিক্ষেপ করুন এবং আপনার এন্টারপ্রাইজ অ্যাপ্লিকেশন সফ্টওয়্যারটির খুব শক্তিশালী অংশ রয়েছে।

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

আইএমএইচও এটি নির্দিষ্ট সংখ্যক নির্দিষ্ট ইন্টারফেস তৈরি করা ব্যবহার করা আরও ভাল typically


4
আমি "ওভারব্লাউন এবং ব্যয়বহুল প্রযুক্তি" অংশের সাথে একমত। তবে স্বতন্ত্র ওয়েব পরিষেবাদি একসাথে "আঠালো" করতে আপনার কিছু দরকার need এটি হতে পারে: নতুন ওয়েব পরিষেবা (সম্ভবত সবচেয়ে অনমনীয়), ইএসবি-তে বিপিইএল - একটি বৃহত অবকাঠামো তবে কম অনমনীয়, বা ম্যাসআপ সার্ভারের মতো আরও চটুল এবং নমনীয় something এগুলি অ্যাপ্লিকেশন বিকাশের জন্য ভাল চৌকস বিকল্প যা এর বেশি অনুষ্ঠান করে না (মডেলিং ইত্যাদি)
ড্যান

ম্যাসআপ পদ্ধতির বিষয়টি আমি সবচেয়ে পছন্দ করি - আমরা 'একশব্দ' এইচটিএমএল + জেএস ওয়েব পৃষ্ঠাগুলি তৈরি করতে ব্যবহার করি, এখন আমরা বিভিন্ন ব্রাউজার / ডিভাইসে লক্ষ্যযুক্ত সমস্ত ধরণের সামগ্রীর ম্যাসআপগুলি তৈরি করি। অ্যাপ্লিকেশন ডিজাইন একই পথে যাবে।
মিঃটেলি

4
বিটিডাব্লু আপনি সম্ভবত আমার উত্তরটিতে একটু বিক্রেতার ক্লান্তি সনাক্ত করতে পারেন - নতুন এতগুলি এত অল্পের জন্য এত বেশি অর্থ দিয়েছে।
মিঃটেলি

আপনি কোনও ESB কী তা বলতে ব্যর্থ হয়েছিলেন, পরিবর্তে আপনি এই স্থাপত্য
নিদর্শনটি ঘুরিয়ে

4
".... ইএসবি নতুন সিস্টেম এবং উত্তরাধিকারের সাথে সংযোগ দেবে, বার্তাগুলি বাসের উপর দিয়ে উড়ে যাবে এবং সমস্ত কিছু নির্বিঘ্নে কথা বলতে সক্ষম হবে some ... "- আমি ভেবেছি এটির সংক্ষিপ্তসার ঠিক আছে?
মিঃটেলি

12

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

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

উদাহরণ: ধরা যাক আপনি একটি স্ট্যান্ডার্ড বার্তা ওরিয়েন্টড মিডলওয়্যারের সাথে অ্যাপ্লিকেশন এটিকে অ্যাপ্লিকেশন বি এর সাথে সংযুক্ত করতে চান, আসুন আমরা জেএমএস গ্রহণ করি। আপনি অ্যাপ্লিকেশন বিতে কাজ করে থাকা আপনার সহকর্মীদের সাথে কথা বলছেন, কোনও বিষয়ে সম্মত হয়েছেন, বার্তার ধরণ এবং ক্ষেত্রগুলি পাঠিয়ে দিন (সিউডো কোড): সেন্ড জেএমএস ("TRADE.MSFT", {MapMessage ব্যবসায়ী = "পিট" দাম = 101.4 ভল = 100})

যদি আপনি পরিষেবা ভিত্তিক আর্কিটেকচারে একই জিনিস করেন তবে আপনার প্রয়োজন

  1. অ্যাডিটিনাল সফ্টওয়্যার ইনস্টল করুন
  2. নতুন ধারণা অনেক শিখুন
  3. আপনার নতুন জাভা উপাদানটি ESB- এর অ্যাডমিন গুইতে সংজ্ঞায়িত করুন
  4. ইএসবি দ্বারা নিয়ন্ত্রিত কিছু ইন্টারফেস প্রয়োগ করুন
  5. সেন্ডজেএমএস (getDestination (), {MapMessage ব্যবসায়ী = "পিট" দাম = 101.4 ভোল = 100}) - নোট করুন গন্তব্যটি ESB থেকে ইনজেকশন করা হয়েছে

প্রথমবার এটি সম্ভবত কিছুটা বেদনাদায়ক, তবে আমি ধারণা করি আপনি যেমন EJB এর অভ্যস্ত হয়ে উঠতে পারেন ঠিক তেমনভাবে আপনি এটিতে অভ্যস্ত হয়ে উঠতে পারেন ;-)

আপনি বলতে পারেন যে কোনও এমওএস সিস্টেমটি 'টাইপযুক্ত' (ডায়নামিক স্ট্রাকচার) যখন কোনও ইএসবি 'টাইপড' (স্ট্যাটিক স্ট্রাকচার) থাকে। কাঁচা মেসেজিং বনাম ইএসবি এর ট্রেড অফগুলি অন্যান্য টাইপ করা / টাইপ করা পছন্দগুলির মতো:

  • বিশ্রাম বনাম এসওএপি
  • এক্সএক্সডি সহ বৈধতাযুক্ত এক্সএমএল বনাম এক্সএমএল valid
  • গ্রোভি বনাম জাভা
  • সংকলিত ভাষা বনাম অনুবাদ করা

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

সুতরাং আপনার প্রকল্পটি যদি অযৌক্তিক পরিবর্তনগুলি পরীক্ষা করে সিস্টেম ভঙ্গ করে খুব বেশি লোকের সাথে ভোগে - আরও কাঠামোর দিকে এগিয়ে যান (এমওএমের পরিবর্তে ইএসবি)। যদি আপনার প্রকল্পগুলি পর্যাপ্ত পরিমাণে সময়মতো কাজ না করায় ভোগে - তবে সহজ, টাইপযুক্ত সমাধানটি বেছে নিন। যদি এটি উভয়ই থাকে - একজন পরামর্শক পান (কেবল মজা করছেন ;-)


4

ঠিক আছে, এটি আপনি কাকে জিজ্ঞাসা করছেন তার উপর নির্ভর করে ... অনেকে বলবেন এটি "মিডলওয়্যার" এর একটি টুকরো যা এই "মডিউলগুলির মধ্যে মেসেজিংয়ের বাইরে কোডিংটি বের করার জন্য" বিজনেস লজিক "এর বিভিন্ন অংশকে একসাথে সংযুক্ত করে। আমি মনে করি এটি একটি সাধারণ যথেষ্ট সংজ্ঞা, তবে আমি নিশ্চিত যে আপনি ইতিমধ্যে উইকিপিডিয়া এবং হোয়াট নোটের মাধ্যমে সেখানে পৌঁছেছেন।

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

আমি মনে করি এটি পরিষ্কার হিসাবে আমি হতে পারি ... আশা করি এটি সাহায্য করবে।


3

আমার উপস্থাপনাটি একবার দেখুন " চয়েজটির জন্য বানানো - সঠিক ইএসবি কীভাবে চয়ন করবেন "।

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


2

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

তবে এটি রক্ষণাবেক্ষণ এবং প্রসারিত করা বরং ব্যয়বহুল, জটিল এবং অসুবিধাগুলি যা আপনাকে অ্যাপ্লিকেশনগুলি স্কেলিংয়ের জন্য একটি সাধারণ উদ্দেশ্যে সরঞ্জাম হিসাবে এটি একটি দুর্বল প্রযুক্তি পছন্দ করে তোলে।

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