Successfully reported this slideshow.
FME Server Key Capabilities
Automation
Self-Serve
Real-Time
Poll
Are you familiar with these terms and what they mean (check all that apply?):AJAX
● CORS
● REST
● Webhooks
● WebSocke...
Client-Server
Architecture
A whole web app
Architecture - Server-Side
FME Server provides server side processing
transform messages
interact with server resources
ma...
Architecture - Server-SideQueuing & FME
Engines
Data transformation requests are queued.
Each FME Engine can process a sin...
Architecture - Server-SideFME Server
Interfaces
FME Server’s functionality is offered over the
web via:
● Data Streaming s...
Architecture - Client-Side
Clients can be any programming language or
component that can make a REST call
C++
.Net
Java
Ru...
Poll
What programing language are you going to use with FME Server (select all that apply)?
● .NET
● Java
● JavaScript
● P...
Architecture - Client-SideJavaScript &
JSON
Most common client is a web application
communicating with REST via JavaScript...
Requesting data from FME Server
Data Streaming Service
Request URL → Data returned
Requesting data from FME Server
Data Visualization
Choose web mapping library
FME Server → data in required format
Gotcha
CORS:
Cross-Origin Resource
Sharing
Data Processing
Query string → published parameters
AJAX call
Requesting data from FME Server
Data Delivery
Demo
Data DeliveryPublished Parameters
Workspace
REST API
JavaScript Library
Performance Tip
Scheduled caching job:
● request popular data
● upload – S3, FTP
Reduces:
● engine use
● load time
Sending data to FME Server
● Data Upload Web Service
● Notification Service
● Data Streaming service
Data Upload Applications
Session-based, via Data Upload service
Moving data at real-time on the web
Real-Time GIS Editing demo
HTML5 WebSockets
Modes in FME Server:
● Message Streaming
● Hybrid
Message streaming mode
Hybrid Mode
Poll
Are you currently developing or considering developing any of the following apps (select all that apply)?
● Data Deli...
Development Tips
Things to make life a bit easier
Development Tips
Source Control - GitHub
Development Tips
HTML/CSS Framework - Twitter Bootstrap
Development Tips
JavaScript Libraries
o HTML Templating - mustache.js, handlebars.js
o Common tasks - jQuery
Templating
<div id="target">Loading...</div><script id="template" type="x-tmpl-
mustache">
Hello {{ name }}!</script>
----...
Server-Server
Architecture
Server-Server Architecture
Push when data is ready or event occurs:
o HTML5 WebSockets
o JMS
o SNS
Overhead:
Specific API ...
Server-Server Architecture
Push when data is ready or event occurs:
● Webhooks
Overhead:
ability to send and receive HTTP ...
Webhooks
Provide a URL to an application.
The application sends a message to that URL
when an event occurs.
FME Server can...
Webhooks Demo
I need to create new tasks in Google Tasks
whenever there is a new file added to Google
Drive.
The source fi...
Zapier and FME Server Webhooks
Webhook 1: New file in Google Drive - Zapier >
message is sent to FME Server
Webhook 2: FME...
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
How to Develop for Data Transformation with FME Server
Upcoming SlideShare
Loading in …5
×

How to Develop for Data Transformation with FME Server

3,250 views

Published 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 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.

Published in: Software
  • Be the first to comment

How to Develop for Data Transformation with FME Server

  1. 1. FME Server Key Capabilities Automation Self-Serve Real-Time
  2. 2. Poll Are you familiar with these terms and what they mean (check all that apply?):AJAX ● CORS ● REST ● Webhooks ● WebSockets
  3. 3. Client-Server Architecture
  4. 4. A whole web app
  5. 5. Architecture - Server-Side FME Server provides server side processing transform messages interact with server resources maintain state in a database
  6. 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. 7. Architecture - Server-SideFME Server Interfaces FME Server’s functionality is offered over the web via: ● Data Streaming service ● REST API ● HTML5 WebSockets
  8. 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. 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. 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. 11. Requesting data from FME Server Data Streaming Service Request URL → Data returned
  12. 12. Requesting data from FME Server Data Visualization Choose web mapping library FME Server → data in required format
  13. 13. Gotcha CORS: Cross-Origin Resource Sharing
  14. 14. Data Processing Query string → published parameters AJAX call
  15. 15. Requesting data from FME Server Data Delivery Demo
  16. 16. Data DeliveryPublished Parameters Workspace REST API JavaScript Library
  17. 17. Performance Tip Scheduled caching job: ● request popular data ● upload – S3, FTP Reduces: ● engine use ● load time
  18. 18. Sending data to FME Server ● Data Upload Web Service ● Notification Service ● Data Streaming service
  19. 19. Data Upload Applications Session-based, via Data Upload service
  20. 20. Moving data at real-time on the web
  21. 21. Real-Time GIS Editing demo
  22. 22. HTML5 WebSockets Modes in FME Server: ● Message Streaming ● Hybrid
  23. 23. Message streaming mode
  24. 24. Hybrid Mode
  25. 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. 26. Development Tips Things to make life a bit easier
  27. 27. Development Tips Source Control - GitHub
  28. 28. Development Tips HTML/CSS Framework - Twitter Bootstrap
  29. 29. Development Tips JavaScript Libraries o HTML Templating - mustache.js, handlebars.js o Common tasks - jQuery
  30. 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. 31. Server-Server Architecture
  32. 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. 33. Server-Server Architecture Push when data is ready or event occurs: ● Webhooks Overhead: ability to send and receive HTTP POST
  34. 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. 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. 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

×