یکی از استایل های معماری معروف و کاربردی معماری مخزن است.
استایل معماری مخزن (Repository architecture) :
در یک سیستم جامع زیر سیستم ها باید داده ها را تبادل کنند. می توان گفت ریپازیتوری یک استراتژی برای دسترسی به داده ها است.
- داده های مشترک در یک پایگاه داده مرکزی یا مخزن نگهداری می شوند. ممکن است همه زیر سیستم ها به آن دسترسی داشته باشند.
- هر زیر سیستم پایگاه داده خود را حفظ می کند و داده ها را به طور واضح به زیر سیستم های دیگر منتقل می کند.
- وقتی قرار است مقدار زیادی داده به اشتراک گذاشته شود ، معمولاً از مدل مخزن اشتراک گذاری (repository model of sharing) استفاده می شود ، این یک مکانیسم کارآمد به اشتراک گذاری داده است.
تمام داده های یک سیستم در یک مخزن مرکزی مدیریت می شوند که برای همه اجزای سیستم قابل دسترسی است. اجزای سیستم فقط با استفاده از مخزن (repository) با هم مرتبط اند و به صورت مستقیم با یکدیگر تعامل ندارند.
هنگامی که سیستمی دارید که حجم زیادی از اطلاعات در آن تولید می شود. و باید برای مدت طولانی ذخیره شود ، باید از این الگو استفاده کنید.
در این استایل معماری اجزا می توانند مستقل باشند – نیازی نیست که از وجود اجزای دیگر مطلع باشند. تغییر توسط یک جزء در مخزن می تواند توسط اجزای دیگر مشاهده شود. همه داده ها را می توان به طور مداوم مدیریت کرد (به عنوان مثال پشتیبان گیری همزمان انجام می شود) زیرا همه در یک مکان هستند.
یکی از دلایل استفاده از repository این است که سوئیچ کردن از یک دیتابیس به دیتابیس دیگر مشکلات کمتری خواهد داشت.
از مزایای این استایل معماری می توان به موارد زیر اشاره کرد.
- بالابردن خوانایی و نگهداری منطق تجاری با جداسازی دسترسی به دیتا
- کنترل مرکزی نسبت به دسترسی به دیتا
- امکان تعویض تکنولوژی مربوط به دسترسی به دیتا در آینده
- نوشتن تست های واحد (Unit Test) به جای تستهای یکپارچه (Integration Test)
- کاهش پیچیدگی در سطح کد و نیز کاهش کد نویسی
از معایب معماری مخزن می توان به متمرکز بودن این مخزن اشاره کرد. از آن جایی که یک مخزن مرکزی داریم و اگر مشکلی به وجود آید، کل سیستم دچار مشکل می شود. ممکن است نتوان بازده را برای تمام ارتباطات به این مخزن داده حفظ کرد.