سر فصل مطالب:
الف: چالش یكپارچه سازی سیستم های سازمانی(EAI) و تعامل پذیری بین سازمانی(B2B)
ب: معماری سرویس گرا: Service Oriented Architecture
ج: یكپارچه سازی سیستم های  سازمان و تعامل پذیری بین سازمانی به كمك معماری سرویس گرا


الف: چالش یكپارچه سازی سیستم های سازمانی(EAI) و تعامل پذیری بین سازمانی(B2B)
یکپارچه سازی اطلاعات و فرایندهای سازمانی
در حوزه مباحث فناوری اطلاعات جمله معروفی است که می گوید "هیچ نرم افزاری یک جزیره نیست". سیستم های اطلاعاتی یک سازمان زمانی می توانند موثر و کارامد باشند که با هم تعامل و ارتباط منلاسبی داشته باشند. امروزه این مورد یکی از اهداف مدیران اطلاعاتی سازمانهاست، البته نباید تصور کرد که ارتباط بین سیستم های اطلاعاتی فقط مختص به انتقال بایت های داده می شود! اجرای فرایندهای حرفه، وابسته به نرم افزارها و سیستم های اطلاعاتی متنوعی است که هر کدام در زمانی و با تکنولوژی خاصی تهیه شده اند. لذا اتوماسیون چنین فرایندهائی منوط به تعامل پذیری سیستم های مختلف سازمانی است. بدین منظور مشکلات زیادی پیش روی سازمانهاست که می بایست بصورت مناسب برطرف شوند. در این راستا نیاز به ایجاد چارچوب و زیرساختی است که قادر به حل مشکلات ذیل باشد:
    - اتصال با نرم افزارهای ناهمجور از لحاظ فناوری که دارای سکوها و ساختارهای متفاوتی هستند: وب سرویس بهترین راه حل در این حوزه است. در برخی شرایط دیگر به اشتراک گذاری فایل ها یا دسترسی به بانک های اطلاعاتی مشترک می تواند کارساز باشد.
    - اجرای فرایندهای اتوماسیون شده: زیرساخت فناوری باید شامل موتور فرایندی برای اجرای منطق و گردش کار فرایند باشد. با اجرای فرایند توسط این موتور، هر فعالیت فرایند می تواند توسط یکی از سیستم های متفاوت سازمانی اتوماسیون شود. اگرچه انجام فعالیت ها به عهده این سیستم هاست اما مدیریت و یکپارچگی فرایندها توسط این زیرساخت مدیریت می شود.
    - ارتباط با سیستمها/سامانه های سایر سازمانها: بدین منظور نیاز به استانداردها و پروتکل هائی است که مورد توافق سازمانها و کشورهای مختلف باشد. تبادل داده الکترونیکی (EDI) و سایر استانداردهای موجود وظیفه ارتباط با دیگر سازمانها و شرکاء را به عهده دارند.
    - مدیریت و دیده بانی فرایندها: در زمانی که فرایندهای سازمان بصورت اتوماسیون در حال اجرا می باشند، مکانیزمی جهت مدیریت و دیده بانی فرایندها لازم است تا مدیریت سازمان بتواند به کمک این اطلاعات، تصمیمات درست در خصوص اصلاح یا بهبود فرایند را اتخاذ نماید.
انچه گفته شد مجموعه ای از نیازهائی بود که یک چارچوب جامع برای حفظ یکپارچگی و تعامل پذیری سیستم های اطلاعاتی به آن نیاز دارد و معماری سرویس گرا با همین رویکرد ارائه شده است.

چالش های فناوری در حوزه سیستم های کلان اطلاعاتی
مهمترین چالش در حوزه معماری سیستم های اطلاعاتی، عدم یکپارچگی و تعامل پذیری سیستم های اطلاعاتی (داخل سازمانی / بین سازمانی) است. در این راستا استراتژی های فناوری اطلاعات عموما شامل موارد زیر است:
    - یکپارچه سازی سیستم های اطلاعاتی داخل سازمانی که معمولا تحت عنوانEnterprise Application Integration(EAI) شناخته می شود. این موضوع یکی از اهداف معماری سرویس گرا (Service Oriented Architecture) نیز می باشد.
    - اتوماسیون فرایندهای سازمان که تحت عنوان Business Process Management شناخته می شود و امروزه ارزش زیادی برای سازمانها در بردارد.
    - تعامل پذیری سیستمها/سامانه های بین سازمانی که تحت عنوان Business-to-Business (B2B) شناخته می شود.
در بخش "ج" چگونگی عینیت بخشیدن به سه استراتژی گفته شده توسط معماری سرویس گرا بررسی می گردد.


ب: معماری سرویس گرا: Service Oriented Architecture
معرفی SOA
معماری سرویس گرا رهیافتی است برای ساخت سیستم های توزیع شده كه كاركردهای نرم افزاری را در قالب سرویس ارائه می كند. این سرویس ها هم توسط دیگر نرم افزارها قابل فراخوانی هستند و هم برای ساخت سرویس های جدید مورد استفاده قرار می گیرند، این رهیافت برای یكپارچه سازی فناوری ها در محیطی كه انواع مختلفی از سكوهای نرم افزاری و سخت افزاری وجود دارد ایده آل است.
معماری سرویس گرا از دیدگاه های مختلف قابل بررسی است، هر فرد یا ذینفع بر طبق جایگاه خود تصویری از این معماری دارد، در ادامه از سه دیدگاه كارشناسان حرفه، معماران و طراحان سیستم های اطلاعاتی مورد بررسی قرار می گیرد.
كارشناسان حرفه: مجموعه ای از سرویس ها كه سازمان مایل به ارائه آنها به مشتریان یا شركاء خود است. (تعریف سرویس كسب و كار)
معماران : سبكی از معماری كه حاوی قوانین، الگوها و ضوابطی است كه منجر به ایجاد خصایصی نظیر پیمانه ای بودن ، بسته بندی ، اتصال سست ، استفاده مجدد و تركیب پذیری شده و از نظر ساختار از یك ارائه دهنده سرویس و یك درخواست كننده سرویس تشكیل شده است.
طراحان و پیاده سازان: یك سبك(مدل) برنامه نویسی كه از استانداردهائی مانند ( SOAP، UDDI، WSDL، ..) و فناوری هائی نظیر سرویس های وب استفاده می كند و قابلیت تعامل پذیری بین مولفه های نرم افزاری را بدون توجه به سكو و فناوری پیاده سازی آنها پشتیبانی می كند.

تعریف معماری سرویس گرا:
برای معماری سرویس گرا تعاریف متنوع و بعضا مختلفی ارائه شده كه هر كدام از نگاهی به تبین خصوصیات آن پرداخته اند، برای درك بهتر این مفهوم و آگاهی از كلیه برداشت ها و نگاه های موجود، در ادامه تعدادی از این تعاریف آورده شده است.
    - چارچوبی وسیع و استاندارد كه سرویس ها در آن ساخته، استقرار و مدیریت می شوند و هدفش افزایش چابكی زیر ساخت های فناوری اطلاعات در جهت واكنش سریع به تغییرات در نیازهای كسب و كار می باشد.
    - معماری سرویس گرا شامل سیاست ها، تجارب و چارچوب هائی است كه كاركردهای سیستمی را قادر می سازد بصورت مجموعه ای از سرویس های توزیع شده در اندازه های مورد نظر سازمان تعریف شوند. این سرویس ها با كمك تعریف یك واسط استاندارد از پیاده سازی مجزا شده اند.
    - معماری سرویس گرا یك محصول نیست بلكه پلی است بین حرفه و فناوری به كمك مجموعه ای از سرویس های متكی بر فناوری كه دارای قوانین، استانداردها و اصول طراحی مشخص هستند.
در جمع بندی از تعاریف معماری سرویس گرا به ویژگیهای مشترک زیر می توان اشاره نمود:
    - هم راستای كسب و كار سازمان است
    - هم موضوعی فنی است و هم نوعی سبك تفكر است
    - مبتنی بر اتصال سست است و از پیام رسانی استفاده می كند
    - قادر به ساخت سیستم های تركیبی است
    - مهمترین دستاورد آن انعطاف پذیری و چابكی فناوری اطلاعات در برابر تغییرات حرفه است.
    - منجر به تعامل پذیری سامانه ها/سازمانها می گردد
    - امکان ارائه یک سرویس با واسطه های متنوع را محقق می سازد
    - زیرساخت ارتباطی برای این معماری می بایست مستقل از پروتكل های لایه های زیرین باشد.
مقایسه میان ویژگیهای معماری سرویس گرا با رهیافت های گذشته در جدول 1، نشان داده شده است.

معماری سرویس گرا

رهیافتهای گذشته

ارتباطات ارزش آفرین است

ارتباطات هزینه بر بود

مبتنی بر فرآیند

مبتنی بر كاركرد

ساخت برای تغییر

ساخت برای بقا

توسعه تدریجی

تولید یكمرتبه

فدراسیون نرم افزارها

نرم افزارهای تعامل ناپذیر

مستقل از سكو

تك سكو

اتصال سست

اتصال محكم

پیام محور

شیء گرا

جدول 1 : مقایسه میان ویژگیهای معماری سرویس گرا با رهیافت های گذشته


ارکستریشن : Orchestration
دو واژه پر كاربرد در حوزه كسب و كار و معماری سرویس گرا كه معمولا به جای هم اشتباه گرفته می شوند، اركستریشن و كاریگرافی نام دارند. اركستریشن در خصوص ترتیب اجرای سرویس ها در فرآیند بحث می كند، اركستر اصلی مجموعه ای از سرویس ها را فراخوانی می كند تا نتیجه مورد نظر حاصل شود و فرآیند تكمیل گردد، ممكن است سرویس های خارج سازمان نیز در این راستا فراخوانی و استفاده شوند، این كار با كمك موتور فرآیند محقق می شود. در عوض كاریگرافی به فرآیندهایی گویند كه بدون موتور فرآیندی(رهبر اركستر) اقدام به تبادل پیام كرده و ترتیب و توالی پیامهای مبادلاتی را خود بازیگران ثبت و كنترل می كنند.
بنابراین اركستریشن به معنای وجود یك موتور فرآیندی است كه ترتیب و توالی را كنترل كرده و از شركاء داخلی یا خارجی برای انجام كارها استفاده می نماید. نمونه این مدل سیستم مدیریت فرآیندهای حرفه( BPMS) است كه فرآیندها در موتور فرآیندی اجرا می شوند.
كاریگرافی به معنای پردازش های توزیع شده بین چند فرآیند است كه بدون یك رهبر مركزی با هم تعامل دارند یا چندین موتور فرآیندی كه در كنار و هم سطح هم اجرا می شوند و با همكاری هم هدفی را محقق می سازند. نمونه این موضوع در پردازش های توزیع شده و یا فعالیت های بین سازمانی كه هر دو طرف با مشاركت هم به دنبال یك هدف هستند دیده می شود.
مهمترین تفاوت کاریگرافی و ارکستریشن در داشتن مالک و کنترل کننده مرکزی است(شکل 1)، ارکستریشن درشرایطی کاربرد دارد که مجموعه ای از فعالیت ها زیر نظر یک عامل(شخص) انجام شود و آن عامل کلیه منطق و قوانین مربوط به گردش کار و شرط ها را در خود داشته باشد، در عوض کاریگرافی برای مواقعی مناسب است که مجموعه فعالیت ها بین دو شریک تقسیم شده و هیچکدام به تنهایی قادر به کنترل و مدیریت جریان کار نبود و نیاز به کنترل دو طرفه باشد.


شکل 1 : تفاوت میان ارکستریشن و کاریگرافی در وجود هدایت کننده مرکزی است


ج: یكپارچه سازی سیستم های  سازمان و تعامل پذیری بین سازمانی به كمك معماری سرویس گرا
در ادامه چگونگی عینیت بخشیدن به سه استراتژی گفته شده توسط معماری سرویس گرا بررسی می گردد.
یکپارچه سازی سیستم های اطلاعاتی
راه حل معماری سرویس گرا برای یکپارچه سازی سیستم های اطلاعاتی، ارتباط بین سیستم های اطلاعاتی به کمک وب سرویس است. از اواخر دهه 90 برای چالش تعامل پذیری سیستم های اطلاعاتی رهیافتهائی ارائه شده که معروفترین انها اتصال نقطه به نقطه (Peer-to-Peer) و یکپارچگی مبتنی بر یک مترجم مرکزی بوده است. در حالت نقطه به نقطه(شکل 2) برای هر تعامل بین دو سیستم اطلاعاتی در سازمان لازم است که استاندارد و مسیر ارتباطی مربوطه تعریف و فراهم گردد. طبیعی است که چنین رهیافتی بسیار هزینه بر و دست و پا گیر خواهد بود.


شکل 2 : رهیافت اتصال نقطه به نقطه برای ارتباط بین سیستم های اطلاعاتی سازمان

در حالت مترجم مرکزی نیز میان افزاری (Middle-Ware) به عنوان مترجم بین همه سیستم های اطلاعاتی عمل می کرد به گونه ای که مانند یک هاب مرکزی تمامی پیامهای ارسالی به این واسط ارجاع می شد و پس از ترجمه به پروتکل و فناوری مربوط به سیستم دوم، ارسال می گشت(شکل 3). این گزینه نیز با دشواریهائی همراه بود که مهمترین انها وجود انواع پروتکل های ناهمجور و عدم جامعیت بود. اما در معماری سرویس گرا اصل بر این است که همه سیستم های اطلاعاتی با یک واسط استاندارد و مورد توافق جهانی تعامل داشته باشند. این واسط وب سرویس(Web Service) نام دارد و پروتکل های مورد استفاده ان نیز شامل SOAP،WSDL،UDDI می شود، همه این پروتکل ها بسطی از XML هستند که استانداردی جهانی و مورد توافق همه سکوها، فناوری ها و سازندگان است.


شکل 3 : رهیافت مترجم مرکزی برای ارتباط بین سیستم های اطلاعاتی سازمان

ب: یکپارچگی اتوماسیون فرایندهای سازمان در قالب ارکستریشن
معماری سرویس گرا برای مدیریت و اجرای فرایندهای سازمان از مفهوم ارکستریشن کمک گرفته است(که در قسمت های قبل توضیح داده شد)، در این رهیافت منطق و جریان کار فرایند از فعالیت های ان جدا می شود، به گونه ای که جریان گردش فرایند در قالب BPEL مدیریت می شود ولی هر کدام از فعالیت های فرایند می توانند توسط سیستم های اطلاعاتی مختلف پیاده سازی شوند. بدین ترتیب امکان تغییر جریان منطق کار بدون نیاز به تغییر سیستم های پشتیبان میسر می شود که این امر کمک شایانی به انعطاف پذیری فناوری در پاسخ به تغییرات حرفه می کند.
برای تعریف و پیاده سازی فرایندها سه نقش اصلی تحلیل گر، طراح و مدیر وجود دارد. تحلیل گر جریان گردش فرایندهای کسب و کار سازمان را شناسائی و مدلسازی می کند، سپس طراح این مدل را به شکل سیستمی و قابل اتوماسیون در می آورد. در اینجا هر فعالیت فرایند به یک سرویس سیستمی(System Service) یا یک فعالیت انسانی(Human Task) نگاشت می شود. همچنین طراح در هنگام اتوماسیون فعالیت ها با سایر سیستم های اطلاعاتی سازمان، سازگار کننده مناسب را جهت برقرای تبادل تنظیم می نماید، برای هر تعامل باید نگاشت ها، پروتکل ها و سایر تنظیمات انجام شود. در حالی که تحلیل گر و طراح مشغول کار بر روی فرایندهای خاصی هستند، مدیر وظیفه کنترل و نظارت بر مجموعه تعاملات و ارتباطات بین سیستم های اطلاعاتی و تنظیم مجوزها و سطوح دسترسی را دارد. در شکل 4 چگونگی پیاده سازی یک فرایند که با سه سیستم اطلاعاتی ارتباط دارد توسط ابزار BizTalk نشان داده شده است. در این مثال هر سیستم دارای فناوری و استانداردای مخصوص به خود است و معماری سرویس گرا باید قادر باشد یکپارچگی بین این سیستم ها را حفظ نماید. نکته جالب اینکه سیستم های اطلاعاتی به کار گرفته شده برای اتوماسیون فرایند مزبور از وجود فرایند اطلاع ندارند، آنها تنها به پیامهائی که ارسال شده جواب می دهند(جداسازی منطق فرایند از اتوماسیون فعالیت های آن)، این موضوع کمک شایانی به چابکی فناوری اطلاعات در پیاده سازی فرایندهای جدید و تغییر فرایندهای موجود می کند که ارزش استراتژیکی برای سازمانها دارد.


شکل 4 : پیاده سازی فرایندهای حرفه به کمک موتور فرایندی(BizTalk) مبتنی بر معماری سرویس گرا


ج: تعامل پذیری بین سازمانی
اگرچه ارتباط و یکپارچگی سیستم های اطلاعاتی سازمانی ضروری است اما از آن مهمتر(سخت تر) تعامل پذیری بین سازمانی است، چراکه میزان تنوع فناوری ها و پروتکل ها در بین چند سازمان به مراتب بیشتر از میزان آن در بین سیستمهای داخل سازمانی است. در شرایط اقتصادی و تجاری جدید، سازمانها نیاز دارند که بصورت موثر از اطلاعات یکدیگر استفاده کنند، از طرف دیگر "فرایندهای بین سازمانی" در حال گسترش هستند. تجارت که زمانی سازمانی و حوزه ای بود اکنون به سمت جهانی شدن و اکوسیستمی پیش می رود و تعیین مرز و اندازه جغرافیائی برای سازمانها دشوار شده است. در چنین شرایطی نیاز به تبادل اطلاعات بین سازمانها به شدت احساس می شود. راه حل معماری سرویس گرا برای این حوزه استفاده از وب سرویس های جهانی است که در وب قابل شناسائی و فراخوانی هستند(شکل 5)، برای استفاده از این وب سرویس ها قبل از هر چیز انها باید توسط متقاضیان شناسائی شوند. بدین منظور دایرکتوری ثبت و شناسائی سرویس ها (UDDI) ایجاد شده است. ارائه دهندگان سرویس مشخصات سرویسهای خود را در این دایرکتوری ها ثبت می کنندو متقاضیان نیز با جستجوی سرویس مورد نظرشان (مانند موتورهای جستجوری صفحات وب) می توانند از این سرویس ها در سازمان خود بهره برند. نتیجه این امر امکان استفاده از انواع مختلفی از سرویسهای جهانی است که توسط ارائه دهندگان مختلف فراهم شده است.


شکل 5 : تعامل پذیری بین سازمانی/کشوری به کمک وب سرویس های مبتنی بر معماری سرویس گرا