مقدمه ای بر پروتکل های دسترسی به داده ها و Open Data Protocol

گاهی اوقات غربت یک مفهوم حتی صرف نظر از دانش اجرا در جامعه ی نرم افزاری کشور، علت odataLogoنگارش پست های من میشه. Open Data Protocol هم از جمله ایین مفاهیمه، چرا که با وجود تمام قابلیت ها و امکانی که به سازمان ها و تولید کنندگان نرم افزار میده تا بتوانند با یک ساختار و پروتکل شناخته شده اطلاعات را از منابع مختلف اعم از دیتابیس های تولیدشده توسط شرکت های دگه، فایل هایی نظیر XML و حتی وب سرویس ها و … بازخوانی و ویرایش نمایند، هنوز نمیشناسند. درحالیکه ابزار استفاده از آن نیز در دات تحت عنوان WCF Data Services مدت هاست که عرضه شده و شرکت های بزرگی نظیر مایروسافت، IBM و SAP نیز از آن استفاده کرده اند.

متاسفانه بعد از گذشت دو سال ازکنفرانس PDC09 که محصول WCF Data Services معرفی شده (در کنفرانس MIX07 تحت عنوان Astoria project معرفی و در سال 2008 با نام ADO.NET Data Servicesهمراه با NET Framework 3.5 SP1. عرضه نهایی شد و در کنفرانس PDC09 به  WCF Data Services تغییر نام داد) هنوز که هنوزه در بین اکثریت قریب به اتفاق برنامه نویس ها و مدیران تیم های نرم افزاری کشور غریب و ناآشنا است…

معرفی Open Data Protocol که به اختصار OData ذکر می شود:

امروزه با گسترش و فراگیر شدن نرم افزارها، با تولید حجم عظیم داده ها روبرو هستیم که در حال ثبت در دیتابیس ها هستند. به طور کلی، اکثریت نرم افزارها مکانیسم و فرمت خاص خود را برای ثبت و بازیابی داده ها به کار می گیرند و این تنوع در ساختار نگهداری اطلاعات، موجب دشمواری ارتباط بین سیستم ها و دیتابیس های مختلف از منظر فهم و ارتباط با ساختار اطلاعات ذخیره شده درآنها می باشد (ازنظر تکنیکال اکثر دیتابیس های استاندارد نظیر SQL Server و Oracle به راحتی با یکدیگر ارتباط برقرار می کنند و لی پس از برقراری ارتباط، چگونگی کوئری گرفتن، ثبت، ویرایش داده ها با در نظر گرفتن ساختارهای متفاوت جداول و طراحی دیتابیس و از حیث کنترل دسترسی ها و مسائل امنیتی نکته مهمی خواهد بود). همچنین گاها اطلاعات درون فایل ها و یا از سریق وب سرویس ها مورد دسترس اند و به دیتابیس ها محدود نمی شوند.

با توجه به توضیح مختصر فوق، Open Data Protocol به عنوان یک پروتکل وب ( یک ساختار استاندارد مورد استفاده در وب) به وجود آمد تا عملیات کوئری گرفتن و ویرایش اطلاعات را با استفاده از روش هایی متفاوت با دسترسی مستقیم یا از طریق ساختارهای دلخواه برنامه نویسان محیا سازد.

این دسترسی از طریق پروتکل هایی نظیر HTTP, Atom Publishing Protocol, JSON امکان پذیر است که تقریبا از کلیه ی نرم افزارهای وب قابل استفاده هستند، انجام می گیرد. OData را میتوان پروتکلی دانست که از دل تجربیات ناشی از تولید نرم افزارهای مبتنی بر AtomPub که طی چند سال گذشته به تولید رسیده اند، برخواسته است. OData محدود به  دسترسی داده های ذخیره شده در دیتابیس های رایطه ای مثل SQL Server, Oracle,…  یا وب سرویس ها یا CMS ها و… نیست. تمامی این اعمال از طریق متدهای استاندارد وب نظیر GET, POST, DELETE, PUT انجام می شود… به تصویر زیر دقت کنید که فرمان کوئری چگونه از طریق URI به سرویس پاس داده می شود و اطلاعات فراخوانی میشود…

odata

راه میانبر که به کیفیت و اهمیت و سهمی که این پروتکل در بازار از آن خود دارد نیم نگاهی است به استفاده کنندگان از این پروتکل:

  • Microsoft SharePoint 2010
  • IBM WebSphere
  • Microsoft SQL Server Reporting Services
  • SAP NetWeaver Gateway
  • Telerik OpenAccess ORM

پس دیدیم که استفاده از این پروتکل، خیلی زود و آوانگارد منشانه هم نیست… حالا بریم سراغ معرفی ابزار دات نتی جهت استفاده از OData…

WCF Data Services یک از کامپوننت های NET Framework. می باشد که نرم افزار را قادر به استفاده از OData جهت دسترسی به داده های نزد متبع مختلف می کند. جهت آشنایی بیشتر با این لینک مراجعه کنید. میبینیم که روز به روز دامنه ارتباطات دات نت با دنیای بیرون از مرزهای نرم افزارهایی که ما مینویسیم گسترده تر میشه… حال فرض کنید اگر تولید کننده های نرم افزارهای مالی و اداری و تخصصی ایرانی از چنین مکانیسم هایی بهره می بردند… هزینه سازمان ها چقدرکاهش می یافت؟؟ ارتباط بین نرم افزارهای مختلف تسریع می شد و دامنه ی انتخاب خریداران از محدوده ی انتخاب مجموعه ای خاص که می بایست تمامی زیرسیستم های مورد نیاز یک سازمان را دارا باشد تا مشکل ارتباط بین سیستم ها حل شود، وسیع تر می شد. این به نفع تولید کننده ها هم بود تا بتوانند با دارا بودن تعداد نرم افزارهای کمتر ولی تخصصی تر مشتریان بزرگ را جذب کنند.

لزوم مهاجرت به WCF سوالی است که مکررا باید به شرکت ها و تیم های طرف مشاوره پاسخ داد که مگر Web Service های کلاسیک چه کاری کمتر انجام می دادند؟ جواب واضح است: در مقایسه با میزان تخصص و استفاده مجموعه های داخلی از مفهوم سرویس، هیچی!! ولی در مقایسه با دنیای بیرون، محدودیت های وب سرویس های کلاسیک غیرقابل ورود ساختن یک شرکت تولید کننده نرم افزار به عرصه رقابت با امروز را تضمین میکند!

این پروتکل یک رقیب سرسخت هم داره: GData — competing protocol از Google

دیدگاهتان را بنویسید