Apache Camel - Genel Bakış
Deve, bir uç noktadan gelen mesajları alan ve başka birine gönderen kara bir kutudur. Kara kutu içinde mesajlar işlenebilir veya basitçe yeniden yönlendirilebilir.
Öyleyse neden bunun için bir çerçeve var? Giriş vaka çalışmasında görüldüğü gibi pratik durumlarda, birçok gönderici ve her biri ftp, http ve jms gibi kendi protokollerini izleyen birçok alıcı olabilir. Sistem, A göndereninden gelen mesajın yalnızca B & C'ye iletilmesi gibi birçok karmaşık kural gerektirebilir. Durumlarda, mesajı alıcının beklediği başka bir formata çevirmeniz gerekebilir. Bu çeviri, mesaj içeriğine bağlı olarak belirli koşullara tabi olabilir. Bu nedenle, esasen protokoller arasında çeviri yapmanız, bileşenleri birbirine yapıştırmanız, yönlendirme kurallarını tanımlamanız ve mesaj içeriklerine göre filtreleme sağlamanız gerekebilir. Bu, aşağıdaki şekilde gösterilmektedir -
Yukarıdaki gereksinimleri karşılamak ve bu tür birçok durum için uygun bir yazılım mimarisi tasarlamak için, Enterprise Integration Patterns ( EIP ) 2003 yılında Gregor Hohpe ve Bobby Woolf tarafından belgelenmiştir. Apache Camel bu modellerin uygulanmasını sağlar ve bu eğitimin amacı öğretmektir. Giriş bölümünde anlatılana benzer durumlarda Camel'ı nasıl kullanacağınızı öğreneceksiniz.
Apache Camel, açık kaynaklı bir çerçevedir. Kural tabanlı yönlendirme ve uzlaştırma motoru sağlayan mesaj odaklı bir ara yazılımdır. "Süt" siparişi olup olmadığı gibi kuralları bir süt satıcısına, bir "yağ" siparişi ise bir petrol satıcısına yönlendirmek gibi kurallar tanımlayabilirsiniz. Camel'i kullanarak bu kuralları uygulayabilir ve yönlendirmeyi tanıdık bir Java kodunda yapabilirsiniz. Bu, tür güvenli bir ortamda bu kuralları tanımlamak için tanıdık Java IDE'nizi kullanabileceğiniz anlamına gelir. Genellikle hantal olma eğiliminde olan XML yapılandırma dosyalarını kullanmamıza gerek yoktur. Kuralları yapılandırmak için XML kullanmayı tercih ederseniz Camel, Spring çerçevesi aracılığıyla XML yapılandırmasını destekler. Bir Scala aşığıysanız, Blueprint XML Yapılandırma dosyalarını ve hatta bir Scala DSL bile kullanabilirsiniz. Ayrıca, kuralları yapılandırmak için favori Java'nızı, Scala IDE'nizi veya hatta basit bir XML düzenleyiciyi kullanabileceğiniz anlamına gelir.
Bu motorun girdisi virgülle ayrılmış bir metin dosyası olabilir, bir POJO (Düz Eski Java Nesnesi), XML Camel tarafından desteklenen diğer birkaç biçimden herhangi biridir. Benzer şekilde, ilgili satıcılara gönderilen siparişleri görüntülemeniz için motorun çıktısı bir dosyaya, bir mesaj kuyruğuna veya hatta monitör ekranınıza yeniden yönlendirilebilir. Bunlar uç noktalar olarak adlandırılır ve Camel, Mesaj Uç Noktası EIP modelini destekler . Deve uç noktaları daha sonra Uç Noktalar bölümünde ele alınmaktadır.
Camel, hizmet odaklı mimarileri uygulamak için genellikle Apache ServiceMix , Apache ActiveMQ ve Apache CXF ile birlikte kullanılır .