FMEFlowArchitecture

AnFMEFlowsystem consists of a Client layer and a Server layer, each with a number of components.

Mouse-over to view architecture diagram:

Diagram showing FME Server architecture: Client layer, Server layer, and related components

FMEFlowComponents

1 Web Application Server

A web application server runs theFMEFlowWeb User Interface,FMEFlow Web Services, and any other web clients. Depending on theinstallation,web application server may be a version of Apache Tomcat included withFMEFlow, or provided separately.

2 Web Clients

TheWeb User Interfaceis included withFMEFlowand can be run in a browser.

Custom web clients can be developed on top of theFMEFlowREST API.

3FMEFlowWeb Services

FMEFlowprovides predefined services to carry out common tasks. Services provided withFMEFlowinclude:

4 Non-Web Clients

  • FMEWorkbenchis the authoring environment forFMEFlowbut can also be used to submit jobs toFMEFlowthrough a number of transformers.
  • FMEFlowConsoleis a command line interface toFMEFlow.
  • Custom clients can be developed on top of theFMEFlowREST API service.
  • The FME Data Express mobile app uses the REST API andFMEFlowWeb Services over HTTP.

5 REST API

TheFMEFlowREST Serviceprovides an underlying REST-based communication mechanism for client-service applications.

6FMEFlowAPI

All requests are sent toFMEFlow通过低级FMEFlowAPI.

7 Security

FMEFlowprovidesAuthentication and Access Controlusing the Java Authentication and Authorization Service (JAAS) framework.

8FMEFlowCore

TheFMEFlowCoremanages job requests, scheduling, and repository contents.

9 Process Monitor

TheProcess Monitorprovides fault tolerance functionality, ensuring that theFMEFlowCore and FME Engines remain available to process requests. The Process Monitor also provides a mechanism for managing theFMEFlowand FME Engine components, including the ability to start, stop, restart, and add components. The Process Monitor uses theFMEFlowDatabase to manage process configurations.

10 FME Engines

FMEEnginesprocess job requests by running FMEWorkspaces. Each FME Engine processes a single request at a time.FMEFlowprocessing can be scaled by adding FME Engines to the same computer or to separate computers within a distributedFMEFlowenvironment.

11 Datasets

Typically, anFMEFlowjob runs aworkspacethat reads and/or writes data.FMEFlowadministrators must ensure that FME Engines have read access to datasets or databases theworkspaces read, and write access to any directories or databases theworkspaces write to.

12FMEFlowDatabase

All information related toFMEFlowis stored in theFMEFlowDatabase, including jobs, repositories, automations, users, and other data. The database should never be edited directly.

ExpressinstallationsofFMEFlowrun theFMEFlow数据库版本of the PostgreSQL database server. Distributed installations run theFMEFlowDatabase on a server provided separately. Supported database servers are PostgreSQL, Oracle, and SQL Server.

13FMEFlowSystem Share

In a分布式/容错安装,FMEFlowSystem Share files are installed in directories on a remote file system to enable access from different computers. These files includeRepositoriesandResources.

FMEFlowConnections

Note  "> NoteFor a complete list of ports used byFMEFlow, seeFMEFlow Ports.

A

Web Clients use theFMEFlowWeb Services over HTTP. Communication is defined by the Web Services API, the REST API, and theFMEFlowAPI.

B

Non-web Clients use the REST API over HTTP.

C

Web Clients,FMEFlowWeb Services and non-web clients use theFMEFlowAPI to communicate withFMEFlowover TCP/IP. Requests are sent to theFMEFlowCore over port 7071. Messages are returned to clients over a randomly-assigned port created by theFMEFlow核心。

D

TheFMEFlowAPI communicates over Port 7500 to the Process Monitor.

E

TheFMEFlowAPI sends job and repository requests to theFMEFlowCore over TCP/IP port 7071.

F

The Process Monitor monitors the FME Engine processes and restarts them if they halt.

G

Once registered (see K below), the FME Engines communicate with theFMEFlowCore over TCP/IP ports dynamically determined by the Core.

H

The FME Engines read and write data from shared/mounted drives, databases, web services, and others.

I

TheFMEFlowCore communicates with theFMEFlowDatabase via JDBC over TCP/IP port 7082.

J

The FME Engines communicate with theFMEFlowDatabase. The port varies depending on the selected database.

K

The FME Engines perform initial registration with theFMEFlowCore over TCP/IP port 7070.

L

TheFMEFlowAPI can be used to send job scheduling requests to theFMEFlowCore over TCP/IP port 7073.

M

TheFMEFlowAPI can be used to send notification requests to theFMEFlowCore over TCP/IP port 7072.

N

Automationsexternal actions andNotification Servicesubscribers perform initial registration with theFMEFlowCore over TCP/IP port 7074. Subscribers process notifications received by theFMEFlow核心。

O

Automationstriggers andNotification Servicepublishers perform initial registration with theFMEFlowCore over TCP/IP port 7076. TheFMEFlowAPI can be used to relay requests to theFMEFlowCore over TCP/IP port 7075. ForEmail - SMTPtrigger andSMTP Publisherports, seeFMEFlow Ports.

P

TheFMEFlowconfiguration, andbackup and restorerequests, are communicated to theFMEFlowCore over TCP/IP port 7077.

Q

Access toResourcesis communicated with theFMEFlowCore over TCP/IP Port 7079.

R

Communication with theFMEFlowWebSocket Servertakes place over port 7078.

S

Automatic (online)Licensingrequests take place through HTTP over port 80.

T

TheFMEFlowQueue managesQueue Controland dispatches jobs as needed. Communication is over port 6379.

U

Database ConnectionsandWeb Connectionsrequests are handled over port 7069.

V

System Cleanuprequests are handled over port 7081.