معرفی سبک های معماری (Architectural Styles)

استایل معماری نشان می دهد ما چگونه باید کدهای خودمان را سازمان دهی کنیم. یک دید کلی از بالاترین سطح انتزاع (abstraction) سیستم طراحی شده ما را نشان می دهد. علاوه بر این وقتی که استایل معماری خودمان را ساختیم، تمرکز می کنیم روی لایه ها (layers) و ماژول ها (modules) و چگونگی ارتباط این دو با یکدیگر.

استایل های معماری انواع مختلفی دارند و علاوه بر این ، ما می توانیم آنها را مخلوط کرده و استایل ترکیبی تولید کنیم که از ترکیب بین دو سبک معماری و حتی بیشتر تشکیل شده است.

 

معرفی استایل های معماری

  • معماری لایه ای (Layered architecture)
  • معماری مخزن (Repository architecture) :
  • معماری خط لوله (Pipe and filter architecture) :
  • معماری کلاینت/سرور (Client-server architecture) :
  • معماری رویداد محور (Event-driven)
  • معماری مبتنی بر مولفه (Component-based)

 

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

 

معماری لایه ای (Layered architecture) :

این استایل یکی از رایج ترین استایل های معماری می باشد. ماژول ها یا مولفه ها (components) با ویژگی های مشابه در لایه های افقی سازماندهی شده اند. بنابراین هر لایه نقش خاصی را در برنامه ایفا می کند.

 

  • برای مدل سازی اینترفیس لایه های زیرمجموعه ی سیستم استفاده می شود.
  • سیستم را به صورت مجموعه ای از لایه ها (یا ماشین های انتزاعی) سازماندهی می کند که هر یک از آنها مجموعه ای از خدمات را ارائه می دهند.
  • از توسعه تدریجی زیرسیستم ها (sub-system) در لایه های مختلف پشتیبانی می کند. هنگامی که اینترفیس لایه تغییر می کند ، فقط لایه مجاور تحت تأثیر قرار می گیرد.

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

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

مزایا و معایب این استایل

مزایای این سبک از معماری به ما اجازه می دهد تا زمانی که رابط کاربری (interface) حفظ شود ، کل لایه ها را جایگزین کنید. امکانات اضافی (به عنوان مثال ، احراز هویت) می تواند در هر لایه ارائه شود تا قابلیت اطمینان سیستم افزایش یابد.

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