Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IoT için Rest/Api Tabanlı Server
#11
(03-02-2019, Saat: 21:05)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: IoT teknolojilerinde en bilindik iletişim protokollerinin başında M2M (Machine to Machine = Cihazlar arası haberleşme) prensibine dayanan MQTT, CoAP, AMQP ve DDS gelmektedir.

Müsadenizle ben bunlara RabbitMQ ve ZeroMQ'yu da eklemek isterim.
There's no place like 127.0.0.1
WWW
Cevapla
#12
(03-02-2019, Saat: 22:00)3ddark Adlı Kullanıcıdan Alıntı: MQTT de gördüğüm kadarıyla tek yönlü haberleşme mevcut. IoT Cihaz publisher olarak çalışıyor. Server ayağındaki MQTT protokol ile çalışan sunucu da Publisher IoT cihazdan aldığı verileri depoluyor ve istek yapan Client(Mobil veya Desktop uygulama) kullanıcılara istedikleri bilgiyi sunuyor.

MQTT ve diğerleri M2M prensibi ile her iki yönlü çalışan IoT iletişim sistemleridir. 
Örneğin cihaza "Kapıyı Aç" diyorum (Mobil uygulamadan), o sunucuya soruyor bu mobil cihazın yetkisi var mı diye. Yetki var ise sunucu IoT cihaza yöneliyor ve "Sorun yok, açabilirsin" diyor.
Sonra kapı üzerindeki IoT cihaz sunucuya, "Kapıyı açtım, haberin olsun" diyor.
Bu senaryo da çift taraflı haberleşmenin olduğunu gösteriyor.

(04-02-2019, Saat: 10:06)SimaWB Adlı Kullanıcıdan Alıntı:
(03-02-2019, Saat: 21:05)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: IoT teknolojilerinde en bilindik iletişim protokollerinin başında M2M (Machine to Machine = Cihazlar arası haberleşme) prensibine dayanan MQTT, CoAP, AMQP ve DDS gelmektedir.

Müsadenizle ben bunlara RabbitMQ ve ZeroMQ'yu da eklemek isterim.

Sanırım her ikisi de ücretsiz.
Bilgilendirme ve katkılarınız için teşekkür ederim.
DelphiCan'dır!
Cevapla
#13
(03-02-2019, Saat: 22:00)3ddark Adlı Kullanıcıdan Alıntı: Bu durumda ben MQTT mi kullanmam gerekiyor?
Indy TCP Socket Server uygulaması yazsam sorun olur mu?

MQTT vs. tam da bu gibi durumlar için geliştirilmiş haberleşme protokolleridir. Aslında yine arka planda TCP kullanılacak. Ama siz aradaki mesajlaşma alt yapısı ile uğraşmak durumunda kalmıyorsunuz. Siz aynı şeyi isterseniz Indy, TCP, ICS vs. bileşenlerle geliştirebilirsiniz. Ama bu Amerikayı yeniden keşfetmek olur.

Örneğin Delphi MQTT kütüphanesi:
https://github.com/pjde/delphi-mqtt
Kodlarını incelediğinizde ICS bileşenlerini kullandığını görürsünüz.
There's no place like 127.0.0.1
WWW
Cevapla
#14
Bu konu benimde fazlasıyla ilgimi çekiyor, bir işi neticelendiremediğinizde gidiş yolunuz doğru bile olsa sonuç hayal kırıklığı oluyor. Bu başlık altında hepimize faydalı sonuçlar çıkar umarım.
Cevapla
#15
Quetcel M95 GSM/GPRS Module Series

Evet arkadaşlar an itibariyle indy ile TCP Socket Server uygulaması yaptım. Deneme amaçlı bu uygulamayı Console uygulamasına çevirdim ve Virtual Box üzerinde Ubuntu Desktop ile çalıştırmış bulunuyorum.

MQTT olayına girmedim. Girmeme/girememe olayının birkaç nedeni var. Cihazın kullanım kılavuzunda Data gönderim şekillerinde protokol olarak bunlar yazıcı idi. MQTT ile ilgili bir bilgi göremedim. Buna istinaden bende TCP kullanarak haberleşme yaptım. Ayrıca bu cihaz tam olarak bir GSM modem.
  • GPRS data downlink transfer: max. 85.6kbps
  • GPRS data uplink transfer: max. 85.6kbps
  • Coding scheme: CS-1, CS-2, CS-3 and CS-4
  • Support the protocols PAP (Password Authentication Protocol) usually used for PPP connections
  • Internet service protocols :
  • TCP/UDP/FTP/PPP/HTTP/NTP/MMS/SMTP/PING
  • Support Packet Broadcast Control Channel (PBCCH)
  • Support Unstructured Supplementary Service Data (USSD) 
Şimdi özellikle @Fesih ARSLAN (daha önce bir makalede Natro üzerinde Ubuntu 16.04 ile uygulama yaptığını bildirdiği için özellikle diyorum Smile) hocam ve Linux VPS üzerinde tecrübesi olan arkadaşlar.

Mesela Natro üzerinde ben bu işlemi yapmam için bir tane VSF sunucusu kiraladıktan sonra Delphi tarafındaki uygulamayı yüklemek için ne yapmam gerekiyor. PAServer FTP ile yükledikten sonra PAServer için sadece IP mi değişiyor. Bundan önceki developer tools install etme komutu var bunu çalıştırmaya gerek duymuyor muyuz?
  • Ben bu uygulamayı sunucu üzerinde nasıl çalıştırırım. 
  • VPS ücretleri tabi ki aldığımız hizmete, firmaya ve birçok faktöre göre farklılık gösteriyor ama hizmet veren firma üzerinden mi kullanayım? yoksa bu sunucu işletim yükünü kendi üzerime almam mantıklı mı? (Bana hiç mantıklı gelmiyor. Kesintisiz İnternet, Kesintisiz elektrik 7/24 destek vs bunlar çok meşakkatli işler zaten kiralama işinde mantık bu değil mi? Bu firmalar 7/24 hizmet vermek için varlar.)
  • Ayrıca TCP Socket uygulaması olduğu için kullanacağım Port için Firewall üzerinde port yönlendirme yapılmalı bu hizmeti de veriyorlar mı? Mesela Natro gibi firmalar bu hizmeti verir mi? Yoksa ben port açmam standart portları kullan kendimi güvenlik adına tehlikeye atamam gibi yaklaşımları var mı?
  • Ayrıca daha önce Socket Server uygulaması yapan birisi oldu mu? Bu uygulamanın Sunucu tarafındaki yükü nasıl? İleride bağlanan Client sayısında artış da olacak. Aktif bağlantı sayısı belki 300-500 seyisine gelecek.
Bu bilgilerin bir kısmını bir firmayı arayarak öğreneceğim. Fakat sizin görüşleriniz nedir?
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#16
(07-02-2019, Saat: 15:31)3ddark Adlı Kullanıcıdan Alıntı: Quetcel M95 GSM/GPRS Module Series

Evet arkadaşlar an itibariyle indy ile TCP Socket Server uygulaması yaptım. Deneme amaçlı bu uygulamayı Console uygulamasına çevirdim ve Virtual Box üzerinde Ubuntu Desktop ile çalıştırmış bulunuyorum.

MQTT olayına girmedim. Girmeme/girememe olayının birkaç nedeni var. Cihazın kullanım kılavuzunda Data gönderim şekillerinde protokol olarak bunlar yazıcı idi. MQTT ile ilgili bir bilgi göremedim. Buna istinaden bende TCP kullanarak haberleşme yaptım. Ayrıca bu cihaz tam olarak bir GSM modem.
  • GPRS data downlink transfer: max. 85.6kbps
  • GPRS data uplink transfer: max. 85.6kbps
  • Coding scheme: CS-1, CS-2, CS-3 and CS-4
  • Support the protocols PAP (Password Authentication Protocol) usually used for PPP connections
  • Internet service protocols :
  • TCP/UDP/FTP/PPP/HTTP/NTP/MMS/SMTP/PING
  • Support Packet Broadcast Control Channel (PBCCH)
  • Support Unstructured Supplementary Service Data (USSD) 
Şimdi özellikle @Fesih ARSLAN (daha önce bir makalede Natro üzerinde Ubuntu 16.04 ile uygulama yaptığını bildirdiği için özellikle diyorum Smile) hocam ve Linux VPS üzerinde tecrübesi olan arkadaşlar.

Mesela Natro üzerinde ben bu işlemi yapmam için bir tane VSF sunucusu kiraladıktan sonra Delphi tarafındaki uygulamayı yüklemek için ne yapmam gerekiyor. PAServer FTP ile yükledikten sonra PAServer için sadece IP mi değişiyor. Bundan önceki developer tools install etme komutu var bunu çalıştırmaya gerek duymuyor muyuz?
  • Ben bu uygulamayı sunucu üzerinde nasıl çalıştırırım. 
  • VPS ücretleri tabi ki aldığımız hizmete, firmaya ve birçok faktöre göre farklılık gösteriyor ama hizmet veren firma üzerinden mi kullanayım? yoksa bu sunucu işletim yükünü kendi üzerime almam mantıklı mı? (Bana hiç mantıklı gelmiyor. Kesintisiz İnternet, Kesintisiz elektrik 7/24 destek vs bunlar çok meşakkatli işler zaten kiralama işinde mantık bu değil mi? Bu firmalar 7/24 hizmet vermek için varlar.)
  • Ayrıca TCP Socket uygulaması olduğu için kullanacağım Port için Firewall üzerinde port yönlendirme yapılmalı bu hizmeti de veriyorlar mı? Mesela Natro gibi firmalar bu hizmeti verir mi? Yoksa ben port açmam standart portları kullan kendimi güvenlik adına tehlikeye atamam gibi yaklaşımları var mı?
  • Ayrıca daha önce Socket Server uygulaması yapan birisi oldu mu? Bu uygulamanın Sunucu tarafındaki yükü nasıl? İleride bağlanan Client sayısında artış da olacak. Aktif bağlantı sayısı belki 300-500 seyisine gelecek.
Bu bilgilerin bir kısmını bir firmayı arayarak öğreneceğim. Fakat sizin görüşleriniz nedir?

Merhaba,
Öncelikle hayırlı olsun, Alnınızın akıyla ve layıkıyla tamamına erersiniz İnşallah.
Linux sunucu üzerinde uygulama geliştirme ile ilgili birkaç anlatım yapmıştım.
Delphi için Linux Ubuntu Server Kurulumu - 1
Delphi için Linux Ubuntu Server Update ve Upgrade - 2
Delphi için Linux Ubuntu Platform Araçlarının Kurulması - 3
Sizin de belirttiğiniz gibi son işlem olarak, PAServer'ı kurun ve çalıştırın.
Daha sonra File > New > Other > Delphi Project penceresinden ihtiyacınıza uygun bir proje seçin.
Test amaçlı küçük bir metod yazarak uygulamayı test edin.

Sunucu tarafındaki konfigürasyon politikasını en iyi hosting firması bilir. Kendilerine danışarak bilgi almanız daha doğru olacaktır.
DelphiCan'dır!
Cevapla
#17
(07-02-2019, Saat: 15:31)3ddark Adlı Kullanıcıdan Alıntı: Quetcel M95 GSM/GPRS Module Series

Evet arkadaşlar an itibariyle indy ile TCP Socket Server uygulaması yaptım. Deneme amaçlı bu uygulamayı Console uygulamasına çevirdim ve Virtual Box üzerinde Ubuntu Desktop ile çalıştırmış bulunuyorum.

MQTT olayına girmedim. Girmeme/girememe olayının birkaç nedeni var. Cihazın kullanım kılavuzunda Data gönderim şekillerinde protokol olarak bunlar yazıcı idi. MQTT ile ilgili bir bilgi göremedim. Buna istinaden bende TCP kullanarak haberleşme yaptım. Ayrıca bu cihaz tam olarak bir GSM modem.
  • GPRS data downlink transfer: max. 85.6kbps
  • GPRS data uplink transfer: max. 85.6kbps
  • Coding scheme: CS-1, CS-2, CS-3 and CS-4
  • Support the protocols PAP (Password Authentication Protocol) usually used for PPP connections
  • Internet service protocols :
  • TCP/UDP/FTP/PPP/HTTP/NTP/MMS/SMTP/PING
  • Support Packet Broadcast Control Channel (PBCCH)
  • Support Unstructured Supplementary Service Data (USSD) 
Şimdi özellikle @Fesih ARSLAN (daha önce bir makalede Natro üzerinde Ubuntu 16.04 ile uygulama yaptığını bildirdiği için özellikle diyorum Smile) hocam ve Linux VPS üzerinde tecrübesi olan arkadaşlar.

Mesela Natro üzerinde ben bu işlemi yapmam için bir tane VSF sunucusu kiraladıktan sonra Delphi tarafındaki uygulamayı yüklemek için ne yapmam gerekiyor. PAServer FTP ile yükledikten sonra PAServer için sadece IP mi değişiyor. Bundan önceki developer tools install etme komutu var bunu çalıştırmaya gerek duymuyor muyuz?
  • Ben bu uygulamayı sunucu üzerinde nasıl çalıştırırım. 
  • VPS ücretleri tabi ki aldığımız hizmete, firmaya ve birçok faktöre göre farklılık gösteriyor ama hizmet veren firma üzerinden mi kullanayım? yoksa bu sunucu işletim yükünü kendi üzerime almam mantıklı mı? (Bana hiç mantıklı gelmiyor. Kesintisiz İnternet, Kesintisiz elektrik 7/24 destek vs bunlar çok meşakkatli işler zaten kiralama işinde mantık bu değil mi? Bu firmalar 7/24 hizmet vermek için varlar.)
  • Ayrıca TCP Socket uygulaması olduğu için kullanacağım Port için Firewall üzerinde port yönlendirme yapılmalı bu hizmeti de veriyorlar mı? Mesela Natro gibi firmalar bu hizmeti verir mi? Yoksa ben port açmam standart portları kullan kendimi güvenlik adına tehlikeye atamam gibi yaklaşımları var mı?
  • Ayrıca daha önce Socket Server uygulaması yapan birisi oldu mu? Bu uygulamanın Sunucu tarafındaki yükü nasıl? İleride bağlanan Client sayısında artış da olacak. Aktif bağlantı sayısı belki 300-500 seyisine gelecek.
Bu bilgilerin bir kısmını bir firmayı arayarak öğreneceğim. Fakat sizin görüşleriniz nedir?

Probleminizi çözdüğünüz için ve sonucu paylaştığınız için teşekkürler. 
Siz MQTT kullanmayacaksınız ama daha sonra konuyu okuyanlara gerebilir diyerek bir şey açıklamak istiyorum:

MQTT ve TCP birbirlerine alternatif teknolojiler değildir
TCP; OSI modelinin ulaşım katmanında yer alan network protokolüdür. MQTT ise, TCP üzerinden mesajlaşmak için kullanılan bir protokoldür. Yani MQTT'yi JSON, XML vs. gibi düşünebilirsiniz. MQTT, değişiklik yapılmadığı takdirde TCP 1883 portunu kullanır(SSL kullanılırsa 8883 portu)
There's no place like 127.0.0.1
WWW
Cevapla
#18
sana verilen VDS de port olayının için servis sağlayan firmanın bir engeli olmayacaktır, ben windows sonucuda kullanıyorum yapmış olduğum işlem windows fireware kapanman yeterli oldu. TCP yoğunluk olarak şuan bir sorun yok en önemli sorunlardan biri TCP aynı anda gelen talepler sorun çıkabilir gibi geldi.
Cevapla
#19
(07-02-2019, Saat: 16:32)nguzeller Adlı Kullanıcıdan Alıntı: sana verilen VDS de port olayının için servis sağlayan firmanın bir engeli olmayacaktır, ben windows sonucuda kullanıyorum yapmış olduğum işlem windows fireware kapanman yeterli oldu. TCP yoğunluk olarak şuan bir sorun yok en önemli sorunlardan biri TCP aynı anda gelen talepler sorun çıkabilir gibi geldi.

Yanlış bilmiyorsam Indy bileşenleri her client connection'ı için yeni bir thread oluşturuyor. Bu sebeple aynı anda gelen talepler sorun olmaz diye tahmin ediyorum.
There's no place like 127.0.0.1
WWW
Cevapla
#20
@Fesih ARSLAN teşekkürler. Canlı ortama aldığımda sunucu tarafındaki tecrübemi de burada paylaşacağım.

@SimaWB teşekkürler bilgilendirme için zira kafa karışıklığına mahal vermeyecektir. Evet haklısınız bende biraz MQTT  tarafını araştırmıştım. TCP den daha az veri tüketimi olan daha hızlı ver seri çalışmayı planlayan bir protokol aslında TCPIP üzerinde koşuyor. Kendi içinde haberleşmeyi kurmak içinde yanlış hatırlamıyorsam MQTT haberleşmesi ile ilgili 10 kadar komut mevcuttu.

@nguzeller teşekkürler. İleride yük olup olmayacağını uygulama canlıya alınınca göreceğiz. Sebebi ise ileride uygulama olarak bir Asansörün durumunu izleme gibi düşünün. Bir cihaz üzerinde çok fazla IO durumları mevcut ve sürekli değişkenlik gösterebiliyor. Bu nedenle bağlanıp canlı giriş çıkış durumlarını göster veya şu kata git gibi bir durum oluştuğunda Kabinin katlardaki durumu vs de izlenmiş olacak. Bu cihazlardan çok sayıda olunca veri transferinden dolayı kitlenme donma gibi durumlar olabilir diye tahmin ediyorum.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı 2 delphi.developer 0 887 04-03-2024, Saat: 16:14
Son Yorum: delphi.developer
  WebBroker ve TMS Web Core ile REST WEB API Yaklaşımı delphi.developer 3 1.412 14-02-2024, Saat: 15:22
Son Yorum: parlakcuma
  TMS Web Core giriş için mini proje eda 1 1.097 15-09-2023, Saat: 19:54
Son Yorum: eda
  DataSnap Rest Serverdaki bir fonksiyonu çalıştırma barissagir 2 2.174 24-04-2021, Saat: 18:31
Son Yorum: barissagir
  hidden file server folders powerghost 0 1.354 29-05-2020, Saat: 14:55
Son Yorum: powerghost



Konuyu Okuyanlar: 1 Ziyaretçi