SOA (Hizmet Odaklı Mimari)

menu icon

SOA (Hizmet Odaklı Mimari)

Uygulama geliştirme ve entegrasyonu evriminde önemli bir aşama olan SOA ile tanışın.

SOA (hizmet odaklı mimari) nedir?

SOA, veya hizmet odaklı mimari, yazılım bileşenlerini hizmet arayüzleri aracılığıyla yeniden kullanılabilir hale getirmenin bir yolunu tanımlar. Bu arayüzler, her seferinde derin entegrasyon gerçekleştirmek zorunda kalmadan yeni uygulamalara hızla dahil edilebilecek şekilde ortak iletişim standartlarını kullanır.

Bir SOA içindeki her hizmet, eksiksiz ve bağımsız bir iş fonksiyonunu (bir müşteri kredisinin kontrolü, aylık kredi ödemesinin hesaplanması veya konut kredisi başvurusunun işleme alınması gibi) yürütmek için gerekli olan kodu ve veri entegrasyonlarını kapsar. Hizmet arabirimleri gevşek kavrama sağlar, yani entegrasyonun nasıl uygulandığı hakkında çok az bilgiyle veya hiç bilgi olmadan çağrılabilirler. Hizmetler, verileri okuma veya değiştirme isteği göndermek için SOAP (basit nesne erişimi protokolü)/HTTP veya JSON/HTTP gibi standart ağ protokolleri kullanılarak ortaya çıkarılır. Hizmetler, geliştiricilerin bunları hızlı bir şekilde bulmasını ve yeni uygulamaları düzenlemek için hizmetleri yeniden kullanmalarını sağlayacak şekilde yayınlanır.

Bu hizmetler sıfırdan oluşturulabilir, ancak genellikle eski kayıt sistemlerindeki işlevlerin hizmet arayüzleri olarak açığa çıkarılmasıyla oluşturulur.

Bu şekilde, SOA son birkaç yıldır uygulama geliştirme ve entegrasyon sürecinin önemli bir aşamasını temsil eder. SOA 1990'ların sonlarında ortaya çıkmadan önce, bir uygulamayı başka bir sistemde bulunan verilere veya fonksiyonelliğe bağlamak, geliştiricilerin her yeni geliştirme projesi için yeniden yaratmak zorunda olduğu, noktadan noktaya kompleks bir entegrasyon gerekliydi. Bu fonksiyonların SOA ile ortaya çıkarılması, her seferinde derin entegrasyonu yeniden yaratma ihtiyacını ortadan kaldırır.

Hizmet odaklı mimari ve daha yeni mikro hizmetler mimarisi birçok ortak yönü olsa da aslında aralarında çok yakın bir ilişki yoktur ve farklı kapsamlarda çalışırlar (bu makalede daha sonra değinilecek).

ESB nedir?

ESB veya kurumsal hizmet veri yolu, merkezi bir bileşenin arka uç sistemlerle entegrasyonu gerçekleştirip bunların hizmet arayüzleri olarak kullanabilmesini sağlayan bir modeldir. Veri modellerinin çevirisini, derin bağlanırlığı, yönlendirmeyi ve birden çok isteğin potansiyel bileşimini gerçekleştirir ve yeni uygulamalar tarafından yeniden kullanılması için tek bir hizmet arayüzü olarak sunar. ESB modeli genellikle yukarıdaki yeteneklere uygun, özel olarak tasarlanmış bir entegrasyon çalıştırma zamanı ve araçları kullanılarak uygulanır ve mümkün olan en iyi üretkenliği sağlar.

ESB olmadan bir SOA uygulanması teorik olarak mümkündü, ancak uygulama sahiplerinin her biri, hizmet arayüzlerini açığa çıkarmanın kendine özgü yolunu bulmalıydı; bu da (arayüzler sonunda yeniden kullanılabilir olsa bile) çok fazla iş olmakla birlikte gelecekte ciddi bir bakım zorluğu yaratır. Aslında ESB'ler nihayetinde bir SOA uygulamasının fiili unsuru olarak düşünüldüğünden iki terim bazen eş anlamlı olarak kullanılır ve bu durum bir karışıklık yaratır.

"ESB'ye (Kurumsal Hizmet Veri Yolu) Giriş" makalesini okuyarak daha fazla bilgi edinebilirsiniz.

SOA'nın avantajları

Daha önceki mimarilerle karşılaştırıldığında SOA, kuruluşa önemli avantajlar sunar:

  • Daha yüksek iş çevikliği; pazara daha hızlı sunma: Her yeni geliştirme projesiyle yeniden yazma ve yeniden entegrasyon yerine yeniden kullanılabilir hizmet arayüzlerinden uygulama bir araya getirme verimliliği, geliştiricilerin yeni iş fırsatlarına yanıt olarak uygulamaları çok daha hızlı oluşturmasına olanak tanır.
  • Yeni pazarlarda bilindik, miras işlevlerden yararlanabilme: İyi yapılandırılmış bir SOA, geliştiricilerin bir bilişim platformunda ya da ortamında 'kilitli kalan' işlevselliği kolayca alıp yeni ortamlara ve pazarlara ulaştırmalarını sağlar. Örneğin birçok şirket, işlevselliği anabilgisayar tabanlı finansal sistemlerden web ortamına sunmak için SOA'yı kullanmakta, bu da müşterilerinin eskiden yalnızca şirket çalışanları ya da iş ortaklarıyla doğrudan etkileşimleri yoluyla erişilebilen süreçlere ve bilgilere kendilerinin ulaşmalarını sağlıyor.
  • İşletme ile BT arasında geliştirilmiş işbirliği: Bir SOA içinde hizmetler, iş terimleriyle ('sigorta fiyat teklifi oluşturma' veya 'sermaye ekipman yatırım getirisi hesaplama' gibi) tanımlanabilir. Bu, iş analistlerinin daha iyi bir sonuç sağlayacak, bir hizmetle tanımlanan iş süreci kapsamı veya bir sürecinin değiştirilmesinin işe etkisi gibi önemli içgörüler üzerinde geliştiricilerle daha etkin bir şekilde çalışmalarını sağlar.

SOA Örnekleri

2010'a kadar SOA uygulamaları, hemen her sektörde lider şirketlerde tüm hızıyla gidiyordu. Örneğin:

  • Delaware Electric, daha önce birbiriyle etkileşimi olmayan sistemlerin entegrasyonu için SOA'yı kullandı ve 5 yıllık, devlet himayesindeki elektrik fiyatları sabitlemesi sürecinde kuruluşa mali açıdan yardımcı olan, geliştirme verimliliği sağladı.
  • Cisco, sipariş süreçlerini Cisco'nun bölünmelerinin, satın aldığı şirketlerin ve iş ortaklarının kendi web sitelerine dahil edebildiği hizmetler şeklinde sunarak ürün sipariş deneyimini tüm ürünler ve kanallar genelinde tutarlı hale getirmek için Hizmet Odaklı Mimariyi (SOA) kullanmaya başladı.
  • Philadelphia Independence Blue Cross (IBC), hasta verileriyle ilgilenen IBC müşteri hizmetleri temsilcileri, hekimlerin ofisleri, IBC web sitesi kullanıcıları gibi farklı bileşenlerin aynı veri kaynağıyla, yani "doğrunun tek bir versiyonuyla" çalışmasını sağlamak için SOA'yı devreye aldı.

SOA ve mikro hizmetler karşılaştırması

Uzmanlar, SOA ve mikro hizmetler karşılaştırması yaparken ve aralarındaki ilişkinin inceliklerini ortaya çıkarırken binlerce basılı ve dijital sayfayı dolduracak bilgi ortaya çıktı. Bu makalenin amaçları doğrultusunda, ikisi arasındaki en önemli farklar bileşenlerin birlikteliği ve kullanım kapsamıdır:

  • SOA, kurumsal düzeyde bir kavramdır. Mevcut uygulamaların, her biri bir iş fonksiyonuna karşılık gelen, kuruluşun bir bölümündeki uygulamaların diğer uygulamalardaki fonksiyonları yeniden kullanmasını sağlayan, gevşek eşlenmiş arayüzler üzerinden açığa çıkarılmasına olanak tanır.
  • Mikro hizmetler mimarisi, uygulama kapsamında bir kavramdır. Tek bir uygulamanın içindekilerin bağımsız olarak değiştirilebilen, ölçeklenebilen ve yönetilebilen küçük parçalara bölünmesini sağlar. Uygulamaların birbiriyle olan etkileşimini tanımlamaz, bunun için SOA ile sağlanan hizmet arayüzlerinin kurumsal kapsamına dönmek gerekir.

Mikro hizmetler mimarisi sanallaştırma, bulut bilişim, Çevik geliştirme uygulamaları ve DevOps ile ortaya çıktı ve bu kavramlarla birlikte ivme kazandı. Bu bağlamlarda mikro hizmetlerin sunduğu çoğu avantaj, bileşenlerin tam olarak ayrılmasından kaynaklanır, bu sayede aşağıdaki alanlarda kolaylık ve iyileştirme sağlanır:

  • Geliştirici çevikliği ve verimliliği: Mikro hizmetler, geliştiricilerin uygulamanın geri kalan kısmını yakalamadan bir bölümüne yeni teknolojiler dahil etmelerini sağlar. Tüm bileşenler diğerlerinden bağımsız olarak değiştirilebilir, test edilebilir ve devreye alınabilir, bu da yineleme döngülerini hızlandırır.
  • Ölçeklenebilirlik: Mikro hizmetler, bulut ölçeklenebilirliğinden en iyi şekilde yararlanabilir; bir bileşen, iş yükü taleplerine mümkün olan en yüksek hızda yanıt ve bilişim kaynaklarının en verimli şekilde kullanımı için diğerlerinden bağımsız olarak ölçeklenebilir.
  • Dirençlilik: Yine, bağlaşım önleme sayesinde, bir mikro hizmetin başarısızlığı diğerlerini etkilemez. Her bir mikro hizmet, diğer bileşenleri ya da tüm uygulamayı en büyük ortak kullanılabilirlik gereksinimleri için riske atmadan kendi kullanılabilirlik gereksinimlerine göre çalışabilir.

SOA ve mikro hizmetler arasındaki farkları daha ayrıntılı şekilde öğrenmek için "SOA ve Mikro hizmetler karşılaştırması: Farkı nedir?" başlıklı makaleye bakın.

Mikro hizmetler mimarisinin çeviklik, ölçeklenebilirlik ve dirençlilikteki iyileştirmeleri uygulama tasarımına da sağlama potansiyeli olduğu gibi, bu teknikler entegrasyon için de uygulanabilir. Bu önemli; çünkü zaman içinde son derece merkezileştirilen ESB modeli ve ilişkili entegrasyon uzmanları ekibi bir noktada tıkanabilir. Mikro hizmet ilkelerine dayanarak ESB'yi daha ince detaylı, birbirinden bağımsız entegrasyonlara ayırabiliriz. Bu, çevik entegrasyonun arkasındaki güçlerden biri.

SOA ve IBM Cloud

Şirketiniz BT altyapısını hibrit bulut yaklaşımına doğru yönelttiğinde yüksek olasılıkla, SOA tabanlı olanlar da dahil, çeşitli iş yüklerini daha hafif ve esnek bulut devreye alma modellerine dönüştüreceksiniz. IBM, SOA'nın öncülerinden biridir ve IBM Cloud ürünleri ve hizmetleri mevcut SOA yatırımlarınızdan yararlanarak Bulut ortamına kadar genişletebilir.

Bir sonraki adımı atın:

Temel uygulama veya veritabanınızın bulunduğu yerden bağımsız olarak farklı kanallarda hizmetleri kullanılabilir hale getirme yeteneği sağladığından SOA, kuruluşunuzun uygulama modernizasyonunu gerçekleştirirken bulut yolculuğunda yatırımlardan yararlanmasına yardımcı olur.

IBM Cloud hesabıyla hemen başlayın.