SOAService Oriented
Architectureمعماری سرويس گرا
دانشگاه شهيد بهشتي دومين سمينار شبكه علمي كشور
اسالم ناظمي
nazemi@sbu,ac,irدانشكده مهندسي برق و كامپيوتر
دانشگاه شهيد بهشتي ۱۳۸۶مهرماه
مقدمهo درصد ازبرنامه هاي ۸۰بر طبق نظر تحليلگران صنعتي بيش از
۲۰۰۸ تا ۲۰۰۵کاربردي حرفه فروخته شده در فاصله سالهاي شکل ) SOA(ميالدي بر اساس اصول معماري سرويس گرا
.مي گيرندo بيانگر ديدگاهي از معماري " معماري سرويس گرا"اصطالح
با درجه نرم افزاري است که استفاده از سرويس هاي نرم افزاررا جهت پشتيباني از ) Loosely Coupled( کم اتصال
.فرآيندهاي حرفه پيشنهاد مي کندo محصورسازيدر حقيقت اين سبک از معماري از ديدگاه سنتي
منطق حرفه تحت اشيا و مولفه ها پشتيباني مي کند اما اين . بر اساس فرآيندهاي حرفه مي باشد محصورسازي
مسير دستيابي به سرويس گرايي–راهبردهاي معماري نسل بعد
Batch
On-linemidrange
Client/server
Web client
ServiceOriented
Architectures
١٩٧٠s ١٩٨٠s ١٩٩٠s ٢٠٠٠s ٢٠١٠s
?What is Serviceسرويس چيست؟
o يك واحد از كار انجام شده توسط عرضه كننده خدمت براي دستيابي بهنقش عرضه كننده و دريافت كننده سرويس با . نتيجه موردنظر مشتري
. مولفه هاي نرم افزاري انجام مي شود به عنوان قطعه اي از SOAيك سرويس در
عملكردي است كه داراي سه خصوصيت اصلي زير : باشدnواسط سرويس مستقل از پيكربندي است.nسرويس به طور پويا در جايي قرار مي گيرد و بازخواني مي شود .nسرويس خودشمول است يعني سرويس وضعيت خود را نگه مي دارد.
?What is a Web serviceوب سرويس چيست؟
o هر سرويسي كه قابل فراخواني توسط برنامه ديگري: باشد به طوري كه Webدر
n platform-independent,n language-independent & n object model-independent
o بنابراينWeb Service= web-base Serviceoاز استانداردهاي زيرساختار نسل بعد استفاده نمايد:oXML, SOAP, WSDL, UDDI
دهند مختلفي از منطق را پوشش بخش هاي مي توانند سرويس ها
سرويس گرا اصطالحي است براي نشان دادن مدلي که در آن منطق معمارياين واحدها . اتوماسيون به واحد هاي کوچکتر و مشخصي از منطق تجزيه مي شود
مي دهند و هر يک تشکيلبا يکديگر بخش بزرگتري از منطق اتوماسيون حرفه را .شونداز آنها مي توانند جداگانه توزيع
روش هاي مختلف دسترسي به يک سرويس يکسان
معماري سرويس گرا چيست؟
oمفهوم کليSOA بطور کلي منظور . بر تعريف زيرساخت حرفه تمرکز مي کنداز واژه سرويس، يک سرويس حرفه مانند رزرو کردن يک بليط است نه
علت اين است که دسته . سرويس هاي زيرساخت فني مثل سرويس تراکنش دوم در زمان پياده سازي يک عمليات حرفه اهميت پيدا مي کند و ارتباط
. استراتژيک خاصي از نقطه نظر معماري سرويس گرا ندارد
o ،بجاي درگيرکردن مصرف کننده با جوانب فني مربوط به فراخواني سرويس SOAدر . قرارداد سرويس را از مولفه يا پياده سازي آن قرارداد جدا مي کند
نتيجه اين جداسازي معماري توليد مي شود که در آن اتصال ميان مصرف يف کننده سرويس و ماژول هايي که کار مربوطه را انجام مي دهند بسيار ضع
.است و به آساني قابل پيکربندي دوباره است
عناصر تشکيل دهنده معماري سرويس گرا
عناصر تشکيل دهنده معماري سرويس گرا
oApplication Frontend ها عناصر فعالي از يکSOA هستند که تمام . فعاليت سيستم هاي سازماني را آغاز و کنترل مي کنند
o سرويس يک مولفه نرم افزاري از يک معناي کارکردي مشخص است که
. معموال يک مفهوم حرفه را محصورسازي مي کند
o مخزن سرويس امکاناتي را براي پيدا کردن سرويس ها و دريافت کليه اطالعات الزم جهت استفاده از سرويس ها فراهم مي کند، بويژه اگر اين
ه سرويس ها مي بايستي در خارج از محدوده زماني و کارکردي پروژه سازند . آنها پيدا شوند
o گذرگاه سرويس تمام بخش هاي شرکت کننده در يکSOA را به هم متصل بخواهد کارکردي از يک سرويس Application Frontendمثال اگر يک . مي کند. را فراخواني کند گذرگاه سرويس اين عمل را ممکن مي سازدپايه اي
قسمت هاي مختلف يک سرويس
يس گيرندهچگونگي پيدا کردن سرويس ها و اتصال آنها در زمان توسعه برنامه سرو
SOA Layers اليه هاي معماري سرويس گرا
Existing Business Architecturesمعماري هاي حرفه موجود
Existing Business Processes
Existing Data & System Architectures
Existing Organizational Structures
Service Oriented Architectureمعماري سرويس گرا
: در معماري سازمان SOAاستفاده از . سرويس بايد چابك، سريع و كارا باشد
CICS gateway
ORB
Broker
Screenscrape
EDI/VAN
Down-loadfile
C++
Messagequeue
FOCUS
Screenscrape
Screenscrape
APPC
CRM٢
Message
Down-loadfile
CICS gateway
Messagequeue
Trans-action
file
APPC
WebFOCUS
Trans-action
file
ERP
CRM١RPC
CSV
ORBCICS gateway
CICS gateway
ORB
Message
Screenscrape
RPC
Down-loadfile
Sockets
Messagequeue
Screenscrape
Screenscrape
Screenscrape
APPC
Trans -actionfile
Message
Down-loadfile
CICS gateway
Messagequeue
Trans -actionfile
APPC
Down-loadfile
Trans -actionfile
Messagequeue
Trans -actionfile
RPC
Sockets
ORB
CICS gateway
Reusable Business Services
Insert PO Billing Inventory Provision Check Credit
BI B٢BBusiness Process Management
Step ١ Step ٢ Step ٣ Request Message
? What is SOA چيست؟ SOAبنابراين
o SOAحرفه گراست .oSOAراهي براي تفكر است .oSOAيك سرويس وب نيست .oداراي معماري با اتصال ضعيف است و از طريق پيغام فعال مي شود.oبا ايجاد كاربردهاي مركب ارتقاء مي يابد .oاز حالت دسته اي حركت به سمت بالدرنگ دارد .oقابل استفاده مجدد مي شود) سرويس هاي(منجر به ساخت مولفه هاي حرفه .oچابك و انعطاف پذير است .
<process><sequence>
<receive… />
<invoke… />
</sequence></process>
<process><sequence>
<receive… />
<invoke… />
</sequence></process>
Loan Service(Orchestration)
Credit ValidationService
Loan Service ١
LoanService ٢
You’re approved!
اجراي يك معماري مبتني بر سرويس
SOAكار را تغيير مي دهد ...SOA Change work …
Application ApplicationApplication Application
Application Application Application Application
App App App App
App App App App
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
Turn this… …into this
SOA + Enterprise Service Bus (ESB)
App App App App
App App App App
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
ServiceInterface
…into this Turn this…
ESB
SOA, Legacy, and the ESB
New Flight Availability
Service
Old Flight Availability
Service
HotelAvailability
Service
BookHotel
Service
BookCar
Service
TravelReservation
Process
New CheckTravelerService
Check Credit Service
Book Flight Service
Add new services
faster
Change serviceswith minimal
impact to Existingservices
Flight Availability
Service
Enterprise Service Bus
Component= Reusable, Portable, Well-Defined, reliable, extendable Modules
Service= Business-Driven Platform-Independent Component
Web Service= Web-Base Service
Web Application = application used by a userWeb Service = application used by another application
” برنامه هاي كاربردي وب“و ” سرويس وب“ ، ” سرويس“تفاوت بين
SAO SOA Itemsمولفه هاي
o XMLo WSDLo BPELo SOAPo UDDI
Evolution of Business
Evolution of Architectureتكامل معماري
. مي بريد؟ SOAچرا سيستم ها را به سمت Why move your Systems to SOA?
محرك هاي حرفهo تطبيق سيستم ها با فرايندها و نه
برعكسo بهبود قابليت استفادهo تحويل تحليل هاي مرتبطo اتصال به داده هاي بيروني و
سرويس ها o ايجاد توازن بين بهترين تجارب و
دانش صنعت
محرك هاي فناوري o كاهش كدينگ مشتري در حين
پيكربندي o پذيرش استانداردهاي باز و كاهش
هزينه يكپارچگي o قادر نمودن كاربران نهايي براي
خودكارايي o انعطاف پذيري زياد براي استفاده
از كاربردهاي مركب و پيچيده
Soa تمام چيزي است كه نياز داريم ! !SOA is all that we need
Workflow
EDI
Mainframe
١٩٨٠ ١٩٩٠ ٢٠٠٠ ٢٠١٠
XMLWS
WebLANInternet
?BusinessIntegration
J٢EE.NET
Client / Server
Web/Portal
EAI
B٢BBPM
WS
Office
SOA
SOA
. اتصال قادر به دسترسي فرايندهاي سراسري و اطالعات است Connectivity Enables Global Processes and Information
Access
Information
BusinessProcesses
Local
١٩٨٠ ١٩٩٠ ٢٠٠٠ ٢٠١٠
Web
XMLWS
WAN
Web
LAN
LANInternet
Global
SOA
معماري سرويس گرا و سنتي SOA vs. Traditional Architecture
معماري سنتي معماري سرويس گرا
طراحي براي آخرين بار طراحي با هدف پذيرش تغيير
اتصال قوي اتصال ضعيف، چابك و تطبيق پذير
يكپارچگي سيلويي تركيب از سرويس هامبتني بر كد ميتني بر فرايند
چرخه حيات توسعه طوالني توسعه تعاملي و تكراري
تمركز بر هزينه تمركز بر حرفه فناوري همگون فناوري ناهمگون
SOA Toolsابزارهاي معماري سرويس گرا
o Leathers of SOA Middlewareo ORACLE suite for SOAo ORACLE Fusion
SOA Approach (ORACLE)
ORACLE Fusion Overview
o Fusion Middlewaren Add Business Process
Analysis capabilityn Address customers and
partners demandn Appeal to Line of Business
audience
o Fusion Applicationsn Create Reference Process
Modelsn Facilitate Collaborative
Designn Simplify selling, training and
implementation
Enterprise
Business Process
Detailed Business Process
Activity
ORACLE SOA Suite
Business Process Architect
Business Process Simulator
Integration with SOA, BPEL PM
Business Process Publisher
فهرست برخی از مراجع o ۱[ ] Abrams C., Smith D.: Service-Oriented Business Applications Show
Their Potential, Gartner Research Note (SPA-۲۰-۷۲۹۵ ۹ ۲۰۰۳), October o ۲[ ] Paddy Srinivasan: SOA and Enterprise Applications, Microsoft
Corporation, http://msdn.microsoft.com/isv/solution/crm/soa/default.aspxo ۳[ ] Eric Newcomer, Greg Lomow: Understanding SOA with Web Services,
۲۰۰۴Addison Wesley Professional, o ۴[ ] Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/Service-
oriented_architectureo ۵[ ] James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn,
Vikas Sharan, Elias K. Jo: A Practical Guide to Enterprise Architecture, ۲۰۰۳Prentice Hall PTR,
o ۶[ ] Thomas Erl: Service-Oriented Architecture: Concepts, Technology, and ۲۰۰۵Design, Prentice Hall PTR,
o ۷[ ] Dirk Krafzig, Karl Banke, Dirk Slama: Enterprise SOA: Service-Oriented ۲۰۰۴Architecture Best Practices, Prentice Hall PTR,
o ۸[ ] Howard Smith, Peter Fingar: Business Process Management (BPM): The Third Wave, Meghan-Kiffer ۲۰۰۳,
o ۹[ ] Thomas Erl: Service Oriented Architecture: A Field Guide to Integrating ۲۰۰۴XML and Web Services, Prentice Hall PTR,