Change Font Size

Change Screens

Change Profile

Change Layouts

Change Direction

Change Menu Styles

Cpanel
Pazartesi, 13 Aralık 2010 14:40

SOA Nedir?

Yazan&Gönderen  Yusuf Arslan
Bu Öğeyi Derecelendir
(1 Oy)

 

SOA seminerlerime katılanlardan gelen yoğun istek üzerine bu seminerlerde anlatttıklarımı derleyerek bir makale haline getirdim. İşte karşınızda günümüzün popüler mimarisi SOA.

Yazılım mimarilerine güncel ve popüler bir yaklaşım: Herşey bir gün servis olacak! 

Günümüzde, mevcut rekabet ortamının getirdiği baskı nedeniyle, pazarda etkin kalabilmek ve çabuk değişen koşullara hızlı adapte olabilmek için kurumlar iş modellerini sürekli ve radikal bir şekilde değiştiriyorlar. Kurumların iş modellerinin ve süreçlerinin her zaman yenilikçi ve güncel olması zorunluluğu, bu yapıların esnek olmasını da kaçınılmaz hale getirdi.

Bilişim teknolojilerinin hızlı ve inanılmaz gelişiminin de bütün bu değişimde etkisi çok büyük olduğundan, artık hedef iş ve teknolojinin birbirlerine entegre olarak bir bütün haline gelmeleri ve bu şekilde değişen koşullara karşı kazanılacak olan esneklik.

İşte tam bu noktada Servis Odaklı Mimari (Service Oriented Architecture - SOA) yaklaşımı karşımıza çıkıyor. Bilişim altyapımızı şekillendirecek olan bu model, iş ve teknolojinin birbirlerine kenetlenmesini, iş modellerinin teknolojinin desteğiyle esnek ve kolay değişebilir hale gelmelerini sağlıyor.

SOA’yı tanımlamadan önce sürekli bahsettiğimiz bazı terimleri açıklamakla başlayalım.

Öncelikle, servis nedir?
Servis, yinelenen bir iş adımıdır. Bir bankada müşteri bakiyesi sorgulama veya hesap açma işlemi gibi… Burada yazılım veya teknolojiye takılmamak gerek. Söz ettiğimiz servis aslında kurumlarda günlük işleri ve iş akışını oluşturan, genellikle yinelenen, küçük iş parçacıklarından başka bir şey değil.

Servis odaklı olmak ise iş uygulamalarımızın küçük iş servislerinin birbirlerine bağlanarak oluşturulması demektir. Yine teknolojiden değil bir iş mantığından, ve iş süreçlerinin bu mantığa göre düşünülüp servis parçalarının birleştirilmeleriyle oluşturulmalarından söz ediyoruz.
Peki teknoloji bunun neresinde?

Servis odaklı mimari dediğimizde artık teknolojiden söz edebiliriz. Özetle SOA, servis odaklı iş mantığının gerçekleştirilmesini sağlayacak olan bilgi teknolojileri mimarisidir.
İşimizi destekleyen uygulamayı yaratmak aslında sadece servisleri gerektiği gibi birleştirmek olduğundan, bu şekilde geliştirilen uygulamalara da bileşik uygulama diyoruz.

Artık SOA’nın genel tanımına bir göz atabiliriz:

 “SOA, iş fonksiyonlarının birlikte çalışmayı destekleyecek esneklikte ve tekrar kullanımı geliştirecek şekilde, ‘iyi-tanımlanmış’ ve ‘gevşek-bağlı’ bileşenler halinde oluşturulduğu bir sistem mimarisidir. ”

Hemen açıklayalım.
İş fonksiyonlarının küçük servisler haline getirilmesinden bahsetmiştik. İşte bize esneklik sağlayacak olan nokta burası. Bu servisler bir kere hazırlandıktan sonra birçok yerde yeniden kullanılabilirler.

Elimizde bir lego setimiz olduğunu düşünün. Bu setle bir ev yaptık. Daha sonra bu evimiz bize küçük geldi ve buna bir kat daha çıkmak gerekti. Lego-ev’imizin sadece üst tarafındaki gereken parçalarını söküp bazılarının da yerlerini değiştirdik, gereken yeni parçaları da ekledik ve evimiz hazır… Evimiz lego bloklarından oluşmasaydı herşeyi ‘sil-baştan’ yapmamız gerekecekti.
İşte uygulamalarımız da aynı bu mantıkla var olanın etkin yeniden kullanımıyla birleştirilerek oluştuğundan değişimi kolay bir hale gelir.

 

  s1

 

Her servis belli bir tanımlanmış standart arayüz sağlar. Bu arayüz servisin ne olduğuna ve nasıl kullanıldığına dair indeks bir bilgi içerdiğinden, servis, sisteme ait bir bileşen olarak gerektiğinde gereken yerde sisteme entegre edilmek üzere raflardaki yerini alır. Arayüzler belirli standartlara dayalı olarak (WSDL gibi) tanımlandığından tüm platform ve sistemler tarafından da algılanabilirler.

Servisler, işin akışına ve yapısına göre zayıf bağlarla birleştirilirler (bileşik uygulama). Burada zayıf bağlardan bahsetmemizin sebebi, bu servislerin ileride birbirlerinden rahatlıkla kopartılıp başka bileşenlerle birleştirilerek yeniden kullanılabilmeleri.
SOA’nın getirdiği esnek altyapıyla iş ve teknoloji, güncel ihtiyaçlara daha kolay yanıt verir hale gelir ve böylece kurumların rekabet yarışını zaman zaman geriden takip etmelerini hatta yarış dışı kalmalarını engeller.

İş süreçlerinde küçük bir değişiklik yapmak için insanüstü güç harcıyorsak bu yarışta tutunmamız da tahmin edersiniz ki çok daha zor olacaktır.

Her bir servisin bir lego parçası olduğunu düşündüğümüz senaryoda legodan oluşan bir eve yeni bir kat çıkmak ne kadar zor olabilir? Ya da birkaç kırmızı bloğu söküp yerine mavilerini takmak? Süreçler parçalı olmasalardı, bir bütün halinde bulunsalardı, yeni eklentileri ekleyip, eskileri çıkartıp, kalanları rahatlıkla birleştirebilir miydik?

SOA’nın bize getirdiği yararlardan birisi de çoklu platform entegrasyonudur.

Günümüzde birçok farklı platform (linux, windows vb.) ve uygulama (java, .net vb.) bilişim sektöründe yaygın olarak kullanılıyor. Bu da tüm bu platform ve uygulamaların sorunsuz bir şekilde birbirleriyle ‘konuşabilmeleri’ ve birlikte çalışabilmeleri ihtiyacını doğuruyor.
SOA yapısında, farklı platformlar, farkı ürünler ve farklı uygulamaları içeren servisler birbirleriyle standartlar yardımıyla entegre olup birlikte bir bütünü oluşturabilirler. SOA ile platform ve marka bağımsız bileşik uygulamalar yaratmanız mümkün.

 

  s2

 

Voltran’ı hepimiz hatırlarız. Özellikle 80’li yıllarda çocuk olanlar. Beş robot ve pilotları tek başlarına düşmanlarla savaşır, işin içinden çıkamayınca da “Voltran’ı oluşturalım” diyerek birleşir, yenilmez bir robotu oluştururlardı. İşte SOA! Her bir robot aslında tek başına bir servis, Voltran da entegrasyonun ta kendisi. 

SOA’nın ne olduğundan kavramsal olarak bahsettik. Biraz da işin teknik olarak nasıl uygulandığından bahsedelim.
SOA Yaşam Döngüsü mantığına göre, SOA projelerinde dört ana faz vardır. Modelleme, birleştime, devreye alma ve yönetme. Her bir fazın çıktısı diğer faza girdi sağlar ve bu dört faz bir yaşam döngüsü olarak çevrimlerle devam eder.

  

 

s3

 

Modelleme aşamasında çalışanlar iş kullanıcıları ve analistlerdir. Bunlar gerektiği kadar teknik bilgiyle donanmış, asıl işi iş süreçlerinin modellenmesi olan, işin işleyişini bilen ve dokümante edecek olan profesyonellerdir. Bu aşamada gereksinimler belirlenir, iş süreçleri ve parçaları tasarlanır, modellenir ve uygun olup olmadığına karar vermek için simüle edilir.

Birleştirme aşamasında çalışanlar teknik kökenli ‘entegrasyon geliştiricisi’ rolüyle tanımladığımız yazılımcılardır. Modelleme aşamasında üretilen modeller birleştiricilere ortak bir formatta aktarılır ve modeli çalışan servisler haline getirmek, kodlarını yazmak bu geliştiricilerin görevidir.

Devreye alma aşamasında geliştirilen servisler ve süreçler çalıştırılır. Burada kullanıcıların da devreye girmeleriyle etkileşim ve entegrasyon gerçekleştirilir.

Yönetim aşaması devreye alınan uygulama, servis ve süreçlerin çeşitli metriklere dayanarak izlenmesi, yorumlanması ve yönetilmesi aşamasıdır. Bu aşamada iş analistleri ve birimleri, entegrasyon geliştiricilerle ortak çalışırlar. Toplanan veriler bir sonraki çevrimde modelleme aşamasında girdi olarak kullanılır. Metriklere göre alınan sonuçlar modellemede değişiklik veya yeni modeller üretilmesini gerektiriyorsa yeni bir çevrim başlar. 

SOA’yı uygulamak da tıpkı yaşam döngüsü gibi adım adım gerçekleşir. Önce proje tanımlanır ve ilk süreç modellenir. Daha sonra proje uygulanır ve çalıştırılır. Çalışan süreç incelenip, iyileştirmeler gerekiyorsa belirlenir ve yeni proje tanımlanır. Burada yeni proje eski sürecin yeniden modellenmesi olacağı gibi yepyeni bir süreç de olabilir.

SOA yolunda son birkaç tavsiye vermek gerekirse…

- İletişim SOA projelerinin geliştirilme sürecinde çok önemlidir. İş analistleri ve entegrasyon geliştiriciler beraber çalışmalıdır çünkü SOA bir takım sporudur.
- Hangi yolda ilerleneceği, süreçler, platformlar ve altyapı sağlam bir başlangıç için mutlaka önceden düşünülmelidir.
- Başlarken elde olanlar incelenip varolanların ne kadar kullanılabileceğine bakmak maliyetleri düşürmek ve zamandan tasarruf için çok önemlidir. ‘Hepsini yıkıp yeniden yapalım’ yaklaşımı çözüm olamaz.

 

Artık işinizi oluşturan adım ve parçaları birer servis olarak tanımlamanın tam zamanı!

ardenagopyan.com

Son Düzenleme Pazartesi, 13 Aralık 2010 23:15
Yusuf Arslan

Yusuf Arslan

Oracle Open Source

1985 Tokat/Reşadiye doğumluyum.İlk-orta-lise hayatını Amasya/Suluova ilçesinde geçirdim.Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerime Oracle,SAP alanlarında danışmanlık vermek üzere devam etmekteyim. Kullandığım,bildiğim teknolojiler ve diller; SAP BO Oracle BI Applications Oracle Data Mining Oracle BI Reports(http://www.iski.gov.tr/web/statik.aspx?KID=1000717) Oracle Data Integrator Oracle BI Publisher(XML Publisher) Oracle Database 10g Oracle Mapviewer PL/SQL,Java,Oracle JDeveloper,Oracle Forms-Reports,C# Data warehouse process optimization Database system implementation Using encoding for security systems Software development, test and deployment Presentation and communication skills Bu adreslerden de bana ulaşabilirsiniz, [email protected] https://datawarehouse.gen.tr/ http://www.arslanyusuf.blogspot.com/ http://yusufarslaneng.blogspot.com/ http://twitter.com/yusars http://tr.linkedin.com/pub/yusuf-arslan/27/35b/57b

Website: arslanyusuf.blogspot.com/ E-posta: Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir

You are here Kategoriler ORACLE SOA Nedir?