ویب سروسز کی ترقی کے طریقہ کار – موبائل ایپلیکیشنز کی ترقی، ویب سروسز، SOA آرکیٹیکچر – ٹیکنالوجی
مواد پر جائیں۔

ویب سروسز کی ترقی کے لیے طریقہ کار – موبائل ایپلیکیشنز، ویب سروسز، SOA فن تعمیر کی ترقی

اشتہارات

کولوریس نے تقسیم شدہ نظاموں کی تعریف "ایسے نظاموں کے طور پر کی ہے جس میں کمپیوٹر نیٹ ورک میں موجود ہارڈ ویئر اور/یا سافٹ ویئر کے اجزاء پیغامات کے تبادلے کے ذریعے اپنے اعمال کو بات چیت اور مربوط کرتے ہیں"۔

یہ تصور حالیہ برسوں میں کئی عوامل کی وجہ سے مقبول ہوا ہے۔ تقسیم شدہ نظاموں کی ترقی کو فروغ دینے والا پہلا عنصر تیز رفتار مقامی نیٹ ورکس کا ابھرنا تھا۔ ایک اور اہم عنصر پرسنل کمپیوٹرز کی کارکردگی میں تکنیکی ترقی اور تقسیم شدہ ایپلی کیشنز کو سپورٹ کرنے کے لیے سافٹ ویئر کی ترقی تھی۔ تقسیم شدہ نظام ویب اور انٹرنیٹ کے تصور سے جڑے ہوئے ہیں۔ ویب کے ارتقاء، اور نئے شعبوں، تعاملات، ضروریات اور ایپلی کیشنز کے ابھرنے کے ساتھ، ویب 2.0 کا تصور ابھرتا ہے۔ یہ اصطلاح ٹم او ریلی نے 2004 میں بنائی تھی تاکہ ویب کی تاریخ میں دوسری نسل کا حوالہ دیا جا سکے جو صارف کی کمیونٹیز پر مبنی ہے اور خدمات کی ایک خاص رینج، جیسے کہ سوشل نیٹ ورکس، بلاگز، وکی یا لوک سونومی، جو تعاون اور چست کی حوصلہ افزائی کرتی ہیں۔ صارفین کے درمیان معلومات کا تبادلہ۔

پہلے فن تعمیر جنہیں خدمت پر مبنی سمجھا جا سکتا ہے (SOA) CORBA (Common Object Request Broker Architecture) پر مبنی تھا، جس نے فن تعمیر کے مختلف عناصر کو آپس میں جوڑنے اور خدمات کی تعمیر کے لیے ایک تجریدی پرت کے طور پر کام کیا۔ دیگر ابتدائی ٹیکنالوجیز DCOM (تقسیم شدہ اجزاء آبجیکٹ ماڈل) یا RPC (ریموٹ پروسیجر پروٹوکول) تھیں۔ ویب پر تقسیم شدہ نظاموں کو موثر طریقے سے ڈیزائن اور لاگو کرنے کی ضرورت کے ساتھ، کئی چیلنجز پیدا ہوتے ہیں، جن میں سے کچھ خود ترقی پر مرکوز ہیں (کارکردگی، صارف کا تجربہ، وغیرہ) اور دیگر تکمیلی، خدمات کی دوبارہ استعمال اور مطابقت کی بنیاد پر۔ ان ضروریات سے ویب سروسز پیدا ہوتی ہیں، جو مختلف صارفین کو انفارمیشن سرورز کے ساتھ باہم مربوط کرنے کے لیے معیاری طریقہ کار فراہم کرتی ہیں۔

سروس پر مبنی آرکیٹیکچرز

SOA (Service Oriented Architecture) کے مطابق وہ سافٹ ویئر آرکیٹیکچر ہیں جو کاروباری ضروریات کو پورا کرنے کے لیے خدمات کے استعمال کی وضاحت کرتے ہیں، جس کا مقصد سافٹ ویئر ایجنٹوں کے درمیان کم سے کم ممکنہ جوڑے کو حاصل کرنا ہے۔ سروس کام کی ایک اکائی ہے جو خدمت فراہم کنندہ کے ذریعہ انجام دی جاتی ہے تاکہ کسی خدمت صارف کی طرف سے مطلوبہ نتیجہ حاصل کیا جا سکے۔ سروس فراہم کرنے والے اور سروس صارف دونوں ہی سافٹ ویئر ایجنٹوں کے کردار ہیں، ان کے مالکان نہیں۔ عام معنوں میں، سروس پر مبنی فن تعمیر ایک سافٹ ویئر حل ہے جس کا مقصد کمپنی کو مختلف عملوں کو منظم کرنے اور استعمال کرنے کی اجازت دینا ہے۔ SOA کے ساتھ، سافٹ ویئر ایپلی کیشنز اب افعال اور عمل کے بڑے بلاکس نہیں ہیں۔ اس کے بجائے، یہ ایپلی کیشنز جمع شدہ ماڈیولر خدمات سے بنی ہیں۔ یاد رکھیں کہ سروس ایک سادہ سافٹ ویئر فنکشن ہے (جیسے سی ڈی پر پلے بیک منسوخ کرنا)۔ آپریٹنگ سسٹم، پلیٹ فارم، پروگرامنگ کی زبان یا جغرافیائی محل وقوع سے قطع نظر اسے کسی بھی نظام کی طلب پر چلایا جا سکتا ہے۔

SOA کے بارے میں جو کچھ انقلابی ہے وہ خود تصور نہیں ہے، جو ایک طویل عرصے سے موجود ہے، بلکہ حقیقت یہ ہے کہ اسے WWW (ورلڈ وائیڈ ویب) کے ذریعے لاگو کیا جا سکتا ہے۔ جس طرح ویب صفحات کسی بھی پلیٹ فارم پر لوڈ ہوتے ہیں، ویب سروسز پلیٹ فارم سے قطع نظر اسی طرح کام کرتی ہیں جیسا کہ وہ استعمال کرتے ہوئے بنائے گئے ہیں۔
عالمگیر معیارات

تصویرSOA کا خیال براہ راست آبجیکٹ اورینٹڈ پروگرامنگ سے نکلتا ہے، جو ڈیٹا اور اس کی پروسیسنگ کے درمیان تعلق کی تجویز کرتا ہے۔ اس طرح، وہ باضابطہ طور پر انٹرفیس کے ذریعے خدمات کی وضاحت کرتے ہیں جو بنیادی پلیٹ فارم اور پروگرامنگ زبان سے آزاد ہیں۔ یہ انٹرفیس ان کے نفاذ کی خصوصیات کو چھپاتے ہیں، جس کی وجہ سے وہ خود مختار ہوتے ہیں۔ ڈویلپر اور پروگرامنگ زبان۔ ان آرکیٹیکچرز کے ذریعے، انتہائی توسیع پذیر نظاموں کو ڈیزائن اور لاگو کرنا ممکن ہے جو کاروباری منطق کی عکاسی کرتے ہیں اور ساتھ ہی مختلف ملکیتی یا تیسرے فریق کے نظاموں کے درمیان تعامل کو آسان بناتے ہیں۔ ہم چاہتے ہیں کہ کوئی ہمارے لیے کام کرے کیونکہ وہ ماہر ہیں۔ کسی خدمت کا استعمال خود کرنے سے عموماً سستا اور زیادہ موثر ہوتا ہے۔ لہذا، ہم میں سے اکثر سمجھتے ہیں کہ ہم ہر چیز میں ماہر نہیں ہو سکتے۔ اسی اصول کا اطلاق سافٹ ویئر سسٹم کی تعمیر پر بھی کیا جا سکتا ہے۔

انٹرفیس انتہائی اہم ہیں، اگر وہ اچھی طرح سے متعین نہیں ہیں یا کام نہیں کرتے ہیں، تو نظام کام نہیں کرتا ہے۔ مزید انٹرفیس کو مربوط کرنا مہنگا ہے اور تقسیم شدہ ایپلی کیشنز میں غلطیوں کے امکان کو بھی بڑھاتا ہے۔ ریموٹ انٹرفیس زیادہ تر تقسیم شدہ ایپلی کیشنز کا سب سے سست حصہ ہیں۔ اس سب کے ساتھ، ہر ایپلیکیشن کے لیے نئے انٹرفیس بنانے کے بجائے، تمام ایپلی کیشنز کے لیے عام انٹرفیس کو دوبارہ استعمال کرنا زیادہ سمجھ میں آتا ہے۔

لہذا، چونکہ ہمارے پاس صرف چند عام انٹرفیس دستیاب ہیں، اس لیے ہمیں پیغامات میں ایپلیکیشن کے لیے مخصوص الفاظ کو شامل کرنا چاہیے۔ ہم اپنے انٹرفیس کے ذریعے کسی بھی قسم کا پیغام بھیج سکتے ہیں، لیکن یہ کہنے کے لیے کچھ اصول ہیں کہ ایک فن تعمیر خدمت پر مبنی ہے۔

- سب سے پہلے، پیغامات وضاحتی ہونے چاہئیں، نہ کہ سبق آموز، کیونکہ سروس فراہم کرنے والا مسئلہ کو حل کرنے کا ذمہ دار ہے۔ مثال کے طور پر، یہ ایک ریسٹورنٹ میں جا کر ویٹر کو بتانے کی صورت حال سے ملتا جلتا ہو گا کہ آپ کیا پینا چاہتے ہیں اور اپنی ترجیحات، لیکن ہمیں باورچی کو یہ نہیں بتانا چاہیے کہ آپ اپنے پکوان کیسے تیار کریں، مرحلہ وار۔

- دوم، سروس فراہم کرنے والے آپ کی درخواست کو سمجھنے کے قابل نہیں ہوں گے اگر ان کے پیغامات اس فارمیٹ، ساخت اور الفاظ میں نہیں لکھے گئے ہیں جو اس میں شامل ہر فرد کے لیے قابل فہم ہے۔ اس طرح، پیغامات کی ذخیرہ الفاظ اور ساخت کو محدود کرنا ایک ہے۔
مؤثر مواصلات کے لئے ضروری ہے. پیغام جتنا محدود ہوگا، اسے سمجھنا اتنا ہی آسان ہوگا۔

- سوم، توسیع کا امکان بہت اہمیت کا حامل ہے۔ دنیا ایک بدلتی ہوئی جگہ ہے، اور اسی طرح وہ ماحول ہے جس میں سافٹ ویئر رہتا ہے۔ ان تبدیلیوں کے لیے سسٹم سافٹ ویئر، صارفین کے لیے متعلقہ تبدیلیوں کی ضرورت ہوتی ہے۔ خدمات، فراہم کنندگان اور وہ پیغامات جن کا وہ تبادلہ کرتے ہیں۔ اگر پیغامات قابل توسیع نہیں ہیں تو، صارفین اور فراہم کنندگان کو سروس کے مخصوص ورژن میں بند کر دیا جائے گا۔ رکاوٹ اور توسیع کا گہرا تعلق ہے، آپ کو دونوں کی ضرورت ہے، اور ایک کو بڑھانے کا مطلب دوسرے کو کم کرنا ہے۔ مثالی ایک صحیح توازن حاصل کرنا ہے۔

- چوتھا، ایک SOA کے پاس ایک ایسا طریقہ کار ہونا ضروری ہے جو صارف کو صارف کی طرف سے مانگی گئی سروس کے تناظر میں ایک سروس فراہم کنندہ کو دریافت کرنے کی اجازت دیتا ہے۔ میکانزم لچکدار ہونا چاہیے اور مرکزی رجسٹری نہیں ہونا چاہیے۔

- پانچویں، بے ریاست سروس: ہر ایک پیغام جو صارف فراہم کنندہ کو بھیجتا ہے اس میں فراہم کنندہ کے لیے ضروری تمام معلومات ہونی چاہیے تاکہ وہ اس پر کارروائی کرے۔ یہ پابندی سروس فراہم کرنے والے کو زیادہ قابل توسیع بناتی ہے کیونکہ فراہم کنندہ کو درخواستوں کے درمیان ریاستی معلومات کو ذخیرہ کرنے کی ضرورت نہیں ہوتی ہے۔ اسے "بڑے پیمانے پر پیداواری خدمت" کہا جا سکتا ہے کیونکہ ہر درخواست کو عمومی طور پر سنبھالا جا سکتا ہے۔ یہ پابندی مزید مرئیت بھی فراہم کرتی ہے، کیونکہ کوئی بھی مانیٹرنگ سافٹ ویئر آزادانہ درخواست کا معائنہ کر سکتا ہے اور اس کا ارادہ نکال سکتا ہے۔ یہ جزوی ناکامیوں سے آسانی سے بحالی کی بھی اجازت دیتا ہے کیونکہ کوئی درمیانی ریاستیں نہیں ہیں، جو سروس کو زیادہ قابل اعتماد بناتی ہے۔

- چھٹا، غیرمعمولی درخواستیں (جو تبدیلیاں نہیں کرتی ہیں): سافٹ ویئر ایجنٹ کی طرف سے موصول ہونے والی نقل کی درخواستوں کا اثر ایک ہی درخواست جیسا ہوتا ہے۔ یہ ضرورت فراہم کنندگان اور صارفین کو کی مجموعی وشوسنییتا کو بڑھانے کی اجازت دیتی ہے۔ سروس، اگر کوئی ناکامی ہوئی ہے تو صرف درخواست کو دہرانا۔

اس لیے ہم کہہ سکتے ہیں کہ SOA کوئی ٹول نہیں ہے، بلکہ نئی، زیادہ متحرک اور کم منحصر ایپلی کیشنز کی تعمیر کے لیے معیارات کا ایک سیٹ ہے۔ SOA ایک منظم طریقے سے مختلف سروسز کے درمیان کاروباری منطق اور معلومات تک رسائی کی سہولت فراہم کرتا ہے، اور ایک ایک کو بنانے کے لیے کئی ریموٹ سروسز کو بھی ترتیب دے سکتا ہے۔ کی اکثریت تعریفیں ویب سروسز کے استعمال کی نشاندہی کرتی ہیں، جسے ہم اگلے باب میں، سروس پر مبنی فن تعمیر کے نفاذ میں دیکھیں گے۔ تاہم، اسے کسی بھی دوسری سروس پر مبنی ٹیکنالوجی کا استعمال کرتے ہوئے لاگو کیا جا سکتا ہے۔