কেন গ্রন্থাগারের পরিবর্তে পরিষেবাগুলি (আরএসটি / এসওএপি) ব্যবহার করবেন?


22

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


6
আরে নেট , স্টিভির গুগল প্ল্যাটফর্মের ভাড়া পড়ুন , এটি প্ল্যাটফর্ম (পরিষেবাদি) বনাম পণ্য (গ্রন্থাগার) প্রশ্নে দুর্দান্ত অন্তর্দৃষ্টি দেয় ...
ইয়ানিস

উত্তর:


11

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

যদি আমরা এই মধ্যস্থতাকারী মামলাগুলির বিষয়ে কথা এড়াতে না পারি, এবং কেবল দৃ strongly়ভাবে লিঙ্কযুক্ত এপিআই লাইব্রেরি বনাম একটি পৃথক আরএসটি পরিষেবা নিয়ে কাজ করি তবে আপনি নিম্নলিখিত বিষয়গুলি বিবেচনা করতে পারেন:

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

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

  3. আপনি যদি কোনও আরইএসটি পরিষেবা হোস্ট করছেন, তবে যে কেউ এটি ব্যবহার করতে পারবেন: ম্যাক ব্যবহারকারী, লিনাক্স ব্যবহারকারী ব্যক্তি ইত্যাদি etc. ?) যার উইন্ডোজ নেই।


9

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


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

8

গ্রন্থাগারের সুবিধা:

পরিষেবা সুবিধা:

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

"নেটিভ কোড" এখানে প্রকৃত অর্থে বোঝায় না: ক) একটি পরিষেবা "নেটিভ কোড "ও ব্যবহার করতে পারে, এবং খ) সময়ের সাথে সংকলন প্রায়শই স্থানীয় কোডের মতো একই কার্যকারিতা সরবরাহ করে।
সেপ্টেম্বর

পয়েন্ট নেওয়া হয়েছে। আমি যখন "নেটিভ কোড" বলি তখন আমি যা উল্লেখ করছি তা হ'ল লাইব্রেরিটি একটি "প্রক্রিয়াধীন" কল। কোনও সার্ভিস লেয়ার ওভারহেড নেই (উদাহরণস্বরূপ, ওয়েব এপিআই কল করলে HTTP)
কোরি হাউস

হ্যাঁ, কল ওভারহেড প্রকৃতপক্ষে কম হওয়া উচিত। "উত্তর কোড" এর উল্লেখটি "লোয়ার কল ওভারহেড" দিয়ে প্রতিস্থাপন করার জন্য আমি আপনার উত্তর সম্পাদনা করার স্বাধীনতা নিয়েছি। আপনি :-) একমত না হলে পুনরায় সম্পাদনা করতে দ্বিধা বোধ করুন।

আমি যা যুক্ত করতে চাই তা হ'ল লেনদেনের ব্যবহার । ভাগ করা লাইব্রেরির চেয়ে সেবার সীমানা পেরিয়ে লেনদেনের কাজ করা সাধারণত অনেক কঠিন।
সি_মার্ট

2

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


1

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


0

বেশ কয়েকটি ভাল উত্তর আছে তবে আমি প্রদত্ত উত্তরে আরও জিনিস যুক্ত করতে চাই:

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

আপনার ক্ষেত্রে, যদি আপনার আবেদন বিতরণ না করা হয় তবে আমি আপনাকে আবেদনকে এসওএতে রূপান্তর করার কোনও কারণ দেখতে পাচ্ছি না।

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