How to Develop for Data Transformation with FME Server

  • 974 views
Uploaded on

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 …

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.

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
974
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
23
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Keep this brief! Around 3-4 minutes.

Transcript

  • 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 Server’s 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 <div id="target">Loading...</div><script id="template" type="x-tmpl- mustache"> Hello {{ name }}!</script> --------------------------------------------------------------------- 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