Yazılım Mühendisliği SOA Servis Odaklı Mimari (Service Oriented Architecture)

9,694 views

Published on

Published in: Technology

Yazılım Mühendisliği SOA Servis Odaklı Mimari (Service Oriented Architecture)

  1. 1. Emrah KAHRAMAN Aralık 2010 Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği
  2. 2. <ul><li>SOA Nedir? </li></ul><ul><li>Neden SOA? </li></ul><ul><li>Yeniden Kullanılabilir Bileşen Olarak Servisler </li></ul><ul><li>Servis Mühendisliği </li></ul><ul><li>Servislerle Yazılım Geliştirme </li></ul>
  3. 3. <ul><li>Programcılar bileşen tabanlı mimariyle yeniden kullanılabilir kod parçaları meselesini çözmüşlerdi. Bir kere yazıp, birçok yerde kullanabileceğiniz küçük birimler oluşturuyordu. </li></ul>
  4. 4. <ul><li>Dağıtık bileşen mimarileri doğdu. Yine bir kere yazdınız ama bu sefer birçok yere değil, tek yere koydunuz. Yine birçok uygulama, sizin bileşeninizi kullandı. &quot;Application Server&quot; icat oldu. </li></ul>
  5. 5. <ul><li>Yazdığımız bileşen aynı cins platformlarda çalışıyor ama farklı bir platformda karşılaştığımızd a elimiz ayağımıza dolaşıyordu. </li></ul>
  6. 6. <ul><li>SOA (Service Oriented Architecture) </li></ul>
  7. 7. <ul><li>SOA, bir çok uygulamanın kendi modüllerini veya fonksiyonlarını ki bunlara &quot;Servis&quot; diyoruz başka uygulamalar tarafından kullanılacak şekilde tasarlandığı bir mimari kavramdır. </li></ul>
  8. 8. <ul><li>Farklı servis sağlayıcılardan gelen servisler farklı bilgisayarlarda çalıştırabilir. </li></ul><ul><li>Servislerin bilgi değişimini ve iletişimini desteklemek için geliştirilmiş standart protokollere sahiptir. </li></ul>
  9. 10. <ul><li>• Servisler keşfedilebilir </li></ul><ul><li>• Servisler kendini içerebilir ve modülerdir </li></ul><ul><li>• Servisler birlikte çalışabilir </li></ul><ul><li>• Servisler düşük bağımlıdır </li></ul><ul><li>• Servisler ağda adreslenebilir bir arayüze sahiptir </li></ul><ul><li>• Servisler birleştirilebilir </li></ul><ul><li>• SOA değişiklikleri destekler </li></ul>
  10. 11. <ul><li>Servisler dilden bağımsızdır </li></ul><ul><li>Eski sistemlere yapılan yatırımlar korunmuş olur </li></ul><ul><li>Organizasyonlar arası bilgi işlem basitleştirilmiş bilgi alışverişi yoluyla kolaylaştırılmaktadır </li></ul>
  11. 12. <ul><li>Maliyet </li></ul><ul><li>Firmaların 97%’ si SOA’ yı proje maliyetlerini düşürmek üzere planladılar. </li></ul><ul><li>100% iş esnekliği gözlemlendi. </li></ul><ul><li>51% gelir artışı gözlemlendi. </li></ul>
  12. 13. <ul><li>SOA Projelerinin 5 temel sonucu : </li></ul><ul><li>-Artan kullanıcı memnuniyeti </li></ul><ul><li>-Operasyonel verimlilik </li></ul><ul><li>-Rakiplere karşı avantaj sağlama </li></ul><ul><li>-Bilgi işlem maliyetlerindeki azalm a </li></ul><ul><li>-İş yaşam döngüsünün kısalması </li></ul>
  13. 15. <ul><li>SOAP </li></ul><ul><ul><li>Servis iletişimini destekleyen bir mesaj alışveriş standartıdır. </li></ul></ul><ul><li>WSDL (Web Service Definition Language) </li></ul><ul><ul><li>Bu standart bir servis arayüzüne ve bu arayüze bağlanılmasına izin verir. </li></ul></ul><ul><li>UDDI </li></ul><ul><ul><li>Varolan bir servisi keşfetmek için kullanılan bir servis belirtimindeki bileşenleri tanımlar. </li></ul></ul><ul><li>WS-BPEL </li></ul><ul><ul><li>Servislerin birleştirilmesini tanımlamada kullanılan iş akışı dilleri için bir standarttır. </li></ul></ul>
  14. 16. <ul><li>Yazılım geliştirmede servis odaklı yaklaşımı düşünerek varolan yazılım mühendisliği yaklaşımlarını evrimleştirir. </li></ul><ul><li>Servis yönelimli yazılım geliştirme yaklaşımı </li></ul><ul><li>Servis Mühendisliği . Güvenilir , yeniden kullanılabilir servislerin geliştirilmesi </li></ul><ul><li>Servislerle yazılım geliştirme . </li></ul>
  15. 17. <ul><li>Bir servis: </li></ul><ul><ul><li>Düşük bağımlı, dağıtık ve programlı erişilebilen yeniden kullanılabilir yazılım bileşenidir.Bir web servis xml tabanlı protokoller ve internet standartları kullanılarak erişilen servistir. </li></ul></ul><ul><li>Bileşen Tabanlı Yazılım Mühendisliğinde tanımlanan bir bileşen ile bir servis arasındaki kritik ayrım servislerin bağımsız olmasıdır. </li></ul><ul><ul><li>Servisler XML de ifade edilen mesajlarla mesaj tabanlı iletişime inanır. </li></ul></ul>
  16. 20. <ul><li>Web servis, işlemleri, giren ve çıkan mesaj formatları, ağ ve port adresleri gibi bilgileri tanımlar. </li></ul><ul><ul><li>Servisin çalıştırılacağı bir URI ye sahiptir. </li></ul></ul>
  17. 21. <ul><li>XML ile yazılmış bir dökümandır.Döküman bir web servis tanımlar.Servisteki metodları ve konumu gösterir. </li></ul>
  18. 25. <ul><li>Servis odaklı uygulamalarda yeniden kullanılabilirlik için servis geliştirme sürecidir. </li></ul><ul><li>Servis farklı sistemlerde kullanılabilen soyutlanmış yeniden kullanılabilir olarak tasarlanır. </li></ul><ul><li>Servis Mühendisliği </li></ul><ul><ul><li>Aday Servis Tanımlanması </li></ul></ul><ul><ul><li>Servis Tasarımı </li></ul></ul><ul><ul><li>Servis Gerçekleştirimi </li></ul></ul>
  19. 27. <ul><li>3 Temel Servis Tip vardır </li></ul><ul><ul><li>Utility services :Farklı iş süreçleri tarafından kullanılan genel işlevselliğin gerçekleştirilmesidir. </li></ul></ul><ul><ul><li>Business services : Özel bir iş fonksiyonuyla ilişkilendirilmiş Servisler </li></ul></ul><ul><ul><li>Koordinasyon Servisleri: Birleşik süreçleri destekleyen servisler. </li></ul></ul>
  20. 29. <ul><li>Diğer firmalardan sipariş almak için bir servis katalogu sunulur. </li></ul><ul><li>Servis Gereksinimleri </li></ul><ul><ul><li>Herbir istemci için katalogun özel versiyonu oluşturulabilmeli </li></ul></ul><ul><ul><li>Katalog indirilebilir olmalı </li></ul></ul><ul><ul><li>Şartname ve 6 maddelik bir fiyat karşılaştırma olmalı </li></ul></ul><ul><ul><li>Gezme ve arama kolaylığı sağlanmalı </li></ul></ul><ul><ul><li>Siparişlerin tahmini teslim süresini veren bir fonksiyon sağlamalı </li></ul></ul>
  21. 30. <ul><li>Güvenilir organizasyonların çalışanlarına erişim kısıtlı olmalı </li></ul><ul><li>Her bir organizasyon için sunulan yapılandırma ve fiyat gizli olmalıdır </li></ul><ul><li>Katalog saniye başına 10 dan fazla isteğe cevap verebilmeli </li></ul>
  22. 32. <ul><li>Mesaj alışverişini ve servisle ilişkili operasyonları içerir. </li></ul><ul><li>Servis durum bilgisi mesajlara dahil edilmeli </li></ul>
  23. 33. <ul><li>Mantıksal Arayüz Tasarımı </li></ul><ul><ul><li>Servis gereksinimleriyle başlanır ve servislerle ilişkili parametreler ve operasyon isimleri tanımlanır. </li></ul></ul><ul><ul><li>İstisnalar tanımlanmalıdır. </li></ul></ul><ul><li>Mesaj Tasarımı </li></ul><ul><ul><li>Giriş ve çıkış mesajlarının yapısının tasarlanmasıdır </li></ul></ul><ul><ul><li>UML gibi XML den daha soyut temsil edilerek gösterilmeli. </li></ul></ul>
  24. 34. <ul><li>WSDL </li></ul><ul><ul><li>WSDL, XML tabanlı web servisleri tanımlamak ve yerini belirtmek için tanımlanmış dildir. WSDL, W3C standardıdır. </li></ul></ul>
  25. 37. <ul><li>Servisler bir iş akış dili veya standart programlama dili kullanarak programlanır. </li></ul><ul><li>Servisler giriş mesajı oluşturulur ve çıkış mesajı ile beklenen değerler aynı mı kontrol edilir. </li></ul><ul><li>Yayınlama : Bir web sunucusu kurulur ve UDDI kullanılarak servis yayınlanmasıyla ilgilenir. </li></ul>
  26. 38. <ul><li>UDDI, şirketlerin web servisler i kayıt edebildiği ve arayabildiği dizin servisidir. </li></ul><ul><li>UDDI Kurum Kayıt Servisi (UDDI Business Registry) kurum ve web servisleri bilgilerini saklayan sunuculardır. Bu sunucular servis sağlayıcılarından gelen bilgilerini kendi veritabanlarına kayıt ederek diğer kurumların erişimine açar. Örnek kurum kayıt sunucuları uddi.microsoft.com ve uddi.ibm.com ‘dur. </li></ul>
  27. 39. <ul><li>Önemli uygulama servisleri eski sistemlerde gömülü olan fonksiyonaliteye erişim sağlar. </li></ul><ul><li>Eski sistemler servis gerçekleştirim maliyetinin azaltılmasında ve geniş fonksiyonalite de tercih edilir. </li></ul><ul><li>Harici uygulamalar servis arayüzleri üzerinden bu fonksiyonaliteye erişebilir. </li></ul>
  28. 40. <ul><li>Varolan servisler yeni birleşik servisler ve uygulamalar oluşturulmak için yapılandırılabilir ve birleştirilebilir. </li></ul><ul><li>Servislerin birleştirilmesi için sıklıkla iş akışı kullanılır </li></ul><ul><ul><li>İş akışları aktivitelerin mantıksal sıralanmasıyla birlikte tutarlı bir iş süreci modelidir. </li></ul></ul><ul><ul><li>Örneğin bir seyahat rezervasyon servisi uçuş iznini, araç kiralamayı ve otel rezervasyonunun koordinasyonunu sağlar. </li></ul></ul>
  29. 43. <ul><li>WS-BPEL iş akış belirtimi için bir XML standartıdır. Ancak WS-BPEL açıklamaları uzun ve okunaksızdır. </li></ul><ul><li>BPMN gibi grafiksel iş akışı gösterimleri daha okunabilirdir ve WS-BPEL onlardan elde edilebilir </li></ul><ul><li>Her bir organizasyon için ayrı iş akışları oluşturulur ve mesaj değiştokuşu yoluyla bağlanılır </li></ul>
  30. 44. VectorProcessingService - SetupComputationService.
  31. 45. <ul><li>Test etmenin amacı fonksiyonel ve fonksiyonel olmayan gereksinimlerin yerine getirildiğinin gösterilmesi ve hatalarının bulunmasıdır. </li></ul><ul><li>Black boxes yani harici servislerin test edilmesi zordur. Programın koduna dayanan test teknikleri kullanılamaz. </li></ul>
  32. 46. <ul><li>Harici servisler servis sağlayıcı tarafından değiştirilebilir böylece tamamlanmış olan testler geçersiz olur. </li></ul><ul><li>Servisin fonksiyonel olmayan davranışı öngörülmez çünkü yüklenmeye bağlıdır. </li></ul><ul><li>Eğer servislerin kullanımı için ücret ödeniyorsa test edilmesi pahalıdır. </li></ul>
  33. 48. <ul><li>Servis Odaklı Mimari Ali Beklen Maltepe Üniversitesi Fen Bilimleri Enstitüsü Bilgilisayar Mühendisliği Ana Bilim Dalı </li></ul><ul><li>http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html </li></ul><ul><li>http://soa-tr.com </li></ul><ul><li>http://www.evcil.net/post/soa-nedir-hoca/ </li></ul><ul><li>http://www.w3schools.com </li></ul><ul><li>http://www.service-architecture.com </li></ul><ul><li>Ian Sommerville 2006 Software Engineering, 8th edition </li></ul><ul><li>http://burakisikli.wordpress.com/2009/07/04/web-servicesweb-servis-nedir/ </li></ul>

×