Akış Tabanlı Programlama Nedir?

Akış tabanlı programlama, geleneksel yapılandırılmış uygulama tasarım yöntemlerinden farklı olarak bilgisayar uygulamalarını ve mimarilerini tasarlama yöntemidir; bu veriler birbirine bağlı olmayan bileşenler tarafından bir akışta işlenmesi ve iletişim kurmak için harici bir mesajlaşma sistemi kullanması amaçlanmıştır. . Akış tabanlı programlama altında, odaklanma, kapsüllenmiş modüller veya programdaki diğer bileşenlerle doğrudan bağlantısı olmayan fonksiyonlar olan farklı bileşenler kullanılarak verilerin dönüştürülmesine odaklanır. Veri akışlarının ve diğer olayların her biri, soyut bir bağlantı noktasının kullanılmasıyla bir modüle bir bilgi paketinin (IP) iletildiği bazı ağ protokolleri türünden farklı olmayan harici bir mesaj gönderme sistemi tarafından yönetilir. Bu bileşen tabanlı tasarım görünümü, bir uygulamanın yalnızca sistem mesajına yanıt vermesi, bir IP işlemesi ve ardından IP'yi tekrar sisteme bırakması gereken ayrı olarak geliştirilen kod modüllerine sahip olmasını sağlar. Bu yaklaşım, dağıtılmış sistemler, ağlar ve Internet ve e-ticaret sunucuları gibi web tabanlı program mimarileri için kullanışlıdır.

Akış tabanlı programlamanın temel yapı taşlarından biri, izole edilmiş bir düğüm, işlem veya modül fikridir. Bu, herhangi bir başka modüle doğrudan bağımlılığı olmayan bir program kaynak kodu parçası olarak düşünülebilir, neredeyse modülü gerektiğinde çağrılabilecek uygulamanın tek başına bir parçası haline getirir. Her bir bileşen başka bir bileşenle sırayla çağrılmaya dayanmaz, bu nedenle bir uygulamanın bileşenleri, herhangi bir sırayla düzenlenebilir ve kullanılabilir, böylece bilgiler sistem içinde hareket ettikçe çoklu benzersiz veri akışlarının var olmasına izin verir.

Akış tabanlı programlamadaki modüllerin her biri, bir bilgisayar ağındaki veri portu gibi çalışan bir port olarak bilinen soyut bir arabirim aracılığıyla veri kabul eder. Veriler, limana sınırlı büyüklükte olan ancak birden çok IP'yi sürekli olarak limana beslenen bir akışa dönüştüren bir arabellek aracılığıyla bir bağlantı noktasına gönderilir. Tek bir port, yapının dağıtılmış bir sistemde veya paralel işleme için kullanımını kolaylaştırarak, tek bir bileşenin birkaç örneği ile ilgili olabilir.

Bir bilgi paketinde yer alan veriler, modüllerden harici bir mesajlaşma sistemi tarafından yönlendirilir. Akış tabanlı programlamada, bu mesajlaşma sistemi modüllerden ve IP'lerden ayrıdır ve program akışını yalnızca bağlantı noktalarına bağlı arabelleklerin kullanımı yoluyla yönetir. Mesajlaşma sistemi temelde modüllerin ne olduğu veya ne yaptığı hakkında hiçbir bilgiye sahip değildir ve modüllerin işlediği IP'ler içinde hangi verilerin bulunduğu konusunda gerçek bir kaygı duymamaktadır.

Akışa dayalı programlama uygulamalarını oluşturan bileşenlerin her birinin bölümleri ve modülerliği, hata ayıklama ve ekip odaklı geliştirme gibi süreçlere çok iyi bir şekilde katkıda bulunur. Kodun çoğu kapsüllenmiştir, bu nedenle kaynak kodun yeniden kullanılabilirlik potansiyeli yüksektir. Bu, akış tabanlı programlama kullanan bir uygulamanın yükseltilmesi veya ölçeklendirilmesinin daha entegre bir uygulamadan daha kolay olabileceği anlamına gelir, çünkü mesajlaşma sistemi, modüller ve port sistemi her biri büyük programı etkilemeden bağımsız olarak değiştirilebilir.