نرمافزارهاي ماژولار براي جلوگيري از ايجاد خطا و مشکل در سيستمهاي بزرگ مورد نياز هستند. به ويژه در جاهايي که نيازهاي کاربر پيچيده است. حتي در يک سيستم ماژولار وابستگي داخلي زير مولفهها ممکن است تغيير نيازها را مشکل سازد و مجبور به مهندسي مجدد بيشتر کد شويم. نرم افزارهاي يکپارچه [1] با مولفههايي با اتصالات محکم اغلب براي يک کار خاص ميباشند و پورتالهاي نسل اول از اين نوع بودند و نياز به تغيير و طراحي دوباره براي پوشش نيازهاي جديد با وجود هزينه و پيچيدگي زياد منجربه ايجاد مفهومي به نام معماري سرويسگرا شد. معماري سرويسگرا مجموعهاي از سرويسها با اتصالات آزادانه و قابل اتصال ميباشد ويک سرويس يک تابع جامع ميباشد و در مقابل حالت و وضعيت ديگر سرويسها ايمن است. اين سرويسها ميتوانند با يکديگر ارتباط بر قرار کنند چه از طريق ارسال پيام و يا از طريق يک سرويس رهبر که آنها را هماهنگ کند ويا فعاليتهارا يکپارچه کند. معماري سرويسگرا يک مدل معماري است که هدفش ايجاد اتصالات آزادانه در بين عاملهاي نرمافزاري است که با هم در تعامل هستند. معماري سرويسگرا اتصالات آزادانه را بين عاملهاي نرمافزاري متعامل با بهکارگيري دو محدوديت زير ايجاد مي کند: 1) يک مجموعه کوچک از واسطهاي ساده و هميشه موجود [2] براي همه عاملهاي نرمافزاري شرکت کننده آن رابط بايد براي همه تهيهکنندگان و مشتريها به صورت جهاني [3] در دسترس باشد
[1] Monolithic [2] Ubiquitous [3] Universally |