MuleSoft - Hızlı Kılavuz

ESB, Enterprise Service BusBu, temelde çeşitli uygulamaları otobüs benzeri bir altyapı üzerinden entegre etmek için bir ara yazılım aracıdır. Temel olarak, entegre uygulamalar arasında işin tek tip bir şekilde taşınması için tasarlanmış bir mimaridir. Bu şekilde ESB mimarisi yardımıyla farklı uygulamaları bir haberleşme veriyolu üzerinden bağlayabilir ve birbirlerine bağımlı olmadan haberleşmelerini sağlayabiliriz.

ESB'nin uygulanması

ESB mimarisinin ana odak noktası, sistemleri birbirlerinden ayırmak ve sürekli ve kontrol edilebilir bir şekilde iletişim kurmalarını sağlamaktır. ESB'nin uygulaması aşağıdaki yardımlarla yapılabilir:‘Bus’ ve ‘Adapter’ şu şekilde -

  • JMS veya AMQP gibi bir mesajlaşma sunucusu aracılığıyla elde edilen "veri yolu" kavramı, farklı uygulamaları birbirinden ayırmak için kullanılır.

  • Arka uç uygulamasıyla iletişim kurmaktan ve verileri uygulama biçiminden veri yolu biçimine dönüştürmekten sorumlu "adaptör" kavramı uygulamalar ve veri yolu arasında kullanılır.

Veriyolu aracılığıyla bir uygulamadan diğerine geçen veri veya mesaj kanonik bir formattadır, bu da tutarlı bir mesaj formatı olacağı anlamına gelir.

Adaptör ayrıca güvenlik, izleme, hata işleme ve mesaj yönlendirme yönetimi gibi diğer etkinlikleri de gerçekleştirebilir.

ESB'nin Yol Gösterici İlkeleri

Bu ilkeleri temel entegrasyon ilkeleri olarak adlandırabiliriz. Bunlar aşağıdaki gibidir -

  • Orchestration - Veri ve süreç arasında senkronizasyonu sağlamak için iki veya daha fazla hizmetin entegrasyonu.

  • Transformation - Verileri kanonik formattan uygulamaya özel formata dönüştürme.

  • Transportation - FTP, HTTP, JMS vb. Formatlar arasında protokol anlaşmasını yönetme

  • Mediation - Bir hizmetin birden çok sürümünü desteklemek için birden çok arabirim sağlamak.

  • Non-functional consistency - İşlemleri ve güvenliği yönetmek için mekanizma sağlamak.

ESB ihtiyacı

ESB mimarisi, her uygulamanın kendisi aracılığıyla iletişim kurabileceği farklı uygulamaları entegre etmemizi sağlar. Aşağıda, ESB'nin ne zaman kullanılacağına ilişkin bazı yönergeler verilmiştir -

  • Integrating two or more applications - ESB mimarisinin kullanılması, iki veya daha fazla hizmet veya uygulamayı entegre etme ihtiyacı olduğunda faydalıdır.

  • Integration of more applications in future - Gelecekte daha fazla hizmet veya uygulama eklemek istersek, ESB mimarisi yardımıyla kolayca yapılabilir.

  • Using multiple protocols - HTTP, FTP, JMS vb. Birden fazla protokol kullanmamız gerekirse, ESB doğru seçenektir.

  • Message routing - Mesaj içeriğine ve diğer benzer parametrelere dayalı olarak mesaj yönlendirmeye ihtiyaç duyarsak ESB kullanabiliriz.

  • Composition and consumption - Kompozisyon ve tüketim hizmetleri yayınlamamız gerekirse ESB kullanılabilir.

P2P entegrasyonu - ESB entegrasyonu

Uygulama sayısının artmasıyla birlikte geliştiricilerin önündeki büyük soru, farklı uygulamaları nasıl bağlayacaklarıydı? Durum, çeşitli uygulamalar arasında bir bağlantı elle kodlanarak ele alındı. Bu denirpoint-to-point integration.

Rigiditynoktadan noktaya entegrasyonun en belirgin dezavantajıdır. Artan bağlantı ve arayüz sayısı ile karmaşıklık artar. P-2-P entegrasyonunun dezavantajları bizi ESB entegrasyonuna götürür.

ESB, uygulama entegrasyonuna daha esnek bir yaklaşımdır. Her bir uygulama işlevselliğini bir dizi ayrı, yeniden kullanılabilir özellik olarak kapsüller ve ortaya çıkarır. Hiçbir uygulama doğrudan diğeriyle entegre olmaz, bunun yerine aşağıda gösterildiği gibi bir ESB aracılığıyla entegre olurlar -

Entegrasyonu yönetmek için, ESB aşağıdaki iki bileşene sahiptir:

  • Service Registry- Mule ESB'nin, ESB'ye maruz kalan tüm hizmetlerin yayınlandığı ve kaydedildiği Hizmet Sicili / Deposu vardır. Birinin diğer uygulamaların hizmetlerini ve yeteneklerini kullanabileceği bir keşif noktası görevi görür.

  • Centralized Administration - Adından da anlaşılacağı gibi, ESB içinde meydana gelen etkileşimlerin performansının işlemsel akışlarının bir görünümünü sağlar.

ESB Functionality- VETRO kısaltması genellikle ESB'nin işlevselliğini özetlemek için kullanılır. Aşağıdaki gibidir -

  • V(Doğrula) - Adından da anlaşılacağı gibi, şema doğrulamasını doğrular. Doğrulayıcı bir ayrıştırıcı ve güncel bir şema gerektirir. Bir örnek, güncel bir şemayı onaylayan bir XML belgesidir.

  • E(Zenginleştir) - Bir mesaja ek veri ekler. Amaç, mesajı bir hedef hizmet için daha anlamlı ve yararlı hale getirmektir.

  • T(Dönüştür) - Veri yapısını kanonik formata veya kanonik formata dönüştürür. Örnekler, tarih / saat, para birimi vb. Dönüşümüdür.

  • R(Yönlendirme) - Mesajı yönlendirecek ve bir hizmetin uç noktasının bekçisi olarak hareket edecektir.

  • O(Çalıştır) - Bu işlevin ana görevi, hedef hizmeti çağırmak veya hedef uygulama ile etkileşim kurmaktır. Arka uçta çalışırlar.

VETRO şablonu, entegrasyona genel esneklik sağlar ve yalnızca tutarlı ve doğrulanmış verilerin ESB boyunca yönlendirilmesini sağlar.

Katır ESB nedir?

Mule ESB, MuleSoft tarafından sağlanan hafif ve yüksek oranda ölçeklenebilir Java tabanlı kurumsal hizmet veri yolu (ESB) ve entegrasyon platformudur. Mule ESB, geliştiricinin uygulamaları kolay ve hızlı bir şekilde bağlamasına olanak tanır. Uygulamalar tarafından kullanılan çeşitli teknolojilerden bağımsız olarak, Mule ESB, uygulamaların kolay entegrasyonunu sağlayarak veri alışverişi yapmalarına olanak tanır. Katır ESB şu iki sürüme sahiptir:

  • Topluluk Sürümü
  • Kurumsal Sürüm

Mule ESB'nin bir avantajı, Mule ESB topluluğundan Mule ESB kuruluşuna kolayca yükseltme yapabilmemizdir, çünkü her iki sürüm de ortak bir kod tabanı üzerine inşa edilmiştir.

Mule ESB'nin Özellikleri ve Yetenekleri

Aşağıdaki özellikler Mule ESB'ye aittir -

  • Basit sürükle ve bırak grafik tasarımına sahiptir.
  • Mule ESB, görsel veri haritalama ve dönüştürme yeteneğine sahiptir.
  • Kullanıcı, 100'lerce önceden oluşturulmuş sertifikalı konektör tesisine sahip olabilir.
  • Merkezi izleme ve yönetim.
  • Güçlü kurumsal güvenlik uygulama yetenekleri sağlar.
  • API yönetimi kolaylığı sağlar.
  • Bulut / şirket içi bağlantı için güvenli Veri Ağ Geçidi vardır.
  • ESB'ye maruz kalan tüm hizmetlerin yayınlandığı ve kaydedildiği hizmet kaydını sağlar.
  • Kullanıcılar, web tabanlı bir yönetim konsolu aracılığıyla kontrole sahip olabilir.
  • Servis akış analizörü kullanılarak hızlı hata ayıklama yapılabilir.

Katır projesinin arkasındaki motivasyonlar şunlardı:

  • programcılar için işleri daha basit hale getirmek için

  • uygulama düzeyinde bir mesajlaşma çerçevesinden kurumsal çapta yüksek düzeyde dağıtılabilir bir çerçeveye ölçeklenebilen hafif ve modüler çözüm ihtiyacı.

Mule ESB, olay odaklı ve programlı bir çerçeve olarak tasarlanmıştır. Olay güdümlüdür çünkü mesajların birleşik gösterimi ile birleştirilmiştir ve takılabilir modüller ile genişletilebilir. Programatiktir çünkü programcılar, özel mesaj işleme veya özel veri dönüşümü gibi bazı ek davranışları kolayca ekleyebilir.

Tarih

Katır projesinin tarihsel perspektifi şu şekildedir:

SourceForge projesi

Katır projesi, Nisan 2003'te SourceForge projesi olarak başlatıldı ve 2 yıl sonra ilk versiyonu yayınlandı ve CodeHaus'a taşındı. Evrensel Mesaj Nesnesi (UMO) API, mimarisinin merkezinde yer alıyordu. UMO API'nin arkasındaki fikir, mantığı birleştirirken onları temeldeki taşımalardan izole etmekti.

Sürüm 1.0

Nisan 2005'te çok sayıda nakliye içeren piyasaya sürüldü. Bunu takip eden diğer birçok sürümün ana odak noktası, hata ayıklama ve yeni özellikler eklemekti.

Sürüm 2.0 (İlkbahar 2'nin Kabulü)

Konfigürasyon ve kablolama çerçevesi olarak Bahar 2, Katır 2'de benimsendi, ancak gerekli XML konfigürasyonunun ifade gücünün olmaması nedeniyle büyük bir aşırı taşıma olduğunu kanıtladı. Bu sorun, XML Şeması tabanlı yapılandırma İlkbahar 2'de kullanıma sunulduğunda çözüldü.

Maven ile Bina

Hem geliştirme hem de dağıtım zamanlarında Katır kullanımını basitleştiren en büyük gelişme, Maven kullanımı oldu. 1.3 sürümünden itibaren Maven ile inşa edilmeye başlandı.

Katır Kaynağı

2006 yılında, MuleSource, "görev açısından kritik kurumsal uygulamalarda Mule kullanarak hızla büyüyen topluluğun desteklenmesine ve etkinleştirilmesine yardımcı olmak için" dahil edildi. Katır Projesi için kilit dönüm noktası olduğunu kanıtladı.

Mule ESB'nin rakipleri

Aşağıda, Mule ESB'nin başlıca rakiplerinden bazıları verilmiştir -

  • WSO2 ESB
  • Oracle Hizmet Veriyolu
  • WebSphere Message Broker
  • Aurea CX Platformu
  • Fiorano ESB
  • WebSphere DataPower Ağ Geçidi
  • Workday İş Süreci Çerçevesi
  • Talend Enterprise Hizmet Veriyolu
  • JBoss Enterprise Service Bus
  • iWay Servis Yöneticisi

Katır Çekirdek Konsepti

Tartışıldığı gibi, Mule ESB, hafif ve oldukça ölçeklenebilir Java tabanlı bir kurumsal hizmet veriyolu (ESB) ve entegrasyon platformudur. Uygulamalar tarafından kullanılan çeşitli teknolojilerden bağımsız olarak, Mule ESB, uygulamaların kolay entegrasyonunu sağlayarak veri alışverişi yapmalarına olanak tanır. Bu bölümde, böyle bir entegrasyonun gerçekleşmesi için Mule'nin devreye giren temel konseptini tartışacağız.

Bunun için mimarisini ve yapı taşlarını anlamamız gerekiyor.

Mimari

Mule ESB'nin mimarisi, aşağıdaki şemada gösterildiği gibi, Taşıma katmanı, Entegrasyon katmanı ve Uygulama katmanı olmak üzere üç katmana sahiptir -

Genel olarak, Katır dağıtımını yapılandırmak ve özelleştirmek için gerçekleştirilebilecek üç tür görev vardır:

Hizmet Bileşeni Geliştirme

Bu görev, mevcut POJO'ların veya Bahar Fasulyelerinin geliştirilmesini veya yeniden kullanılmasını içerir. POJOs, get ve set yöntemlerini, bulut bağlayıcılarını oluşturan özniteliklere sahip bir sınıftır. Öte yandan Spring Beans, mesajları zenginleştirmek için iş mantığını içerir.

Hizmet Düzenleme

Bu görev temel olarak mesaj işlemcisini, yönlendiricileri, dönüştürücüleri ve filtreleri yapılandırmayı içeren hizmet arabuluculuğunu sağlar.

Entegrasyon

Mule ESB'nin en önemli görevi, kullandıkları protokoller ne olursa olsun çeşitli uygulamaların entegrasyonudur. Bu amaçla Mule, mesajların çeşitli protokol konektörlerinde alınmasına ve gönderilmesine izin veren taşıma yöntemleri sağlar. Katır, mevcut birçok taşıma yöntemini destekler veya özel bir taşıma yöntemi de kullanabiliriz.

Yapı taşları

Katır konfigürasyonu aşağıdaki yapı taşlarına sahiptir -

Bahar fasulyesi

Bahar çekirdeklerinin ana kullanımı servis bileşeni oluşturmaktır. Spring servis bileşenini oluşturduktan sonra, bir konfigürasyon dosyası üzerinden veya konfigürasyon dosyanız yoksa manuel olarak tanımlayabiliriz.

Ajanlar

Temelde Anypoint Studio'da Mule Studio'dan önce oluşturulan bir hizmettir. Bir sunucuyu başlattığınızda bir aracı oluşturulur ve sunucuyu durdurduğunuzda yok edilir.

Bağlayıcı

Protokollere özgü parametrelerle yapılandırılmış bir yazılım bileşenidir. Esas olarak bir protokolün kullanımını kontrol etmek için kullanılır. Örneğin, bir JMS bağlayıcısı, birConnection ve bu bağlayıcı, gerçek iletişimden sorumlu çeşitli kuruluşlar arasında paylaşılacaktır.

Global Yapılandırma

Adından da anlaşılacağı gibi, bu yapı taşı genel özellikleri ve ayarları belirlemek için kullanılır.

Global Uç Noktalar

Bir akışta birçok kez kullanılabilen Global Öğeler sekmesinde kullanılabilir -

Global Mesaj İşlemcisi

Adından da anlaşılacağı gibi, bir mesajı veya mesaj akışını gözlemler veya değiştirir. Transformatörler ve filtreler, Global Mesaj İşlemci örnekleridir.

Transformers- Bir transformatörün ana görevi, verileri bir formattan diğerine dönüştürmektir. Global olarak tanımlanabilir ve çoklu akışlarda kullanılabilir.

Filters- Hangi Katır mesajının işleneceğine karar verecek olan filtredir. Filtre, temel olarak, bir mesajın işlenmesi ve bir hizmete yönlendirilmesi için karşılanması gereken koşulları belirtir.

Modeller

Aracıların aksine, stüdyoda oluşturulan mantıksal bir hizmet gruplamasıdır. Tüm hizmetleri belirli bir model içinde başlatma ve durdurma özgürlüğüne sahibiz.

Services- Hizmetler, iş mantığımızı veya bileşenlerimizi saran hizmetlerdir. Ayrıca bu hizmet için özel olarak Yönlendiricileri, Uç Noktaları, transformatörleri ve filtreleri yapılandırır.

Endpoints- Servislerin gelen (alan) ve giden (gönderen) mesajlar üzerinde çalışacağı bir nesne olarak tanımlanabilir. Hizmetler uç noktalar aracılığıyla birbirine bağlanır.

Akış

Mesaj işlemci, bir kaynak ile hedef arasındaki bir mesaj akışını tanımlamak için akışları kullanır.

Katır Mesaj Yapısı

Tamamen Katır Mesaj Nesnesi altına sarılmış bir Katır mesajı, Katır akışları aracılığıyla uygulamalardan geçen verilerdir. Yapı Katırının mesajı aşağıdaki diyagramda gösterilmektedir -

Yukarıdaki diyagramda görüldüğü gibi Katır Mesajı iki ana bölümden oluşur -

Üstbilgi

Aşağıdaki iki özellikle temsil edilen mesajın meta verilerinden başka bir şey değildir -

Inbound Properties- Bunlar, mesaj kaynağı tarafından otomatik olarak ayarlanan özelliklerdir. Kullanıcı tarafından manipüle edilemez veya ayarlanamazlar. Doğada, gelen özellikler değişmezdir.

Outbound Properties- Bunlar, gelen bir mülk gibi meta verileri içeren ve akış sırasında ayarlanabilen özelliklerdir. Katır ile otomatik olarak veya bir kullanıcı tarafından manuel olarak ayarlanabilirler. Doğası gereği, giden özellikler değişebilir.

İleti, bir akışın giden uç noktasından taşıma yoluyla farklı bir akışın gelen uç noktasına geçtiğinde, giden özellikler gelen özelliklere dönüşür.

İleti, bağlayıcı yerine bir akış ref aracılığıyla yeni bir akışa iletildiğinde giden özellikler, giden özellikler olarak kalır.

Yük

Mesaj nesnesi tarafından taşınan asıl iş mesajına yük adı verilir.

Değişkenler

Bir mesajla ilgili kullanıcı tanımlı meta veriler olarak tanımlanabilir. Temel olarak değişkenler, onu işleyen uygulama tarafından kullanılan bir mesajla ilgili geçici bilgi parçalarıdır. Mesajlarla birlikte hedefine iletilmesi amaçlanmamıştır. Aşağıda verildiği gibi üç tiptedirler -

Flow variables - Bu değişkenler yalnızca içinde bulundukları akış için geçerlidir.

Session variables - Bu değişkenler, aynı uygulama içindeki tüm akışlar için geçerlidir.

Record variables - Bu değişkenler yalnızca bir grubun parçası olarak işlenen kayıtlar için geçerlidir.

Ekler ve Ekstra Yük

Bunlar, her seferinde mesaj nesnesinde görünmesi gerekmeyen mesaj yükü hakkında bazı ekstra meta verilerdir.

Önceki bölümlerde, Mule ESB'nin temellerini öğrendik. Bu bölümde, nasıl kurulacağını ve yapılandırılacağını öğrenelim.

Önkoşullar

Mule'ı bilgisayarımıza kurmadan önce aşağıdaki ön koşulları yerine getirmemiz gerekiyor -

Java Geliştirme Kiti (JDK)

MULE'yi yüklemeden önce, sisteminizde desteklenen Java sürümüne sahip olduğunuzu doğrulayın. Mule'ı sisteminize başarıyla kurmanız için JDK 1.8.0 önerilir.

İşletim sistemi

Aşağıdaki işletim sistemleri Mule tarafından desteklenmektedir -

  • MacOS 10.11.x
  • HP-UX 11iV3
  • AIX 7.2
  • Windows 2016 Sunucusu
  • Windows 2012 R2 Sunucusu
  • Windows 10
  • Windows 8.1
  • Solaris 11.3
  • RHEL 7
  • Ubuntu Sunucusu 18.04
  • Linux Kernel 3.13+

Veri tabanı

Mule Runtime bağımsız bir sunucu olarak çalıştığı için bir uygulama sunucusu veya veritabanı gerekli değildir. Ancak bir veri deposuna erişmemiz gerekirse veya bir uygulama sunucusu kullanmak istiyorsak, aşağıdaki desteklenen uygulama sunucuları veya veritabanları kullanılabilir -

  • Oracle 11g
  • Oracle 12c
  • MySQL 5.5+
  • IBM DB2 10
  • PostgreSQL 9
  • Derby 10
  • Microsoft SQL Server 2014

sistem gereksinimleri

Mule'ı sisteminize kurmadan önce, aşağıdaki sistem gereksinimlerini karşılaması gerekir -

  • Sanallaştırılmış ortamlarda en az 2 GHz CPU veya 1 Sanal CPU
  • Minimum 1 GB RAM
  • Minimum 4 GB depolama

Katır İndir

Mule 4 ikili dosyasını indirmek için bağlantıya tıklayın https://www.mulesoft.com/lp/dl/mule-esb-enterprise ve sizi aşağıdaki gibi MuleSoft'un resmi web sayfasına yönlendirecektir -

Gerekli detayları sağlayarak, Mule 4 ikili dosyasını Zip formatında alabilirsiniz.

Katır Kur ve Çalıştır

Şimdi, Mule 4 ikili dosyasını indirdikten sonra, sıkıştırmasını açın ve adlı bir ortam değişkeni ayarlayın. MULE_HOME Ayıklanan klasörün içindeki Katır dizini için.

Örneğin, Windows ve Linux / Unix ortamlarındaki ortam değişkeni, İndirilenler dizinindeki sürüm 4.1.5 için aşağıdaki şekilde ayarlanabilir -

Windows Ortamları

$ env:MULE_HOME=C:\Downloads\mule-enterprise-standalone-4.1.5\

Unix / Linux Ortamları

$ export MULE_HOME=~/Downloads/mule-enterprise-standalone-4.1.5/

Şimdi, Mule'ın sisteminizde hatasız çalışıp çalışmadığını test etmek için aşağıdaki komutları kullanın -

Windows Ortamları

$ $MULE_HOME\bin\mule.bat

Unix / Linux Ortamları

$ $MULE_HOME/bin/mule

Yukarıdaki komutlar, Mule'ı ön plan modunda çalıştıracaktır. Katır çalışıyorsa, terminalde başka herhangi bir komut veremeyiz. Preslemectrl-c Terminaldeki komut, Katır'ı durduracak.

Katır Hizmetlerini Başlat

Mule'ı bir Windows Hizmeti ve bir Linux / Unix Daemon olarak da başlatabiliriz.

Windows Hizmeti olarak Katır

Mule'ı bir Windows hizmeti olarak çalıştırmak için aşağıdaki adımları izlememiz gerekiyor -

Step 1 - İlk önce, aşağıdaki komutun yardımıyla kurun -

$ $MULE_HOME\bin\mule.bat install

Step 2 - Kurulduktan sonra, aşağıdaki komut yardımı ile mule'ı bir Windows servisi olarak çalıştırabiliriz:

$ $MULE_HOME\bin\mule.bat start

Bir Linux / Unix Daemon olarak Katır

Mule'ı bir Linux / Unix Daemon olarak çalıştırmak için aşağıdaki adımları izlememiz gerekir -

Step 1 - Aşağıdaki komutun yardımıyla kurun -

$ $MULE_HOME/bin/mule install

Step 2 - Kurulduktan sonra, aşağıdaki komut yardımı ile katırı bir Windows servisi olarak çalıştırabiliriz -

$ $MULE_HOME/bin/mule start

Example

Aşağıdaki örnek, Mule'ı bir Unix Daemon olarak başlatır -

$ $MULE_HOME/bin/mule start
MULE_HOME is set to ~/Downloads/mule-enterprise-standalone-4.1.5
MULE_BASE is set to ~/Downloads/mule-enterprise-standalone-4.1.5
Starting Mule Enterprise Edition...
Waiting for Mule Enterprise Edition.................
running: PID:87329

Katır Uygulamalarını Dağıtın

Katır uygulamalarımızı aşağıdaki adımların yardımıyla dağıtabiliriz -

Step 1 - Önce, Katır'ı başlatın.

Step 2 - Mule başladığında, JAR paket dosyalarımızı şuraya taşıyarak Mule uygulamalarımızı dağıtabiliriz. apps dizin $MULE_HOME.

Katır Hizmetlerini Durdur

Kullanabiliriz stopKatır'ı durdurma komutu. Örneğin, aşağıdaki örnek Katır'ı bir Unix Daemon olarak başlatır -

$ $MULE_HOME/bin/mule stop
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Stopping Mule Enterprise Edition...
Stopped Mule Enterprise Edition.

Ayrıca kullanabiliriz removeKatır Hizmetini veya Daemon'u sistemimizden kaldırma komutu. Aşağıdaki örnek, Mule'ı Unix Daemon olarak kaldırır -

$ $MULE_HOME/bin/mule remove
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Detected Mac OSX:
Mule Enterprise Edition is not running.
Removing Mule Enterprise Edition daemon...

MuleSoft'un Anypoint Studio, kullanıcı dostudur IDE (integration development environment)Katır uygulamalarını tasarlamak ve test etmek için kullanılır. Eclipse tabanlı bir IDE'dir. Konnektörleri Katır Paletinden kolayca sürükleyebiliriz. Başka bir deyişle, Anypoint Studio, akış vb. Gelişimi için Eclipse tabanlı bir IDE'dir.

Önkoşullar

Mule'ı Windows, Mac ve Linux / Unix gibi tüm işletim sistemlerine kurmadan önce aşağıdaki ön koşulları yerine getirmemiz gerekiyor.

Java Development Kit (JDK)- Mule'ı yüklemeden önce, sisteminizde desteklenen Java sürümüne sahip olduğunuzu doğrulayın. Anypoint'i sisteminize başarıyla kurmanız için JDK 1.8.0 önerilir.

Anypoint Studio'yu İndirme ve Kurma

Anypoint Studio'yu farklı işletim sistemlerine indirme ve kurma prosedürü değişiklik gösterebilir. Ardından, Anypoint Studio'yu çeşitli işletim sistemlerine indirmek ve kurmak için izlenecek adımlar var -

Windows'ta

Anypoint Studio'yu Windows'a indirmek ve kurmak için aşağıdaki adımları izlememiz gerekiyor -

Step 1 - İlk önce bağlantıya tıklayın https://www.mulesoft.com/lp/dl/studio ve stüdyoyu indirmek için yukarıdan aşağıya listeden Windows işletim sistemini seçin.

Step 2 - Şimdi onu şuraya çıkarın ‘C:\’ kök klasör.

Step 3 - Çıkarılan Anypoint Studio'yu açın.

Step 4- Varsayılan çalışma alanını kabul etmek için Tamam'ı tıklayın. İlk kez yüklendiğinde bir karşılama mesajı alacaksınız.

Step 5 - Şimdi, Anypoint Studio'yu kullanmak için Başlayın düğmesine tıklayın.

OS X'te

Anypoint Studio'yu OS X'e indirmek ve kurmak için aşağıdaki adımları izlememiz gerekiyor -

Step 1 - İlk önce bağlantıya tıklayın https://www.mulesoft.com/lp/dl/studio ve stüdyoyu indirin.

Step 2- Şimdi çıkar onu. Sierra OS sürümünü kullanıyorsanız, çıkarılan uygulamayı şuraya taşıdığınızdan emin olun./Applications folder başlatmadan önce.

Step 3 - Çıkarılan Anypoint Studio'yu açın.

Step 4- Varsayılan çalışma alanını kabul etmek için Tamam'ı tıklayın. İlk kez yüklendiğinde bir karşılama mesajı alacaksınız.

Step 5 - Şimdi tıklayın Get Started Anypoint Studio'yu kullanmak için düğmesine basın.

Çalışma alanınıza özel bir yol kullanacaksanız, lütfen Anypoint Studio'nun Linux / Unix sistemlerinde kullanılan ~ tilde'yi genişletmediğini unutmayın. Bu nedenle, çalışma alanını tanımlarken mutlak yolu kullanmanız önerilir.

Linux'ta

Linux'ta Anypoint Studio'yu indirmek ve kurmak için aşağıdaki adımları izlememiz gerekiyor -

Step 1 - İlk önce bağlantıya tıklayın https://www.mulesoft.com/lp/dl/studio ve stüdyoyu indirmek için yukarıdan aşağıya listeden Linux işletim sistemini seçin.

Step 2 - Şimdi çıkar onu.

Step 3 - Ardından, çıkarılan Anypoint Studio'yu açın.

Step 4- Varsayılan çalışma alanını kabul etmek için Tamam'ı tıklayın. İlk kez yüklendiğinde bir karşılama mesajı alacaksınız.

Step 5 - Şimdi, Anypoint Studio'yu kullanmak için Başlayın düğmesine tıklayın.

Çalışma alanınıza özel bir yol kullanacaksanız, lütfen Anypoint Studio'nun Linux / Unix sistemlerinde kullanılan ~ tilde'yi genişletmediğini unutmayın. Bu nedenle, çalışma alanını tanımlarken mutlak yolu kullanmanız önerilir.

Linux'ta eksiksiz Studio Temalarını kullanmak için GTK sürüm 2'yi kurmanız da önerilir.

Anypoint Studio'nun Özellikleri

Aşağıda, Mule uygulamaları oluştururken üretkenliği artıran Anypoint stüdyosunun bazı özellikleri yer almaktadır -

  • Yerel bir çalışma süresi içinde Mule uygulamasının anında çalışmasını sağlar.

  • Anypoint stüdyosu, API tanım dosyalarını ve Mule alanlarını yapılandırmak için bize görsel düzenleyici sağlar.

  • Verimliliği artıran gömülü birim test çerçevesine sahiptir.

  • Anypoint stüdyosu, CloudHub'a dağıtım için bize Yerleşik destek sağlıyor.

  • Diğer Anypoint Platform organizasyonundan şablonları, örnekleri, tanımları ve diğer kaynakları içe aktarmak için Exchange ile entegre olma olanağına sahiptir.

Anypoint Studio editörleri, uygulamalarımızı, API'lerimizi, özelliklerimizi ve konfigürasyon dosyalarımızı tasarlamamıza yardımcı olur. Tasarımın yanı sıra, onları düzenlememize de yardımcı olur. Bu amaçla Mule yapılandırma dosyası düzenleyicimiz var. Bu düzenleyiciyi açmak için, uygulamadaki XML dosyasını çift tıklayın./src/main/mule.

Uygulamamızla çalışmak için, Katır Yapılandırma dosya düzenleyicisi altında aşağıdaki üç sekmeye sahibiz.

Mesaj Akışı sekmesi

Bu sekme, iş akışının görsel bir temsilini verir. Temelde akışlarımızı görsel olarak kontrol etmemize yardımcı olan bir tuval içerir. Katır Paletinden Olay İşlemcilerini tuvale eklemek istiyorsanız, sadece sürükleyip bırakın, tuvale yansıyacaktır.

Bir Olay İşlemcisine tıklayarak, seçili işlemcinin özniteliklerine sahip Katır Özellikleri Görünümünü elde edebilirsiniz. Bunları da düzenleyebiliriz.

Global Öğeler sekmesi

Bu sekme, modüller için genel Katır yapılandırma öğelerini içerir. Bu sekme altında yapılandırma dosyalarını oluşturabilir, düzenleyebilir veya silebiliriz.

Yapılandırma XML sekmesi

Adından da anlaşılacağı gibi, Katır uygulamanızı tanımlayan XML'i içerir. Burada yaptığınız tüm değişiklikler kanvasın yanı sıra Mesaj Akışı sekmesi altındaki olay işlemcisinin özellikler görünümüne de yansıtılacaktır.

Görüntüleme

Aktif editör için, Anypoint stüdyosu bize proje meta verilerimizin, özelliklerimizin görünümlerin yardımıyla grafiksel sunumunu verir. Bir kullanıcı, Katır projesinde hareket edebilir, yaklaşabilir ve görünümler ekleyebilir. Aşağıda, Anypoint stüdyosundaki bazı varsayılan görünümler verilmiştir -

Paket Gezgini

Paket Gezgini görünümünün ana görevi, bir Mule projesinde oluşan proje klasörlerini ve dosyalarını görüntülemektir. Mule proje klasörünü yanındaki oka tıklayarak genişletebilir veya daraltabiliriz. Bir klasör veya dosya çift tıklanarak açılabilir. Ekran görüntüsüne bir göz atın -

Katır Paleti

Katır Paleti görünümü, kapsamlar, filtreler ve akış denetimi yönlendiricileri gibi olay işlemcilerini modüller ve bunlarla ilgili işlemlerle birlikte gösterir. Katır Paleti görünümünün ana görevleri aşağıdaki gibidir -

  • Bu görünüm, projemizdeki modülleri ve bağlayıcıları yönetmemize yardımcı olur.
  • Ayrıca Exchange'den yeni öğeler ekleyebiliriz.

Ekran görüntüsüne bir göz atın -

Katır Özellikleri

Adından da anlaşılacağı gibi, tuvalimizde halihazırda seçili olan modülün özelliklerini düzenlememize izin verir. Katır Özellikleri görünümü aşağıdakileri içerir -

  • Yükümüzün veri yapısı hakkında gerçek zamanlı bilgi sağlayan DataSense Explorer.

  • Varsa, gelen ve giden özellikler veya değişkenler.

Ekran görüntüsü aşağıdadır -

Konsol

Mule uygulamasını her oluşturduğumuzda veya çalıştırdığımızda, gömülü Katır sunucusu, varsa, Studio tarafından bildirilen olayların ve sorunların bir listesini görüntüler. Konsol görünümü, bu katıştırılmış Katır sunucusunun konsolunu içerir. Ekran görüntüsüne bir göz atın -

Sorunlar Görünümü

Katır Projemiz üzerinde çalışırken pek çok sorunla karşılaşabiliyoruz. Tüm bu sorunlar Sorunlar görünümünde görüntülenir. Ekran görüntüsü aşağıdadır

Perspektifler

Anypoint Studio'da, belirli bir düzenlemedeki görünümler ve düzenleyicilerden oluşan bir koleksiyondur. Anypoint Studio'da iki tür perspektif vardır -

Mule Design Perspective - Studio'da aldığımız varsayılan perspektiftir.

Mule Debug Perspective - Anypoint Studio tarafından sağlanan bir başka perspektif de Mule Debug Perspective'dir.

Öte yandan, kendi perspektifimizi de oluşturabilir ve varsayılan görünümlerden herhangi birini ekleyebilir veya kaldırabiliriz.

Bu bölümde MuleSoft'un Anypoint Stüdyosunda ilk Katır uygulamamızı oluşturacağız. Oluşturmak için önce Anypoint Studio'yu başlatmamız gerekiyor.

Anypoint Studio'yu Başlatma

Başlatmak için Anypoint Studio'ya tıklayın. İlk kez başlatıyorsanız, aşağıdaki pencereyi göreceksiniz -

Anypoint Studio Kullanıcı Arayüzü

Go to Workspace düğmesine tıkladığınızda, sizi aşağıdaki gibi Anypoint Studio'nun kullanıcı arayüzüne yönlendirecektir -

Katır Uygulaması Oluşturma Adımları

Katır uygulamanızı oluşturmak için aşağıdaki adımları izleyin -

Yeni Proje Oluşturma

Mule uygulaması oluşturmanın ilk adımı yeni bir proje oluşturmaktır. Yolu takip ederek yapılabilirFILE → NEW → Mule Project aşağıda gösterildiği gibi -

Projeyi Adlandırma

Yeni Katır Projesine tıkladıktan sonra, yukarıda anlatıldığı gibi, proje adını ve diğer özellikleri soran yeni bir pencere açılacaktır. Projenin adını verin 'TestAPP1've ardından bitir düğmesine tıklayın.

Bitir Düğmesine tıkladığınızda, MuleProject'iniz için oluşturulmuş çalışma alanını açacaktır. ‘TestAPP1’. Hepsini görebilirsinEditors ve Views önceki bölümde anlatılmıştır.

Bağlayıcıyı Yapılandırma

Burada, HTTP Dinleyici için basit bir Mule uygulaması oluşturacağız. Bunun için HTTP Dinleyici bağlayıcısını Katır Paletinden sürükleyip aşağıda gösterildiği gibi çalışma alanına bırakmamız gerekiyor -

Şimdi onu yapılandırmamız gerekiyor. Yukarıda gösterildiği gibi Temel Ayarlar altındaki Bağlayıcı yapılandırmasından sonra yeşil renk + işaretine tıklayın.

Tamam'a tıkladığınızda, sizi HTTP Dinleyici özellik sayfasına geri götürür. Şimdi Genel Sekme altındaki yolu sağlamamız gerekiyor. Bu özel örnekte, sağladık/FirstAPP yol adı olarak.

Yük Bağlayıcı Ayarını Yapılandırma

Şimdi, Set Payload konektörü almamız gerekiyor. Ayrıca değerini Ayarlar sekmesinin altında aşağıdaki gibi vermemiz gerekiyor -

This is my first Mule Application, bu örnekte verilen addır.

Katır Uygulaması

Şimdi kaydedin ve tıklayın Run as Mule Application aşağıda gösterildiği gibi -

Uygulamayı aşağıdaki gibi dağıtan Konsol altında kontrol edebiliriz -

İlk Katır Uygulamanızı başarıyla oluşturduğunuzu gösterir.

Katır Başvurusunu Doğrulamak

Şimdi, uygulamamızın çalışıp çalışmadığını test etmemiz gerekiyor. Go to POSTMAN, bir Chrome uygulaması ve URL'yi girin: http:/localhost:8081. Katır uygulamasını oluştururken verdiğimiz mesajı aşağıda gösterildiği gibi gösterir -

DataWeave temelde bir MuleSoft ifade dilidir. Esas olarak bir Mule uygulaması aracılığıyla alınan verilere erişmek ve dönüştürmek için kullanılır. Mule çalışma zamanı, Mule uygulamamızda komut dosyası ve ifadelerin çalıştırılmasından sorumludur, DataWeave, Mule çalışma zamanı ile güçlü bir şekilde entegredir.

DataWeave Dilinin Özellikleri

DataWeave dilinin bazı önemli özellikleri aşağıdadır -

Veriler bir formattan diğerine çok kolay bir şekilde dönüştürülebilir. Örneğin, application / json'ı application / xml'ye dönüştürebiliriz. Giriş yükü aşağıdaki gibidir -

{
   "title": "MuleSoft",
   "author": " tutorialspoint.com ",
   "year": 2019
}

DataWeave'de dönüşüm için kod aşağıdadır -

%dw 2.0
output application/xml
---
{
   order: {
      'type': 'Tutorial', 
      'title': payload.title, 
      'author': upper(payload.author), 
      'year': payload.year
   }
}

Sonra, output yük aşağıdaki gibidir -

<?xml version = '1.0' encoding = 'UTF-8'?>
<order>
   <type>Tutorial</type>
   <title>MuleSoft</title>
   <author>tutorialspoint.com</author>
   <year>2019</year>
</order>

Dönüşüm bileşeni, hem basit hem de karmaşık veri dönüşümlerini gerçekleştiren komut dosyaları oluşturmak için kullanılabilir.

Mule mesaj işlemcilerinin çoğu DataWeave ifadelerini desteklediğinden, Katır olayının ihtiyaç duyduğumuz bölümlerinde temel DataWeave işlevlerine erişebilir ve bunları kullanabiliriz.

Önkoşullar

DataWeave betiklerini bilgisayarımızda kullanmadan önce aşağıdaki ön koşulları yerine getirmemiz gerekiyor -

  • Dataweave komut dosyalarını kullanmak için Anypoint Studio 7 gereklidir.

  • Anypoint Studio'yu kurduktan sonra, DataWeave betiklerini kullanabilmek için Transform Message bileşeni içeren bir proje kurmamız gerekiyor.

DataWeave Komut Dosyasını Örnekle Kullanma Adımları

DataWeave komut dosyasını kullanmak için aşağıdaki adımları izlememiz gerekir -

Step 1

Öncelikle, önceki bölümde yaptığımız gibi, yeni bir proje oluşturmamız gerekiyor. File → New → Mule Project.

Step 2

Sonra, projenin adını vermemiz gerekiyor. Bu örnek için adını veriyoruz,Mule_test_script.

Step 3

Şimdi, sürüklememiz gerekiyor Transform Message component itibaren Mule Palette tab içine canvas. Aşağıdaki gibi gösterilmiştir -

Step 4

Sonra, Transform Message componentsekmesinde, Önizleme bölmesini açmak için Önizleme'ye tıklayın. Önizleme'nin yanındaki boş dikdörtgene tıklayarak kaynak kodu alanını genişletebiliriz.

Step 5

Şimdi DataWeave diliyle komut dosyası oluşturmaya başlayabiliriz.

Misal

Aşağıda, iki dizeyi tek bir dizede birleştirmenin basit bir örneği verilmiştir -

Yukarıdaki DataWeave betiğinde bir anahtar / değer çifti var ({ myString: ("hello" ++ "World") }) bu iki dizeyi bir araya getirecek.

Komut dosyası oluşturma modülleri, kullanıcıların Mule'de komut dosyası dilini kullanmasını kolaylaştırır. Basit bir deyişle, komut dosyası oluşturma modülü, komut dosyası dilinde yazılmış özel mantığı değiştirebilir. Komut dosyaları, Uygulamalar veya dönüştürücüler olarak kullanılabilir. İfade değerlendirmesi için, yani mesaj yönlendirmesini kontrol etmek için kullanılabilirler.

Mule, aşağıdaki desteklenen komut dosyası dillerine sahiptir -

  • Groovy
  • Python
  • JavaScript
  • Ruby

Komut Dosyası Modülleri Nasıl Kurulur?

Aslında Anypoint Studio, komut dosyası modülleri ile birlikte gelir. Modülü Katır Paletinde bulamazsanız, kullanılarak eklenebilir+Add Module. Ekledikten sonra Scripting modülü işlemlerini Mule uygulamamızda kullanabiliriz.

Uygulama Örneği

Tartışıldığı gibi, çalışma alanı oluşturmak için modülü tuvalin içine sürükleyip bırakmamız ve uygulamamızda kullanmamız gerekiyor. Aşağıda bunun bir örneği var -

HTTP Dinleyici bileşenini nasıl yapılandıracağımızı zaten biliyoruz; bu nedenle Komut Dosyası Modüllerini yapılandırmayı tartışacağız. Komut dosyası modülünü yapılandırmak için aşağıda yazılı adımları izlememiz gerekiyor -

Step 1

Mule Palette'den Scripting modülünü arayın ve EXECUTE betik modülünün işleyişi, yukarıda gösterildiği gibi akışınıza.

Step 2

Şimdi, aynı üzerine çift tıklayarak Yapılandırmayı yürüt sekmesini açın.

Step 3

Altında General sekmesinde kodu sağlamamız gerekiyor Code text window aşağıda gösterildiği gibi -

Step 4

Sonunda, seçmemiz gerekiyor Engineyürütme bileşeninden. Motorların listesi aşağıdaki gibidir -

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

Yapılandırma XML düzenleyicisindeki yukarıdaki yürütme örneğinin XML'si aşağıdaki gibidir -

<scripting:execute engine="jython" doc:name = "Script">
   <scripting:code>
      def factorial(n):
         if n == 0: return 1
      return n * factorial(n-1)
      result = factorial(10)
   </scripting:code>
</scripting:execute>

Mesaj Kaynakları

Mule 4, Mule 3 mesajından daha basitleştirilmiş bir modele sahiptir ve bu, bilgilerin üzerine yazmadan bağlayıcılar arasında tutarlı bir şekilde verilerle çalışmayı kolaylaştırır. Katır 4 mesaj modelinde her Katır olayı iki şeyden oluşur:a message and variables associated with it.

Bir Katır mesajı, yük ve özniteliklerine sahiptir; burada öznitelik esas olarak dosya boyutu gibi meta verilerdir.

Ve bir değişken, işlem sonucu, yardımcı değerler vb. Gibi keyfi kullanıcı bilgilerini tutar.

Gelen

Katır 3'teki gelen mülkler artık Katır 4'teki Öznitelikler haline geliyor. Gelen mülklerin bir ileti kaynağı aracılığıyla elde edilen yük hakkında ek bilgi depoladığını biliyoruz, ancak bu artık Katır 4'te özniteliklerin yardımıyla yapılıyor. Özelliklerin aşağıdaki avantajları vardır -

  • Özniteliklerin yardımıyla, hangi verilerin mevcut olduğunu kolayca görebiliriz, çünkü öznitelikler güçlü bir şekilde yazılmıştır.

  • Niteliklerde bulunan bilgilere kolayca erişebiliriz.

Katır 4'teki tipik bir mesaj örneği aşağıdadır -

Giden

Katır 3'teki giden mülkler, ek veri göndermek için Katır bağlayıcıları ve taşımaları tarafından açıkça belirtilmelidir. Ancak Katır 4'te, bunların her biri, her biri için bir DataWeave ifadesi kullanılarak ayrı ayrı ayarlanabilir. Ana akışta herhangi bir yan etki oluşturmaz.

Örneğin, aşağıdaki DataWeave ifadesi bir HTTP isteği gerçekleştirecek ve mesaj özelliklerini ayarlamaya gerek kalmadan başlıklar ve sorgu parametreleri oluşturacaktır. Bu, aşağıdaki kodda gösterilmiştir -

<http:request path = "M_issue" config-ref="http" method = "GET">
   <http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
   <http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>

Mesaj İşlemci

Katır, bir mesaj kaynağından bir mesaj aldığında, mesaj işlemcisinin çalışması başlar. Katır, mesajı bir akış boyunca işlemek için bir veya daha fazla mesaj işlemcisi kullanır. Mesaj işlemcinin ana görevi, Katır akışından geçerken mesajı dönüştürmek, filtrelemek, zenginleştirmek ve işlemektir.

Katır İşlemcisinin Sınıflandırılması

Aşağıda, işlevlere dayalı Katır İşlemci kategorileri verilmiştir -

  • Connectors- Bu mesaj işlemcileri veri gönderir ve alır. Ayrıca, verileri standart protokoller veya üçüncü taraf API'ler aracılığıyla harici veri kaynaklarına eklerler.

  • Components - Bu mesaj işlemcileri doğası gereği esnektir ve Java, JavaScript, Groovy, Python veya Ruby gibi çeşitli dillerde uygulanan iş mantığını gerçekleştirir.

  • Filters - Mesajları filtrelerler ve belirli kriterlere göre bir akışta yalnızca belirli mesajların işlenmeye devam etmesine izin verirler.

  • Routers - Bu mesaj işlemcisi, mesajın yönlendirme, yeniden sıralama veya bölme akışını kontrol etmek için kullanılır.

  • Scopes - Bir akış içindeki ince taneli davranışı tanımlamak amacıyla temelde kod parçacıklarını sarın.

  • Transformers - Transformatörlerin rolü, sistemler arasındaki iletişimi kolaylaştırmak için mesaj yük türünü ve veri formatını dönüştürmektir.

  • Business Events - Temel olarak temel performans göstergeleriyle ilişkili verileri yakalarlar.

  • Exception strategies - Bu mesaj işlemcileri, mesaj işleme sırasında ortaya çıkan her türlü hatayı işler.

Mule'ın en önemli yeteneklerinden biri bileşenlerle yönlendirme, dönüştürme ve işleme yapabilmesidir, çünkü çeşitli unsurları birleştiren Mule uygulamasının konfigürasyon dosyası çok büyük boyuttadır.

Aşağıda, Mule tarafından sağlanan konfigürasyon modeli türleri verilmiştir -

  • Basit hizmet modeli
  • Bridge
  • Validator
  • HTTP proxy
  • WS proxy'si

Bileşeni yapılandırma

Anypoint stüdyosunda, bir bileşeni yapılandırmak için aşağıdaki adımları takip edebiliriz -

Step 1

Katır uygulamamızda kullanmak istediğimiz bileşeni sürüklememiz gerekiyor. Örneğin, burada HTTP dinleyici bileşenini aşağıdaki gibi kullanıyoruz -

Step 2

Ardından, yapılandırma penceresini açmak için bileşene çift tıklayın. HTTP dinleyicisi için aşağıda gösterilmiştir -

Step 3

Bileşeni projemizin ihtiyacına göre yapılandırabiliriz. Örneğin, HTTP dinleyici bileşeni için yaptık -

Çekirdek bileşenler, Mule uygulamasındaki iş akışının önemli yapı taşlarından biridir. Bir Katır olayını işleme mantığı, bu temel bileşenler tarafından sağlanır. Anypoint stüdyosunda, bu temel bileşenlere erişmek için, aşağıda gösterildiği gibi Katır Paletinden Çekirdeğe tıklayabilirsiniz -

Aşağıdakiler çeşitli core components and their working in Mule 4 -

Özel İş Etkinlikleri

Bu temel bileşen, akışlar ve Mule uygulamasındaki ticari işlemleri gerçekleştiren mesaj işlemcileri hakkında bilgi toplamak için kullanılır. Diğer bir deyişle, aşağıdakileri çalışma akışımıza eklemek için Özel İş Etkinliği bileşenini kullanabiliriz -

  • Metadata
  • Temel performans Göstergeleri (KPI'lar)

KPI'lar nasıl eklenir?

Aşağıda, Mule uygulamasındaki akışımıza KPI ekleme adımları verilmiştir -

Step 1 - Katır'ı takip et Palette → Core → Components → Custom Business Event, Katır uygulamanızda bir çalışma akışına Özel İş Etkinliği bileşeni eklemek için.

Step 2 - Açmak için bileşene tıklayın.

Step 3 - Şimdi, Görünen Ad ve Etkinlik Adı için değerler sağlamamız gerekiyor.

Step 4 - Mesaj yükünden bilgi almak için, KPI'leri aşağıdaki gibi ekleyin -

  • KPI ( izleme: meta-veri öğesi) için bir ad (anahtar ) ve bir değer verin. Ad, Runtime Manager'ın arama arayüzünde kullanılacaktır.

  • Herhangi bir Katır ifadesi olabilecek bir değer verin.

Misal

Aşağıdaki tablo, Adı ve Değeri olan KPI'ların listesinden oluşmaktadır -

İsim İfade / Değer
Öğrenci ListesiHayır # [yük ['RollNo']]
Öğrenci adı # [yük ['Ad']]

Dinamik Değerlendirme

Bu temel bileşen, Mule uygulamasında dinamik olarak bir komut dosyası seçmek için kullanılır. Ayrıca, İleti Dönüştür Bileşeni aracılığıyla sert komut dosyası kullanabiliriz, ancak Dinamik Değerlendirme bileşenini kullanmak daha iyi bir yoldur. Bu temel bileşen şu şekilde çalışır -

  • İlk olarak, başka bir komut dosyasıyla sonuçlanması gereken bir ifadeyi değerlendirir.
  • Daha sonra bu senaryoyu nihai sonuç için değerlendirir.

Bu şekilde, komut dosyasını kodlamak yerine dinamik olarak seçmemize olanak tanır.

Misal

Aşağıda, bir Id sorgu parametresi aracılığıyla veritabanından bir komut dosyası seçmeye ve bu komut dosyasını MyScript adlı bir değişkende depolamaya bir örnek verilmiştir . Şimdi, dinamik değerlendirme bileşeni, komut dosyalarını çağırmak için değişkene erişecek, böylece bir ad değişkeni ekleyecektir.UName sorgu parametresi.

Akışın XML yapılandırması aşağıda verilmiştir -

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

Komut dosyası, mesaj, yük, değişkenler veya öznitelikler gibi bağlam değişkenlerini kullanabilir. Ancak, özel bağlam değişkeni eklemek istiyorsanız, bir dizi anahtar / değer çifti sağlamanız gerekir.

Dinamik Değerlendirmeyi Yapılandırma

Aşağıdaki tablo, Dinamik Değerlendirme bileşenini yapılandırmanın bir yolunu sağlar -

Alan Değer Açıklama Misal
İfade DataWeave ifadesi Son komut dosyası içinde değerlendirilecek ifadeyi belirtir. ifade = "# [vars.generateOrderScript]"
Parametreler DataWeave ifadesi Anahtar-değer çiftlerini belirtir. # [{birleştirici: 've', id: payload.user.id}]

Akış Referans Bileşeni

Katır olayını başka bir akışa veya alt akışa ve aynı Katır uygulaması içinde geri yönlendirmek istiyorsanız, akış referansı bileşeni doğru seçenektir.

Özellikler

Bu temel bileşenin özellikleri aşağıdadır -

  • Bu temel bileşen, referans verilen tüm akışı mevcut akıştaki tek bir bileşen gibi ele almamızı sağlar.

  • Katır uygulamasını ayrı ve yeniden kullanılabilir birimlere böler. Örneğin, bir akış dosyaları düzenli olarak listeler. Liste işleminin çıktısını işleyen başka bir akışa başvurabilir.

  • Bu şekilde, tüm işleme adımlarını eklemek yerine, işleme akışına işaret eden Akış Referansları ekleyebiliriz. Aşağıdaki ekran görüntüsü, Akış Referans Çekirdek Bileşeninin adlı bir alt akışı işaret ettiğini göstermektedir.ProcessFiles.

Çalışma

Flow Ref bileşeninin çalışması aşağıdaki diyagramın yardımıyla anlaşılabilir -

Diyagram, aynı uygulamada bir akış başka bir akışa başvurduğunda Katır uygulamasındaki işleme sırasını gösterir. Katır uygulamasındaki ana çalışma akışı tetiklendiğinde, Katır olayı baştan sona hareket eder ve Katır olayı Akış Referansına ulaşana kadar akışı yürütür.

Akış Referansına ulaştıktan sonra, Katır olayı referans verilen akışı baştan sona yürütür. Katır olayı Ref Akışını yürütmeyi bitirdiğinde, ana akışa geri döner.

Misal

Daha iyi anlamak için, let us use this component in Anypoint Studio. Bu örnekte, önceki bölümde yaptığımız gibi, HTTP dinleyiciyi bir mesaj GET'e götürüyoruz. Böylece bileşeni sürükleyip bırakabilir ve yapılandırabiliriz. Ancak bu örnek için, aşağıda gösterildiği gibi bir Alt akış bileşeni eklememiz ve bunun altında Yük bileşeni ayarlamamız gerekiyor -

Ardından, yapılandırmamız gerekiyor Set Payload, üzerine çift tıklayarak. Burada, aşağıda gösterildiği gibi "Yürütülen alt akış" değerini veriyoruz -

Alt akış bileşenini başarılı bir şekilde yapılandırdıktan sonra, aşağıda gösterildiği gibi Katır Paletinden sürükleyip bırakabileceğimiz ana akış Yükünü Ayarladıktan sonra ayarlamak için Akış Referans Bileşenine ihtiyacımız var -

Ardından, Akış Referans Bileşenini yapılandırırken, aşağıda gösterildiği gibi Genel sekmesi altında Akış Adı'nı seçmemiz gerekir -

Şimdi bu uygulamayı kaydedin ve çalıştırın. Bunu test etmek için POSTMAN'a gidin ve şunu yazın:http:/localhost:8181/FirstAPP URL çubuğunda ve Alt akış yürütüldü mesajını alacaksınız.

Logger Bileşeni

Logger olarak adlandırılan temel bileşen, hata mesajları, durum bildirimleri, yükler vb. Gibi önemli bilgileri günlüğe kaydederek Katır uygulamamızı izlememize ve hata ayıklamamıza yardımcı olur. AnyPoint stüdyosunda bunlar Console.

Avantajlar

Aşağıda Logger Bileşeninin bazı avantajları verilmiştir -

  • Bu temel bileşeni çalışma akışının herhangi bir yerine ekleyebiliriz.
  • Bizim tarafımızdan belirtilen bir dizeyi günlüğe kaydedecek şekilde yapılandırabiliriz.
  • Bizim tarafımızdan yazılmış bir DataWeave ifadesinin çıktısı olarak yapılandırabiliriz.
  • Ayrıca herhangi bir dizge ve ifade kombinasyonuna göre yapılandırabiliriz.

Misal

Aşağıdaki örnek, bir tarayıcıda Yükü Ayarla'da "Merhaba Dünya" mesajını görüntüler ve mesajı da günlüğe kaydeder.

Yukarıdaki örnekteki akışın XML yapılandırması aşağıdadır -

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

Transfer Mesajı Bileşeni

Transfer bileşeni olarak da adlandırılan Mesaj Bileşenini Dönüştür, girdi verilerini yeni bir çıktı biçimine dönüştürmemizi sağlar.

Dönüşüm oluşturma yöntemleri

Dönüşümümüzü aşağıdaki iki yöntemin yardımıyla inşa edebiliriz -

Drag-and-Drop Editor (Graphical View)- Dönüşümümüzü inşa etmek için ilk ve en çok kullanılan yöntem budur. Bu yöntemde, gelen veri yapısının elemanlarını sürükleyip bırakmak için bu bileşenin görsel eşleştiricisini kullanabiliriz. Örneğin, aşağıdaki diyagramda, iki ağaç görünümü, giriş ve çıkışın beklenen meta veri yapılarını gösterir. Girişi çıktı alanına bağlayan çizgiler, iki ağaç görünümü arasındaki eşlemeyi temsil eder.

Script View- Dönüşümün görsel haritalaması, Katır kodu için bir dil olan DataWeave yardımıyla da temsil edilebilir. Toplama, normalleştirme, gruplama, birleştirme, bölümleme, pivotlama ve filtreleme gibi bazı gelişmiş dönüşümler için kodlama yapabiliriz. Örnek aşağıda verilmiştir -

Bu çekirdek bileşen temelde bir değişken, bir öznitelik veya mesaj yükü için girdi ve çıktı meta verilerini kabul eder. Aşağıdakiler için biçime özel kaynaklar sağlayabiliriz -

  • CSV
  • Schema
  • Düz dosya Şeması
  • JSON
  • Object sınıfı
  • Basit Tip
  • XML Şeması
  • Excel Sütun adı ve türü
  • Sabit Genişlik Sütun adı ve türü

Uç noktalar, temel olarak, Mule uygulamasının bir çalışma akışında işlemeyi tetikleyen veya başlatan bileşenleri içerir. Onlara telefon edildiSource Anypoint Studio'da ve TriggersKatır Tasarım Merkezi'nde. Katır 4'teki önemli bir uç nokta,Scheduler component.

Zamanlayıcı Uç Noktası

Bu bileşen zamana dayalı koşullarda çalışır, yani zamana dayalı bir koşul karşılandığında bir akışı tetiklememize olanak tanır. Örneğin, bir programlayıcı her 10 saniyede bir Katır çalışma akışını başlatmak için bir olayı tetikleyebilir. Bir Zamanlayıcı Uç Noktasını tetiklemek için esnek Cron ifadesini de kullanabiliriz.

Zamanlayıcı hakkında önemli noktalar

Scheduler olayını kullanırken, aşağıda verilen bazı önemli noktalara dikkat etmemiz gerekir -

  • Zamanlayıcı Uç Noktası, Katır çalışma zamanının çalıştığı makinenin saat dilimini izler.

  • CloudHub'da bir Katır uygulaması çalışıyorsa Planlayıcı, CloudHub çalışanının çalıştığı bölgenin saat dilimini izleyecektir.

  • Herhangi bir zamanda, Zamanlayıcı Uç Noktası tarafından tetiklenen yalnızca bir akış etkin olabilir.

  • Katır çalışma zamanı kümesinde, Zamanlayıcı Uç Noktası yalnızca birincil düğümde çalışır veya tetikler.

Bir Zamanlayıcıyı yapılandırma yolları

Yukarıda tartışıldığı gibi, bir zamanlayıcı uç noktasını sabit bir aralıkta tetiklenecek şekilde yapılandırabiliriz veya bir Cron ifadesi de verebiliriz.

Zamanlayıcıyı yapılandırmak için parametreler (Sabit Aralık İçin)

Düzenli aralıklarla bir akışı tetikleyecek bir zamanlayıcı ayarlamak için parametreler aşağıda verilmiştir -

Frequency- Temel olarak Zamanlayıcı Uç Noktasının Katır akışını hangi frekansta tetikleyeceğini açıklar. Bunun için zaman birimi, Zaman Birimi alanından seçilebilir. Bunun için herhangi bir değer sağlamazsanız, 1000 olan varsayılan değeri kullanır. Diğer tarafta, 0 veya negatif bir değer sağlarsanız, o zaman varsayılan değeri de kullanır.

Start Delay- Uygulamaya başladıktan sonra Katır akışını ilk kez tetiklemeden önce beklememiz gereken süredir. Başlangıç ​​gecikmesinin değeri, frekansla aynı zaman birimi cinsinden ifade edilir. Varsayılan değeri 0'dır.

Time Unit- Hem Frekans hem de Başlatma Gecikmesi için zaman birimini tanımlar. Zaman biriminin olası değerleri Milisaniye, Saniye, Dakika, Saat, Günlerdir. Varsayılan değer Milisaniyedir.

Zamanlayıcıyı yapılandırmak için parametreler (Cron İfadesi için)

Aslında Cron, saat ve tarih bilgilerini açıklamak için kullanılan bir standarttır. Zamanlayıcıyı tetiklemek için esnek Cron ifadesini kullanmanız durumunda, Zamanlayıcı Uç Noktası her saniyeyi izler ve Quartz Cron ifadesi saat-tarih ayarıyla eşleştiğinde bir Katır olayı oluşturur. Cron ifadesi ile olay yalnızca bir kez veya düzenli aralıklarla tetiklenebilir.

Aşağıdaki tablo, gerekli altı ayarın tarih-saat ifadesini vermektedir -

Öznitelik Değer
Saniye 0-59
Dakika 0-59
Saatler 0-23
Ayın günü 1-31
Ay 1-12 veya OCAK-ARALIK
Haftanın günü 1-7 veya SUN-SAT

Scheduler Endpoint tarafından desteklenen Quartz Cron ifadelerinin bazı örnekleri aşağıda verilmiştir -

  • ½ * * * * ? - Planlayıcının her gün 2 saniyede bir çalıştığı anlamına gelir.

  • 0 0/5 16 ** ? - planlayıcının her gün 16: 00'da başlayıp 16: 55'te biten her 5 dakikada bir çalıştığı anlamına gelir.

  • 1 1 1 1, 5 * ? - Planlayıcının her yıl Ocak ayının ilk günü ve Nisan ayının ilk günü çalıştığı anlamına gelir.

Misal

Aşağıdaki kod, her saniye "merhaba" mesajını kaydeder -

<flow name = "cronFlow" doc:id = "ae257a5d-6b4f-4006-80c8-e7c76d2f67a0">
   <doc:name = "Scheduler" doc:id = "e7b6scheduler8ccb-c6d8-4567-87af-aa7904a50359">
      <scheduling-strategy>
         <cron expression = "* * * * * ?" timeZone = "America/Los_Angeles"/>
      </scheduling-strategy>
   </scheduler>
   <logger level = "INFO" doc:name = "Logger" 
      doc:id = "e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message = '"hi"'/>
</flow>

Akış Kontrolü (Yönlendiriciler)

Akış Kontrolü bileşeninin ana görevi, giriş Katırı olayını alıp bir veya daha fazla ayrı bileşen dizisine yönlendirmektir. Temel olarak, girdi Katırı olayını diğer bileşen dizilerine yönlendirmektir. Bu nedenle, Yönlendiriciler olarak da adlandırılır. Seçim ve Dağılım-Toplama yönlendiricileri, Akış Kontrolü bileşeni altında en çok kullanılan yönlendiricilerdir.

Seçim Yönlendirici

Adından da anlaşılacağı gibi, bu yönlendirici iki veya daha fazla rotadan birini seçmek için DataWeave mantığını uygular. Daha önce tartışıldığı gibi, her rota ayrı bir Katır olay işlemcisi dizisidir. Seçim yönlendiricilerini, mesaj içeriğini değerlendirmek için kullanılan bir dizi DataWeave ifadesine göre bir akış boyunca dinamik olarak yönlendiren yönlendirici olarak tanımlayabiliriz.

Seçim Yönlendiricinin şematik diyagramı

Seçim yönlendiricisini kullanmanın etkisi, bir akışa veya bir akışa koşullu işlem eklemek gibidir. if/then/elseprogramlama dillerinin çoğunda kod bloğu. Aşağıda, üç seçeneğe sahip bir Seçim Yönlendiricisinin şematik diyagramı verilmiştir. Bunların arasında biri varsayılan yönlendiricidir.

Dağılım Toplama Yönlendirici

En çok kullanılan başka bir yönlendirme olay işlemcisi Scatter-Gather component. Adından da anlaşılacağı gibi, scatter (kopya) ve Gather (Consolidates) temelleri üzerinde çalışır. İşleyişini iki noktayı takip ederek anlayabiliriz -

  • İlk olarak, bu yönlendirici bir Katır olayını iki veya daha fazla paralel yola kopyalar (Dağılım). Koşul, her yolun bir alt akışa benzeyen bir veya daha fazla olay işlemcisinden oluşan bir dizi olması gerektiğidir. Bu durumda her rota, ayrı bir iş parçacığı kullanarak bir Katır olayı oluşturacaktır. Her Katır etkinliğinin kendi yükü, nitelikleri ve değişkenleri olacaktır.

  • Daha sonra bu yönlendirici, oluşturulan Katır olaylarını her rotadan toplar ve ardından bunları yeni bir Katır etkinliğinde birleştirir. Bundan sonra, bu konsolide Katır olayını bir sonraki olay işlemcisine geçirir. Buradaki koşul, SG yönlendiricisinin birleştirilmiş Katır olayını bir sonraki olay işlemcisine yalnızca her yol başarıyla tamamlandığında iletmesidir.

Scatter-Gather Router'ın Şematik Diyagramı

Aşağıda, dört olay işlemcisine sahip bir Dağılım-Toplama Yönlendiricisinin şematik diyagramı verilmiştir. Her yolu sırayla değil paralel olarak yürütür.

Scatter-Gather Router ile Hata Giderme

İlk olarak, Scatter-Gather bileşeninde üretilebilecek hata türleri hakkında bilgi sahibi olmamız gerekir. Olay işlemcileri içinde Scatter-Gather bileşeninin bir tür hatası atmasına neden olan herhangi bir hata üretilebilir.Mule: COMPOSITE_ERROR. Bu hata, SG bileşeni tarafından yalnızca her rota başarısız olduğunda veya tamamlandıktan sonra atılacaktır.

Bu hata türünü işlemek için bir try scopeScatter-Gather bileşeninin her rotasında kullanılabilir. Hata, tarafından başarıyla işlenirsetry scope, o zaman rota elbette bir Katır etkinliği oluşturabilir.

Transformers

Herhangi bir Katır olayının bir bölümünü ayarlamak veya kaldırmak istiyorsak, Transformer bileşeni en iyi seçimdir. Transformatör bileşenleri aşağıdaki tiplerdendir -

Değişken trafoyu kaldır

Adından da anlaşılacağı gibi, bu bileşen bir değişken adı alır ve bu değişkeni Katır olayından kaldırır.

Değişken trafoyu kaldırmayı yapılandırma

Aşağıdaki tablo, değişken trafo çıkarılırken yapılandırılırken dikkate alınacak alanların adını ve açıklamalarını göstermektedir -

Sr.No Alan ve Açıklama
1

Display Name (doc:name)

Bunu, Katır çalışma akışımızda bu bileşen için benzersiz bir ad gösterecek şekilde özelleştirebiliriz.

2

Name (variableName)

Kaldırılacak değişkenin adını temsil eder.

Yük trafosunu ayarlayın

Yardımıyla set-payloadbileşeni, mesajın değişmez bir dizesi veya DataWeave ifadesi olabilen yükü güncelleyebiliriz. Bu bileşenin karmaşık ifadeler veya dönüştürmeler için kullanılması önerilmez. Gibi basit olanlar için kullanılabilirselections.

Aşağıdaki tablo, set yük trafosunu yapılandırırken dikkate alınacak alanların adını ve açıklamalarını göstermektedir -

Alan Kullanım Açıklama
Değer (değer) Zorunlu Dosyalanan değer, bir yük ayarlamak için gereklidir. Yükün nasıl ayarlanacağını tanımlayan değişmez bir dizeyi veya DataWeave ifadesini kabul eder. Örnekler "bazı dizeler" gibidir
Mime Türü (mimeType) İsteğe bağlı İsteğe bağlıdır, ancak mesajın yüküne atanan değerin mime türünü temsil eder. Örnekler metin / düz gibidir.
Kodlama (kodlama) İsteğe bağlı Ayrıca isteğe bağlıdır, ancak mesaj yüküne atanan değerin kodlamasını temsil eder. Örnekler UTF-8 gibidir.

XML yapılandırma kodu aracılığıyla bir yük belirleyebiliriz -

With Static Content - Aşağıdaki XML yapılandırma kodu, statik içeriği kullanarak yükü ayarlayacaktır -

<set-payload value = "{ 'name' : 'Gaurav', 'Id' : '2510' }" 
   mimeType = "application/json" encoding = "UTF-8"/>

With Expression Content - Aşağıdaki XML yapılandırma kodu, İfade içeriğini kullanarak yükü ayarlayacaktır -

<set-payload value = "#['Hi' ++ ' Today is ' ++ now()]"/>

Yukarıdaki örnek, bugünün tarihini "Merhaba" mesaj yükü ile ekleyecektir.

Değişken Transformatörü Ayarla

Yardımıyla set variableBileşeninde, Katır uygulamasının akışında kullanılmak üzere dizeler, mesaj yükleri veya öznitelik nesneleri gibi basit değişmez değerler olabilen değerleri depolamak için bir değişken oluşturabilir veya güncelleyebiliriz. Bu bileşenin karmaşık ifadeler veya dönüştürmeler için kullanılması önerilmez. Gibi basit olanlar için kullanılabilirselections.

Değişken trafo ayarını yapılandırma

Aşağıdaki tablo, set yük trafosunu yapılandırırken dikkate alınacak alanların adını ve açıklamalarını göstermektedir -

Alan Kullanım Açıklama
Değişken Adı (değişkenAdı) Zorunlu Dosyalanması zorunludur ve değişkenin adını temsil eder. Adı verirken, sayı, karakter ve alt çizgi içermesi gerektiği gibi adlandırma kuralına uyun.
Değer (değer) Zorunlu Dosyalanan değer, bir değişken ayarlamak için gereklidir. Değişmez bir dizeyi veya DataWeave ifadesini kabul eder.
Mime Türü (mimeType) İsteğe bağlı İsteğe bağlıdır ancak değişkenin mime türünü temsil eder. Örnekler metin / düz gibidir.
Kodlama (kodlama) İsteğe bağlı Aynı zamanda isteğe bağlıdır ancak değişkenin kodlamasını temsil eder. Örnekler ISO 10646 / Unicode (UTF-8) gibidir.

Misal

Aşağıdaki örnek, değişkeni mesaj yüküne ayarlayacaktır -

Variable Name = msg_var
Value = payload in Design center and #[payload] in Anypoint Studio

Benzer şekilde, aşağıdaki örnek, değişkeni mesaj yüküne ayarlayacaktır -

Variable Name = msg_var
Value = attributes in Design center and #[attributes] in Anypoint Studio.

REST Web Hizmeti

REST'in tam biçimi, HTTP'ye bağlı Temsili Durum Aktarımıdır. Bu nedenle, yalnızca web üzerinde kullanılacak bir uygulama tasarlamak istiyorsanız, REST en iyi seçenektir.

RESTful Web Hizmetlerini Kullanma

Aşağıdaki örnekte, REST bileşenini ve Mule Soft tarafından sağlanan American Flights ayrıntıları adı verilen bir genel RESTful hizmetini kullanacağız. Çeşitli ayrıntıları var ama GET'i kullanacağız:http://training-american-ws.cloudhub.io/api/flightstüm uçuş detaylarını döndürecektir. Daha önce tartışıldığı gibi, REST HTTP ile bağlantılıdır, bu nedenle iki HTTP bileşenine ihtiyacımız var - bu uygulama için de biri Dinleyici ve diğeri İstek. Aşağıdaki ekran görüntüsü HTTP dinleyicisi için yapılandırmayı göstermektedir -

Bağımsız değişkenleri yapılandırma ve iletme

HTTP isteği için yapılandırma aşağıda verilmiştir -

Şimdi, çalışma alanı akışımıza göre, aşağıdaki gibi yapılandırılabilmesi için logger aldık -

Mesaj sekmesinde, yükü dizelere dönüştürmek için kod yazıyoruz.

Uygulamayı Test Etme

Şimdi, uygulamayı kaydedin ve çalıştırın ve son çıktıyı aşağıda gösterildiği gibi kontrol etmek için POSTMAN'a gidin -

REST bileşenini kullanarak uçuş detaylarını verdiğini görebilirsiniz.

SABUN Bileşeni

SOAP'ın tam formu Simple Object Access Protocol. Temel olarak, web servislerinin uygulanmasında bilgi alışverişi için bir mesajlaşma protokolü spesifikasyonudur. Daha sonra, bilgilere web servislerini kullanarak erişmek için Anypoint Studio'da SOAP API kullanacağız.

SABUN tabanlı Web Hizmetlerinin kullanılması

Bu örnek için, adı Ülke Bilgi Hizmeti olan ve ülke bilgileriyle ilgili hizmetleri tutan genel SOAP hizmetini kullanacağız. WSDL adresi:http://www.oorsprong.org/websamples.countryinfo/countryinfoservice.wso?WSDL

Öncelikle, SOAP tüketimini tuvalimizde aşağıda gösterildiği gibi Katır Paletinden sürüklememiz gerekiyor -

Bağımsız Değişkenleri Yapılandırma ve Aktarma

Ardından, HTTP isteğini yukarıdaki örnekte olduğu gibi aşağıda verildiği gibi yapılandırmamız gerekir -

Şimdi, Web Hizmeti Tüketicisini de aşağıda gösterildiği gibi yapılandırmamız gerekiyor -

WSDL Konumunun yerinde, yukarıda verilen WSDL web adresini sağlamamız gerekir (bu örnek için). Web adresini verdiğinizde, Studio hizmeti, Bağlantı Noktası ve Adresi kendi kendine arayacaktır. Manuel olarak sağlamanıza gerek yoktur.

Web Hizmetinden Aktarım Yanıtı

Bunun için Katır akışına bir kaydedici eklememiz ve aşağıda gösterildiği gibi yükü verecek şekilde yapılandırmamız gerekir -

Uygulamayı Test Etme

Uygulamayı kaydedin ve çalıştırın ve son çıktıyı kontrol etmek için Google Chrome'a ​​gidin. Türhttp://localhist:8081/helloSOAP (bu örnek için) ve aşağıdaki ekran görüntüsünde gösterildiği gibi ülke adını kodla gösterecektir -

Yeni Katır hata işleme, Katır 4'te yapılan en büyük ve en büyük değişikliklerden biridir. Yeni hata teslimi karmaşık görünebilir, ancak daha iyi ve daha etkilidir. Bu bölümde, Katır hatası bileşenleri, Hata türleri, Katır hatası kategorileri ve Katır hatalarını ele almak için bileşenler hakkında tartışacağız.

Katır Hatasının Bileşenleri

Katır hatası, Katır istisnasının sonucudur aşağıdaki bileşenlere sahiptir -

Açıklama

Sorunla ilgili açıklama verecek olan Katır hatasının önemli bir bileşenidir. İfadesi aşağıdaki gibidir -

#[error.description]

Tür

Mule hatasının Tür bileşeni, sorunu karakterize etmek için kullanılır. Ayrıca, bir hata işleyicisi içinde yönlendirmeye izin verir. İfadesi aşağıdaki gibidir -

#[error.errorType]

Sebep olmak

Katır hatasının Neden bileşeni, başarısızlığa neden olan temeldeki java atılabilirliğini verir. İfadesi aşağıdaki gibidir -

#[error.cause]

İleti

Mesaj katır hata bileşeni hata ile ilgili isteğe bağlı bir ileti gösterir. İfadesi aşağıdaki gibidir -

#[error.errorMessage]

Alt Hatalar

Katır hatasının Alt Hatalar bileşeni, isteğe bağlı bir iç hatalar koleksiyonu verir. Bu iç hatalar esas olarak Scatter-Gather gibi öğeler tarafından toplu yol hatalarını sağlamak için kullanılır. İfadesi aşağıdaki gibidir -

#[error.childErrors]

Misal

401 durum koduyla HTTP isteğinin başarısız olması durumunda Katır Hataları aşağıdaki gibidir -

Description: HTTP GET on resource ‘http://localhost:8181/TestApp’ 
failed: unauthorized (401)
Type: HTTP:UNAUTHORIZED
Cause: a ResponseValidatorTypedException instance
Error Message: { "message" : "Could not authorize the user." }
Sr.NO Hata Tipi ve Açıklaması
1

TRANSFORMATION

Bu Hata Tipi, bir değer dönüştürülürken bir hata oluştuğunu gösterir. Dönüşüm, DataWeave dönüşümleri değil, Mule Runtime dahili dönüşümüdür.

2

EXPRESSION

Bu tür bir Hata Türü, bir ifade değerlendirilirken bir hata oluştuğunu gösterir.

3

VALIDATION

Bu tür bir Hata Tipi, bir doğrulama hatasının oluştuğunu gösterir.

4

DUPLICATE_MESSAGE

Bir mesaj iki kez işlendiğinde ortaya çıkan bir tür doğrulama hatası.

5

REDELIVERY_EXHAUSTED

Bu tür bir Hata Tipi, bir kaynaktan gelen bir mesajı yeniden işleme için maksimum girişimler tükendiğinde ortaya çıkar.

6

CONNECTIVITY

Bu Hata Tipi, bağlantı kurulurken bir sorun olduğunu gösterir.

7

ROUTING

Bu Hata Tipi, bir mesajın yönlendirilmesi sırasında bir hata oluştuğunu gösterir.

8

SECURITY

Bu Hata Tipi, bir güvenlik hatası oluştuğunu gösterir. Örneğin, geçersiz kimlik bilgileri alındı.

9

STREAM_MAXIMUM_SIZE_EXCEEDED

Bu Hata Türü, bir akış için izin verilen maksimum boyut bittiğinde ortaya çıkar.

10

TIMEOUT

Bir mesajı işlerken zaman aşımını gösterir.

11

UNKNOWN

Bu Hata Tipi, beklenmeyen bir hata oluştuğunu gösterir.

12

SOURCE

Akışın kaynağındaki bir hatanın oluşumunu temsil eder.

13

SOURCE_RESPONSE

Başarılı bir yanıtı işlerken akışın kaynağında bir hatanın oluşmasını temsil eder.

Yukarıdaki örnekte, katır hatasının mesaj bileşenini görebilirsiniz .

Hata Türleri

Hata Türlerini özelliklerinin yardımıyla anlayalım -

  • Katır Hata Tiplerinin ilk özelliği her ikisinden de oluşmasıdır, a namespace and an identifier. Bu, türleri alanlarına göre ayırt etmemizi sağlar. Yukarıdaki örnekte, Hata TürüHTTP: UNAUTHORIZED.

  • İkinci ve önemli özellik, Hata Tipinin bir ana tipe sahip olabilmesidir. Örneğin, Hata TürüHTTP: UNAUTHORIZED vardır MULE:CLIENT_SECURITY ebeveyn olarak aynı zamanda adında bir ebeveyni de vardır MULE:SECURITY. Bu özellik, Hata Tipini daha genel bir öğenin belirtimi olarak belirler.

Hata Türleri

Aşağıdakiler, tüm hataların düştüğü kategorilerdir -

HİÇ

Bu kategori altındaki hatalar, bir Akışta meydana gelebilecek hatalardır. Çok şiddetli değillerdir ve kolayca idare edilebilirler.

KRİTİK

Bu kategori altındaki hatalar, ele alınamayan ciddi hatalardır. Bu kategori altındaki Hata Türlerinin listesi aşağıdadır -

Sr.NO Hata Tipi ve Açıklaması
1

OVERLOAD

Bu Hata Tipi, aşırı yükleme sorunu nedeniyle oluşan bir hatayı gösterir. Bu durumda infaz reddedilecektir.

2

FATAL_JVM_ERROR

Bu tür bir Hata Tipi, önemli bir hatanın oluştuğunu gösterir. Örneğin, yığın taşması.

ÖZEL Hata Tipi

ÖZEL Hata Tipleri tarafımızdan tanımlanan hatalardır. Haritalama sırasında veya hataları yükseltirken tanımlanabilirler. Mule uygulamasındaki diğer mevcut Hata Türlerinden ayırmak için bu Hata Türlerine belirli bir özel ad alanı vermeliyiz. Örneğin, HTTP kullanan Mule uygulamasında, özel hata türü olarak HTTP'yi kullanamayız.

Katır Hata Kategorileri

Geniş anlamda Katır'daki hatalar iki kategoriye ayrılabilir: Messaging Errors and System Errors.

Mesajlaşma Hatası

Bu Katır hatası kategorisi Katır akışıyla ilgilidir. Katır akışında bir sorun meydana geldiğinde, Katır bir mesajlaşma hatası atar. KurabilirizOn Error Bu Katır hatalarını işlemek için hata işleyici bileşeninin içindeki bileşen.

Sistem hatası

Sistem hatası, sistem düzeyinde meydana gelen bir istisnayı gösterir. Mule olayı yoksa, sistem hatası bir sistem hatası işleyicisi tarafından işlenir. Aşağıdaki istisna türleri bir sistem hata işleyicisi tarafından ele alınır -

  • Bir uygulamanın başlatılması sırasında oluşan istisna.
  • Harici bir sisteme bağlantı başarısız olduğunda ortaya çıkan istisna.

Bir sistem hatası olması durumunda, Mule kayıtlı dinleyicilere bir hata bildirimi gönderir. Ayrıca hatayı da günlüğe kaydeder. Öte yandan, Mule, hatanın bir bağlantı hatasından kaynaklanması durumunda bir yeniden bağlanma stratejisi yürütür.

Katır Hatalarını Ele Alma

Mule, hataları ele almak için aşağıdaki iki Hata İşleyiciye sahiptir -

Hata Durumunda Hata İşleyiciler

İlk Katır hata işleyicisi, işleyebilecekleri hata türlerini tanımlayan On-Error bileşenidir. Daha önce tartışıldığı gibi, kapsam benzeri Hata İşleyici bileşeni içindeki Hata Durumundaki bileşenleri yapılandırabiliriz. Her Katır akışı yalnızca bir hata işleyici içerir, ancak bu hata işleyici, ihtiyaç duyduğumuz kadar Hata Durumunda kapsamı içerebilir. On-Error bileşeni yardımıyla akış içindeki Katır hatasını ele alma adımları aşağıdaki gibidir -

  • İlk olarak, Katır akışı bir hata verdiğinde, normal akış yürütmesi durur.

  • Daha sonra süreç, Error Handler Component zaten var On Error component hata türleri ve ifadeleri eşleştirmek için.

  • Sonunda, Hata İşleyici bileşeni hatayı ilk On Error scope bu hatayla eşleşiyor.

Aşağıda, Mule tarafından desteklenen iki Hata Durumunda bileşen türü verilmiştir -

Hata Durumunda Yayılma

Hata Durumunda Yayılma bileşeni çalıştırır ancak hatayı bir sonraki seviyeye yayar ve sahibin yürütmesini durdurur. İşlem, tarafından işlenirse geri alınacakOn Error Propagate bileşen.

Hata Durumunda Devam Et

On-Error Propagate bileşeni gibi, On-Error Continue bileşeni de işlemi yürütür. Tek koşul, eğer sahibi yürütmeyi başarıyla tamamlamışsa, bu bileşenin sahibinin sonucu olarak yürütmenin sonucunu kullanmasıdır. İşlem, Hata Durumunda Devam Et bileşeni tarafından işlenirse gerçekleştirilecektir.

Kapsam Bileşenini Deneyin

Deneme Kapsamı, Katır 4'te bulunan birçok yeni özellikten biridir. Bu, bir istisna olma olasılığı olan kodu içine aldığımız JAVA deneme bloğuna benzer şekilde çalışır, böylece tüm kodu kırmadan kullanılabilir.

Bir veya daha fazla Mule olay işlemcisini Try Scope'a sarabiliriz ve daha sonra, try kapsamı bu olay işlemcileri tarafından atılan tüm istisnaları yakalar ve işler. Deneme kapsamının ana çalışması, tüm akış yerine iç bileşeninde hata işlemeyi destekleyen kendi hata işleme stratejisi etrafında döner. Bu nedenle akışı ayrı bir akışa çıkarmamıza gerek yoktur.

Example

Aşağıda, try kapsamının kullanımına bir örnek verilmiştir -

İşlemleri işlemek için deneme kapsamını yapılandırma

Bildiğimiz gibi işlem, asla kısmen yürütülmemesi gereken bir dizi eylemdir. Bir işlemin kapsamındaki tüm işlemler aynı iş parçacığında yürütülür ve bir hata oluşursa, bir geri dönüşe veya bir kesinliğe yol açmalıdır. Try kapsamını aşağıdaki şekilde yapılandırabiliriz, böylece alt işlemleri bir işlem olarak ele alır.

  • INDIFFERENT [Default]- Bu yapılandırmayı try bloğunda seçersek, alt eylemler bir işlem olarak değerlendirilmeyecektir. Bu durumda, hata ne geri dönüşe ne de taahhütlere neden olur.

  • ALWAYS_BEGIN - Kapsam her yürütüldüğünde yeni bir işlemin başlatılacağını gösterir.

  • BEGIN_OR_JOIN- Akışın mevcut işlemesinin zaten bir işlem başlattığını, buna katılacağını gösterir. Aksi takdirde, yeni bir tane başlatın.

Her proje durumunda, istisnalar hakkındaki gerçek, bunların gerçekleşmesi gerektiğidir. Bu nedenle istisnaları yakalamak, sınıflandırmak ve ele almak önemlidir, böylece sistem / uygulama tutarsız bir durumda bırakılmaz. Tüm Katır uygulamalarına dolaylı olarak uygulanan varsayılan bir istisna stratejisi vardır. Bekleyen herhangi bir işlemi otomatik olarak geri almak, varsayılan istisna stratejisidir.

Katırda istisnalar

İstisnai işleme derinlemesine dalmadan önce, bir geliştiricinin istisna işleyicileri tasarlarken sahip olması gereken üç temel soruyla birlikte ne tür istisnaların ortaya çıkabileceğini anlamalıyız.

Hangi Taşıma önemlidir?

İstisna işleyicileri tasarlamadan önce bu sorunun fazlasıyla ilgisi vardır çünkü tüm taşımalar ulusaşırılığı desteklemez.

File veya HTTPişlemleri desteklemez. Bu nedenle, bu durumlarda bir istisna meydana gelirse, bunu manuel olarak yönetmeliyiz.

Databasesdestek işlemleri. Bu durumda istisna işleyicileri tasarlarken, veritabanı işlemlerinin otomatik olarak geri alınabileceğini unutmamalıyız (gerekirse).

Durumunda REST APIsdoğru HTTP durum kodlarını döndürmeleri gerektiğini unutmamalıyız. Örneğin, bir kaynak için 404 bulunamadı.

Hangi Mesaj Değişim Modeli kullanılacak?

İstisna işleyicileri tasarlarken, Mesaj değişim modeline dikkat etmeliyiz. Senkronize (istek-cevap) veya asenkron (yangın-unut) mesaj modeli olabilir.

Synchronous message pattern istek-yanıt biçimine dayalıdır, bu da bu kalıbın bir yanıt bekleyeceği ve bir yanıt dönene veya zaman aşımı gerçekleşene kadar engelleneceği anlamına gelir.

Asynchronous message pattern yangın-unut biçimine dayalıdır, bu da bu modelin taleplerin nihayetinde işleneceğini varsaydığı anlamına gelir.

Bu ne tür bir istisnadır?

Çok basit bir kural, istisnayı türüne göre ele alacağınızdır. İstisnanın bir sistem / teknik sorundan mı yoksa bir iş sorunundan mı kaynaklandığını bilmek çok önemlidir.

Tarafından bir istisna meydana geldi system/technical issue (ağ kesintisi gibi) bir yeniden deneme mekanizmasıyla otomatik olarak ele alınmalıdır.

Öte yandan, bir istisna meydana geldi by a business issue (geçersiz veriler gibi), yeniden deneme mekanizması uygulanarak çözülmemelidir çünkü altta yatan nedeni düzeltmeden yeniden denemenin faydası yoktur.

İstisnaları Neden Sınıflandırmalı?

Tüm istisnaların aynı olmadığını bildiğimiz için istisnaları kategorize etmek çok önemlidir. Yüksek düzeyde, istisnalar aşağıdaki iki türe ayrılabilir:

İş İstisnaları

İş istisnalarının ortaya çıkmasının ana nedenleri yanlış veriler veya yanlış süreç akışıdır. Bu tür istisnalar genellikle doğası gereği geri alınamaz ve bu nedenle birrollback. Hatta uygulanıyorretrymekanizma herhangi bir anlam ifade etmeyecektir çünkü altta yatan nedeni çözmeden yeniden denemek yararlı değildir. Bu tür istisnaların üstesinden gelmek için, işlemenin derhal durması ve istisnanın teslim edilemeyen bir kuyruğa yanıt olarak geri gönderilmesi gerekir. Operasyonlara bir bildirim de gönderilmelidir.

Ticari Olmayan İstisnalar

Ticari olmayan istisnaların ortaya çıkmasının ana nedenleri, sistem sorunu veya teknik sorundur. Bu tür istisnalar doğası gereği geri alınabilir ve bu nedenle birretry bu istisnaları çözmek için mekanizma.

İstisna Yönetimi Stratejileri

Katır aşağıdaki beş istisna yönetimi stratejisine sahiptir:

Varsayılan İstisna Stratejisi

Katır bu stratejiyi örtük olarak Katır akışlarına uygular. Akışımızdaki tüm istisnaları idare edebilir, ancak bir yakalama, Seçim veya Geri Alma istisna stratejisi ekleyerek de geçersiz kılınabilir. Bu istisna stratejisi, bekleyen işlemleri geri alır ve istisnaları da günlüğe kaydeder. Bu istisna stratejisinin önemli bir özelliği, işlem yoksa istisnayı da günlüğe kaydetmesidir.

Varsayılan strateji olarak Mule, akışta herhangi bir hata oluştuğunda bunu uygular. AnyPoint stüdyosunda yapılandıramıyoruz.

Geri Alma İstisna Stratejisi

Diyelim ki hatayı düzeltmek için olası bir çözüm yoksa ne yapmalı? Bir çözüm, mesajı yeniden işlemek için ana akışın gelen bağlayıcısına bir mesaj göndermenin yanı sıra işlemi geri alacak olan Geri Alma İstisna Stratejisi kullanmaktır. Bu strateji, bir mesajı yeniden işlemek istediğimizde de çok kullanışlıdır.

Example

Bu strateji, fonların bir çek / tasarruf hesabına yatırıldığı bankacılık işlemlerine uygulanabilir. Burada bir geri alma istisnası stratejisi yapılandırabiliriz, çünkü işlem sırasında bir hata meydana gelirse, bu strateji, işlemeyi yeniden denemek için mesajı başlangıca geri döndürür.

İstisna Stratejisini Yakala

Bu strateji, ana akışı içinde atılan tüm istisnaları yakalar. Üst akış tarafından atılan tüm istisnaları işleyerek Mule'nin varsayılan istisna stratejisini geçersiz kılar. İstisnaların gelen bağlayıcılara ve ana akışlara yayılmasını önlemek için bir istisna yakalama stratejisi kullanabiliriz.

Bu strateji ayrıca, akış tarafından işlenen bir işlemin bir istisna oluştuğunda geri alınmamasını sağlar.

Example

Bu strateji, bir kuyruktan gelen mesajları işlemek için bir akışa sahip olduğumuz uçuş rezervasyon sistemine uygulanabilir. Bir mesaj zenginleştirici, koltuk ataması için mesaja bir özellik ekler ve ardından mesajı başka bir kuyruğa gönderir.

Şimdi, bu akışta herhangi bir hata oluşursa, mesaj bir istisna atacaktır. Burada, istisna yakalama stratejimiz uygun bir mesaj içeren bir başlık ekleyebilir ve bu mesajı akıştan bir sonraki kuyruğa itebilir.

Seçim İstisna Stratejisi

İstisnayı mesaj içeriğine göre ele almak istemeniz durumunda, seçim istisnası stratejisi en iyi seçim olacaktır. Bu istisna stratejisinin işleyişi aşağıdaki gibi olacaktır -

  • İlk olarak, ana akış içinde atılan tüm istisnaları yakalar.
  • Ardından, mesaj içeriğini ve istisna türünü kontrol eder.
  • Ve sonunda, mesajı uygun istisna stratejisine yönlendirir.

Seçim istisna stratejisi içinde tanımlanan Catch veya Geri Alma gibi birden fazla istisna stratejisi olacaktır. Bu istisna stratejisi altında tanımlanmış bir stratejinin olmaması durumunda, mesajı varsayılan istisna stratejisine yönlendirecektir. Asla herhangi bir taahhüt veya geri alma gerçekleştirmez veya etkinlikleri tüketmez.

Referans İstisna Stratejisi

Bu, ayrı bir yapılandırma dosyasında tanımlanan ortak bir istisna stratejisine başvurur. Bir mesajın bir istisna atması durumunda, bu istisna stratejisi, genel bir yakalama, geri alma veya seçim istisnası stratejisinde tanımlanan hata işleme parametrelerine başvuracaktır. Seçim istisnası stratejisi gibi, hiçbir zaman herhangi bir taahhüt veya geri alma gerçekleştirmez veya faaliyetleri de tüketmez.

Birim testinin, kullanıma uygun olup olmadıklarını belirlemek için tek tek kaynak kod birimlerinin test edilebileceği bir yöntem olduğunu anlıyoruz. Java programcıları test senaryoları yazmak için Junit çerçevesini kullanabilir. Benzer şekilde MuleSoft, API'lerimiz ve entegrasyonlarımız için otomatik test senaryoları yazmamıza izin veren MUnit adlı bir çerçeveye de sahip. Sürekli entegrasyon / dağıtım ortamı için mükemmel bir seçimdir. MUnit çerçevesinin en büyük avantajlarından biri, onu Maven ve Surefire ile entegre edebilmemizdir.

MUnit'in Özellikleri

Aşağıda, Mule MUnit test çerçevesinin çok kullanışlı özelliklerinden bazıları verilmiştir -

  • MUnit çerçevesinde Mule testimizi Java kodunun yanı sıra Katır kodu kullanarak oluşturabiliriz.

  • Mule uygulamalarımızı ve API'lerimizi Anypoint Studio'da grafik veya XML olarak tasarlayabilir ve test edebiliriz.

  • MUnit, testi mevcut CI / CD sürecine kolayca entegre etmemizi sağlar.

  • Otomatik olarak oluşturulan testler ve kapsam raporları sağlar; dolayısıyla manuel çalışma minimumdur.

  • CI işlemi aracılığıyla testi daha taşınabilir hale getirmek için yerel DB / FTP / posta sunucularını da kullanabiliriz.

  • Testleri etkinleştirmemizi veya devre dışı bırakmamızı sağlar.

  • MUnit çerçevesini eklentilerle de genişletebiliriz.

  • Mesaj işlemci çağrılarını doğrulamamıza izin verir.

  • MUnit test çerçevesinin yardımıyla, uç nokta bağlayıcılarının yanı sıra gelen akış uç noktalarını devre dışı bırakabiliriz.

  • Mule stack trace ile hata raporlarını kontrol edebiliriz.

Mule MUnit Test Çerçevesinin Son Sürümü

MUnit 2.1.4, Mule MUnit test çerçevesinin en son sürümüdür. Aşağıdaki donanım ve yazılım gereksinimlerini gerektirir -

  • MS Windows 8+
  • Apple Mac OS X 10.10+
  • Linux
  • Java 8
  • Maven 3.3.3, 3.3.9, 3.5.4, 3.6.0

Mule 4.1.4 ve Anypoint Studio 7.3.0 ile uyumludur.

MUnit ve Anypoint Studio

Tartışıldığı gibi MUnit, Anypoint stüdyosuna tamamen entegre edilmiştir ve Mule uygulamalarımızı ve API'lerimizi Anypoint stüdyosunda grafik olarak veya XML olarak tasarlayabilir ve test edebiliriz. Diğer bir deyişle, aşağıdakileri yapmak için Anypoint Studio'nun grafik arayüzünü kullanabiliriz -

  • MUnit testleri oluşturmak ve tasarlamak için
  • Testlerimizi yapmak için
  • Test sonuçlarını ve kapsam raporunu görüntülemek için
  • Testlerde hata ayıklamak için

Öyleyse, her görevi tek tek tartışmaya başlayalım.

MUnit Testleri Oluşturma ve Tasarlama

Yeni projeye başladığınızda, otomatik olarak yeni bir klasör ekleyecektir. src/test/munitprojemize. Örneğin, yeni bir Katır projesi başlattık yanitest_munitAşağıdaki görselde görebileceğiniz gibi, yukarıda bahsettiğimiz klasörü projemizin altına ekler.

Şimdi, yeni bir projeye başladığınızda, Anypoint Studio'da yeni bir MUnit testi oluşturmanın iki temel yolu vardır -

  • By Right-Clicking the Flow - Bu yöntemde, belirli akışa sağ tıklamamız ve açılır menüden MUnit'i seçmemiz gerekir.

  • By Using the Wizard- Bu yöntemde test oluşturmak için sihirbazı kullanmamız gerekiyor. Çalışma alanındaki herhangi bir akış için bir test oluşturmamızı sağlar.

Belirli bir akış için bir test oluşturmak için 'Akışı sağ tıklayın' yolunu kullanacağız.

İlk olarak, çalışma alanında aşağıdaki gibi bir akış oluşturmamız gerekiyor -

Şimdi, bu akışa sağ tıklayın ve aşağıda gösterildiği gibi bu akış için bir test oluşturmak üzere MUnit'i seçin -

Akışın bulunduğu XML dosyasının adını taşıyan yeni bir test paketi oluşturacaktır. Bu durumda,test_munit-test-suite aşağıda gösterildiği gibi yeni test paketinin adıdır -

Aşağıda, yukarıdaki mesaj akışı için XML düzenleyicisi verilmiştir -

Şimdi ekleyebiliriz MUnit Mesaj işlemcisi, Mule Palette'den sürükleyerek test süitine.

Sihirbaz aracılığıyla bir test oluşturmak istiyorsanız, File → New → MUnit ve sizi aşağıdaki MUnit test paketine götürecektir -

Testi yapılandırma

Katır 4'te iki yeni bölümümüz var. MUnit ve MUnit Tools, toplu olarak tüm MUnit mesaj işlemcisine sahip. MUnit test alanınızdaki mesaj işlemcilerinden herhangi birini sürükleyebilirsiniz. Aşağıdaki ekran görüntüsünde gösterilmektedir -

Şimdi, elbisenizin konfigürasyonunu düzenlemek veya Anypoint Studio'da test etmek istiyorsanız, aşağıdaki adımları izlemeniz gerekir -

Step 1

Şuraya git Package Explorer ve sağ tıklayın .xml filesüitiniz veya testiniz için. Ardından,Properties.

Step 2

Şimdi, Özellikler penceresinde, Run/Debug Settings. Bu tıklamadan sonraNew.

Step 3

Son adımda, tıklayın MUnit altında Select Configuration Type penceresini açın ve ardından OK.

Testi Çalıştırmak

Bir test paketi ve bir test yürütebiliriz. İlk önce bir test paketinin nasıl çalıştırılacağını göreceğiz.

Bir Test Paketi Çalıştırmak

Bir test paketi çalıştırmak için, Katır Kanvası'nın test süitinizin bulunduğu boş kısmına sağ tıklayın. Bir açılır menü açacaktır. Şimdi tıklayınRun MUnit suite aşağıda gösterildiği gibi -

Daha sonra çıktıyı konsolda görebiliriz.

Test Çalıştırmak

Belirli bir testi çalıştırmak için belirli testi seçmemiz ve üzerine sağ tıklamamız gerekir. Test paketini çalıştırırken aldığımızla aynı açılır menüyü alacağız. Şimdi tıklayınRun MUnit Test aşağıda gösterildiği gibi seçenek -

Ardından çıkış konsolda görülebilir.

Test Sonucunu Görüntüleme ve Analiz Etme

Anypoint stüdyosu MUnit test sonucunu MUnit tabsol taraftaki gezgin bölmesinin. Aşağıda gösterildiği gibi başarılı testleri yeşil renkte ve başarısız olan testleri kırmızı renkte bulabilirsiniz -

Kapsam raporumuzu inceleyerek test sonucumuzu analiz edebiliriz. Kapsam Raporunun ana özelliği, bir Mule uygulamasının ne kadarının bir dizi MUnit testi tarafından başarıyla yürütüldüğüne dair bir ölçüm sağlamaktır. MUnit kapsamı temelde yürütülen MUnit mesaj işlemcisi miktarına bağlıdır. MUnit kapsama raporu, aşağıdakiler için metrik sağlar -

  • Uygulama genel kapsamı
  • Kaynak kapsamı
  • Akış kapsamı

Kapsam raporunu almak için, aşağıda gösterildiği gibi MUnit sekmesinin altındaki 'Rapor Oluştur'u tıklamamız gerekiyor -

Testte hata ayıklama

Bir test paketinin yanı sıra bir testin de hatalarını ayıklayabiliriz. İlk olarak, bir test paketinde nasıl hata ayıklanacağını göreceğiz.

Bir Test Paketinde Hata Ayıklama

Bir test paketinde hata ayıklamak için, Katır Kanvası'nın test süitinizin bulunduğu boş kısmına sağ tıklayın. Bir açılır menü açacaktır. Şimdi tıklayınDebug MUnit Suite aşağıdaki resimde gösterildiği gibi -

Daha sonra çıktıyı konsolda görebiliriz.

Bir Testte Hata Ayıklama

Belirli bir testte hata ayıklamak için, belirli testi seçip üzerine sağ tıklamamız gerekir. Test paketinde hata ayıklarken aldığımızla aynı açılır menüyü alacağız. Şimdi tıklayınDebug MUnit Testseçeneği. Aşağıdaki ekran görüntüsünde gösterilmiştir.