به نام خدا
معماري SOA در برابر ERP
مقدمه
در دنياي پر رقابت امروز ارائه خدمات و تسهيلات مناسب به مشتريان مختلف، با سليقه هاي گوناکون و نياز هايي متفاوت در سازمان ها و بخش هاي خدماتي يکي از مهمترين راه هاي کسب مزاياي رقابتي است. بهبود کيفيت در حوزه ارائه خدمات به مشتريان بعنوان يک عامل اساسي در اين حيطه مي باشد. بعلاوه سرعت و هزينه ارائه خدمات نقش مهمي را در اين راستا ايفا مي کند. با توجه به مطالب فوق، فقدان سيستمي کارآمد که بتواند فرايند هاي سازمان و نيز تغييرات متعدد رفتاري آن را بصورت يکپارچه پوشش دهد، برنامه ريزي را ممکن سازد و کنترل را در سازمان فراگير کند و با ساده سازي فرايند ها ، سازمان هاي لخت و کند را به سازمان هاي چابک و سريع تبديل سازد احساس مي شود.موضوعي که مديران در کشور ما به درستي آن واقفند و براي دستيابي به ان تلاش مي کنند، پس چرا به سيستم هاي مورد انتظار دست نيافته اند؟
به نظر مي رسد ريشه اين ناکامي در يک معادله ساده انگارانه است :
سيستم کارآمد=نرم افزار کارآمد!
يعني براي حل بحران، کافي است سيستم های موجود را از طريق خريد بسته هاي نرم افزاري مکانيزه نمود تا بحران مرتفع شود. گرچه مکانيزه نمودن سيستم هاي موجود مي تواند اندکي بهبود محسوب گردد، ولي راهکاري براي حل بحران نيست، زيرا تجربه نشان داده است مکانيزه نمودن وضعيت موجود ، نه تنها منجر به رفع بحران نمي شود بلکه اغلب اوقات وضع را بدتر مي کند.
با همين استدلال ، طي سالهاي اخير ، سيستم هاي برنامه ريزي منابع انساني (ERP) بعنوان يک سيستم اطلاعاتي کارآمد در جهت بهبود سيستم هاي MIS مورد توجه قرار گرفته است. اصولا ERP مي خواهد نگاه وظيفه گرا را به نگاه فرايند گرا تغيير دهد و بسته هاي نرم افزاري و سيستم هاي جزيره اي را که دستاورد نگاه سنتي و وظيفه گرا به سازمان است را جمع آوري و خود جايگزين آنها شود.
تعريف ERP :
براي ERP تعاريف زيادي ارائه شده است ولي شايد تعريفي که پروفوسور کمار در سال 2000 ارائه نموده است بيش از سايرين کاربردي باشد: " سيستم هاي ERP سيستم هاي اطلاعاتي قابل تغيير و تنظيمي هستند که اطلاعات و فرايند هاي مبتني بر اطلاعات در سازمان ها
را يکپارچه مي کنند."
اهداف ERP
معمولا هر بخش از سازمان داراي نرم افزار ها و برنامه هاي جداگانه اي است که متناسب با نياز هاي آن بخش تهيه شده است، ولي ERP سعي در ترکيب اين نرم افزار ها و برنامه ها و ايجاد يک نرم افزار يکپارچه ، که از يک بانک نرم افزاري واحدي استفاده مي نمايند، را دارد. در اين حالت تمامي بخش ها،و واحد هاي سازمان به سهولت قادر به استفاده مشترک از اطلاعات بوده و ارتباط هر واحد با ديگري به سهولت بر قرار خواهد شد. اصولا اين نرم افزار واحد بايد داراي ويژگي هاي ذيل باشد :
-
انعطاف پذيري : سيستم هاي ERP بايد قادر به پاسخگوئي به نياز هاي سازمان ها ي استفاده کننده باشند
-
Modular و Open بودن : اين سيستم ها بايد بگونه اي باشند که هر جزئي از بسته نرم افزاري را بتوان بدون تاثير در رويه هاي ديگر، در هر زمان تغيير داد و يا اضافه و حذف کرد و اين عمل نبايد تاثيري در ساير زير سيستم ها ايجاد نمايد.
-
فراگير بودن : اين سيستم ها بايد وظايف سازماني مختلف را مورد پشتيباني قرار دهد.
-
فراسازماني : اين سيستم ها بايد بصورت آنلاين به سازمان هاي ديگر و يا هر جاي ديگر که مصلحت باشد بسادگي متصل شوند.
بنابراين هدف از ايجادERP يکپارچه سازي فعاليت هاي سازمان و جلوگيري از اتلاف منابع بوسيله انجام کارها به بهترين روش و عدم ايجاد افزونگي داده ها در سازمان.
چرا ERP پر ريسک و پر هزينه است ؟
استقرار ERP کاري پر ريسک و گران است زيرا اجراي آن معمولا با اتفاقات زير همراه است :
-
تغيير فرهنگ سازماني :
استقرار ERP بسيار فراتر از نصب و آموزش يک نرم افزار است ، بلکه تغيير فرهنگ سازمان و جايگزين کردن نگاه وظيفه گرا با نگاه فرايند گراست. تغييرات فرهنگي معمولا بسيار بکندي و پر هزينه صورت مي گيرند و علي الخصوص که اعتماد کافي در سازمان ايجاد نشده باشد.
-
کار کارشناسي زياد :
پروژه ERP پروژه پر کاري است، زيرا اطلاعات زيادي از وضعيت جاري بايد جمع آوري گردد، فرايند هاي بهينه شناسائي شود، مستندات تهيه گردد، نرم افزارها متناسبا تظيم و آماده گردند، کاربران در تمام سطوح توجيه شوند و مشکلات اجرائي مرتبا بررسي و رفع گردد. خصوصا قسمت عمده اين فعاليت ها توسط کارشناسان توانا و مجرب انجام مي گيرد که ارزان نيستند.
-
نرم افزار گران :
تهيه نرم افزاري که فرايند هاي سازمان را بطور کامل پوشش دهد ، عموما ارزان نيست. تهيه چنين نرم افزار براي شرکت مجري از دو جهت گران تمام مي شود :
-
تحليل طراحي و پياده سازي سيستم
-
آماده سازي آن متناسب با فرايند هاي يک سازمان
عموما تهيه چنين نرم افزاري براي يک شرکت خصوصي نزديک به 240 نفر ماه است که حدودا با 10 نفر نزديک به 2 سال بطول مي انجامد که قيمت تمام شده آن نزديک به 2400000000 ريال مي باشد. که در اين رقم شرکت سودي نکرده و در فروش نسخه ها سود خواهد نمود. که بالطبع در نسخه ها بايد سيستم را براي آن سازمانCustomize نمايد.
پروژه ERPوقتي مي خواهد در يک سازمان عملياتي شود، عموما در آن سازمان سيستم هائي در حال کار هستند و اين سيستم ها به هر شکل وضعيت موجود سازمان را پوشش مي دهند و توقف آنها بدون جايگزين مناسب، سازمان را در وضعيت نامطلوبي قرار مي دهد و از سوي ديگر نمي توان انتظار داشت که يک شبه سيستم جديد جايگزين سيستم قديمي گردد، خصوصا آنکه سيستم قديم، از مجموعه سيستم هاي منفصل و تک کاربره تشکيل شده باشد و سيستم جديد يکپارچه و فراگير باشد.
-
بهم خوردن توازن قوا :
از آنجائيکه استقرا يک سيستم ، به جابجائي قدرت و بهم خوردن توازن قوا در يک سازمان منجر مي شود، با منافع مديران مياني برخورد پيدا مي کند و پروژه در دالان اختلاف نظر مديران مياني متوقف مي ماند. بخشنامه هاي اداري که توسط مديران عالي براي بکارگيري ERP صادر مي گردد نه تنها منجر به اجراي سيستم نخواهد شد بلکه عموما نوعي نگرش منفي و مقاومت نامطلوب ناشي از تحميل سيستم جديد در کاربران و مديران مياني ايجاد مي کند، زيرا مديران مياني و کاربران مايل نيستند سيستمي که در طراحي آن نقشي نداشتند و به آنان تحميل شده است را بپذيرند و عادات جاري خود را با عادات جديد عوض کنند مگر آنکه ارجحيت عادات جديد را درک کنند. همچنين به سادگي، وضعيت امن موجود را با وضعيت نا امني که ممکن است با استقرار سيستم جديد به وجود آيد عوض نمي کنند.تغييرات در سيستم که احتمالا منجر به جابجائي توازن قوا در سازمان مي گردد را به سهولت نمي پذيرند و از اينکه سيستم هاي تک کاربره را که در محدوده مديريت ايشان قرا دارد با سيستم هاي يکپارچه اي که ممکن است استقلال اداري ايشان را خدشه دار کند، تعويض نمايند هراس دارند.
-
سازمان دهي و امکانات :
براي اجراي پروژه های ERP سازماندهي و امکانات زيادي مورد نياز است که تهيه سخت افزار و زير ساخت مخابراتي از آن جمله مي باشد. همچنين در دوره اجراي پروژه که همزمان با بهره برداري از سيستم هاي جاري است، عملا کار کاربران چند برابر مي شود زيرا کاري که سابقا و بر اساس عادت تثبيت شده بود و براحتي انجام مي دادند، بايد مجددا در ساختاري متفاوت انجام دهند و با کار انجام شده مقايسه نموده و مغايرت ها را تحليل کنند. بديهي است، اين عمليات خسته کننده نمي تواند در دوره طولاني تداوم يابد خصوصا اگر سيستم جديد کارائي لازم را نداشته باشد..
-
نقص طراحي :
يکي از خطا هاي رايج در پروژه های ERP عدم درک مقابل بين کاربران و تحليلگران است به اين مفهوم که کاربر نيازی دارد که با دوچرخه رفع مي شود ولي چرخ دستي اصرار مي کند و تحليل گر آسانسور تجويز مي کند و طراح پله برقي طراحي مي کند ولي در نهايت نردبان تحويل کاربر مي شود! اين خطا وقتي بيشتر مي شود که تحليلگران به دلايل مختلف به درخواست هاي کاربران، با پيش داوري برخورد کنند.
از طرفي اغلب شرکت های نرم افزاري در چرخه فعاليت شان در يکي از زير سيستم هاي ERP بعنوان مثال دبيرخانه خبره شده اند، سيستم بارها تست شده و باگهاي نرم افزاري و منطقي آن رفع شده است، الآن بعنوان مثال براي زير سيستم کارگزيني، نيازمند سالها تجربه و کارشناسی در اين زمينه هستند که زير سيستم کارگزيني آنها نيز يک زير سيستم خوب از آب درآيد.
-
تغيير شرايط و نياز ها :
يکي از عوامل مهم افزايش سرسام آور هزينه و ريسک پروژه هاي ERP ، طولاني شدن پروژه است، زيرا به مرور و قبل از استقرار سيستم ، شرايط و نياز ها تغيير مي يابند و سيستم کارائي خود را از دست مي دهد، خصوصا اگر اين اتفاقات با تغييرات مديريتي در سازمان نيز همراه باشد.
با توجه به موارد فوق در جهت رفع آنها چندين مدل پيشنهاد شده است که در ذيل به آنها اشاره خواهد شد :
-
مدل حلزوني : عبارت است از توسعه تدريجي (از هسته به پوسته) فرايند ها در چند فاز تا رسيدن به هدف مطلوب
ايراد : زمانبر و طاقت فرسا مي باشد. براي شرکت ها و کارخانجات توليدي مناسب است.
-
BPR (Business process reengineering) به عنوان يک مفهوم جديد به صورت هاي مختلفي مطرح شده است از جمله مي توان به عناويني مانند باز مهندسي فرايند هاي اساسي، نوع آوري فرايند ها، طراحي مجدد فرايند ها، باز مهندسي سازماني اشاره نمود.
اهداف BPR
1- باز مهندسي فرايند ها :تغييراتي با هدف کاهش فاصله بين وضع موجود و وضع مطلوب بوسيله بهبود فرايند ها و ساختار ها در جهت افزايش سرعت ، کيفيت و کارائي
2- انعطاف پذير نمودن سيستم در تغيير فرايند هاي سازماني
نتيجه اينکه براي اجراي پروژه ERP بايد آن را با BPR آميخت ، اين امر منجر به کاهش ريسک شکست پروژه هاي ERP خواهد شد.
ايراد : بسيار پر هزينه مي باشد، بطوريکه سازمان ها علاقه اي به پياده سازي همزمان اين دو مقوله نيستند. و نتيجه پياده سازي شده عملي و واقعي ايين دو با هم در ايران وجود ندارد.
-
مدل MADM : اين مدل، يک مدل رياضي است که با استفاده از الگوريتم هاي AHP و TOPSIS و Entropy و AET جهت ارزشيابي سيستم هاي ERP مورد استفاده قرار مي گيرد. جهت آشنائي با اين الگوريتم ها به مرجع مراجعه شود.
ايراد : براي شرکت هاي تجاري کوچک مناسب است.
معماري سرويس گرا (SOA)
سرويس گرائي يک رويکرد جديد در معماري سازماني است مفهوم سرويس بعنوان يک جعبه سياه که از داخل آن بي خبر هستيم و فقط وطيفه اي که براي ما انجام مي دهد اطلاع داريم، پايه بسياري از اصول را در اين معماري تشکيل مي دهد. در مباحث نوين مهندسي نرم افزار ، معماري سازماني و به تبع آن معماري سيستم هاي اطلاعاتي در سازمان ، اين مفهوم وارد شده است و دليل کاربرد خاصي که سرويس ها دارند و ويژگي هاي منحصر به فردشان ، روز بروز در حال گسترش است.
سرويس چيست ؟
يک واحد از کار انجام شده توسط عرضه کننده خدمت براي دستيابي به نتيجه مورد نظر مشتري. نقش عرضه کننده و دريافت کننده سرويس با مولفه هاي نرم افزاري انجام مي شود.
يک سرويس در SOA بعنوان قطعه اي از عملکردي است که داراي 3 خصوصيت اصلي زير باشد :
-
واسط سرويس مستقل از پيکربندي است.
-
سرويس بطور پويا در جايي قرار مي گيرد و بازخواني مي شود.
-
سرويس خود شمول است يعني سرويس وضعيت خود را نگه مي دارد.
وب سرويس چيست ؟
کساني که با صنعت IT آشنايي دارند حتما ً نام وب سرويس را شنيده اند . براي مثال ، بيش از 66 درصد کساني که در نظر سنجي مجله InfoWorld شرکت کرده بودند بر اين توافق داشتند که وب سرويس ها مدل تجاري بعدي اينترنت خواهند بود . به علاوه گروه گارتنر پيش بيني کرده است که وب سرويس ها کارآيي پروژه هاي IT را تا 30 در صد بالا مي برد . اما وب سرويس چيست و چگونه شکل تجارت را در اينترنت تغيير خواهد داد ؟
براي ساده کردن پردازش هاي تجاري ، برنامه هاي غير متمرکز (Enterprise) بايد با يکديگر ارتباط داشته باشند و از داده هاي اشتراکي يکديگر استفاده کنند . قبلا ً اين کار بوسيله ابداع استاندارد هاي خصوصي و فرمت داده ها به شکل مورد نياز هر برنامه انجام مي شد . اما دنياي وب و XML – تکنولوژي آزاد براي انتقال ديتا – انتقال اطلاعات بين سيستم ها را افزايش داد . وب سرويس ها نرم افزارهايي هستند که از XML براي انتقال اطلاعات بين نرم افزارهاي ديگر از طريق پروتوکول هاي معمول اينترنتي استفاده مي کنند . به شکل ساده يک وب سرويس از طريق وب اعمالي را انجام مي دهد (توابع يا سابروتين ها ) و نتايج را به برنامه ديگري مي فرستد . اين بدان معناست که برنامه اي در يک کامپيوتر در حال اجراست ، اطلاعاتي را به کامپيوتري مي فرستد و از آن درخواست جواب مي کند ، برنامه اي که در آن کامپيوتر دوم است کارهاي خواسته شده را انجام مي دهد و نتيجه را بر روي ساختارهاي اينترنتي به برنامه اول بر مي گرداند . وب سرويس ها مي توانند از پروتکول هاي زيادي در اينترنت استفاده کنند اما بيشتر از HTTP که مهم ترين آنهاست استفاده کنند .
وب سرويس هر توع کاري مي تواند انجام دهد . براي مثال در يک برنامه مي تواند آخرين عنوان هاي اخبار را از وب سرويس Associated Press بگيرد يا يک برنامه مالي مي تواند آخرين اخبار و اطلاعات بورس را از وب سرويس بگيرد . کاري که وب سرويس انجام مي دهد مي تواند به سادگي ضرب 2 عدد يا به پيچيدگي انجام کليه امور مشترکين يک شرکت باشد .
وب سرويس داراي خواصي است که آن را از ديگر تکنولوژي و مدل هاي کامپيوتري جدا مي کند ، Paul Flessner ، نايب رييس مايکروسافت در Dot NET Enterprise Server چندين مشخصه براي وب سرويس در يکي از نوشته هايش ذکر کرده است :
-
وب سرويس ها قابل برنامه ريزي هستند : يک وب سرويس کاري که مي کند را در خود مخفي نگه مي دارد وقتي برنامه اي به آن اطلاعات داد وب سرويس آن را پردازش مي کند و در جواب آن اطلاعاتي را به برنامه اصلي بر مي گرداند .
-
وب سرويس ها بر پايه XML بنا نهاده شده اند : XML و XML هاي مبتني بر SOAP يا Simple Object Access Protocol تکنولوژي هايي هستند که به وب سرويس اين امکان را مي دهند که با ديگر برنامه ها ارتباط داشته باشد حتي اگر آن برنامه ها در زبانهاي مختلف نوشته شده و بر روي سيستم عامل هاي مختلفي در حال اجرا باشند . همچين وب سرويس ها خود ، خود را توصيف مي کنند . به اين معني که کاري را که انجام مي دهند و نحوه استفاده از خودشان را توضيح مي دهند . اين توضيحات به طور کلي در WSDL يا Web Services Description Language نوشته مي شود . WSDL يک استاندارد بر مبناي XML است . به علاوه وب سرويس ها قابل شناسايي هستند به اين معني که يرنامه نويس مي تواند به دنبال وب سرويس مورد علاقه در دايرکتوري هايي مثل UDDI يا Universal Description , Discovery and Integration جستجو کند . UDDI يکي ديگر از استاندارد هاي وب سرويس است .
نکاتی در خصوص تکنولوژي وب سرويس :
همانطور که در ابتدا توضيح داده شد يکي از دلايل اينکه وب سرويس از ديگر تکنولوژي هاي موجود مجزا شده است استفاده از XML و بعضي استاندارد هاي تکنيکي ديگر مانند SOAP ، WSDL و UDDI است . اين تکنولوژي هاي زمينه ارتباط بين برنامه ها را ايجاد مي کند به شکلي که مستقل از زبان برنامه نويسي ، سيستم عامل و سخت افزار است . SOAP يک مکانيزم ارتباطي را بين نرم افزار و وب سرويس ايجاد مي کند . WSDL يک روش يکتا براي توصيف وب سرويس ايجاد مي کند و UDDI يک دايرکتوري قابل جستجو براي وب سرويس مي سازد . وقتي اينها با هم در يک جا جمع مي شود اين تکنولوژي ها به برنامه نويس ها اجازه مي دهد که برنامه هاي خود را بعنوان سرويس آماده کنند و بر روي اينترنت قرار دهند .
شکل زير نقش هر کدام از استاندارد ها را در ساختار وب سرويس نمايش مي دهد . در قسمت هاي بعدي هر کدام از اين تکنولوژي ها را بررسي مي کنيم .
XML يا eXtensible Markup Language :
XML يک تکنولوژي است که به شکل گسترده از آن پشتيباني مي شود ، همچنين اين تکنولوژي Open است به اين معني که تعلق به شرکت خاصي ندارد . اولين بار در کنسرسيوم WWW يا W3C در سال 1996 براي ساده کردن انتقال ديتا ايجاد شده است . با گسترده شدن استفاده از وب در دهه 90 کم کم محدوديت هاي HTML مشخص شد . ضعف HTML در توسعه پذيري ( قابليت اضافه و کم کردن خواص ) و ضعف آن در توصيف ديتاهايي که درون خود نگهداري مي کند برنامه نويسان را از آن نا اميد کرد . همچنين مبهم بودن تعاريف آن باعث شد از توسعه يافتن باز بماند . در پاسخ به اين اشکالات W3C يک سري امکانات را در جهت توسعه HTML به آن افزود که امکان تغيير ساختار متنهاي HTML مهم ترين آن است . اين امکان را CSS يا Cascade Style Sheet مي نامند .
اين توسعه تنها يک راه موقتي بود . بايد يک روش استاندارد شده ، توسعه پذير و داري ساختار قوي ايجاد مي شد . در نتيجه W3C XML را ساخت . XML داراي قدرت و توسعه پذيري SGML يا Standard Generalized Markup Language و سادگي که در ارتباط در وب به آن نياز دارد است .
استقلال اطلاعات يا جدا بودن محتوا از ظاهر يک مشخصه براي XML به حساب مي آيد . متنهاي XML فقط يک ديتا را توصيف مي کنند و برنامه اي که XML براي آن قابل درک است – بدون توجه به زبان و سيستم عامل – قادر است به اطلاعات درون فايل XML هر گونه شکلي که مايل است بدهد . متنهاي XML حاوي ديتا هستند بدون شکل خاص بنابراين برنامه اي که از آن مي خواهد استفاده کند بايد بداند که چگونه مي خواهد آن اطلاعات را نمايش دهد . بنابراين نحوه نمايش يک فايل XML در يک PC با PDA و تلفن همراه مي تواند متفاوت باشد .
وقتي يک برنامه با متن XML مواجه مي شود بايد مطمئن باشد که آن متن حاوي ديتاي مورد نظر خود است . اين اطمينان توسط برنامه هايي با نام XML Parser حاصل مي شود . تجزيه کننده ها دستورات متن XML را بررسي مي کنند . همچنين آنها به برنامه کمک مي کنند تا متن هاي XML را تفسير کند . به صورت اختياري هر متن XML مي تواند به متن ديگري اشاره کند که حاوي ساختار فايل XML اصلي باشد . به آن متن XML دوم DTD يا Document Type Definition گفته مي شود .
وقتي فايل XML به DTD اشاره مي کند برنامه تجزيه کننده فايل اصلي را با DTD بررسي مي کند که آيا به همان ساختاري که در DTD توصيف شده شکل گرفته است يا خير . اگر يک تجزيه کننده XML بتواند يک متن را به درستي پردازش کند متن XML نيز به شکل صحيحي فرمت شده است .
وقتي که اکثر نرم افزار ها امکانات وبي خود را افزايش دادند اين طور به نظر مي آيد که XML به عنوان يکتکنولوژي جهاني براي فرستادن اطلاعات بين برنامه هاي انتخاب شود . تمامي برنامه هايي که از XML استفاده مي کنند قادر خواهند بود که XML ِ همديگر را بفهمند . اين سطح بالاي تطابق بين برنامه ها باعث مي شود که XML يک تکنولوژي مناسب براي وب سرويس باشد ، چون بدون اينکه احتياج به سيستم عامل و سخت افزار يکسان باشد مي تواند اطلاعات را جابجا کند .
SOAP يا Simple Object Access Protocol :
SOAP يکي از عمومي ترين استاندارد هايي است که در وب سرويس ها استفاده مي شود . طبق شواهد اولين بار توسط DeveloperMentor ، شرکت UserLand و مايکروسافت در سال 1998 ساخته شده و نسخه اول آن در سال 1999 ارايه شده است . آخرين نسخه SOAP ، نسخه 1.2 بود که در دسامبر سال 2001 در W3C ارايه شد . نسخه 1.2 نشان دهنده کار زياد بر روي آن و نمايانگر اشتياق زياد صنعت IT براي استفاده از SOAP و وب سرويس است .
هدف اصلي SOAP ايجاد روش براي فرستادن ديتا بين سيستم هايي است که بر روي شبکه پخش شده اند . وقتي يک برنامه شروع به ارتباط با وب سرويس مي کند ، پيغام هاي SOAP وسيله اي براي ارتباط و انتقال ديتا بين آن دو هستند . يک پيغام SOAP به وب سرويس فرستاده مي شود و يک تابع يا ساب روتين را در آن به اجرا در مي آورد به اين معني که اين پيغام از وب سرويس تقاضاي انجام کاري مي کند . وب سرويس نيز از محتواي پيغام SOAP استفاده کرده و عمليات خود را آغاز مي کند . در انتها نيز نتايج را با يک پيغام SOAP ديگر به برنامه اصلي مي فرستد .
به عنوان يک پروتکول مبتني بر XML ، SOAP تشکيل شده از يک سري الگو هاي XMLي است . اين الگو ها شکل پيغام هاي XML را که بر روي شبکه منتقل مي شود را مشخص مي کند ، مانند نوع ديتا ها و اطلاعاتي که براي طرف مقابل تفسير کردن متن را آسان کند . در اصل SOAP براي انتقال ديتا بر روي اينترنت و از طريق پروتکول HTTP طراحي شده است ولي از آن در ديگر مدلها مانند LAN نيز مي توان استفاده کرد . وقتي که وب سرويس ها از HTTP استفاده مي کنند به راحتي مي توانند از Firewall عبور کنند .
يک پيغام SOAP از سه بخش مهم تشکيل شده است : پوشش يا Envelope ، Header ، بدنه يا Body . قسمت پوشش براي بسته بندي کردن کل پيغام به کار مي رود . اين بخش محتواي پيغام را توصيف و گيرنده آن را مشخص مي کند . بخش بعدي پيغام هاي SOAP ، Header آن است که يک بخش اختياري مي باشد و مطالبي مانند امنيت و مسيريابي را توضيح مي دهد . بدنه پيغام SOAP بخشي است که ديتاهاي مورد نظر در آن جاي مي گيرند . ديتاها بر مبناي XML هستند و از يک مدل خاص که الگوها (Schemas) آن را توضيح مي دهند تبعيت مي کنند . اين الگو ها به گيرنده کمک مي کنند تا متن را به درستي تفسير کند .پيغام هاي SOAP نوسط سرور هاي SOAP گرفته و تفسير مي شود تا در نتيجه آن ، وب سرويس ها فعال شوند و کار خود را انجام دهند .
براي اينکه از SOAP در وب سرويس استفاده نکنيم از تعداد زيادي پروتکول بايد استفاده شود . براي مثال XML-RPC تکنولوژي قديمي تري بود که همين امکانات را ايجاد مي کرد . به هر حال ، خيلي از سازندگان بزرگ نرم افزار SOAP را بر تکنولوژي هاي ديگر ترجيح دادند . دلايل زيادي براي انتخاب SOAP وجود دارد که خيلي از آنها درباره پروتکول آن است که فراتر از اين متن مي باشد . 3 برتري مهم SOAP نسبت به تکنولوژي هاي ديگر : Simplicity , Extensibility و Interoperability است .
پيغام هاي SOAP معمولا ً کدهاي زيادي ندارند و براي فرستادن و گرفتن آن به نرم افزار هاي پيچيده نياز نيست . SOAP اين امکان را به برنامه نويس مي دهد تا بنا به نياز خود آن را تغيير دهد . در آخر بدليل اينکه SOAP از XML استفاده مي کند مي تواند بوسيله HTTP اطلاعات را انتقال بدهد بدون اينکه زبان برنامه نويسي ، سيستم عامل و سخت افزار براي آن مهم باشد .
WSDL يا Web Services Description Language :
استاندارد ديگري که نقش اساسي در وب سرويس بازي مي کند WSDL است . همانطور که قبلا ً اشاره کرديم يکي از خواص وب سرويس ها توصيف خود آنهاست به اين معني که وب سرويس داراي اطلاعاتي است که نحوه استفاده از آن را توضيح مي دهد . اين توضيحات در WSDL نوشته مي شود ، متني به XML که به برنامه ها مي گويد اين وب سرويس چه اطلاعاتي لازم دارد و چه اطلاعاتي را بر مي گرداند .
وقتي که سازندگان نرم افزار براي اولين بار SOAP و ديگر تکنولوژي هاي وب سرويس را ساختند دريافتند که برنامه ها قبل از اينکه شروع به استفاده از يک وب سرويس بکنند بايد اطلاعاتي درباره آن را داشته باشند . اما هر کدام از آن سازندگان براي خودشان روشي براي ايجاد اين توضيحات ابداع کردند و باعث شد که وب سرويس ها با هم هماهنگ نباشد . وقتي IBM و مايکروسافت تصميم گرفتند تا استاندارد هاي خود را يکسان کنند WSDL بوجود آمد . در ماه مارس سال 2001 مايکروسافت ، IBM و Ariba نسخه 1.1 را به W3C ارائه کردند . گروهي از W3C بر روي اين استاندارد کار کردند و آن را پذيرفتند . هم اکنون اين تکنولوژي در دست ساخت است و هنوز کامل نشده . ولي هم اکنون اکثر سازندگان وب سرويس از آن استفاده مي کنند .
هر وب سرويسي که بر روي اينترنت قرار مي گيرد داراي يک فايل WSDL است که مشخصات ، مکان و نحوه استفاده از وب سرويس را توضيح مي دهد . يک فايل WSDL نوع پيغام هايي که وب سرويس مي فرستد و مي گيرد را توضيح مي دهد مانند پارامترهايي که برنامه صدا زننده براي کار با وب سرويس بايد به آن بفرستد . در تئوري يک برنامه در وب براي يافتن وب سرويس مورد نظر خود از روي توضيحات WSDL ها جستجو مي کند . در WSDL اطلاعات مربوط به چگونگي ارتباط با وب سرويس بر روي HTTP يا هر پروتکول ديگر نيز وجود دارد .
اين مهم است که بدانيم WSDL براي برنامه ها طراحي شده است نه براي خواندن آن توسط انسان . شکل فايلهاي WSDL پيچيده به نظر مي آيد ولي کامپيوترها مي توانند آن را بخوانند و نجزيه و تحليل بکند . خيلي از نرم افزارهايي که وب سرويس مي سازند فايل WSDL مورد نياز وب سرويس را نيز توليد مي کنند بنابراين وقتي برنامه نويس وب سرويس خود را ساخت به شکل خودکار WSDL مورد نياز با آن نيز ساخته مي شود و احتياجي به آموزش دستورات WSDL براي ساختن و استفاده از وب سرويس نيست .
UDDI يا Universal Description , Discovery and Integration :
سومين استاندارد اصلي وب سرويس ها ، UDDI ، به شرکتها و برنامه نويسان اجازه مي دهد تا وب سرويس هاي خود را بر روي اينترنت معرفي کنند . اين استاندارد در اصل بوسيله مايکروسافت ، IBM و Ariba و 50 شرکت بزرگ ديگر ساخته شده است . با استفاده از UDDI شرکتها مي توانند اطلاعات خود را در اختيار شرکت هاي ديگر قرار بدهند و مدل B2B ايجاد کنند . همان طور که از نام آن مشخص است شرکت ها مي توانند وب سرويس خود را معرفي کنند ، با وب سرويس ديگران آشنا شوند و از آن در سيستم هاي خود استفاده کنند . اين استاندارد جديدي است و در سال 2000 ساخته شده ، کنسرسيومي از شرکتهاي صنعتي در حال کار بر روي آن هستند ؛ نسخه دوم UDDI در ماه ژوئن سال 2001 ارائه شد و نسخه سوم آن در دست ساخت است .
UDDI يک متن مبتني بر XML را تعريف مي کند که در آن شرکت ها توضيحاتي درباره چگونگي کار وب سرويس شرکتشان و امکانات خود مي دهند . براي تعريف اين اطلاعات از شکل خاصي که در UDDI توضيح داده شده استفاده مي شود . شرکت ها مي توانند اين اطلاعات را در UDDI شرکت خود نگهداري کنند و تنها به شرکت هاي مورد نظرشان اجازه دستيابي به آنها را بدهند يا آنها را در مکان عمومي و د اينترنت قرار دهند . بزرگترين و مهمترين پايگاه UDDI ، UDDI Business Registry يا UBR نام دارد و توسط کميته UDDI طراحي و اجرا شده است . اطلاعات اين پايگاه در چهار نقطه نگهداري مي شود ، مايکروسافت ، IBM ، SAP و HP . اطلاعاتي که در يکي از چهار پايگاه تغيير کند در سه تاي ديگر نيز اعمال مي شود .
اطلاعات درون اين پايگاه ها شبيه دفترچه تلفن است . White Pages که در آنها اطلاعات تماس شرکت ها و توضيحات متني آنهاست ، Yellow Pages حاوي اطلاعات طبقه بندي شده شرکتها و اطلاعات درباره توانايي هاي الکترونيکي آنها مي باشد ، Green Pages ، حاوي اطلاعات تکنيکي درباره سرويس هاي آنها و نحوه پردازش اطلاعات شرکت آنها مي باشد .
اطلاعات تجاري و سرويس هاي شرکت ها کاملا ً طبقه بندي شده است و اجازه مي دهد که به راحتي در آنها جستجو کرد . سپس متخصصان IT مي توانند از اين اطلاعات استفاده کرده و شرکت ها را براي خدمات بهتر به هم متصل کنند . با اين شرح UDDI امکان پياده سازي مدل B2B را ايجاد مي کند و شرکتها مي توانند از سرويس هاي يکديگر استفاده کنند .
شرکت هايي که به UDDI علاقه نشان داده اند قدرت مند هستند و خيلي از آنها از وب سرويس و استاندارد هاي آن در محصولات خود استفاده مي کنند . NTT Communications of Tokyo يکي از شرکت هايي است که در حال اضافه کردن توضيحاتي به ساختار UDDI است . در هر حال شرکت ها هنوز کمي درباره وارد کردن خود در پايگاه هاي عمومي محتاط هستند . اين چيز عجيبي نيست . شرکتها ابتدا اين امکانات را فقط براي شرکاي خود ايجاد مي کنند . شرکتهاي بزرگ نيز براي مديريت بر سرويس هاي خود و اشتراک آنها بين قسمت هاي مختلف از اين استاندارد استفاده مي کنند . وقتي اين استاندارد به حد بلوغ خود برسد و کاربران با آن احساس راحتي بکنند استفاده از آن نيز در مکان هاي عمومي فراگير خواهد بود .
اين تغيير رويه براي شرکت هاي بزرگي که B2B را به روش هاي قديمي اجرا کرده بودند مشکل است . بعضي نيز اشکال امنيتي بر اين روش مي گيرند و مايل نيستند اطلاعاتشان را بدهند . اما با گذشت زمان و کامل شدن اين تکنولوژي و درک لزوم استفاده از آن شرکت ها چاره اي جز استفاده از آن ندارند .
مشخصه های SOA چيست ؟
معماري سرويس گرا (SOA)چيست ؟
اين معماري تا حدودي شبيه معماري Client-Server مي باشد. بر اساس معماري Client-Server هر نرم افزاري از 2 بخش Client و Server تشکيل مي شود که از يک واحد سرور و چندين واحد Client تشکيل شده و در تعامل با همديگر وظيفه سيستمي مربوطه را انجام مي دهند.
در معماري SOA هر سيستم از چندين واحد Producer و چندين واحد Consumer تشکيل مي شود که اين واحدها در تعامل با همديگر وظيفه سيستمي مربوطه را انجام مي دهند. در معماري Client-Server که در آن فقط يک واحد سرورو وجود دارد و همه مشخصات آن توسط Client مشخص و يا قابل تشخيص مي باشد و همچنين سرور از خصوصيات Client هاي خود اطلاع دارد ولي در معماري SOA هر لحظه ممکن است Consumer جديد يا Producer جديدي به سيستم افزوده شود. يا اين که هر يک از واحدها ممکن است در يک لحظه به عنوان Producer و در لحظه اي ديگر به عنوان Consumer عمل بکند يا در حين انجام يک وظيفه به عنوان Consumer و در حين انجام وظيفه اي ديگر به عنوان Producer عمل بکند. لذا لازم است که هر Producer غير از ارائه سرويس مربوطه اطلاعات خاصي هم در مورد خود و سرويسهايش به Consumer ها ارائه بکند. همچنين همه تبادلات بايد به صورت استاندارد بوده و از فرمت استاندارد مشخصي تبعيت بکنند.

معماري SOA معماري Client-Server
ايده ارائه سرويسهاي خود تعريف، از سالها قبل مورد استفاده قرار مي گرفت ولي به تکميل و استاندارد شدن مفهوم وب سرويسها، گسترش بيشتري به خود گرفته است به نحوي که امروزه مي توان در يک مرکز سرويسي فراهم نمود که از هر نقطه اي از جهان و در هر لحظه اي از روز قابل دسترسي باشد و همچنين براي دسترسي آن نيازي به دانستن اطلاعات جزئي و فني آن سرويس نيست. تنها کافي است کسي آدرس سرويس مربوطه و نام سرويس مربوطه را بداند و به راحتي و با استفاده از مشخصاتي که خود آن سرويس به زبان استاندارد (XML) اراده ميکند مي تواند از امکانات و خدمات آن سرويس به زبان استاندارد و مشترک XML استفاده بکند.
بنابراين
-
مفهوم کلي SOA بر تعريف زير ساخت حرفه تمرکز مي کند. بطور کلي منظور از واژه سرويس، يک سرويس حرفه اي است مانند رزرو کردن يک بليط است نه سرويس هاي زير ساخت فني سرويس تراکنش . علت اين است که دسته دوم در زمان پياده سازي يک عمليات حرفه اهميت پيدا مي کند و ارتباط استراتژيک خاصي از نقطه نظر معماري سرويس گرا ندارد.
-
بجاي درگير کردن مصرف کننده با جوانب فني مربوط به فراخواني سرويس ، SOA قرارداد سرويس را از مولفه يا پياده سازي آن قرارداد جدا مي مي کند. در نتيجه اين جداسازي معماري توليد مي شود که در آن اتصال ميان مصرف کننده سرويس و ماژول هايي که کار مربوطه را انجام مي دهند بسيار ضعيف است و به آساني قابل پيکربندي دوباره است .
عناصر تشکيل دهنده معماری سرويس گرا
-
Application Frontend ها عناصري فعالي از يک SOA هستند که تمامي فعاليت هاي سيستم هاي سازماني را آغاز و کنترل مي کنند.
-
سرويس يک مولفه نرم افزاري از يک معناي کارکردي مشخص است که معمولا يک مفهوم حرفه را محصور سازي مي کند.
-
مخزن سرويس امکاناتي را براي پيدا کردن سرويس ها و دريافت کليه اطلاعات لازم جهت استفاده از سرويس ها فراهم مي کند، بويژه اگر اين سرويس ها مي بايستي در خارج از محدوده زماني و کارکردي پروژه سازنده آنها پيدا شوند.
-
گذرگاه سرويس تمام بخش هاي شرکت کننده در يک SOA را بهم متصل مي کند. مثلا اگر Application Frontend بخواهد کارکرد از يک سرويس پايه اي را فراخواني کند گذرگاه سرويس اين عمل را ممکن مي سازد.
معماري سيستم هاي نرم افزاري مدرن اداري
چرا سيستم ها را بايد به سمت SOA ببريم؟
-
مولفه هاي فناوري
-
کاهش کدينگ مشتري در حين پيکربندي
-
پذيرش استاندارد هاي باز و کاهش هزينه يکپارچگي
-
قادر نمودن کاربران نهائي براي خود کارايي
-
انعطاف پذيري زياد براي استفاده از کاربرد هاي مرکب و پيچيده
-
محرک هاي حرفه
-
تطبيق سيستم ها با فرايند ها و نه برعکس
-
بهبود قابل استفاده
-
تحويل تحليل هاي مرتبط
-
اتصال به داده هاي بيروني و سرويس ها
-
ايجاد توازن بين بهترين تجارب و دانش صنعت
مقايسه معماري سرويس گرا و سنتي
ارائه راه حل :
می توان سيستم های نرم افزاری را از شرکت های مختلف نرم افزاری تهيه نمود بعد با توجه به استاندارد های ارائه شده می توان پروتکل هائی را معين نمود تا نرم افزار ها بايکديگر صحبت کنند. (XML) به شکل ذيل توجه کنيد :
سازمانی را مشاهده می کنيم که نرم افزار ها ی بکار گرفته شده بدون هيچ ارتباطی با هم در جهت برآورده نمودن اهداف سازمان تلاش می کنند.
حال در شکل زير سازمان مدرنی می بينيم :
که همگی استاندارد شده و مابين هم بويسله وب سرويس از طريق XML با هم ارتباط دارند.
در واقع BizTalkServer همانند رهبر ارکستر عمل می کند، داده ها را از يک نرم افزار استاندارد شده گرفته و بوسيله وب سرويس در اختيار نرم افزار ديگر قرار می دهد و اين يعنی يکپارچه گردن سيستم ها با استفاده از SOA