بررسی تفاوت و تعامل سرویس گرا، شی گرا و سه لایه

بررسی تفاوت و تعامل سرویس گرا، شی گرا و سه لایه

tel

یاد گرفتن تکنولوژی کار چندان سختی نیست منابع رایگان و گران خوب زیادی هم در بین زبانهای فارسی، انگلیسی وجود دارد اما دانستن کاربرد آن بسیار پر اهمیت تر خواهد بود.

 

شی گرا برای چه؟

 اگر در گذشته  برنامه نویسی شی گرا   را در پروژه های واقعی انجام داده باشید عمیقا مفاهیمی چون وراثت ، مخفی سازی و استفاده مجدد  را به گونه ای که  هم مکانیزم طبیعی ذهن شما و هم زبانهای برنامه نویسی شی گرا مثل C# یا VB.NET درک می کنند را  لمس کرده اید.

سه لایه برای چه؟

و البته برنامه نویسی سه لایه محبوب تولید کنندگان نرم افزارهای تجاری که بر آمده از خواسته های قرمز، آبی، سبز در دنیای واقعی بوده و هر لایه متشکل از اشیا می باشند طعم بسته بندی های درشت تر و استفاده مجدد بیشتر و بیشتر را در کنار مقیاس پذیری بالاتر نرم افزارهای شما را چشیده اید.

 

و حالا این سوال مطرح می شود سرویس گرا به چکار می آید؟

بیایید از بیرون و خارج از محیط برنامه نویسی این موضوع را بررسی کنیم و بعد وارد محیط کدنویسی شویم چرا که من معتقدم همیشه باید یک موضوع را بدون کامپیوتر تصور کرد و بعد آن را به کامپیوتر فهماند.

امروز مردم نرم افزارهایی می خواهند که امنیت بیشتر داشته باشد و در هر لحظه که تصمیم گرفتن بتوانند کاری کنند که روی پلتفرم های مختلف (سخت افزارهای متفاوت، تکنولوژی ها و زبانهای متفاوت) اجرا کنند.

 

 

آیا شی گرا پاسخگوی این نیاز است؟

قاطعانه عرض می کنیم شی گرا از جهان پیرامون آمده و در فرآیندهای درون سیستم عامل ها زندانی شده اند و حتی به نرم افزارهای درون فرآیندهای مجاور خودشان هم نمی تونند دسترسی داشته باشند یا دسترسی بدهند.

پس شی گرا این کار را نمی تواند انجام دهد.

 

فرض کنید از متد GetAge درون کلاس Personel که در یک نرم افزار تحت ویندوزبه نام Windows Application  است به خواهیم در جای دیگر استفاده کنیم .


untitledclass 

 

 

 

 











پاسخ این است که کلاس پرسنل در نرم افزار Windows Application زندانی شده و هیچ کس نه صدای او نه زبانش و نه راه دسترسی به او را نمی داند.

images-4

آیا لایه ها یا کامپوننت ها اینکار را می توانند انجام دهند؟

مولفه های یا همان لایه ها که در معماری سه لایه به کار می روند نیز نمی توانند خدماتی را به خارج از نرم افزار شما ارائه دهند و بیشتر کارشان بسته بندی خدمات قرمز ، آبی ، سبز می باشد. و سعی بر تقسیم بندی خدمات CRUD  در لایه DATA Access (خدمات سبز) و قوانین کسب و کار در لایه BL (خدمات قرمز) و کدهای ارتباط کاربری در لایه PL (خدمات آبی ) می باشد و لطفا دیگر خودتان را با مفاهیم و تکنولوژی ها ی ناموق معرفی شده دیگر سردرگم نکنید.

پس لایه ها نیز این کار را نمی توانند انجام دهند.

 

 

زیرا مولفه ها که خود زندان بان اشیا هستند خود زندانی یه نرم افزار هستند که اجازه ارائه خدمات به بیرون را ندارند.

images-3

اینجاست که دیدگاه جدیدی به نام سرویس گرا  پا به ظهور می گذارد تا فارغ از هر زبان برنامه نویسی و هر پلتفرم با هر نوع سخت افزار و سیستم عامل به توان خدمات ارائه داد و می توان این طور گفت که

سرویس بخشی از یک کامپیوتر است که دیتا یا خدمات به سایرین ارائه می دهد.

بله این روش می تواند خواسته مشتریان امروز و خواسته های فردای آنها را تامین نماید.

با استفاده از این روش شما به سرعت می توانید از اطلاعات درون بانک اطلاعاتی و کدها و قانونین کسب وکار قبلی در یک  دستگاه جدید مثل موبایل یا هر چیز دیگر نرم افزار ایجاد کنید و کاربران شما از هر جایی به پروفایل و خدمات خودشان دسترسی داشته باشند.

ابزارهایی که می توان در این قسمت استفاده نمود WCF ، Web Service ، Rest و تکنولوژی های قدیمی تر هستند.

و اینجاست که نه تنها دو شی هم نوع در پلتفرم و زبان بلکه اشیا نا همنوع نیز می توانند با یکدیگر کفتکو کنند.

soa

 

سوال آخر آیا از ابتدا باید به فکر سرویس گرا باشیم ؟

اگر از ابتدا خوب دانه بندی پروژه را انجام داده باشید یعنی شی گرا و پس از آن لایه بندی را به درستی انجام داده باشید هرگاه که اراده کنید می توانید سرویس گرایی را به پروژه خود اضافه کنید و نیازی نیست از ابتدا تا قبل از آنکه برنامه شما به اندازه کافی رشد نکرده است به این موضوع فکر کنید.

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دانلود رایگان
فایل ویدئویی خاطرات نرم افزارهای 14 سال قبل استاد مدحج + پروژه عظیم کدهای سایت کد تجاری
دانلود رایگان
فایل صوتی راز کیفیت محصولات اپل با شی گرا
دانلود رایگان
مالکیت فکری نرم افزار در داخل تیم تولید و خارج از آن
دانلود رایگان
نگاه شی گرا با استفاده از مکانیزم طبیعی ذهن در تولید نرم افزار
دانلود رایگان
گزارش سازی با linqtosql و stimulsoft