Sistem entegrasyonu, firmanızda zaten kullanılan yazılımların birbiriyle veri alışverişi yapmasını sağlayan çalışmadır. Muhasebe programındaki bir kayıt web panelinde görünsün, sahadaki bir cihazdan girilen bilgi merkez sisteme düşsün, bir siparişin durumu mobil uygulamada güncellensin gibi ihtiyaçlar bu başlığa girer. Cihaz özelleştirme ise yazılımın firmanızdaki belirli cihazlara ve çalışma düzenine uyacak şekilde ayarlanmasıdır.
İki konu çoğunlukla birlikte gelir, çünkü yeni bir yazılım nadiren boş bir ortama kurulur: yanında eski bir program, farklı bir cihaz parkı ve alışılmış bir iş akışı vardır. Amacımız bunların hiçbirini çöpe atmadan, yeni yazılımı mevcut düzene oturtmaktır.
Sistem entegrasyonu ne zaman gerekir?
- Aynı bilgiyi iki ayrı programa elle girdiğinizde.
- Bir programdaki veriyi başka bir programda raporlamak için dışa aktarıp yeniden yüklediğinizde.
- Mobil uygulamanızın ya da web sitenizin firmadaki mevcut bir sistemden canlı veri alması gerektiğinde.
- Farklı birimlerin farklı yazılımları kullanıp ortak bir tablo görememesi durumunda.
- Yeni geliştirilen yazılımın var olan bir cihazla ya da servisle çalışması gerektiğinde.
Entegrasyon nasıl planlanır?
İyi bir entegrasyon, kod yazmadan önce yapılan işle başlar. Planımız genellikle şu adımlardan oluşur:
- Mevcut sistemlerin çıkarılması: hangi yazılımlar kullanılıyor, kimler kullanıyor, hangi veriyi tutuyorlar?
- Veri akışının belirlenmesi: hangi bilgi hangi yazılımdan hangisine, hangi yönde ve ne sıklıkla gidecek?
- Erişim yolunun netleştirilmesi: karşı yazılım dışarıya servis sunuyor mu, nasıl bağlanılıyor, kimin izni gerekiyor?
- Hata durumlarının düşünülmesi: bağlantı koparsa, aynı kayıt iki kez gelirse ya da karşı taraf geç yanıt verirse ne olacak?
- Deneme ortamında test: canlı verilere dokunmadan önce akışın ayrı bir ortamda denenmesi.
- Devreye alma ve izleme: entegrasyon çalışmaya başladıktan sonra beklenmedik durumların fark edilmesi.
Bu listenin en çok atlanan kalemi, kayıtların nasıl eşleşeceğidir. Aynı müşteri bir yazılımda numarayla, diğerinde adla kayıtlı olabilir; ya da bir sistemde iki ayrı kayıt olarak görünen kişi diğerinde tek kayıttır. Hangi alanın iki sistemde ortak anahtar sayılacağını, çakışma çıktığında hangi sistemin verisinin geçerli kabul edileceğini kod yazmadan önce belirlemek, sonradan yaşanacak veri karışıklığını önler.
Servislerle entegrasyon: programlar nasıl konuşur?
Birçok yazılım, dışarıdaki programlarla konuşabilmek için bir servis ya da API sunar. API, bir programın başka bir programdan belirli bilgileri istemesini ya da ona bilgi göndermesini sağlayan, kuralları belli bir arayüzdür. Entegrasyonu çoğunlukla bu servisler üzerinden kurarız; kendi tarafımızda ASP.NET Core ile yazdığımız servisler de karşı tarafın istediği biçime uyum sağlar.
Cihazla merkezî servis arasındaki bağlantı da bu türden bir entegrasyondur. Örneğin Ekran Kaydedici'de her cihaz merkezi yönetim servisine düzenli olarak durum bilgisi ("nabız") gönderir; böylece cihazın çevrim içi olup olmadığı panelde canlı görünür. Entegrasyon servisleri çoğu zaman arayüzsüzdür: kullanıcı onları görmez, yalnızca verinin doğru yerde olduğunu fark eder. Bu durumda çalışma modelimizde Tasarım aşaması yer almaz; süreç Geliştirme, Test, Düzenleme ve Yeniden İnceleme olarak ilerler. Ekranı olan bir yönetim paneli de gerekiyorsa o kısım için Tasarım aşaması da eklenir.
Platform bağımsız çalışma
Firmalarda tek tip cihaz nadirdir. Bir bölüm Windows bilgisayar, bir bölüm Android tablet, saha ekibi iOS telefon kullanıyor olabilir. Çözümü platform bağımsız kurmak, aynı sistemin bu cihazların hepsinde çalışabilmesi demektir. Bunu genellikle iş mantığını ve veriyi merkezî bir API ve veritabanında tutup, her platform için ince bir istemci yazarak yaparız: tarayıcıdan açılan bir web yazılımı, Android ve iOS için Flutter ile yazılmış bir mobil uygulama ya da Windows'a özgü bir masaüstü yazılımı.
Cihaza özgü özelleştirme
Aynı yazılım her cihazda aynı biçimde rahat çalışmaz. Cihaza özgü özelleştirme, yazılımın firmanızdaki cihazlara göre uyarlanmasıdır. Örneğin ekran boyutuna göre düzenin değişmesi, bağlı bir donanımla (yazıcı ya da okuyucu gibi) çalışılması, cihazın tek bir iş için ayrılması ve kullanıcının başka bir şeye geçememesi, ağ bağlantısının zayıf olduğu yerlerde verinin önce cihazda tutulup sonra gönderilmesi bu başlığa girebilir.
Bir örnek vermek gerekirse: aynı yazılımın hem masaüstü bilgisayarda hem sahada kullanılan küçük ekranlı bir cihazda çalışması gerektiğinde, ikisine de aynı ekranı sığdırmaya çalışmak yerine her cihaz için o cihazın kullanım biçimine uygun bir düzen hazırlarız. Veri ve iş kuralları ortak kalır; yalnızca cihaza dokunan kısım değişir. Böylece bir kuralı bir kez değiştirmek tüm cihazlarda geçerli olur.
Hangi özelleştirmelerin gerektiği, cihazları ve kullanım koşullarını görmeden söylenemez. Bu yüzden ilk görüşmede cihaz modellerini, işletim sistemi sürümlerini ve kullanıldıkları ortamı sormamız normaldir.
Sınırlar ve dürüst notlar
Entegrasyonun kapsamını çoğunlukla karşı taraftaki yazılım belirler. Bir yazılım dışarıya servis sunmuyorsa ya da kullanım koşulları buna izin vermiyorsa her zaman bağlanmak mümkün olmayabilir. Böyle durumlarda alternatif yolları değerlendiririz; ancak sonucu önceden vaat etmeyiz.
Başka bir sağlayıcının yazılımı söz konusuysa, o yazılımı sağlayan tarafın erişim izni ve belgeleri de sürecin parçasıdır. Bu bilgilere sahip olmak, entegrasyonun planlanmasını ciddi ölçüde hızlandırır ve kolaylaştırır.
Çalışma modeli ve başlangıç
Entegrasyon projelerinde de tasarım ve işleyiş kararlarına canlı olarak katılabilirsiniz; geliştirme aşamaları ekran görüntüleriyle size e-posta yoluyla bildirilir. Projenin nasıl planlanacağını yazılım projesi nasıl planlanır yazısında ayrıntılı anlattık.
Mevcut sistemlerinizi ve ulaşmak istediğiniz sonucu iletişim sayfamızdan kısaca yazın. Süre, kapsama ve ekip yoğunluğuna göre değiştiği için bunu görüşmede birlikte netleştiririz.