How to Develop for Data Transformation with FME Server

Embed Size (px)


Find out how you can use FME Server to power the backend of a custom application. We'll explore FME Server's REST API and demonstrate how it can be used to integrate custom applications with services hosted by FME Server. We'll also share how support for URLs, code snippets, XML, JSON, and more provide even more possibilities, a give several practical examples.

Citation preview

  • 1. FME Server Key Capabilities Automation Self-Serve Real-Time

2. Poll Are you familiar with these terms and what they mean (check all that apply?):AJAX CORS REST Webhooks WebSockets 3. Client-Server Architecture 4. A whole web app 5. Architecture - Server-Side FME Server provides server side processing transform messages interact with server resources maintain state in a database 6. Architecture - Server-SideQueuing & FME Engines Data transformation requests are queued. Each FME Engine can process a single request. More FME Engines = more concurrent requests. 7. Architecture - Server-SideFME Server Interfaces FME Servers functionality is offered over the web via: Data Streaming service REST API HTML5 WebSockets 8. Architecture - Client-Side Clients can be any programming language or component that can make a REST call C++ .Net Java Ruby JavaScript etc. 9. Poll What programing language are you going to use with FME Server (select all that apply)? .NET Java JavaScript Python Ruby on Rails 10. Architecture - Client-SideJavaScript & JSON Most common client is a web application communicating with REST via JavaScript Most common data format is JavaScript Object Notation (JSON) 11. Requesting data from FME Server Data Streaming Service Request URL Data returned 12. Requesting data from FME Server Data Visualization Choose web mapping library FME Server data in required format 13. Gotcha CORS: Cross-Origin Resource Sharing 14. Data Processing Query string published parameters AJAX call 15. Requesting data from FME Server Data Delivery Demo 16. Data DeliveryPublished Parameters Workspace REST API JavaScript Library 17. Performance Tip Scheduled caching job: request popular data upload S3, FTP Reduces: engine use load time 18. Sending data to FME Server Data Upload Web Service Notification Service Data Streaming service 19. Data Upload Applications Session-based, via Data Upload service 20. Moving data at real-time on the web 21. Real-Time GIS Editing demo 22. HTML5 WebSockets Modes in FME Server: Message Streaming Hybrid 23. Message streaming mode 24. Hybrid Mode 25. Poll Are you currently developing or considering developing any of the following apps (select all that apply)? Data Delivery Data Editing Data Processing Data Upload Data Visualization 26. Development Tips Things to make life a bit easier 27. Development Tips Source Control - GitHub 28. Development Tips HTML/CSS Framework - Twitter Bootstrap 29. Development Tips JavaScript Libraries o HTML Templating - mustache.js, handlebars.js o Common tasks - jQuery 30. Templating


--------------------------------------------------------------------- function loadUser() { var template = $('#template').html(); var rendered = Mustache.render(template, {name: "Luke"}); $('#target').html(rendered); } 31. Server-Server Architecture 32. Server-Server Architecture Push when data is ready or event occurs: o HTML5 WebSockets o JMS o SNS Overhead: Specific API and server must be used 33. Server-Server Architecture Push when data is ready or event occurs: Webhooks Overhead: ability to send and receive HTTP POST 34. Webhooks Provide a URL to an application. The application sends a message to that URL when an event occurs. FME Server can both send and receive using Webhooks. 35. Webhooks Demo I need to create new tasks in Google Tasks whenever there is a new file added to Google Drive. The source files contains polygons and the tasks need to indicate the area of each polygon. FME will calculate the area. 36. Zapier and FME Server Webhooks Webhook 1: New file in Google Drive - Zapier > message is sent to FME Server Webhook 2: FME Server downloads and processes the file > message is sent to Zapier