ধরা যাক আপনি পরিষেবাগুলিতে আপনার অ্যাপ্লিকেশনগুলি ভাঙ্গার দিকে তাকিয়ে আছেন। কোনও এসওএ পদ্ধতির গ্রহণের কোনও ভাল কারণ আছে কি না just কেবল একটি লাইব্রেরি এপিআই তৈরি করা যা অ্যাপ্লিকেশনগুলির প্রয়োজন এটি লোড করা যায়।
ধরা যাক আপনি পরিষেবাগুলিতে আপনার অ্যাপ্লিকেশনগুলি ভাঙ্গার দিকে তাকিয়ে আছেন। কোনও এসওএ পদ্ধতির গ্রহণের কোনও ভাল কারণ আছে কি না just কেবল একটি লাইব্রেরি এপিআই তৈরি করা যা অ্যাপ্লিকেশনগুলির প্রয়োজন এটি লোড করা যায়।
উত্তর:
পার্থক্য উভয়ের মধ্যে সূক্ষ্ম হতে পারে। উদাহরণস্বরূপ। নেট ওয়ার্ল্ডে, আপনার কাছে এমন একটি অ্যাপ্লিকেশন থাকতে পারে যা শেষ ব্যবহারকারীর কাছে একচেটিয়া মনে হবে এবং এটি একই মেশিনে কাজ করবে তবে অভ্যন্তরে ডাব্লুসিএফ পরিষেবাদির একগুচ্ছের মধ্যে আলাদা হয়ে যাবে। আপনার এমন আর্কিটেকচারও থাকতে পারে যেখানে গ্রন্থাগারগুলি দৃ strongly়ভাবে লিঙ্কযুক্ত নয় (অ্যাডিন / প্লাগিন) এবং একে অপরের সাথে কথা বলার সময় কেবল একটি প্রোটোকল অনুসরণ করে।
যদি আমরা এই মধ্যস্থতাকারী মামলাগুলির বিষয়ে কথা এড়াতে না পারি, এবং কেবল দৃ strongly়ভাবে লিঙ্কযুক্ত এপিআই লাইব্রেরি বনাম একটি পৃথক আরএসটি পরিষেবা নিয়ে কাজ করি তবে আপনি নিম্নলিখিত বিষয়গুলি বিবেচনা করতে পারেন:
একই মেশিনে একটি লাইব্রেরি এপিআই কল করা হয়। পরিষেবাগুলি যে কোনও জায়গায় হোস্ট করা যায় এবং যে কোনও জায়গা থেকে কল করা যেতে পারে। আপনি যদি পারফরম্যান্স / স্কেলাবিলিটি / সুরক্ষার কারণে একাধিক মেশিনে অ্যাপ্লিকেশনটির হোস্টিং গণনা করছেন তবে আপনার পরিষেবাগুলি ব্যবহারের সম্ভাবনা রয়েছে।
পরিস্থিতি একই রকম হয় যখন এটি বেশ কয়েকটি মেশিনে মোতায়েন অ্যাপ্লিকেশন দ্বারা একটি পরিষেবা ব্যবহার করতে যায়। উদাহরণস্বরূপ, যদি আপনি কিছু আর্থিক গণনা করে কোনও ব্যাংকের জন্য কোনও অ্যাপ্লিকেশন করছেন, তবে একটি উপায় হ'ল সম্পূর্ণ ডেস্কটপে সম্পূর্ণ বড় অ্যাপ্লিকেশন স্থাপন করা এবং প্রতি ক্লায়েন্টকে প্রতিবার বড় আকারের আপডেটগুলি করতে বাধ্য করা; অন্য পদ্ধতিটি হ'ল সার্ভারগুলিতে গণনার অংশটি হোস্ট করা এবং ডেস্কটপগুলিতে কেবলমাত্র একটি ইউআই এবং সেই সার্ভারগুলিতে একগুচ্ছ কলগুলি যুক্ত করা উচিত।
আপনি যদি কোনও আরইএসটি পরিষেবা হোস্ট করছেন, তবে যে কেউ এটি ব্যবহার করতে পারবেন: ম্যাক ব্যবহারকারী, লিনাক্স ব্যবহারকারী ব্যক্তি ইত্যাদি etc. ?) যার উইন্ডোজ নেই।
পরিষেবাদির আর একটি সুবিধা হ'ল আপনি পরিষেবাটি আপডেট করার পরে এটি তাত্ক্ষণিকভাবে পরিষেবাটির সমস্ত গ্রাহকের কাছে স্থাপন করা হবে। সুতরাং আপনি যদি কোনও ত্রুটি বা পারফরম্যান্সের সমস্যা স্থির করে থাকেন তবে আপডেট হওয়া পরিষেবাটি লাইভ হওয়ার সাথে সাথেই সকলেই সুবিধাটি পান যা লোকেরা উপেক্ষা করতে পারে এমন কোনও আপডেট বিতরণ না করে।
গ্রন্থাগারের সুবিধা:
পরিষেবা সুবিধা:
একটি এসওএ পদ্ধতির মাধ্যমে বিভিন্ন পরিষেবাগুলি পৃথকভাবে হোস্ট করা এবং রক্ষণাবেক্ষণের অনুমতি দেওয়া হয়। কোড ছাড়াও, একটি নির্দিষ্ট পরিষেবা মোতায়েন করতে প্রচুর বিশেষ কনফিগারেশন (পাসওয়ার্ড, পোর্ট, শংসাপত্র ইত্যাদি) প্রয়োজন হতে পারে। একটি আরইএসটি পরিষেবা গ্রহণের মধ্যে একটি সীমাবদ্ধ জটিলতা রয়েছে যা স্পষ্টভাবে নথিভুক্ত এবং সহজেই বোঝা যায়। এটি আরও সুরক্ষিত কারণ এর অর্থ আপনার গ্রাহকদের ডিবি বা অন্যান্য সংস্থানগুলিতে অ্যাক্সেস দেওয়ার দরকার নেই।
যদি কোনও এসওএ পরিষেবায় কোনও পরিবর্তন হয়, তবে সেই এসওএ পরিষেবাটি পুনর্নবীকরণ, পুনর্নির্মাণ এবং পুনর্বার নিয়োগ করতে হবে। সমস্ত অ্যাপ্লিকেশনগুলি যে পরিষেবাটি গ্রাস করে সেগুলি চালিয়ে যেতে পারে। কোনও ডিএলএলে একটি লাইব্রেরিতে পরিবর্তনের অর্থ এই লাইব্রেরির সমস্ত গ্রাহককে ডিএলএল উল্লেখ করতে পুনর্নবীকরণ করতে হবে, তাদের সকলকে পুনরায় প্রতিবেদন করতে হবে এবং তাদের সকলকে পুনরায় নিয়োগ করতে হবে। এটি সঠিকভাবে না ঘটার আশঙ্কাও রয়েছে এবং বিভিন্ন অ্যাপ্লিকেশনগুলিতে ডিএলএল এর বিভিন্ন সংস্করণ থাকবে। কখনও কখনও এটি কোনও সমস্যা নাও হতে পারে - সম্ভবত প্রতিটি সিস্টেমে লাইব্রেরির সংস্করণ থাকা উচিত যা স্থাপনার সময় উপস্থিত ছিল (আপনার নতুন লগিং সিস্টেমটি নতুন নতুন বৈশিষ্ট্য পেতে আপডেট করতে পারে - আপনি কি সত্যিই কিএক্ষেত্রে প্রতিটি সিস্টেম আপডেট করা দরকার?) এক্ষেত্রে একটি লাইব্রেরি ঠিক আছে। তবে বলুন যে করের হার গণনা করার জন্য আপনার কাছে একটি পরিষেবা আছে এবং কর আইন পরিবর্তন হয় change এই পরিবর্তনটি অন্তর্ভুক্ত করার জন্য আপনার প্রতিটি সিস্টেম আপডেট করার দরকার নেই, এটি এক জায়গায় করা ভাল। এই ক্ষেত্রে একটি পরিষেবা একটি ভাল বিকল্প।
বেশ কয়েকটি ভাল উত্তর আছে তবে আমি প্রদত্ত উত্তরে আরও জিনিস যুক্ত করতে চাই:
আপনি যখন যতটা সম্ভব ওভারহেডের সাথে জিনিসগুলির সাথে ইন্টারঅ্যাক্ট করতে চান তখন API গ্রন্থাগার পদ্ধতিটি খুব কার্যকর useful ফলাফলটি হ'ল এপিআই এবং এটি ব্যবহার করে অ্যাপ্লিকেশনগুলির মধ্যে একটি উচ্চতর সংযুক্তি রয়েছে। কখনও কখনও, এটি প্রয়োগের জন্য ঠিক আছে এবং এমনকি প্রয়োজনীয়, তবে আপনার যদি খুব বিতরণ করা সিস্টেম থাকে বা আপনি মনে করেন আন্তঃব্যবহারযোগ্যতা একটি বিশাল সমস্যা, আপনার বিমূর্ততাটির এক ধাপ এগিয়ে যেতে হবে এবং যোগাযোগের অন্যান্য উপায়গুলি ব্যবহার করতে হবে। বিশেষত, আপনি যদি একটি বিতরণ ব্যবস্থা রাখতে চান তবে এসওএপি এসওএর পরবর্তী ধাপের মতো, তবে এখনও ইউনিটগুলির মধ্যে নির্ভরতা বজায় থাকবে কারণ তাদের একে অপরের পদ্ধতিগুলি জানতে হবে। REST এটি একটি নতুন স্তরে নিয়ে যায়, কোনও মেশিনকে অন্যান্য পরিষেবাদিগুলির সামগ্রীগুলিকে একীভূত উপায়ে কিছু শেখার অনুমতি দিয়ে।
আপনার ক্ষেত্রে, যদি আপনার আবেদন বিতরণ না করা হয় তবে আমি আপনাকে আবেদনকে এসওএতে রূপান্তর করার কোনও কারণ দেখতে পাচ্ছি না।