sunum_service oriented architecture (soa)_off2007

35
Service Oriented Architecture (SOA) Efe Eyüboğlu

Upload: efe-eyueboglu

Post on 23-Jan-2017

124 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: sunum_Service Oriented Architecture (SOA)_off2007

Service Oriented Architecture (SOA)

Efe Eyüboğlu

Page 2: sunum_Service Oriented Architecture (SOA)_off2007

Servis nedir? Servis, yapacağı iş açıkça ifade edilmiş bir iş fonksiyonunun

uygulamaya geçirilmesiyle oluşan bir yazılım komponentidir. Diğer servislerin durumundan bağımsız olarak çalışır. Kendi içinde birkaç servis öğesi barındırabilir

Servis örneği: Banka Hesap Yönetimi Servis öğesi örneği: Sıradaki mevcut hesap numarasını

oluşturma

Page 3: sunum_Service Oriented Architecture (SOA)_off2007

Servis nedir? Belli başlı özellikleri : Kendi kendine yetebilir / bağımsızdır. Diğer servislerin durumlarından etkilenmez. Modülerdir , değişikliklere hazırdır. Kullanıldığı platformlardan bağımsızdır. Diğer servislere gevşekçe bağlıdır (Loosely coupled).

Aralarındaki tüm etkileşimler arayüzler aracılığıyla olur. WSDL (Web Service Description Language) kullanılarak

tanımlanır.

Page 4: sunum_Service Oriented Architecture (SOA)_off2007

Servis kullanımındaki roller-Servis sağlayıcı (Service provider) belirli bir servisi yayınlamak ve

güvenliğini sağlamaktan sorumludur.

-Servis tüketicisi (Service consumer) servisi bulmak, kullanmak ve belirli protokollerle servis sağlayıcıya istek göndermekle sorumludur.

-Servis dizini (Service directory/registry) servislerin fiziksel lokasyonlarını, versiyonlarını, geçerlilik sürelerini, dökümantasyonlarını ve poliçelerini barındırır.

-Sağlayıcı, tüketici ve dizin arasında geçen tüm mesaj ve protokoller XML bazlı dillerle standardize edilmiştir. Bu yüzden servisler platformlardan bağımsızdır.

Page 5: sunum_Service Oriented Architecture (SOA)_off2007

Servisler nasıl çalışır?(XML,SOAP,WSDL,UDDI)

XML (Extensible Markup Language): Verileri tanımlamak, saklamak ve taşımak için kullanılır. HTML gibi bir işaretleme dilidir. (HTML göstermek içindir, XML

taşımak için.)

SOAP (Simple Object Access Protocol): XML bazlıdır. Ağ üzerinden haberleşme protokolüdür. (İnternet, intranet..) Web servisleri için veri iletimi sağlar. Platformlardan ve dillerden bağımsız olarak çalışır.

Page 6: sunum_Service Oriented Architecture (SOA)_off2007

Servisler nasıl çalışır?(XML,SOAP,WSDL,UDDI)

WSDL (Web Service Description Language): XML bazlıdır. Bir web servisini tanımlamanın standart formatıdır. Web servisinin neler yapacağını ve servise nasıl ulaşılacağını

tanımlar.

UDDI (Universal Description, Discovery and Integration): XML bazlıdır. Web servislerini tanımlamak, yayımlamak ve bulmak için

kullanılır. Platformlardan bağımsızdır. SOAP, CORBA, JAVA RMI Protocol gibi protokollerle haberleşebilir. Web servis arayüzlerini tanımlamak için WSDL kullanır.

Page 7: sunum_Service Oriented Architecture (SOA)_off2007

Servisler nasıl çalışır?

Servis sağlayıcısı, servisi SOAP mesajlarında taşınan UDDI ile yayımlar. Servis tüketicisi, uygun servisi SOAP mesajlarında taşınan UDDI ile arar. Servis tüketicisi servis sağlayıcısına SOAP isteği göndererek bağlanır. Servisler WSDL kullanılarak tanımlanır.

Page 8: sunum_Service Oriented Architecture (SOA)_off2007

Service Oriented Architecture nedir? SOA, iş uygulamaları yaratma amacıyla bir takım kara kutu

komponentlerinin (servislerin) organize edilmesiyle ve iş süreçlerinin birbiriyle bağlanmasıyla iyi tanımlanmış seviyede bir servisin oluşturulması için uygulanan bir mimari yaklaşımdır.

İş uygulamaları yaratmak içindir : Yazılım mimarisine birçok sağlam yaklaşım vardır. Bu yüzden SOA, her türlü yazılımı yaratma amacında değildir. Asıl amacı iş uygulamaları yaratmaktır.

Bir kara kutu komponenti mimarisidir : SOA, arka plandaki kompleks görünümü kullanıcıdan olabildiğince saklamayı hedefler. Halihazırda var olan iş uygulamalarının nasıl yaratıldığından bağımsız olarak tekrar kullanımını sağlar.

Page 9: sunum_Service Oriented Architecture (SOA)_off2007

Service Oriented Architecture nedir? Komponentleri birbirine gevşekçe bağlıdır (Loosely Coupled) : Loosely Coupled terimi iki komponentin SOA kapsamında

birbirleriyle nasıl etkileşimde olduklarını belirtir. Bir komponent diğerine veriyi ileterek bir istek oluşturur. İkinci komponent isteği alır ve gerekliyse istenen veriyi ilk komponente döndürür.

Komponentleri bir iş süreci oluşturma amacıyla organize edilerek birbirlerine bağlanır ve böylece iyi tanımlanmış bir servis oluşturur :

SOA, basit komponentleri gerekli şekilde sıralayarak kompleks bir iş servisi oluşturabilir. (Choreography/Orchestration)

Page 10: sunum_Service Oriented Architecture (SOA)_off2007

SOA Avantajları Platform Bağımsızlığı : Servis kullanımı sadece sağlayıcı ve tüketici

arasında geçen mesajların kullandığı protokollerle ve tanımlama dillerini gerektirir. Bunlar standart olduğu için platformlardan bağımsızlığı vardır. Böylece şirketlerin halihazırda bulunan yazılımları farklı platformlar için tekrar yaratılmaz.

Geliştiricilerin odaklanması : Servisler diğer servislerin durumundan bağımsız olarak çalıştıkları için belli bir servisten sorumlu geliştiriciler endişe etmeden sadece sorumlu oldukları kısımları geliştirmekle ve uygulamaya koymakla yükümlenirler.

Lokasyon saydamlığı : Servisler genelde tüketicinin bulabileceği belli bir dizine yayımlanırlar. Bu yaklaşım sayesinde servisin lokasyonu her zaman değiştirilebilir. Tüketici servisi dizinden bulabilecektir.

Page 11: sunum_Service Oriented Architecture (SOA)_off2007

SOA Avantajları Tekrar Kullanım : SOA, uygulamayı küçük bağımsız parçalar

halinde kullandığından dolayı, servisler birden fazla uygulamada kullanılabilir. Böylece yazılım geliştirme maliyetleri düşer.

Daha kolay ve kapsamlı test edilebilirlik : Küçük, bağımsız servisler eski tarz yazılımlara göre (e.g. monolithic applications) daha rahat test ve debug edilebilirler. Böylece daha güvenilir yazılımlar elde edilir.

Paralel yazılım geliştirme : Servisler birbirinden bağımsız olduğundan ve aralarında olacak ilişki ve gerekli olduğunda sözleşme önceden belirlendiğinden farklı servisler aynı anda geliştirilebilir. Böylece projelerde ciddi miktarlarda süre kazancı elde edilebilir.

Page 12: sunum_Service Oriented Architecture (SOA)_off2007

SOA her zaman en iyi çözüm mü? SOA, şirketler için çoğu durumda yarar sağlayabilir. Fakat bazı

özel durumlarda yarardan ziyade bir yüke dönüşebilir. Bunlar;

Homojen bir IT yapısı var ise : Şirket sadece belirli bir ürün için çalışıyorsa, kısıtlı bir çalışma alanı varsa ve ürünlerinde değişiklik veya eklenti yapması gerekmiyorsa.

Gerçek zamanlı performans çok kritik olduğunda : SOA, çok sayıda servis sağlayıcısı ve tüketicisi arasındaki gevşekçe bağlılığı sağlayabilmek için eş zamanlı çalışabilen protokoller kullanır. Bunlar ise doğaları gereği yavaştır.

Komponentler arası sıkı bağlılık(Tight Coupling) bir sıkıntı değil ise : Gevşek bağlılığın en iyi kullanımı, komponentin kontrol altında

olmadığı ve değiştirilemediği durumlarda kullanılmasıdır.

Page 13: sunum_Service Oriented Architecture (SOA)_off2007

SOA Entegrasyonu – ESB Nedir ? ESB (Enterprise Service Bus – Kurumsal Servis Veri Yolu),

SOA’ın entegrasyonu ve uygulanması için bir şablon rolü oynar. Altyapısal hizmetler sunan, heterojen ortamlarda çalışabilen bir yazılım mimarisi modelidir.

Temelinde sayısız uygulamayı birbirlerine entegre edebilmek için kullanılan veri yoluna benzer bir altyapıdır. Uygulamaların veri yolu üzerinden belirli haberleşme protokolleriyle birbirleriyle konuşabilmelerini sağlar. Platform veya dillerden bağımsızdır.

Page 14: sunum_Service Oriented Architecture (SOA)_off2007

ESB’nin SOA’daki rolü Rollerinin temelinde, servis tüketicilerinin ve sağlayıcılarının

bağlanmasını sağlayan altyapı yatar. ESB’nin asıl değeri, günümüzde kurumlara uygun servis seviyeleri ve yönetilebilirlik sağlamak ve ayrıca heterojen bir ortamda entegre olup çalışabilmektir.

ESB’lerin kabiliyetleri basit veri iletimi ve routing’den çok ötededir. Literatürde ESB’lerin tüm gerçekleştirebildiği tüm özellikleri bir sonraki slayttaki kabiliyet modelinde görebiliriz. Piyasada bulunan her ESB birbirinden farklı avantajlar sunabilir. Bu yüzden gereksinimleri karşılayacak bir ESB seçimi çok önemlidir.

Page 15: sunum_Service Oriented Architecture (SOA)_off2007

ESB Kabiliyet Modeli

*ESB ürünü sunan bazı firmalar.

Page 16: sunum_Service Oriented Architecture (SOA)_off2007

ESB ve diğer SOA Komponentlerinin RolleriESB, SOA içindeki tek altyapısal komponent değildir.

Senaryolar değişse degenel olarak aşağıdaki komponentler de yer alır: The Business Service Directory; mevcut servislerin

sınıflandırılmasında ve detaylandırılmasında rol oynar. The Business Service Choreography; iş süreçleri yaratmak

için servis etkileşimlerinin nasıl olacağını organize etmekte rol oynar.

The ESB Gateway; servislere kontrollü bir dış erişim noktası sağlar. Büyük şirketler bu komponenti genel olarak ESB’den ayrı tutarlar.

Page 17: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Nedir? SOA temelleri ile çalışan ve iş süreçlerini oluşturmaya,

entegre etmeye ve yönetmeye yarayan birleşik, kapsamlı bir pakettir. Ek olarak uçtan uca güvenlik ve metadata yönetimi sağlar.

Oracle SOA Suite 4 fonksiyonu içinde barındırır: Analytics Orchestration Service Virtualization & Mediation Connectivity

Her fonksiyonu için bu paket içerisinde belli ürünleri vardır.

Page 18: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri

Page 19: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri JDeveloper

Birleştirilmiş geliştirme ortamı sağlar. SCA* (Service Component Architecture) komponentleri yaratma

olanağı sağlar.

o *SCA: SOA bazlı uygulamalar yaratmak için kullanılan bir grup spesifikasyonlardır.

Page 20: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri BPEL Process Manager

İş süreçlerini tasarlamak ve çalıştırmak için kullanılan bir araçtır.

Desteklediği standartlar: BPEL, XML, XSLT, XPATH, JMS, JCA ve Web Servisleri.

JDeveloper bünyesinde tanımlanır ve dizayn edilir.

Page 21: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Service Bus

Hafif, ölçeklenebilir ve güvenilir bir ESB’dir. Heterojen servisler, legacy sistemleri, ERP’ler ve diğer

ESB’ler arasındaki bağlantıyı kurmak, aracılık yapmak ve yönetmek için dizayn edilmiştir.

Mesaj formatlarını çevirmek ve dönüştürmek için aracı rolünü oynar.

Entegrasyon teknolojisini ve güvenlik şablonlarını sunarak komponentler arasındaki gevşek bağlılığı sağlar.

Page 22: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Service Bus

Page 23: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Event Processing

Event processing uygulamalarını geliştirmek için zengin, rahatça ifade edilebilir bir ortam sağlar.

Gerçek zamanlı olarak kullanılan iş süreci örüntülerini ve trendleri saptar.

Page 24: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Business Rules

İş analistlerinin ve geliştirici olmayanların kolayca iş mantığını tanımlayabilmelerine ve düzenleyebilmelerine olanak sağlayarak süreçleri ve uygulamaları daha esnek hale getirir.

Page 25: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Web Services Manager

SOA etkileşimlerini kontrol etmek ve yönetmek içindir. Yeni veya var olan servislerin/uygulamaların üzerine bir

katman olarak güvenlik veya operasyon planları oluşturabilir.

Page 26: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Business Activity Monitoring (BAM)

İş süreçlerini ve servisleri izlemek için gerçek zamanlı olarak çalışan, etkileşimli, proaktif uyarılar sağlayan bir paneldir.

Page 27: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Managed File Transfer (MFT)

İçe/dışa güvenli dosya iletimi/alımı ve yönetimi sağlar. Teknik bilgiye sahip olmayanlar için kolay kullanıma

sahiptir. Kapsamlı rapor kabiliyetleri sayesinde hızlı bir şekilde

dosya iletimi/alımı durumu ile ilgili bilgi alınabilir. SSH/FTP ters proxy kullanarak veriyi DMZ(demilitarized

zone) içerisinde koruyabilir.

Page 28: sunum_Service Oriented Architecture (SOA)_off2007

Oracle SOA Suite Komponentleri Oracle Managed File Transfer Avantajları

Büyük dosyalar sistemi yavaşlatmaz/tıkamaz. MFT ile düzenlemeler sonucu bu dosyalar sadece gerekli sistemlere ve personele ulaşır.

Veri kayıplarını sıfıra indirir ve hassas verilerin dışarıya maruz kalması riskini minimize eder.

Dosya iletim problemlerini teşhis eder.

Page 29: sunum_Service Oriented Architecture (SOA)_off2007

Birleşik Paket Avantajları Tüm komponentlerin aynı runtime

environment ve IDE’de çalışması ve birbirleriyle sorunsuz haberleşiyor olmaları.

Tüm komponentlerin, paralel bir şekilde, aynı ortamda ve aynı temeller üzerinde geliştirilmiş olması.

Bu sayede yazılım mülkiyeti maliyetlerinde düşüşler olması.

Page 30: sunum_Service Oriented Architecture (SOA)_off2007

Choreography/Orchestration nedir? SOA’daki önemi nedir? İş mantığının altında yatan servislerin

içeriklerinden ve detayından bağımsız olarak sadece iş akışını belirtmek için kullanılan ve bu sayede kuruluşlara esneklik kazandıran işlemdir.

İş akışlarını belirtmek için standart olarak BPEL4WS (Business Process Execution Language for Web Services) kullanılır.

Page 31: sunum_Service Oriented Architecture (SOA)_off2007

Choreography/Orchestration nedir? SOA’daki önemi nedir? BPEL4WS kullanılarak tanımlanan bir iş süreci

özetle şunlardan oluşur; Birbirlerinden bağımsız iş basamakları, aktiviteler. Partner linkleri, süreçlerin dışarıdan ihtiyaç

duyduğu servisleri tanımlar. WSDL arayüzleri kullanılır.

İçlerinde mesajlar barındıran değişkenler aktiviteler arasında geçiş yaparak durum(state) belirtmeye yarar.

• Bu işlem için Oracle BPEL Process Manager kullanılabilir.

Page 32: sunum_Service Oriented Architecture (SOA)_off2007

SOA Yaşam Döngüsü 4 evreden oluşur. Döngüde oluşu sürekli bir

gelişim ve yönetimi ifade eder. Evreleri; Model evresi Montaj evresi Uygulama evresi Yönetim evresi

Page 33: sunum_Service Oriented Architecture (SOA)_off2007

SOA Yaşam Döngüsü Model evresi: İş analizlerini ve gereksinimlerin

toplanmasını kapsar. Böylece gereken süreçler modellenerek amaçları ve çıktıları öngörülür. Model sayesinde ihtiyacın karşılanabildiğine dair bilgi elde edilir ve daha sonra kalite ölçümleri için bir temel görevi görür.

Montaj evresi: Modellenen süreçte ihtiyaç olarak belirlenen ve elde olan varlıklar servisler olarak sunulur ve test edilir. Tüm servisler hazır olunca choreography/orchestration yöntemleriyle iş süreci olarak entegre edilirler.

Page 34: sunum_Service Oriented Architecture (SOA)_off2007

SOA Yaşam Döngüsü Uygulama evresi: Bu evrede run-time environment,

istenen servis kalitesi ve güvenlik seviyelerine erişebilmek adına yapılandırılabilir. Kritik süreçlerin yürütülebilmesi için ölçeklendirmeler ve optimizasyonlar yapılabilir.

Yönetim evresi: Bu evrede servis varlıkları, bulunabilirliği ve erişilebilirliği, yanıt süreleri ve servisler üzerinde versiyon kontrolleri gibi konularda yönetim sağlanır. Bu evrenin önemli bir rolü ise süreçlerin anahtar performans göstergelerini izlemek ve buna göre gelecekte oluşabilecek problemleri öngörebilmektir. Bu geri bildirim model evresine iletilerek sürecin geliştirilmesini sağlar.

Page 35: sunum_Service Oriented Architecture (SOA)_off2007

Kaynakça http://stackoverflow.com/questions/2026523/what-is-soa-in-plain-english http://www.indiawebdevelopers.com/resource_center/articles/soa.html http://www.slideshare.net/Zubin67/soach1ppt https://msdn.microsoft.com/en-us/library/aa480021.aspx#aj1soa_topic1 http://www.tutorialspoint.com/webservices/web_services_security.htm http://www.redbooks.ibm.com/redbooks/pdfs/sg246346.pdf https://www.opengroup.org/soa/source-book/soa/soa_ea.htm http://www.ibm.com/developerworks/webservices/tutorials/ws-soa-ibmcertified/

ws-soa-ibmcertified.html http://www.slideshare.net/PeterREgli/soap-wsdl-uddi https://www.mulesoft.com/resources/esb/what-esb http://www.oracle.com/us/technologies/soa/oracle-soa-vs-ibm-soa-345791.pdf