Page 128 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 128
128 | Spring Framework
Spring portföyü, sunucusuz uygulamaların geliştirilmesi için birçok farklı araç ve kütüphane sunar.
Bu araçlar, geliştiricilerin verilere erişme, entegrasyon kalıplarını kullanma ve reaktif programlama
gibi konulara odaklanmalarını sağlar. Spring Data, veritabanlarına erişmek için kullanılır ve birçok
farklı veri tabanı teknolojisini destekler. Spring Integration, kurumsal entegrasyon kalıplarını
uygulamak için kullanılır ve mesajlaşma sistemleri, e-posta ve dosya işlemleri gibi farklı entegrasyon
senaryolarını destekler. Spring Framework ve Project Reactor ise, reaktif programlama için
kullanılan kütüphanelerdir ve asenkron programlama modellerini desteklerler.
Spring Cloud Function ise, sunucusuz uygulamalar için bir işlevsel hizmet çerçevesidir. Bu çerçeve,
geliştiricilerin işlevlerini birçok farklı sunucusuz platformda çalıştırmalarını sağlar ve geliştiricilerin
platforma özgü API’lerle uğraşmasını engeller. Spring Cloud Function, çekirdek Java’daki java.
util.function paketini kullanarak işlevlerin tanımlanmasını ve yönetilmesini sağlar. Bu sayede,
geliştiricilerin işlevlerini çok çeşitli sunucusuz platformlarda çalıştırmaları kolaylaşır ve platforma
bağımlılıklarından kurtulmaları mümkün hale gelir. Özetle, Spring Cloud Function şunları sağlar:
• Programlama stilleri seçimi: reaktif, zorunlu veya hibrit.
• Işlev bileşimi ve uyarlama (örneğin, zorunlu işlevleri reaktif ile oluşturma).
• Fonksiyonların birleştirme ve diğer karmaşık akış işlemlerini yönetmesine izin vermek için çoklu
giriş ve çıkışlarla reaktif fonksiyon desteği.
• Giriş ve çıkışların şeffaf tip dönüşümü.
• Hedef platforma özel dağıtımlar için paketleme işlevleri (Project Riff, AWS Lambda).
• Esnek imzalı işlevler (POJO işlevleri) Spring’in deyimlerinin ve programlama modelinin diğer tüm
faydaları.
Spring Cloud Function, işlevlerinizi Amazon Lambda, Apache OpenWhisk, Microsoft Azure ve
Project Riff dahil olmak üzere en yaygın FaaS hizmetlerinde çalıştırabilmeniz için adaptörler sağlar.
6. Olay Güdümlü Uygulamalar (Event Driven)
Olay güdümlü sistemler, modern işletmelerin gerçekte nasıl çalıştığını yansıtır. Binlerce küçük değişiklik
her gün gerçekleşir ve bu değişiklikler olaylar olarak kaydedilir. Spring, bu olayları yönetme ve işlemeye
yönelik bir dizi araç sağlayarak, uygulamaların işletme ile senkronize kalmasını kolaylaştırır.
Spring; olay akışı, veri akışı ve entegrasyon gibi farklı olay odaklı seçenekler sunar. Örneğin, veri akışı
sabit bir olay akışını temsil eder ve hisse senedi fiyatı değiştiğinde yeni bir olay oluşur. Entegrasyon
ise mesaj işleme temeline dayanır ve mesaj platformlarına bağlanma, mesajları yönlendirme, mesajları
dönüştürme ve mesajları işleme gibi zorlukları çözer.
Spring Cloud Stream, Apache Kafka, RabbitMQ, Azure Event Hub ve diğer mesajlaşma sistemleriyle
çalışırken üretkenliği arttırmak için üç temel soyutlama sağlar. Bu soyutlamalar bağlayıcılar, bağlamalar
ve mesajlar olarak adlandırılır ve kaynak sağlama, içerik dönüştürme, hata işleme, yapılandırma
yönetimi, tüketici grupları, bölümleme, izleme ve sağlık kontrolleri gibi özellikleri de destekler.
Spring Cloud Function ise, kodunuzu AWS, Azure gibi yerlerde çalıştırmanıza olanak tanır ve işlevleri
zincirleyerek yeni yetenekler oluşturmanıza olanak sağlar. Bu araç, kapsamlı Spring API’lerini kullanarak
üretkenliği artırır ve çoklu giriş ve çıkış desteği gibi özellikleri de destekler.