امروزه یکی از مهمترین چالشهای صنعت نرمافزار را میتوان معماری سرویسگرا و مهمترین ابزار آن یعنی وب سرویس دانست. براي درک میزان اهمیت اين موضوع کافی است عبارت SOA و یا وب سرویس را در گوگل جستوجو کنید تا با بسامد عجیب این عبارتها روبه رو شوید.
(عبارت web service تا به حال 527 میلیون بار در گوگل جستوجو شده است!!)
هدفگذاری اصلی معماری سرویسگرا را میتوان درApplicationهای توزیع شده دانست و در واقع SOA کاردکردها و تواناییهای یک نرم افزار را در غالب سرویس ارائه میدهد، سرویسهایی که میتوانند در دل دیگر نرمافزارها مورد استفاده قرار گیرند.
معماری سرویسگرا پدیده چندان نوظهوری نیست و تاريخچه آن به دهه 90 برميگردد؛ زمانيكه پيچيدگي روزافزون سيستمهاي اداري و سازماني در کشورهای صنعتی داشت به عنوان يك معضل جدی کمکم خود را نشان ميداد اما در آن زمان هنوز SOA گسترگی امروز را نداشت تا اینکه در اوایل قرن جدید سرویسهای وب با استانداردهای W3C پا به عرصه گذاشتند.
براي مثال اگر شما قبلا از يك نرمافزار كه تنها محصول انحصاري يك شركت خاص بود براي ردیابی و نقشه استفاده ميكرديد امروز از مجموعهاي از سرويسها كه هر كدام در انحصار شركت خاصي قرار دارند بهره ميبريد در اين مثال خاص نرمافزار مبتني بر SOA شما در ابتدا با استفاده از سرويس شركت A، نام شهر مورد نظر را به يك كد اختصاصي تبديل ميكند سپس شركت B جايگاه كد اختصاصي در نقشه را پيدا ميكند و در نهايت شركت C كه دارنده حساب اصلي شركت شماست حد فاصل شما تا مكان مورد نظر را روي نقشه نمايش ميدهد.
همه فرآيندها در SOA توسط سرويسهاي وب انجام ميپذيرد. يكي از ويژگيهاي جالب سرويسهاي وب اين است كه شبيه يك جعبه سياه ميمانند، يعني زمانيكه برنامهنويس و توسعهدهنده از يك سرويس به خصوص (مثلا سرويس نقشه، آب و هوا يا ...) بهره ميبرد هرگز نميداند كه در درون اين سرويس چه اتفاقاتي در حال جريان است يا به گفته ديگر نحوه و فرآيند انجام كار توسط اين سرويس به چه شکل است و اين مسئله وقتي مشكلساز ميشود كه اگر شركت سودجویي از كدها، نرمافزارها و یا سرويسهاي شركتهاي ثانويهاي به صورت غيرمجاز و حرام استفاده كند ما هيچگونه اطلاعي از آن نخواهيم يافت.
در سالهاي گذشته بحثهاي متعددي پيرامون حلال و حرام، مجاز و غيرمجاز بودن استفاده از محصولات مختلف نرمافزاري پيش آمد كه حتي در پي سخنان بیل گیتس مبني بر عدم رضايت از كاربران ايراني به خاطر استفاده بياجازه از محصولات شركتش (مايكروسافت) برخي از روحانيون بلندپايه اخطار دادند كه استفاده از اين نوع محصولات بدون اجازه صاحب اثر حرام و غيرمجاز است.
نپرداختن به موقع و پيشگيرانه به اين مشكل باعث خواهد شد كه تجارت غيرمجاز و حرام اين بار در بحث وب سرويس شكلي كاملا قانوني به خود گرفته و شركتهاي سودجو در صنعتي نرمافزار كه متاسفانه در كشور تعداد آنها كم هم نيست، اين بار در يك قالب رسمي و قانونمند شروع به استفاده غيرمجاز از محصولات و دسترنج ديگر شركتها کرده و بدين ترتيب به مرور زمان زمينه اشباع بازار و شكست شركتهاي قانونمند و دانش محور را فراهم کنند. در عين حال كه هنوز يكي دو سال بيشتر از شروع رسمي فعاليت تعداد محدودي از شركتهاي ارائه دهنده وب سرويس در كشور نميگذرد متاسفانه برخي سايتها و شرکتهای منفعتطلب با استفاده از سرويسهاي شركتهاي اصلي به اسم خودشان، مشغول كسب درآمد و شهرت كاري هستند و تعدادشان نيز روزبهروز در حال افزايش است.
ما همواره در صنعت IT و نرمافزار غالبا بحث بوميسازي و ايراني كردن را دير انجام ميدهيم و نوشدارو را بعد از مرگ سهراب ميرسانيم براي مثال وقتي است SMS سالها بين ما رواج پيدا ميكند و جايش را حسابي باز ميكند تازه به فكر معادل فارسي براي آن ميگرديم يا زمانيكه بسياري از جرايم اينترنتي و نرمافزاري از قبيل عدم رعايت قانون كپيرايت، عدم اعتنا به اصول اوليه اخلاق علمي و تكثير مقالات و انتشارات ديگران به اسم خود و ... گسترش پيدا كرد تازه به فكر راه چاره ميافتيم.
در ادامه دو راه كار براي حل اين مشكل ميتوان ارائه كرد:
1 - پيشنهاد اول اين است كه در سند توصيف وب سرويس (WSDL) علاوه بر تگهاي معمول يك تگ جديد مبتني بر قراردادها و دانستههاي حقوقي و شرعي پيرامون هر سرويس اضافه كنيم.
البته شاید این راه به صورت منطقیتر با استفاده از WS-policy يا همان مجموعه قوانين و مقررات مربوط به هر سرويس قابل پیادهسازی باشد.
بايد و نبايدهاي پيرامون سرويس را به همراه حقوق معنوي و شرعي آن بيان كنيم و اگر از سورس و يا سرويس ديگري بهره ميبريد (حتي اگر آن سورس كه به صورت كدباز ارائه شده باشد البته همراه با مجوز) با توجه به نوع مجوز محصول مورد استفاده ميتوانيم از سطوح درجهبندي مختلفي چه در WSDL و چه در Ws-policy بهره ببريم.
« نمونهاي Ws-policy توسعه يافته » (تصوير1)
متاسفانه مشكلي كه پيش ميآيد اين است كه تغييرات بالا براي اينكه به صورت سراسري (Global) اعمال شود غالبا بايد به تصويب OASIS (سازمان تصويب چارچوبهاي وب سرويس) برسد در نتيجه اگر قصد استفاده از دو روش بالا را داشته باشيم نياز داريم كه Frameworkهاي برنامهنويسي مختص خود را توليد كنيم.
راه سادهتر ديگري كه ميتوان با بار فني كمتر و با سرعت اجرایی بالا بدون مشکلات مطروحه از آن بهره برد اين است كه براي هر كلاس سرويس يك متد راهنماي حقوق مالكيت شرعي و خصوصي تعبيه شود يعني سازماني در كشور همه شركتها و نهادها را ملزم كند كه براي هر مجموعه سرويس بايد يك سرويس راهنما برای بيان اينگونه حقوق در نظر گرفته شود.
در نتيجه توسعهدهندگان بعدي قبل از استفاده از هر مجموعه سرويس ابتدا يكبار اين سرويس راهنما را فراخواني ميكنند و با جزئيات، هنجارها، قوانين و حقوق مالكيت سرويسها آشنا ميشوند و در صورت تمايل در يك محيط شفاف اطلاعاتي و شرعي تصميم خود را مبني بر استفاده و يا عدم استفاده از سرويسهاي مورد نظر ميگيرند.(تصوير2)
تا حد ممكن سرويس راهنما بايد به صورت آزاد از طريق پروتكل http و مرورگرها قابل مشاهده باشد تا برنامهنويسان به سرعت بتوانند به اطلاعات حقوقي و معنوي اثر دسترسي داشته باشند.
خوشبختانه سرويسهاي وب هنوز در ايران و دنيا در ابتداي راه قرار دارند و حتي بسياري از قوانين و بايد و نبايدها در مورد آنها به صورت كامل شكل و بسط پيدا نكرده و اميد است بتوانيم همگام با ديگر كشورها در تنظيم و تصويب هنجارها و قوانين معماري سرويسگرا مشاركت داشته باشيم تا در نهايت بتوانيم معماري سرويسگراي ايراني داشته باشيم که با فضای IT کشورمان همخوان باشد
(عبارت web service تا به حال 527 میلیون بار در گوگل جستوجو شده است!!)
هدفگذاری اصلی معماری سرویسگرا را میتوان درApplicationهای توزیع شده دانست و در واقع SOA کاردکردها و تواناییهای یک نرم افزار را در غالب سرویس ارائه میدهد، سرویسهایی که میتوانند در دل دیگر نرمافزارها مورد استفاده قرار گیرند.
معماری سرویسگرا پدیده چندان نوظهوری نیست و تاريخچه آن به دهه 90 برميگردد؛ زمانيكه پيچيدگي روزافزون سيستمهاي اداري و سازماني در کشورهای صنعتی داشت به عنوان يك معضل جدی کمکم خود را نشان ميداد اما در آن زمان هنوز SOA گسترگی امروز را نداشت تا اینکه در اوایل قرن جدید سرویسهای وب با استانداردهای W3C پا به عرصه گذاشتند.
براي مثال اگر شما قبلا از يك نرمافزار كه تنها محصول انحصاري يك شركت خاص بود براي ردیابی و نقشه استفاده ميكرديد امروز از مجموعهاي از سرويسها كه هر كدام در انحصار شركت خاصي قرار دارند بهره ميبريد در اين مثال خاص نرمافزار مبتني بر SOA شما در ابتدا با استفاده از سرويس شركت A، نام شهر مورد نظر را به يك كد اختصاصي تبديل ميكند سپس شركت B جايگاه كد اختصاصي در نقشه را پيدا ميكند و در نهايت شركت C كه دارنده حساب اصلي شركت شماست حد فاصل شما تا مكان مورد نظر را روي نقشه نمايش ميدهد.
همه فرآيندها در SOA توسط سرويسهاي وب انجام ميپذيرد. يكي از ويژگيهاي جالب سرويسهاي وب اين است كه شبيه يك جعبه سياه ميمانند، يعني زمانيكه برنامهنويس و توسعهدهنده از يك سرويس به خصوص (مثلا سرويس نقشه، آب و هوا يا ...) بهره ميبرد هرگز نميداند كه در درون اين سرويس چه اتفاقاتي در حال جريان است يا به گفته ديگر نحوه و فرآيند انجام كار توسط اين سرويس به چه شکل است و اين مسئله وقتي مشكلساز ميشود كه اگر شركت سودجویي از كدها، نرمافزارها و یا سرويسهاي شركتهاي ثانويهاي به صورت غيرمجاز و حرام استفاده كند ما هيچگونه اطلاعي از آن نخواهيم يافت.
در سالهاي گذشته بحثهاي متعددي پيرامون حلال و حرام، مجاز و غيرمجاز بودن استفاده از محصولات مختلف نرمافزاري پيش آمد كه حتي در پي سخنان بیل گیتس مبني بر عدم رضايت از كاربران ايراني به خاطر استفاده بياجازه از محصولات شركتش (مايكروسافت) برخي از روحانيون بلندپايه اخطار دادند كه استفاده از اين نوع محصولات بدون اجازه صاحب اثر حرام و غيرمجاز است.
نپرداختن به موقع و پيشگيرانه به اين مشكل باعث خواهد شد كه تجارت غيرمجاز و حرام اين بار در بحث وب سرويس شكلي كاملا قانوني به خود گرفته و شركتهاي سودجو در صنعتي نرمافزار كه متاسفانه در كشور تعداد آنها كم هم نيست، اين بار در يك قالب رسمي و قانونمند شروع به استفاده غيرمجاز از محصولات و دسترنج ديگر شركتها کرده و بدين ترتيب به مرور زمان زمينه اشباع بازار و شكست شركتهاي قانونمند و دانش محور را فراهم کنند. در عين حال كه هنوز يكي دو سال بيشتر از شروع رسمي فعاليت تعداد محدودي از شركتهاي ارائه دهنده وب سرويس در كشور نميگذرد متاسفانه برخي سايتها و شرکتهای منفعتطلب با استفاده از سرويسهاي شركتهاي اصلي به اسم خودشان، مشغول كسب درآمد و شهرت كاري هستند و تعدادشان نيز روزبهروز در حال افزايش است.
ما همواره در صنعت IT و نرمافزار غالبا بحث بوميسازي و ايراني كردن را دير انجام ميدهيم و نوشدارو را بعد از مرگ سهراب ميرسانيم براي مثال وقتي است SMS سالها بين ما رواج پيدا ميكند و جايش را حسابي باز ميكند تازه به فكر معادل فارسي براي آن ميگرديم يا زمانيكه بسياري از جرايم اينترنتي و نرمافزاري از قبيل عدم رعايت قانون كپيرايت، عدم اعتنا به اصول اوليه اخلاق علمي و تكثير مقالات و انتشارات ديگران به اسم خود و ... گسترش پيدا كرد تازه به فكر راه چاره ميافتيم.
در ادامه دو راه كار براي حل اين مشكل ميتوان ارائه كرد:
1 - پيشنهاد اول اين است كه در سند توصيف وب سرويس (WSDL) علاوه بر تگهاي معمول يك تگ جديد مبتني بر قراردادها و دانستههاي حقوقي و شرعي پيرامون هر سرويس اضافه كنيم.
البته شاید این راه به صورت منطقیتر با استفاده از WS-policy يا همان مجموعه قوانين و مقررات مربوط به هر سرويس قابل پیادهسازی باشد.
بايد و نبايدهاي پيرامون سرويس را به همراه حقوق معنوي و شرعي آن بيان كنيم و اگر از سورس و يا سرويس ديگري بهره ميبريد (حتي اگر آن سورس كه به صورت كدباز ارائه شده باشد البته همراه با مجوز) با توجه به نوع مجوز محصول مورد استفاده ميتوانيم از سطوح درجهبندي مختلفي چه در WSDL و چه در Ws-policy بهره ببريم.
« نمونهاي Ws-policy توسعه يافته » (تصوير1)
متاسفانه مشكلي كه پيش ميآيد اين است كه تغييرات بالا براي اينكه به صورت سراسري (Global) اعمال شود غالبا بايد به تصويب OASIS (سازمان تصويب چارچوبهاي وب سرويس) برسد در نتيجه اگر قصد استفاده از دو روش بالا را داشته باشيم نياز داريم كه Frameworkهاي برنامهنويسي مختص خود را توليد كنيم.
راه سادهتر ديگري كه ميتوان با بار فني كمتر و با سرعت اجرایی بالا بدون مشکلات مطروحه از آن بهره برد اين است كه براي هر كلاس سرويس يك متد راهنماي حقوق مالكيت شرعي و خصوصي تعبيه شود يعني سازماني در كشور همه شركتها و نهادها را ملزم كند كه براي هر مجموعه سرويس بايد يك سرويس راهنما برای بيان اينگونه حقوق در نظر گرفته شود.
در نتيجه توسعهدهندگان بعدي قبل از استفاده از هر مجموعه سرويس ابتدا يكبار اين سرويس راهنما را فراخواني ميكنند و با جزئيات، هنجارها، قوانين و حقوق مالكيت سرويسها آشنا ميشوند و در صورت تمايل در يك محيط شفاف اطلاعاتي و شرعي تصميم خود را مبني بر استفاده و يا عدم استفاده از سرويسهاي مورد نظر ميگيرند.(تصوير2)
تا حد ممكن سرويس راهنما بايد به صورت آزاد از طريق پروتكل http و مرورگرها قابل مشاهده باشد تا برنامهنويسان به سرعت بتوانند به اطلاعات حقوقي و معنوي اثر دسترسي داشته باشند.
خوشبختانه سرويسهاي وب هنوز در ايران و دنيا در ابتداي راه قرار دارند و حتي بسياري از قوانين و بايد و نبايدها در مورد آنها به صورت كامل شكل و بسط پيدا نكرده و اميد است بتوانيم همگام با ديگر كشورها در تنظيم و تصويب هنجارها و قوانين معماري سرويسگرا مشاركت داشته باشيم تا در نهايت بتوانيم معماري سرويسگراي ايراني داشته باشيم که با فضای IT کشورمان همخوان باشد