Dış Servis Entegrasyonlarında ESB Kullanımı

Mehmet Çağrı Delice
Akbank Teknoloji
Published in
5 min readJun 15, 2021

Yazlığın elektrik faturası ödendi mi? Eşim arabanın vergisini ödedi mi? Babam telefonuma TL yükledi mi? Çalışanların SGK borcu ödendi mi?

Bu soruların cevabı çok basit. Abone numaranı yaz, sorgula ve öde. Üç aşamada Antalya’daki yazlığının elektrik faturası ödenmiştir. Üç aşama çok ise abone numaranı yaz ve talimat ver. Faturanı senin yerine Akbank takip etsin ve ödesin.

Üç aşamada basitçe yapılan bir ödeme işlemi buz dağının sadece görünen yüzü. Birazda buz dağının dışarıdan gözükmeyen yönlerine bakalım.

https://www.andonix.com/wp-content/uploads/2020/02/Iceberg-of-Ignorance-1-1080x675.jpg

Elektrik, su, doğalgaz, SGK, vergi, telekom… aklına gelebilecek yüzlerce kurum ödemelerini Akbank üzerinden birkaç aşamada kolayca yapabiliyorsun.

Peki bu kadar çok farklı dış firma ile “entegrasyon” kurarak bu sistemi sağlamak bu kadar kolay mı?

Aşağıdaki gibi tek bir kurum olsaydı bu sorunun cevabı belki de evet olurdu. (Akbank Mobil’e girdiğiniz de sadece bir firmanın ödemesinin yapıldığını düşünmek bile istemiyorum. )

Firma sayısını biraz artıralım.

Elektrik faturasını ödedik peki site aidatını da buradan ödeyebiliyor muyuz? Bu soruyu sorarken yeni bir entegrasyon sisteme eklendi bile. Site aidatınızı artık Akbank üzerinden yapabilirsiniz. Bu şekilde yüzlerce firma var ve firma sayısı da gün geçtikçe artıyor. Firma sayılarını artırdığımızda artık kaos başlıyor ve süreç yönetilemez hale geliyor. Bu sorunun çözülmesi gerekiyor. Bu sorunun çözümü için en iyi teknoloji alternatiflerinden birisi “Enterprise Service Bus” yapısıdır.

ENTERPRISE SERVICE BUS

Entegrasyon kurmak için gerekli temel aşamaları beş başlıkta ele alabiliriz;

Routing: Firmalar ile nasıl entegrasyon sağlarım? Dış Firmalar ile farklı teknolojiler kullanarak entegrasyon sağlanması gerekiyor. Bazı firmalar WCF service ile çalışırken, bazıları ise rest service çalışıyor. Bazı kurumlar ile offline entegrasyonlar da devam ediyor. Sistemin tümünü desteklemesi gerekiyor.

https://www.agripartner.com/wp-content/uploads/2018/02/r-d-marketing-breeding-companies.jpg

Transformation: Firmalar ile hangi şema ile entegrasyon kurarım? Her dış firmanın farklı bir şeması var ve banka olarak bu şemalara dönüşüm sağlayıp entegrasyon kurulması gerekiyor.

https://greattransitionstories.org/wp-content/uploads/sites/13/2018/06/metamorphosis.png

Security: Firmalar ile entegrasyon yapısı güvenli mi? Firmalar kendi seçmiş oldukları farklı güvenlik protokolleri ile çalışıyor. Sistemin farklı güvenlik protokollerine uyum sağlaması gerekiyor.

https://isbl.org.uk/Content/image/Tightrope%20walk%201%20.jpg

Editable: Yeni bir bir firma gelirse nasıl sisteme ekleyeceğim. Var olan bir dış firmanın entegrasyonunda değişiklik yapılması istenirse nasıl yapacağım.

https://www.themarketingscope.com/wp-content/uploads/2017/03/Is-Your-Omnichannel-Transformation-Turning-into-a-Game-of-Jenga-1280x720.jpg

Logging & Monitoring: Bu sistemin loglanması, izlenmesi ve yönetilmesini nasıl sağlayacağım.

https://datasciencecampus.ons.gov.uk/wp-content/uploads/sites/10/2020/08/Traffic_cameras_cars_shutterstock_443707396-1-630x470.jpg

İşte bu problemlerin çözümü ve entegrasyonların sağlanması için çözüm önerilerinden bir tanesi ESB. Peki nedir ESB diye sorarsanız direkt wikipedia’dan aşağıdaki cümleleri bulabilirsiniz.

An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA).

The primary duties of an ESB are:

· Route messages between services

· Monitor and control routing of message exchange between services

· Resolve contention between communicating service components

· Control deployment and versioning of services

· Marshal use of redundant services

· Provide commodity services like event handling, data transformation and mapping, message and event queuing and sequencing, security or exception handling, protocol conversion and enforcing proper quality of communication service.

Özetle iki sistemin karşılıklı olarak birbiriyle etkileşiminde kullanılan bir pattern diyebiliriz. Yukarıdaki maddelere dikkat ederseniz bizim servis entegrasyonlarındaki beş madde ile benzer olduğunu görüyoruz.

https://upload.wikimedia.org/wikipedia/commons/1/1d/ESB_Component_Hive.png

Bu alt yapıyı kurmak için farklı firmaların ürünleri bulunmakla birlikte, Akbank olarak Microsoft Biztalk ESB Toolkit kullanılmıştır.

Microsoft Biztalk ESB Toolkit

The Microsoft BizTalk ESB Toolkit provides architectural guidance, patterns, and a collection of BizTalk Server and .NET Framework components to simplify the development of an Enterprise Service Bus (ESB) on the Microsoft platform and to allow Microsoft customers to extend their own messaging and integration solutions.

Microsoft Biztalk ESB Toolkit aşağıdaki temel ESB ihtiyaçlarını karşılayan programın ismidir. Detaylar için aşağıdaki linkten araştırma yapılabilir.

· Message routing

· Message validation

· Message transformation

· Extensible adapter framework for connectivity

· Service orchestration

· Business rules engine

· Business activity monitoring

· Web service and WS-* integration (WCF adapter)

https://docs.microsoft.com/en-us/biztalk/esb-toolkit/media/esbarchitecture.gif

Akbank, Microsoft Biztalk ESB Toolkit ürünü ile dış kurum entegrasyonlarını sağlamaktadır. Bu yapıyı bir kere kurduktan sonra entegrasyonlarda sadece transformation yapmak yeterli olmaktadır. Yani standart şema’dan kurum şemasına, kurum şemasından ise standart şemaya dönüşüm için map oluşturarak entegrasyon kurulmaktadır. Kuruma yönlendirme yapmak için ise kurumun adres ve binding bilgileri de dinamik olarak çekilmektedir.

1. ESB sistemine kanallardan mesajı al

2. Validasyon yap

3. Loglama ve cache’leme yap (istediğiniz aşama da)

4. Standart şemadan kurum şemasına çeviren map’i çalıştır

5. Routing yap ve kuruma gönder

6. Kurumdan aldığın cevabı standart şemaya çevir

7. Standart şemayı tekrar kanala gönder

Yukarıdaki bilgiler ile kaos oluşturan yapıyı tekrar düzenleyelim. Akbank sistemleri aynı mesaj yapısı ile esb servisi çağırır. ESB sistemi mesaja bakarak hangi map’e gireceğine karar verir, mesajın dönüşümünü yapar ve dış servisi çağırır. Gelen cevap tekrar dönüşür, Akbank sistemlerine dönüş yapılır.

Bu yapı ile yeni bir kurum ile entegrasyon için, sadece yeni biztalk map eklemek ve routing için bilgileri girmek yeterlidir. Kurum şemasında herhangi bir değişiklik mi istendi, sadece map’i değiştirmen yeterli olacaktır.

Kaynaklar :

--

--