FME Server use case - Data beschikbaar op je telefoon

1 december 2020

Wanneer we bij Vicrea zien dat één van onze medewerkers met iets bezig is dat ook voor anderen interessant kan zijn, delen we dat graag. Deze keer een artikel over het beschikbaar maken van data op een telefoon. 

                                    
Helmoet de
Zwijger is één van Nederlands door Safe Software gecertificeerde FME trainers en geeft diverse FME Trainingen voor Vicrea. Daarnaast is hij voor verschillende klanten ingezet op een breed scala aan opdrachten. Helmoet: “Ik vind het altijd geweldig om te vertellen over de mogelijkheden van FME en FME Server. Ook bij opdrachtgevers laat ik graag zien op welke manier FME ingezet kan worden om een gebruikerswens eenvoudig te realiseren.“

 

 

EEN FME SERVER APP (2020) VANAF JE TELEFOON RUNNEN

Met FME kun je nu ook geweldige dingen op je telefoon doen! Tijdens een training stelde één van de cursisten een vraag. “Je hebt nu een leuke App gebouwd in FME,. Ik heb ergens gelezen dat je die ook op je telefoon kunt laten uitvoeren. Hoe moet dat?”. En of het antwoord morgen klaar kon zijn, compleet met een beschrijving. Je snapt het, dit was een uitdaging en het MOEST morgen af. 

In dit artikel beschrijven we de stappen die je moet uitvoeren om een FME Workspace als FME Server App op je telefoon uit te voeren. 

WAAR GAAT HET OVER

Eén van de nieuwere opties van FME Server is om van een Workspace een kant-en-klare App te maken. Je kunt een dergelijke app maken om een stukje data, dat via FME Server wordt ontsloten, ter beschikking te stellen aan andere gebruikers. Een gebruiker kan met de URL van die app naar zijn favoriete webbrowser. Als de app is gestart kan hij eventueel de parameters invoeren die voor de hem belangrijk zijn. Daarna wordt met een klik op de Run knop de workspace op FME Server gestart en kan de data gedownload worden, of eventueel gestreamd, afhankelijk van hoe de app geconfigureerd is. En dit kan nu ook vanaf je IPhone of vanaf je Android smartphone! 

Wat heb je nodig

Wat heb je hier allemaal voor nodig? Wel, je moet een idee hebben van wat de app gaat doen. Daar kun je dan in FME Workbench een workspace voor bouwen, die het idee uitvoert. Dan heb je nog nodig: een FME Server installatie die in de lucht is. Van de workspace maak je vervolgens een FME Server App. Verder heb je nodig: de FME Data Express App uit de store die bij je telefoon behoort. Deze moet je downloaden en installeren. Tenslotte moet je de app op je telefoon starten en daar de URL van de Workspace App invoeren.   

Samenvattend: een idee, een workspace, FME Server, de FME Server App en de FME Data Express App.  

HET IDEE

Het idee is tamelijk simpel: ik wil een lijstje maken met Veiligheidsregios in Nederland, voorzien van de naam en de coördinaat van het ‘centrum’ van de regio. We kunnen daarvoor zelf een lijstje samenstellen en deze ergens als .html op een webserver neerzetten. Maar we hebben FME Server, dus waarom die niet gebruiken? En helemaal volgens Common Ground halen we de data direct op bij de bron, namelijk het Nationaal Georegister.

DE WORKSPACE

De workspace is een fluitje van een cent, zeker met FME dat met gemak data overal en nergens kan lezen. We beginnen met een Text File reader, waarmee ook eenvoudig een Webrequest naar de WFS server van het georegister gestuurd kan worden. Als bron voor het tekst bestand geven we op: 

https://geodata.nationaalgeoregister.nl/cbsgebiedsindelingen/wfs?request=GetFeature&service=WFS&version=2.0.0&typeName=cbs_gemeente_2017_gegeneraliseerd&outputFormat=json 

Let erop dat de parameter “Read Whole File at Once” bij het lezen van de tekst op “yes” staat. Met een JSONFragmenter knippen we de ontvangen tekst op in alle losse veiligheidsregio’s. De JSON query die daarbij behoort is json["features"][*]. Vervolgens kan met een JSONExtractor een aantal attributen uit de overblijvende fragmenten gelezen worden. We gebruiken in dit voorbeeld de geometrie, de naam van de regio en de gehanteerde code voor die regio [Figuur 1]

Daarna zorgt de GeometryReplacer ervoor dat de GeoJSON tekst uit het attribuut geom wordt vertaald in een ‘echte’ FME geometrie, in dit geval de complete gebiedsomtrek van de veiligheidsregio. Een CenterPointReplace zorgt voor het ‘centrumpunt’, in dit geval het zwaarte punt van de uitgelezen geometrie. Vervolgens kan met CoordinateExtractor uitgelezen worden wat de coördinaten zijn van het punt, in het stelsel van de Rijksdriehoeksmeting. Tenslotte genereren we nog een lijst in HTML formaat (zie voor de instellingen  van de HTMLReportGenerator Figuur 3) en schrijven we het resultaat weg met een Text File Writer. Let er op dat het MIME Type van de writer, bij het plaatsen van de writer, de waarde tekst/html heeft [Figuur 2], anders begrijpen de gebruikte Webbrowsers de aangeboden bytestream niet.

fme server

Voor het publiceren van de workspace, en het bereikbaar maken ervan voor mensen die geen FME Desktop hebben of niet weten hoe dat werkt, hebben we een FME Server omgeving nodig. De eenvoudigste manier om een FME Server omgeving in de lucht te krijgen, is met een FME Cloud account, maar het kan ook met FME Server on premise. Voorwaarde is wel dat FME Server van buiten af bereikbaar is. De ‘A- of IPhone’ is namelijk een apparaat dat van buiten af naar de FME Server communiceert, via http(s). Van de FME Server omgeving noteren we het auteurs account met wachtwoord en natuurlijk de URL waarachter FME Server naar het Web “luistert”. 

 

DE FME SERVER APP

Nadat we de gebouwde workspace hebben opgeslagen (een .fmw bestand), publiceren we de workspace naar FME Server omgeving. Daarvoor zetten we de verbinding op naar de server [Figuur 4], en klikken ‘Authenticate’. Kies vervolgens uit het File menu ‘Publish to FME Server…’. De workspace kan in een afzonderlijke Repository worden geplaatst, maar dat hoeft natuurlijk niet. We kiezen voor de DataStreaming en de DataDownload service, omdat dat de gegevens direct naar de browser gestreamd moeten kunnen worden, maar ook kan het zijn dat een gebruiker een download van het bestand wil. In de FME Server GUI, na inloggen, selecteren we het Run Workspace menu, en kiezen we de gekozen repository en daaruit de gepubliceerde workspace.

Na het open klappen van het Advanced menu, zien we onder “Other Ways to Run this Workspace” een link “Create an FME Workspace App” staan. Klik deze aan, en vul de gegevens aan voor de app:  

  • Een Naam 
  • Een optionele Titel 
  • Een optionele beschrijving 
  • En vooral: kies de juiste service, per App kun je slechts één service configureren.
  • Mocht je zeker willen zijn dat alleen geconfigureerde gebruikers de app gebruiker, kies dan voor ‘Require Authentication’. FME Server zal dan voor het draaien van de app verwachten dat je inlogt met bij FME Server bekende credentials [Figuur 5].  

Onder “Parameters” kun je de eventuele parameters die voor het runnen van de workspace belangrijk zijn invullen (zorg voor zo min mogelijk verwarring bij de gebruiker, en dus zo weinig mogelijk parameters). Onder “Customize” kun je de app nog van een leuk kleurtje, en wat plaatjes, banners, footers enz. voorzien. Na een druk op OK is de App klaar. Vanuit het Server Apps>Manage Workspace Apps kan een URL naar het Clipboard gekopieerd worden [Figuur 6]. Met deze link kunnen we de boer op, en bijvoorbeeld de link testen deze even invoeren in een Webbrowser. Wanneer de app gerund wordt, wordt FME Server gestart en de workspace uitgevoerd. Het resultaat wordt naar de browser gestuurd of komt als data download link beschikbaar. 

DE DATA EXPRESS APP

De FME Data Express App voor op je telefoon is even simpel als effectief: Ga naar de Google Play Store, en zoek op ‘FME Data Express’. Na de download en install, is het app-je direct klaar voor gebruik [Figuur 7]. Starten geeft een tweetal tabbladen, één voor het direct runnen van FME Server app, en één voor het runnen van voor geconfigureerde URLs. We kiezen voor het laatste, en vullen bij ‘URL’ de in de vorige paragraaf gekopieerde URL in.

Een Alias helpt om een voor de gebruiker herkenbare naam aan de FME Server app te geven, belangrijk op een klein mobiel scherm. Kies vervolgens voor ‘Add’ en de link wordt als item in de lijst FME Server Apps van de telefoon toegevoegd [Figuur 8]. Tenslotte kan de app gerund worden op de regel in de lijst te tikken.  

Zorg er wel voor dat, wanneer de app beschikbaar moet zijn, dat FME Server in de lucht is. Wanneer de telefoon app FME Server niet ‘live’ aantreft, dan zal de app de foutmelding geven dat de URL niet beschikbaar is.  

 

TENSLOTTE

In dit artikel hebben we laten zien hoe eenvoudig het is om met een simpele toepassing met hulp van FME Workbench, FME Server en de Android App FME Data Express, data beschikbaar te krijgen op je telefoon. De mogelijkheden zijn eindeloos. zorg er echter wel voor dat het runnen van de workspace vlot verloopt. Zorg er dus voor dat alle processing zoveel mogelijk in batch, onafhankelijk van vraag vanaf de telefoon, plaatsvindt. Via de telefoon moet eigenlijk alleen een simpele workspace gedraaid worden, die hooguit de data leest, deze hooguit enigszins bewerkt en tenslotte rap over het mobiele datanet naar de telefoon uitstuurt. 

Het kan zijn dat je vragen hebt na het lezen van dit artikel, of dat je denkt: “goh, dat wil ik ook maar ik heb er wel wat hulp bij nodig”. Neem dan contact met ons op via 088 500 46 00,  FME @vicrea.nl of  h.dezwijger@vicrea.nl.

Deel dit artikel