Requirements for your Application Server

  • 10 August 2016
  • 27 reacties
  • 3488 keer bekeken

Reputatie 2
Badge +1
This post has become obsolete as it was incorporated in the Setting up your Application Server topic.

LoRa data is forwarded to an application server of your choice. The application server can be any public URL on the internet and can be your own server or somewhere in the cloud. In order for the application server to work properly, below items are required:
  • Application Servers must have a valid SSL certificate
  • Receive, send and decode HTTPS POST messages from public internet
  • Check and generate SHA-256 hex signatures

Additionally it is also important to realize that payload of LoRa devices are not saved by KPN. When an application server is down for some reason, your payload data will be lost. You can get additional redundancy by configuring multiple application servers in Thingpark.

27 reacties

Reputatie 7
Badge +11
Hi @Weffel,

De application server is inderdaad de verantwoordelijkheid van de eindgebruiker. Een application server kan in de cloud maar ook zelf gehost worden in alle soorten en maten. Op het moment faciliteert KPN geen application servers. Mogelijk gaan we in de toekomst daar nog wel iets mee doen, onze wens is namelijk wel om eenvoudigere en kant en klare / oplossingen te leveren. De prioriteit afgelopen jaren lag eerst bij het opzetten van het netwerk en het plaatsen van alle Gateways, het netwerk is nu volledig dekkend in Nederland.

Thingpark is de configuratie software voor het beheren van de devices. Een KPN "branded" versie van de Thingpark software is hiervoor beschikbaar gesteld. Kleine afnames, via bijvoorbeeld Simpoint, hebben niet zelf toegang tot Thingpark. De servicedesk van Simpoint neemt het beheer op zich. Voor Thingpark is geen extra abonnement vereist.

Ik verneem het graag of ik hiermee uw vragen heb beantwoord!
Het grootte plaatje is mij nog niet helemaal duidelijk. Stel ik gebruik de service van KPN voor mijn LoRa nodes.
LoRa data is forwarded to an application server of your choice. The application server can be any public URL on the internet and can be your own server or somewhere in the cloud.
...
Additionally it is also important to realize that payload of LoRa devices are not saved by KPN. When an application server is down for some reason, your payload data will be lost. You can get additional redundancy by configuring multiple application servers in Thingpark.


KPN zorgt dus voor de gateways en de Netwerk server. Moet ik dan zelf een AS regelen, ofwel een privé server of ergens in de cloud een server, of biedt KPN ook een ruimte om de data zelf te verwerken en op basis van de data downlink-berichten te genereren? Mogelijk met een interface om de data te bekijken in grafieken?
Wat doet Thingpark precies en waar past deze in de architectuur? Moet ik ThingPark zien als configuratie-panel om je verschillende servers in te stellen? Of is dit een externe/interne plek om de AS zelf te hosten? Moet ik hier apart een account voor hebben naast een abonnement van KPN?
Reputatie 1
Badge
Hi Jeroen,
Dank weer voor je uitleg, ik heb er zeker wat aan. Inderdaad had ik al dat vermoeden. Ga wel even zoeken op het net.
Ik houd mij aanbevolen voor de java code, maar dat heeft geen haast. Eerst die server draaiende hebben. Overigens heb ik al met een Arduino LoRa shield contact kunnen leggen met het KPN LoRa net. Als ik een bericht upload via de Portal komt dat aan op de Arduino, niet leesbaar door de encryptie, maar toch!
Reputatie 3
Badge +1
Dat is een goede vraag, ik ben eerlijk gezegd niet helemaal thuis in de wereld van webservers en certificaten. Ik gok dat je deze link hebt gevolgd voor het installeren van het OpenSSL certificaat. Als dat zo is dan is die inderdaad geinstalleerd op de Apache server en niet op Tomcat. Tomcat luistert van zichtzelf naar een eigen poort (8080). Je zult dus op de tomcat het SSL certificaat nog moeten installeren.
Daar zul je even voor moeten zoeken op google. Dit moet zeker mogelijk zijn. Belangrijk is dat je daarbij Tomcat ook op poort 443 laat luisteren (standaard poort HTTPS) wanneer je dit installeert. Waarschijnlijk luistert tomcat op dit moment nog niet naar poort 443.
Bij mijn installatie zit er een proxy server geinstalleerd voor de server die het verkeer (van poort 443)afhandelt en vervolgens doorstuurt naar poort 80 van de tomcat.

Om berichten te ontvangen zal je een applet in java moeten schrijven. Ik wil best wat code met je delen, maar dat zal dan na volgende week maandag zijn aangezien ik op dit moment vrij druk ben.

Ik hoop dat je iets aan mijn uitleg hebt 😉
Reputatie 1
Badge
Hi Jeroen,

Nou hier komen de eerste vragen... Nogmaals: ik ben lerende dus vergeef me eventuele 'domme' vragen ;-)
Ik had al eerder Apache2 geïnstalleerd om de RPi als webserver te laten draaien, dat werkte OK. Nu heb ik Tomcat en een SSL certificate (via OpenSSL) geïnstalleerd volgens deze site: https://thefridaynightprojectsite.wordpress.com/2015/06/22/installing-apache-tomcat-8-on-a-raspberry-pi/
Dat verliep nagenoeg probleemloos, echter....

- als ik via Firefox http://... doe krijg ik het Tomcat venster, doe ik dat met https://... dan krijg ik een SSL error: SSL_ERROR_RX_RECORD_TOO_LONG wat te maken zou hebben met een poort (443) waar niet op wordt geluisterd. Mijn vraag: zit het SSL certificate nu wel op de Webserver maar niet op Tomcat? Of hangt die na de installatie op beide....
- Als ik een bericht via de LoRa KPN portal naar mijn server zend, waar komt die dan terecht...? Moet ik daar nog een map voor aanmaken?

Zo voorlopig weer even genoeg....
Rob
Reputatie 7
Badge +11
Erg leuk project @Roberto48! Veel succes :D
Wat een geluk dat Jeroen ervaring heeft met Tomcat op een Raspberry Pi, hopelijk weet hij te helpen als je vast loopt. Wij volgen graag jouw ontwikkelingen.
Reputatie 1
Badge
Dank Jeroen! Zal zeker je hulp nog wel nodig hebben.
Tomcat draait als een speer alleen nu (ook) met de SSL aan het stoeien. Waar ik straks zeker hulp bij nodig heb is om een app draaiend te krijgen zodat de LoRa berichten netjes binnen lopen.
Maar eerst SSL oplossen.
Reputatie 3
Badge +1
Ik gebruik overigens nog steeds een Tomcat server, enkel niet meer op een Raspberry Pi. Dus als je vragen hebt dan hoor ik het wel 😉
Reputatie 1
Badge
Hi Jeroen,
Dank voor reply. OK, ik ga proberen om Tomcat te installeren. Op het net ook gevonden hoe je er een SSL certificaat aan moet hangen. Dus ik ben weer even van de straat (toch te heet...).
Ik laat hier wel mijn ervaringen weten. Voor mij een volledig nieuw terrein dus zal m'n kop nog wel een paar keer stoten!
Reputatie 3
Badge +1
Een tijdje terug heb ik een poging gewaagd om tomcat (Java Applet server) op een Raspberry Pi te draaien. Dit werkte volledig. Echter kreeg ik het zo snel niet voor elkaar om ook een goede SSL certificaat te installeren. Terwijl ik dit uitzocht kreeg ik de beschikking over een server die al netjes achter een SSL certificaat hing en ben ik daar vanzelfsprekend mee verder gegaan. Ik durf alleen niet te zeggen of dit de makkelijkste manier is aangezien je dan ook Java applets moet kunnen programmeren, maar het is zeker mogelijk om een Applicatieserver te draaien op een Raspberry Pi.
Reputatie 1
Badge
Hi Rashid,

Dank!
Ja zeker interessant. Ben geen expert op dit gebied maar door de KISS-LoRa gadget gekregen op de beurs in Utrecht ben ik gaan experimenteren. Hopelijk zijn er forum leden met RPi ervaring als AS, zou leuk zijn. Anders moet ik zelf wat gaan bedenken (maar wel als het wat minder warm is hier op zolder).
Reputatie 5
Badge +10
Hi @Roberto48,

Welkom op het zakelijk forum van KPN!

Het is een heel interessant idee. Ik heb er persoonlijk geen ervaring mee. Wellicht dat andere forum leden hier meer over weten of persoonlijke ervaringen mee hebben. Mocht het zover zijn ben ik heel benieuwd naar je ervaring en stel voor dat je het met ons deelt.

Succes! 🙂
Reputatie 1
Badge
Hallo allemaal,

heeft iemand ervaring met het inzetten van een Raspberry Pi als AS? Het lijkt me aardig om de LoRa messages daar op te ontvangen.
Reputatie 5
Badge +10
Hi khorns,

Thank you for your patience! This morning I received an answer from my colleague about your questions.

It is possible to start up a web server in AWS so you can receive http messages. We are not familiar with sending messages using IoT device registry.
Reputatie 5
Badge +10
Hi khorns,

Welkom op het zakelijk KPN forum!

Vooralsnog is hier nog niks over bekend. Ik ga uw vraag duursturen naar mijn collega's die wat meer gespecialiseerd hierin zijn. Zodra ik een antwoord heb, kom ik bij u erop terug.
Is there any possibility atm or, alternatively, a tangible future plan to integrate with major players in the IoT market, for instance, Amazon AWS IoT? I would like to use KPN LoRA network to send messages from our devices to AWS IoT, and use IoT device registry, but I am not sure atm how that would play out with your infrastructure and HTTP POST messages...
Reputatie 5
Badge +10
Hi Wietsekok,

Goed om te lezen dat het is gelukt om de data uit de payload op de application server te krijgen. Wat ontzettend leuk dat u wilt toelichten hoe het werkt! Ik ben zeer benieuwd naar uw ervaringen.
De Lora community zal het erg waarderen als u een nieuw topic aanmaakt hierover. Op deze manier besparen we tijd en moeite voor nieuwe gebruikers en genereren we een knowledge base. 😃
Beste Rashid,

Dank voor uw reactie. Ik heb inmiddels contact gehad met Timme. Het is gelukt om de data die in de payload gestuurd wordt op onze AS te krijgen. Wat ik begrepen heb is dat er van dit stuk geen handleiding is voor developers. Hebben jullie een plek waar ik dit kwijt kan? Er zijn een paar dingen waar op gelet moet worden bij het maken van REST 2 API in .NET.
Reputatie 5
Badge +10
Hi wietsekok,

Mijn collega's Michiel en Timme zijn hierover in gesprek. Voor nu is het heel even wachten op de uitkomst van dat gesprek. Zodra hier meer over bekend is laat ik het u weten.
Hallo Michiel,
Ik heb een account op het developerportal. Ons LoRa devicegeeft elke 10 minuten een payload door met o.a. de GPS coördinaten. Het device is geconfigureerd met een Application Server URL en we krijgen dan ook berichten door. Echter alle berichten bevatten geen payload, terwijl deze wel in het developerportal zichtbaar is. Wat is het probleem? Ik heb het idee dat er aan de kant van KPN iets niet goed gaat waardoor ik geen payload mee krijg in de body. Als ik test met Postman dan werkt het zonder problemen.
Reputatie 2
Badge +1
Mooi 🙂, goed om te horen
Hallo Michiel, het is gelukt. De nodeRED server helemaal opnieuw geïnstalleerd en het werkt nu. Dat doet echt wonderen. We probeerden echter niet alles op poort 1880 te draaien, maar de UI werd hier op gehost en we wilden dat nummer niet per sé in de URL hebben, maar we konden het niet weg krijgen! dus we hebben hem maar opnieuw geinstalleerd 😉
bedankt voor je hulp. Ik denk dat we hiermee verderkunnen!

Vriendelijke groet,

Grease
Reputatie 2
Badge +1
Hi Grease,

Wat ik bedoel is dat poort 443 moet worden gebruikt in al het verkeer, ook uplink vanuit Thingpark naar jouw applicatie server. Poort 1880 gebruiken als endpoint in een server werkt dus niet.

Groet,

Michiel
Mijn excuses Michiel, ik was vergeten te vermelden dat het om een externe application server gaat. Als sidenote, hij heeft 2 maanden geleden nog gewoon gewerkt.

Node --> KPN --> Onze Node-red server

Als ik een oplossing vind dan laat ik het hier ook weten in ieder geval!


Beste Grease,

Wanneer je gebruik maakt van Thingpark moet je gebruik maken van poort 443 om door KPN firewalls te kunnen komen. Als ik het goed zie gebruik jij poort 1880 en dat gaat dan waarschijnlijk daarom niet goed.

Groet,

Michiel

Reageer