Odin MaxCode yerine onlarca anahtar: PushMeld bildirimleri olmadığı yerlerde nasıl ekliyor
MaxCode'un, push ve e-posta bildirimlerini web sitelerinden, sunuculardan, scriptlerden ve cihazlardan PushMeld'e taşıması.
Ev bilgisayarını hayal edelim; her gece önemli dosyaların yedeğini alıyor. Sonuç sistem günlüğüne kaydediliyor: işlem başarıyla tamamlandı ya da hata oluştu.
Teknik olarak her şey çalışıyor. Sorun sabah ortaya çıkıyor: kişi kendisi günlüğü açıp sonucu kontrol etmek zorunda. Programın mobil uygulaması yok, geliştiriciler tarafından bildirim gönderimi düşünülmemiş ve sadece bir fonksiyon için ayrı altyapı oluşturulması kimse istemez.
İşte bu noktada PushMeld ile bu sürece basit bir istek eklenebilir. Yedekleme tamamlandıktan sonra telefona mesaj gelir: kopya oluşturuldu veya işlem hatayla sonuçlandı. Gerekirse aynı bildirim e-posta ile de alınabilir.
Bu fikrin temelinde MaxCode yer alıyor — PushMeld'in gelen bildirimleri iletebilmesi için ihtiyacı olan bütün bilgiyi içeren tek güvenli kod.
Proje ile tanıştığımda, özellikle MaxCode'un en ilginç parça olduğunu düşünmüştüm. Push bildirimleri ve e-posta uzun zamandır yeni değil. Çok daha önemli olan, temel programın bunların teslimatını yönetmeyi bırakmasıdır. Sadece PushMeld'e olay hakkında bilgi verir, gerisi onun kontrolünde gerçekleşir.
Hemen bağlamı belirteyim: PushMeld, MELD® sistemine ait ve DigiMeld UG tarafından geliştirilmekte.
Kaynak sadece olayı bilir
Bildirimlerin normal entegrasyonu hızla teknik detaylara sarılır. Bir proje belirlenir, erişim ayarlanır, anahtarlar saklanır, cihaz tokenleri hesaplanır, mail gönderimi yapılandırılır ve farklı mobil platformların gereksinimleri dikkate alınır.
PushMeld tüm bunları ana sistemden alır ve ayrı, kontrol edilen bir çerçeveye taşır.
Yedekleme programı yalnızca bir şey bilir: işlem başarılı mı yoksa hata mı yaptı. MaxCode, mesajın başlığı ve içeriği ile birlikte iletilir.
İşte bilmek zorunda değildir:
Projeye kaç cihaz bağlı;
Hangi telefon şu anda aktif;
-
Push'in hangi sağlayıcıdan geçeceği;
E-posta teslimatı açık mı;
Kullanıcının yeni akıllı telefonu var mı;
Eski tablet devre dışı kaldı mı;
Hangi kullanıcının belirli bir bildirimi alması gerekiyor.
Bunların tümü PushMeld içinde belirlenir.
Bana göre bu nokta, projenin temel mimari fikrinin yattığı yerdir: MaxCode, bildirim yönetimini, olayın gerçekleştiği programdan, teslimattan sorumlu olan sisteme aktarır.
Bir MaxCode yerine çoklu anahtarlar
Genellikle harici bir hizmete bağlanırken, birkaç varlıkla çalışmak gerekir. Proje kimliği ayrı kullanılır, erişim anahtarı farklı, gizli bilgiler, cihaz tokenleri ve sağlayıcı ayarları da gerekebilir.
MaxCode, göndermek için gerekli tüm bilgiyi tek korumalı kodda birleştirir.
Her proje için kendi MaxCode'u oluşturulur. Bu kodda proje tanımlaması, gönderim hakkı ve PushMeld'in teslimat konfigürasyonunu kullanmasını sağlayan bilgiler yer alır.
Gönderici sistemin ayrıca saklamasına gerek yoktur:
Proje kimliği;
API anahtarı ve ek gizli bilgi;
Bağlı cihaz tokenleri;
Her alıcının parametreleri;
Farklı push sağlayıcıların anahtarları;
Push ve e-posta için ayrı ayarlar.
Sistem, uygulama, site veya script'e bir MaxCode eklenir. Mesajla beraber alındığında, PushMeld otomatik olarak projeyi belirler, isteği doğrular, bağlı cihazları bulur ve uygun kanalları seçer.
MaxCode, bu nedenle, başka bir anahtar olarak değil, çevresinde bir bütünlük sağlayan, geleneksel anahtar setini tek bir kodla değiştirir.
Oradan, var olmayan yerde bildirim
MaxCode, kendi HTTP isteğini yapabilen herhangi bir sistemde kullanılabilir.
Örneğin, PushMeld şu durumlarda bildirim gönderebilir:
Ev sunucusu cevap vermeyi kesti;
Yedekleme tamamlandı ya da hata yaptı;
Özel script uzun süren bir görev yaptı;
3D yazıcı baskıyı tamamladı;
Sensor sızıntı tespit etti;
Kapı açıldı veya alarm çaldı;
Site üzerinde önemli bilgi gösterildi;
Ürün fiyatı değişti;
Yazmak için alan boşaldı;
Eski program büyük bir dosyayı işledi;
Küçük bir e-ticaret sitesi yeni sipariş aldı.
Her kaynağın kendi uygulaması olmayabilir. Bazı cihazlar sadece belirli adreslere çağrı yapabilir, bazıları kullanıcı komutu çalıştırabilir, üçüncüleri ise otomasyon scriptleriyle desteklenebilir.
Bu, PushMeld'e olay iletmek için yeterlidir.
Kaynak, bu durumda bağımsız bir bildirim servisi olmaktan çıkar. Sadece olanı kaydeder ve MaxCode ile mesaj gönderir. Geri kalan — alıcılar, cihazlar, kanallar ve teknik yol — PushMeld tarafında kalır.
Sadece push değil, e-posta da
PushMeld ismi öncelikle telefon bildirimleriyle ilişkilendirilir, ancak projenin imkanları bununla sınırlı değildir.
Bildirimleri iletmek için push, e-posta veya her ikisi kullanılabilir — proje ayarları ve erişilebilirliklere bağlı olarak.
Örneğin, başarılı bir yedekleme bildirimini telefonda göstermek yeterlidir. Ciddi bir hatada ise onu ayrıca e-posta ile bildirebilirsiniz.
Her iki durumda da, kendi programı MaxCode ile aynı isteği gerçekleştirir. E-posta sunucusunu ayarlamak, ayarlarını saklamak veya ikinci, bağımsız bir senaryo oluşturmak gerekmez.
İletim kanalları kararı, PushMeld içinde verilir. Daha sonra, kullanıcı zaten bir projeye e-posta eklerse, yedekleme programını yeniden yazmaya gerek kalmaz.
Burada e-posta, sıradan kitlesel gönderim değil, olay hakkında ek bilgi almak için ek bir iletişim yolu olarak kullanılır.
Bir proje, bir olay kaynağı
Projeler, bildirimlerin amaçlarına göre ayrılmasını sağlar.
Basit bir kullanıcı örnek olarak şunları oluşturabilir:
HomeServer— ev sunucusunun durumu;Backups— yedekleme sonuçları;SmartHome— sensörler ve ev otomasyonu;PriceMonitor— fiyat değişiklikleri;Website— kişisel siteden yeni talepler.
Her proje kendi MaxCode'unu alır. Bu sayede ev otomasyonu site kodunu kullanmaz, fiyat izleme yedeklerle karışmaz.
Uygulamada, mesajın nereden geldiği ve hangi amaçla olduğu hemen anlaşılır.
Bu tür ayrım, kaynaklar arttıkça özellikle faydalıdır. Tek bir akış yerine, bağımsız birkaç kanal elde edilir ve her biri kendi teslimat ayarlarını belirleyebilir.
Yeni telefon program değiştirmeyi gerektirmez
Otomatik push token, belirli bir cihazda uygulama kurulumuyla ilgilidir.
İki telefon ve tablet sahibi olan birinin, birkaç token olabilir. Uygulama yeniden yüklendiğinde veya cihaz değiştirildiğinde, tokenlar değişebilir veya çalışmayı durdurabilir.
MaxCode, üst seviyededir. Bu, projeye ait ve tek bir cihaza değil.
Kullanıcı, hangi cihazların projeye bağlı olduğunu ve mesaj alması gerekenleri kendisi belirler. Mesela, ev sunucusundan gelen bildirimler kişisel telefona ve tablete, iş sitesinden gelen olaylar ise sadece kurumsal akıllı telefona gönderilebilir.
Yeni bir telefon satın alındığında veya eski cihaz devre dışı bırakıldığında, başlangıç scripti yine aynı MaxCode'u kullanmaya devam eder. Güncel alıcı listesi PushMeld içinde değiştirilir.
Aynı şey e-posta ekleme veya teslimat ayarlarını değiştirme için de geçerlidir.
İşte bu nedenle MaxCode, normal anahtarların azami sayısını azaltmak değil, olay ve onun sonraki rotası arasında sınır oluşturmaktır. Bu sınırdan sonra olanlar, kaynak programını değiştirmeden değiştirilebilir.
Ücretsiz temel görevler için
Altyapı ürünleri genellikle kurumsal sistemler, sunucu komutları ve büyük veri hacmiyle tanımlanır. Bu yüzden, PushMeld'in yalnızca profesyonel geliştiricilere ve şirketlere uygun olduğu düşünülebilir.
Gerçekte, tamamen evde yapılabilecek temel bir görevle başlayabilirsiniz.
Uygulama kendisi ücretsizdir. MaxCode'un temel imkanları da ücretsiz kalır, belirli limitler içinde ödeme gerektirmez. Kişi, proje oluşturabilir, cihaz bağlayabilir ve kendi sunucusu, sitesi, scripti veya ev otomasyonu ile bildirim alabilir.
Bu, ürünle tanıştıktan sonra çalışan geçici bir demo modu değildir. Günlük kullanım için yeterli olabilir.
Ücretli planlar, istek sayısı artarsa, ek özellikler gerekirse veya sistem daha büyük ölçekte kullanılmaya başlanırsa gereklidir.
İnsan ve şirket için tek prensip
MaxCode mekanizması, görevin büyüklüğüne göre değişmez.
Kişi, yedekleme tamamlandığında bildirim alır. Küçük bir atölyede 3D yazıcı uzun süreli baskıyı tamamlar. E-ticaret mağazası yeni sipariş alır. Teknik ekip bir sunucu hatasıyla ilgili uyarı alır.
Hizmetler ve proje sayısı artar, ama temel prensip aynıdır.
Üç kaynaklı kuruluşu düşünelim:
Orders— yeni siparişler;Payments— ödemeler ve iadeler;ServerStatus— teknik hatalar.
Her biri için ayrı MaxCode oluşturulur ve cihazlar ayarlanır. Siparişler sahibi ve yöneticilere, finans olaylarına ilgili personele, sunucu hatalarına ise teknik ekip ulaşır.
Sistem, her durumda, olay içeriği ve ilgili proje MaxCode'u iletmekten ibarettir.
Çalışanlar, cihazlar veya teslimat yöntemleri değiştiğinde, kaynak sistem tekrar ayarlamaya gerek kalmaz. Kontrol, PushMeld içinde kalır.
APNs, FCM ve HMS dışarıda kalır
Farklı cihazlara push göndermek için APNs (Apple), FCM (Google) veya HMS (Huawei) kullanılabilir. Her sağlayıcının kendi kuralları, tokenleri ve teknik detayları vardır.
Genellikle, bunlar geliştirme sırasında dikkate alınır. PushMeld ise bunları MaxCode sınırları dışında tutar.
Ev sunucusu, site veya script, alıcının hangi telefonu kullandığını veya mesajın hangi altyapıdan geçeceğini belirlemez. Tek istek yapar, PushMeld ise uygun rotayı seçer.
MaxCode, Apple, Google veya Huawei altyapısının yerini almaz. Onların önünde tek bir giriş oluşturur.
Bu sayede kaynak program, kullanıcı cihazlarındaki değişikliklere uyum sağlamak zorunda kalmaz. Bugün FCM üzerinden gönderir, yarın APNs'e geçer veya projeye yeni bir telefon veya e-posta eklenir. Olayın işlendiği uygulama için hiçbir şey değişmez.
MaxCode ve standart API anahtarı aynı şey değil
Standart API anahtarı en sık sadece servise erişime izin verir. Anahtar doğrulandıktan sonra sistem, proje ve alıcılar, teslimat şekli gibi bilgileri ayrı ayrı iletmek zorundadır.
MaxCode, bu bağlamı tek kodda birleştirir.
PushMeld'in, projeyi tanımasına, isteği doğrulamasına ve en güncel ayarları uygulamasına olanak sağlar. Dış program, MaxCode ve olay içeriğini iletir, sonraki rotayı yönetmez.
Pratik fark, şu kısa şekilde özetlenebilir: API anahtarı erişim sağlarken, MaxCode hangi bağlamda işlemin yapılması gerektiğini de belirler.
Bağlantı noktası olarak bildirim, eklenti fonksiyonu
PushMeld'i tanıdıktan sonra, onu yalnızca push bildirimleri uygulaması olarak görmek doğru değildir.
Daha doğrusu, bunun yerine, bildirimleri olmadan yapamadığınız yerlere eklemeyi ve bağımsız yönetmeyi sağlayan bir yöntemdir.
Kaynak, ev sunucusu, sensör, eski uygulama, e-ticaret veya şirket içi sistem olabilir. Eğer kendi başına HTTP isteği yapabiliyorsa veya küçük bir adaptör kullanıyorsa, olay PushMeld'e iletilebilir.
Daha sonra MaxCode, olay ile teslimat arasındaki sınırı belirler. Bir tarafta, olay olduğunu bildiren program; diğer tarafta ise, proje, cihazlar, kanallar ve teknik teslimat rotası belirleyen PushMeld bulunur.
Bu nedenle, MaxCode'un en önemli özelliği, yalnızca birçok anahtar yerine tek bir kod kullanmak değildir. Aynı zamanda, bildirimleri üzerindeki kontrolü, temel sistemden alıp, taşımaktır.
Telefon değiştirilebilir, e-posta eklerseniz, cihazlar ile eski cihaz devre dışı kalabilir, teslimat yolu da değiştirilebilir. Program, yalnızca gereken görevi yapmaya devam eder: olayları bildirmek.