(متن اين نوشته به صورت Pdf در اينجا -
http://33pol.files.wordpress.com/2008/05/soa.pdf - قرار دارد)
چندي است که مفهوم SOA بعنوان معماري جديد مطرح شده است برخي شرکتها استفاده از اين رويکرد را شروع کرده و ادعا مي کنند محصولات خود را بر اساس اين معماري و ساختار پيش مي برند بعنوان مثال در بيانيه اي که در سال 2004 شرکت SAP منتشر کرده ، اعلام شده است که محصول جديد اين شرکت يعني My Sap (اين محصول يک ارتقا از Sap R/3 مي باشد که ظاهرا به جهت تحريمها فروش آن به ايران ممنوع است و شرکت SAP تنها قادر به فروش محصول قديمي خود يعني SAP R/3 به ايران مي باشد ) بر اساس Service Oriented Architecture بنا شده است . ساير سازمانها و شرکتها نيز با توجه به مواردي که به ان اشاره خواهد شد ناچار به استفاده از اين معماري شده اند.
زمينه و بستر استفاده و کاربرد کامل اين معماري در ايران متاسفانه شايد هنوز وجود نداشته باشد با اينحال بررسي اين مفهوم ميتواند مفيد باشد. در اين نوشته بطور خيلي گذرا و کوتاه اين عنوان بررسي شده است.مطالعه دقيق تر و بررسي کامل آن نياز به فرصت بيشتري دارد که در اين مجال نمي گنجد.
عوامل بسياري استفاده از اين معماري را باعث شده اند بعنوان مثال برخي سازمانها عموما هر business unit خود را بطور جداگانه مکانيزه مي نمايند . لذا اعمال تغييرات در يک فرايند و يا عرضه محصول يا خدمات جديد که شايد لازم باشد از کانالهاي متفاوتي عبور کرده و عمليات متفاوتي را انجام دهد ، بسيار مشکل و زمان بر خواهد بود.
مفهومSOA بحث فراگيري است که هنوز اتفاق نظر و مدل استانداردي براي تعريف آن وجود ندارد. برخيها وب سرويسها را همان SOA ميدانند در حاليکه وب سرويسها يک نوع خاصي از پياده سازي از SOA ميباشد . SOA يک معماري خاصي است که لازم نسبت به تعريف و تبيين و استاندارد کردن آن پرداخت .
SOA يک ارتقا از Component Based Architecture, Interface Based Design (Object Oriented) و سيستمهاي Distributed طراحي شده در دهه 1990 مانند CORBA , J2EE , و بطور کلي اينترنت ميباشد . نوع خاصي از پياده سازي از SOA را ميتوان در وب سرويسها يا .NET يا J2EE يا و… مشاهده نمود.
در سيستمهاي Component Based نوعي از معماري بکار گرفته شده که در آن کل فانکشناليتي سيستم به فانکشنهاي کوچکتري که هر کدام از آنها در يک COMPONENT کپسوله شده اند تقسيم شده است. درسيستمهاي DISTRIBUTED که توسعه اي از معماري Component Based مي باشد و در آن COMPONENT ها در محلهاي فيزيکي جداگانه اي ميتوانند قرار بگيرند.
امتياز ويژه اين نوع معماريها عبارت از قابليت reusability و repurposing است که در SOA سعي شده از اين امتياز استفاده شده و توسعه داده شود .اين ويژگيها سهولت نگهداري و توسعه سيستمها و بدنبال آن کاهش هزينه هاي نگهداري سيستمها را در بر دارد.
قابليت reusability و repurposing از دلايل اوليه براي پذيرش و پياده سازي سيستمها بر اساس SOA مي باشد.
مفاهيم اصلي موجود در SOA :
با بررسي معماريهاي پياده سازي شده که مدعي ساختار SOA ميباشند مشخص مي شود که مفاهيم زير در تمامي آنها وجود دارد
· Services
· Service descriptions (including security parameters and constraints, reusability and repurpose-ability)
· Advertising and discovery
· Specification of an associated data model
· Service contract
Services :
عبارت از کاري مشخص وتعيين شده است که ميتواند بوسيله يک component براي استفاده component ديگر پياده سازي و اجرا گردد. يکي از شناخته شده ترين سرويسها عبارت از وب سرويسها ميباشد.
Service descriptions :
شامل پارامترها ي فني و محدوديتها و سياستهايي است که براي درخواست و استفاده از سرويس بايستي در نظر گرفته شود .هر سرويس بايستي در قالبي استاندارد اين موارد را مشخص نمايد.) يکي از اين استانداردهاWeb Services Description Language (WSDL) مي باشد (
Advertising and discovery of services :
يک سرويس بايستي امکان ابلاغ و ارسال شرح سرويس خود را به نحوي سهل و واضح براي استفاده کننده هاي بالقوه داشته باشد.اين عمل ميتواند بوسيله متدولوژيهاي متفاوتي مانند روش push , pull انجام گيرد.
در روش pull مصرف کنندگان بالقوه از تهيه کنندگان سرويسها درخواست مي کنند Service descriptions را براي آنان ارسال نمايد
در روش push تهيه کنندگان سرويسها ، عمل ارسال Service descriptions را براي مصرف کنندگان سرويسها انجام مي دهند.
عمل discovery زماني اتفاق مي افتد که مصرف کنندگان بالقوه توصيف و پارامترها و قواعد استفاده از سرويس را بدست آورند
Specification of an associated data mode :
زمان درخواست يک سرويس پارامترهايي براي بکار گيري سرويس ممکن است لازم باشد. همچنين سرويس نيز ممکن است پارامترهايي را براي درخواست کننده ارسال نمايد. با استفاده از مدلهاي داده اي مرتبط با سرويسها عمل مشخص نمودن اين پارامترها انجام ميگردد.
Service contract :
که بين تهيه کننده و استفاده کننده از سرويس مطرح مي باشد.
انگيزه ها براي پذيرش SOA :
کارکنان بخش IT با چالشهاي فراواني مانند موارد زير روبرو هستند :
· محدوديت بودجه اي
· تغييرات مداوم تکنولوژيها
· ارتقاي فانکشنهاي عملياتي و تجاري (مانند ويرايش جديد يک نرم افزار customer relationship Management (CRM))
· نيازهاي تجاري که تقاضاي تعداد زيادي از APPLICATION هايي را مي نمايد که بايستي با هم يکپارچه گردند
· عملکرد APPLICATION ها که مي بايستي از محدوده سازمان فراتر باشد . بعنوان مثال بانک اطلاعاتي موجودي انبار که ممکن است لازم باشد براي مشتريان نيز در دسترس باشد
بسياري از عوامل فوق يکپارچگي و تماميت سيستمها را طلب مي کند . چنانچه تماميت بطور خاصي و صرفا براي يک Application يا يک محيط تعريف و تبيين شده باشد داشتن يکپارچگي براي تمامي يک پروژه نياز به صرف نيروي فراوان و دانش شناخت کامل سيستمها را در بر خواهد داشت. معماري SOA براي غلبه بر اين مشکل ميتواند مفيد باشد.
الزامات SOA :
براي طراحي و پياده سازي و اجراي يک سيستم بر اساس SOA الزاماتي نياز مي باشد . بطور کلي اين الزامات به الزامات زمان طراحي و الزامات زمان اجرا مي تواند تقسيم گردد.
برخي از الزامات در زمان طراحي عبارتند از :
· UDDI (Universal Description, Discovery and integration)
· Directory of Enterprise Internal web services
· Agile Design Methodology
· Workflow Oriented Development
· Multi-level Design Management
· Agile Toolset For SOA Development
· Information Routing Modelling
· Debugging And Simulation Capability
· Multi-Language Capability
و براي الزامات زمان اجرا به موارد زير ميتوان اشاره نمود :
· User Access And Security
· Workflow
· Business Activity Monitoring (BAM)
· Simulation capability
· Error Management
براي مطالعه بيشتر در اين زمينه سايتهاي sap , ittoolbox, cio ميتواند مفيد باشد


0 responses تا اینجا
There are no comments yet...Kick things off by filling out the form below.