Açık platformlar için Application Programming Interface (API) önemli bir bileşendir ancak bu çoğu zaman yanlış anlaşılmaktadır. API’ler entegrasyon için çok fayda sağlarken, API kullanımı kolay olmamaktadır.
API’ler fiziksel güvenlik sistemlerinde farklı sistemlerin birarada çalışabilmesini amaçlar. Örnek vermek gerekirse :
- 3.parti video yönetim yazılımı (VMS) ile IP kamera entegrasyonu ya da IP kameranın video analitik kabiliyetlerinin entegrasyonu,
- Access control sistemi ile IP kamera sisteminin konuşturulması, olaylara göre IP kamerada aksiyonlarının alınması (örnek : PTZ kameranın x preset’ini çağır, e-posta gönder vb.)
- Tüm güvenlik sistemlerini tek bir çatıda toplamayı ve entegre etmeyi sağlayan PSIM sistemi inşa etmek,
Birçok üreticiye sorulduğunda, sisteminiz X sistemi ile entegre olabilir mi, konuşabilir mi ? yaygın olarak alınan yanıt, evet biz API’ye sahibiz, entegre olabiliriz.
Ancak API kapsamında sağlanan özellikler nedir, API kapsamındaki özellikler ihtiyacı görüyor mu bunlar asıl kritik konulardır.
Entegrasyon esnasında birden çok API’ye ihtiyaç bulunmaktadır. Büyük sistemlerde, binlerce API bulunmaktadır. Genellikle, bir sistemde her bir fonksiyon için API bulunmaktaıdr. Örneğin canlı görüntü alınabilmesi için, canlı görüntü al API’si, tarih-saat değişikliği için, tarih saat değişikliği API’si, kamera sağlık durumunun öğrenilebilmesi için, health status API gibi…
API’ler hangi fonksiyonları barındırıyor, bu en önemli sorudur. Genellikle API’lerde gelişmiş fonksiyonlar bulunmamaktadır. İki farklı sistem API aracılığı ile entegre edilmiş olsa dahi, tüm fonksiyonları 3.parti platform tarafından doğrudan kullanılamamaktadır.
Bazen de vendor’lar birbirleri arasındaki rekabetten kaynaklı olarak entegrasyona kapalı olabilmektedir. Axxon Next video yönetim yazılımı ile Milestone Xprotect’in konuşturulması örneğini vermek gerekirse, her ikiside açık platform ve API’lere sahip, teknik olarak entegre edilebilir mi ? evet entegre edilebilir ancak destek vermeleri belki zor olabilir.
Entegrasyonlar zaman alıcı olabilir…
Entegrasyon için çoğunlukla birkaç hafta sürer gibi iddialar duyuyoruz. Ancak teknik detayların çok derin bir şekilde çalışılması ve analiz edilmesi gerekmektedir. Bazen denildiği gibi bu entegrasyonlar birkaç hafta sürmeyebilir.
Entegrasyonlar için gerekli materyallerin elde edilmesi (entegrasyon kılavuzları, sdk vb.) formal süreçler gerektirebiliyor. Üreticinin web sayfasına üye olunması, firma profilinin incelenmesi, buna istinaden onay verilmesi ve erişim şeklinde..
Yine bir diğer konu da entegrasyon esnasında bir problem meydana geldiğinde google’da ya da stackoverflow gibi sayfalarda içerik bulmak oldukça zordur. Genellikle bu tip paylaşımlar ya da soru cevaplar oldukça azdır. Problem meydana geldiğinde çözüm yolu genellikle üreticinin kendi teknik takımı olmaktadır. Bu noktada da yerel destek ve hızlı destek gibi sorunlar olabilmektedir.
API değişiklikleri entegrasyonu olumsuz etkileyebilir…
API’de zaman zaman değişiklikler meydana gelebilir. Bu değişiklikler sonucunda yapılan entegrasyonda istek (request), yanıt(response) tipleri değişmiş olabilir, yeni versiyona göre revize edilmesi gibi problemler ortaya çıkabilmektedir.
Üreticilerin API/SDK ile ilgili bazı web adresleri :
Pelco için VideoXpert SDK : https://www.pelco.com/training-support/developer-support/
Hikvision entegrasyonları için https://tpp.hikvision.com/ adresi ,
Avigilon ile 3. Parti entegrasyonları için https://www.avigilon.com/solutions/platform-integration adresi, vb..
Üreticilerin web sayfalarına girildiğinde partner ya da developer ya da integration gibi bölümler altından erişim sağlanabilir.
API ile SDK arasındaki fark :
Genellikle API ve SDK aynı anlamda kullanılmaktadır.
- API : Application Programming Interface – kaynak kod bazlı spesifikasyon, minimal olarak iki sistemi entegre edebilmek için gereklidir.
- SDK – Software Development Kit – dokumantasyon ve geliştirme araçları, API kullanımı için 3.partiye yardımcı olur ve destekler
Güvenlik ve gözetleme sistemleri projelerinde API yanı sıra nasıl kullanım yapılacağı gibi detaylar için SDK’ya ihtiyaç vardır. Ayrıca, oldukça hafif olan ve farklı dillerden/framework’lerden çağrılması kolay olan web API’lerinin aksine, güvenlik sistemleri genellikle belirli bir framework (genellikle .NET veya JAVA) kullanılmasını gerektirir (veya en azından tercih eder) ve kullanımı basitleştirecek araçlar sağlar.
API’ler ve Standartlar :
API’lerin şu ana kadarki tüm örnekleri, belirli üreticiler tarafından geliştirilen ve kontrol edilen özel örneklerdir. Her biri, aynı şeyleri yapsalar bile (canlı video beslemesi talep etme, alarm alma vb.) tipik olarak (en azından biraz) diğerlerinden farklıdır. Bu nedenle, her yeni IP kamera, VMS, NVR vb. için işin tekrar tekrar yapılması gerektiğinden, birden çok sistemle entegre olmak çok zaman alıcı bir süreçtir.
Bunun yanında ONVIF gibi standartlar aracılığıyla her üreticinin API’sini bilmek yerine universal dil kullanılabilir. Standartlarda yani ONVIF’te aslında API’dir. Standartlar ile API’ler arasındaki temel fark, üretici API’leri yalnızca üreticiye özgü ve farklılık gösterirken, standartlar bu standardı benimseyen bütün üreticilerde aynıdır. Dolayısıyla iş yükünü azaltır.