MS BizTalk Server ve Entegrasyon
BizTalk entegrasyon işlerinizi kolaylaştırarak dağınık durumdaki uygulamalarınızdan daha fazla verim almanızı sağlar ve farklı platformlar arası iletişim zorluklarını minimize eder.
Bimsa olarak Microsoft BizTalk ürününü de müşterilerimizin istekleri doğrultusunda entegrasyon projelerimizde kullanıyoruz. BizTalk adapter desteği sayesinde hemen hemen her tür platform ile iletişim kurabilmektedir. İlerleyen kısımlarda yapıyı anlayabilmeniz için bir örnek ele alınacaktır.
Genel Yapısı
BizTalk benzer uygulamalara göre daha esnek ve daha görseldir. Sürece müdahale etmek değişiklik yapmak son derece kolaydır. Geliştirici açısından da bug, log ve yönetim ekranları kolay anlaşılabilir türdendir. Süreçlerde kod yazarak veya elinizdeki frameworkleri (dll library) referans gösterip kullanabilirsiniz.
Kurulumu ve Kullanımı
BizTalk’u Windows sistemi ve SQL Server 2005 üzerine kurabilirsiniz kurulumu kolaydır ve kolay ayarlanabilir. Geliştirme ortamını MS Visual Studio üzerinde yaparsınız ve Sunucu üzerine projeyi deploy edersiniz. Projenizin çalışma yapısı ve diğer yapılarla olan ilişkisi tamamen sizin isteklerinize ve hayal gücünüze bırakılmış bir durumdur. Entegrasyon süreçleri şirketlere ve durumlara özgü olduğundan senaryolar belirlenirken Müşteri ve Üstlenici firmaların uyumlu çalışmaları önem arz etmektedir.
Neden BizTalk?
Benzerlerine göre daha kolay kullanım yapısı sağlar ve maliyet açısından daha karlıdır. Diğer MS ürünleri gibi kullanıcı oldukça görsel bir yapıda dizayn gerçekleştirir. Rahatlıkla esnetilebilir ve Kod yazarak süreçlere müdahale edilebilir.
Aşağıda BizTalk yapısını daha iyi anlayabilmeniz açısından bir sistem örneği ile ele alacağız.
Örnek :
|
Şirketler |
Sistem |
Uygulama |
İletim |
AĞ |
|
Test1 |
Windows |
X |
Text |
1 |
|
Test2 |
Linux |
Y |
Text |
2 |
|
Test3 |
Windows |
X |
WCF |
1 |
|
Test4 |
A |
T |
RFS |
4 |
|
Denetci |
Windows |
Z |
- |
4 |
|
|
|
|
|
|
Denetçi şirketi diğer 4 şirketi denetlemek zorundadır. Test1, Test2, Test3 ve Test4 şirketleri finans kurumlarıdır. Kendi içlerinde kullandıkları yazılımlar farklıdır ama Denetciye belirli bir şemada verilerini göndermeleri gerekmektedir. Gönderdikleri veriler bu şirketlere ait mali bilgilerdir ve güvenliğin iyi seviyede olması gerekmektedir. Tablodan da görülebileceği gibi sistem’e gönderilecek olan veriler de farklı yapılardadır. Test1 ve Test2 şirketleri verilerini BizTalk’a txt dosyası formatında göndereceklerdir, Test3 şirketi bunu yine bir Microsoft teknolojisi olan WCF servisi üzerinden iletecek, Test4 şirketi ise RFS servisini kullanacaktır. Şirketlerin istekleri, güvenlik, yapılara bakılarak çok çeşitli senaryolar edinilebilir. Ama biz yüksek güvenliğin ön planda olduğunu varsayarak entegrasyonun doğrudan sistemlerin bulunduğu sunuculara erişimlerine izin vermeyip araya bir gateway makinesi bırakacağız. Uygulama veriyi Gateway makinesine yani ara sunucuya bırakacak oradan da sistem’e iletilecektir. Hiç bir zaman uygulama ile doğrudan iletişim olmayacaktır. Firewall ayarları ile yalnızca belirtilen yönlerde ve belirtilen portlara gerekli izinler verilerek maksimum güvenlik sağlanmalıdır. Aşağıdaki şekil sistemin anlaşılabilmesi açısından önemlidir.

Yukarıdaki şekilde verinin Denetçi’ye nasıl ulaştığı açık şekilde görülmektedir. Test4 şirketi ile denetcinin aynı ağı paylaştığını varsaydık. Test2 şirketi ise kendi ağı’nda olmayan bir Gateway sunucusuna veri aktarımı yapmaktadır. Verilerin uygulamalardan alınırken gateway’e alınmadan önce tespit edilmiş yani BizTalk sunucusu tarafından bilinen bir yöntem ile şifrelendiğini varsayıyoruz. Gateway makinesinden Biztalk’a aktarılırken ise SSL yardımıyla güvenli bir platformdan yani tekrar şifrelenerek gönderiliyor. Biztalk bu mesajları MSMQ ya da WCF kullanarak HTTP protokolü üzerinden alıyor olsun (TCP, UDP... v.b. tamamen bize bağlı). Gelen veriyi BizTalk kendisi isteyebileceği gibi verinin karşı taraftan gönderilmesini de bekleyebilir. Verinin bizim tarafımızdan belirli aralıklarla istendiğini varsayalım bu durumda Biztalk’da receive port ve receive location tanımlanacak ve yolu belirlenen sistemlerden belirtilen süre aralığında isteklerde bulunulacak eğer veri alınırsa bu önceden belirlenmiş ortak şemayla karşılaştırılacak ve bir validation işleminden geçecek verinin doğruluğu kontrol edilecek verinin hatalı olması durumda işlem kesilecek ve geriye hata e-mail’i dönecek aksi durumda veri Denetci firmanın sistemine işlenecek ve eğer istenmişse geriye sonuç döndürülecektir. Olay genel olarak bakıldığında rahat anlaşılabilir bir durumdadır. Geriye kalan tüm işlem analiz sonuçları çerçevesinde firmaların mutabık kaldığı şekilde tasarlanır.