NTT DATA Business Solutions
Çağatay Ersoylu | Ekim 20, 2020

Anlık Veri Akışını Kolaylaştıran Altyapı: ABAP Channels

Günümüzdeki rekabet ortamında pazardaki değişimlere anında cevap vermek, daha yüksek yanıt hızı sağlamak, müşteriler için hızlı ve kişiselleştirilmiş ürün ve hizmet sunmak son derece önemlidir.

Anlık Veri Akışını Kolaylaştıran Altyapı: ABAP Channels

 

Bu noktada anlık veri şirketler açısından büyük önem arz etmektedir. Bu yazımda gerçek zamanlı iletişim sağlayan ABAP Channels‘dan bahsedeceğim.

Klasik programlama mantığında bir verinin değişimi yoklama (polling yöntemi) ile anlaşılmaktadır. Bu yöntemde güncellemeleri almak için belirli periyotlarda kurulmuş bir görev ya da kullanıcı ekranında bulunan bir buton vasıtasıyla güncel veri alınmaktadır. Bu yaklaşım fazla zaman ve kaynak tükettiği için kullanıcı deneyimi açısından beklentileri karşılamakta zorlanmaktadır. ABAP Channels ise güdümlü programlama (event-driven programming) mantığına dayanmaktadır. Örneğin polling yönteminde, evimize gelecek bir kargo paketi için her 5 dakikada bir kapıyı açıp kontrol etmemiz gerekirken event-driven yönteminde kargo geldiği zaman zilin çaldığı ve kargonun geldiği haber verilecektir. ABAP Channels altyapısı SAP NetWeaver AS ABAP 7.40 SP5 ile birlikte desteklenmeye başlanmıştır. ABAP Channels başlıca 2 kavramdan oluşmaktadır. ABAP Push Channel (APC) ve ABAP Message Channel (AMC)

ABAP Push Channel ve ABAP Message Channel

ABAP Push Channel (APC), ABAP sunucusu ile gerçek zamanlı ve çift yönlü iletişim sağlayan kanaldır. Temel olarak 2 bağlantı türü vardır bunlar WebSocket ve TCPSocket’tir. WebSocket, IETF (Internet Engineering Task Force) tarafından RFC 6455 ile standart hale getirilmiş ve birçok web tarayıcısı tarafından desteklenmektedir.

 

ABAP Channels

TCPSocket, TCP/IP paketleri ile haberleşme sağlanır. Gömülü sistemlerle ve WebSocket protokolünü desteklemeyen PLC (Programmable Logic Controllers) tarzı sistemlerle iletişim kurmamıza olanak sağlar.

 

ABAP Channels

ABAP Message Channel (AMC), farklı sunucularda bulunan oturumlar arasında mesaj alışverişi için kullanılan bir altyapıdır. Çalışma prensibi yayınla/abone ol yazılım mimarisine (publish/subscribe pattern) dayanmaktadır.
ABAP Push Channel ve ABAP Message Channel’ın birlikte kullanılması (Collaboration) sadece WebSocket üzerinden yapılan haberleşmelerde mümkündür. TCPSocket üzerinden yapılan haberleşmelerde desteklenmemektedir.

ABAP Channels

Kullanım alanlarından örnek verecek olursak stok raporu, mağaza satış verileri, finansal raporlamalar gibi anlık değişebilen ekranlarda arka planda değişen bir veri anlık olarak iletilerek, anlık güncelleme sağlayarak gerçek zamanlı bir kullanıcı deneyimi sunmaktadır. Çeşitli entegrasyonlarda kullanılabilir. Örneğin tartım cihazlarından tartım bilgisi ABAP push channel aracılığıyla okunabilir. Mağazalardaki POS cihazları ile ABAP push channel üzerinden bilgi alışverişi yapılabilir.

 

ABAP Channels

 

 

ABAP ChannelsMağaza stok raporu

 

Yukarıdaki örnekte web tarayıcısı üzerinden görüntülenen mağaza stok raporunda Mağaza 1’de yapılan 6 adetlik satış sonucunda 45 adet olan stok bilgisinin anlık olarak 39 adede düştüğünü gözlemlemekteyiz.

Sonuç olarak ABAP Push Channel “polling” tekniğine göre daha az sistem kaynağı tüketerek gerçek zamanlı bir kullanıcı deneyimi sunmakta, birçok konuda şirketlerin daha hızlı kararlar almasına olanak sağlamakta ve iş yapış sürelerini kısaltmaktadır.