Saturday, January 24, 2015

Oracle MFT - The Managed File Transfer

With the 12c release for Fusion Middleware, Oracle released the long-awaited, feature-rich managed file transfer solution titled Oracle MFT. At the outset, some key value propositions of this product are;

  1. Extremely Simple to use, build & configure
  2. End-to-End visibility on file transfers
  3. As with any other Oracle FMW stack of products, seamless integration options
  4. High Availability MFT (leveraging WebLogic capabilities)
  5. Highly Secure (Leverage WLS OPSS instead of typical FTP OS layer security)
  6. OOTB embedded FTP & sFTP servers (Those of you looking to consolidate on ever increasing FTP & sFTP servers in your enterprise...)
  7. Automate File Transfers using the built-in Enterprise Scheduler Service (ESS)
  8. Transfer very large files (pass-by-reference) - limited only by disk space and network speed
  9. Fan-out, chaining and custom callouts

Having worked with quite a few customers on this new Oracle technology, I can certainly tell that these features have generated a huge interest. Prior to Oracle MFT, it was really hard to find a product that could achieve all of the above requirements...

Let's delve little deep into these points...

Extreme Simplicity

No IDE to design/configure transfers.
Business user friendly unified web-based, highly intuitive graphical interface for design, monitoring & administration of all your file transfers.
Zero learning curve.

To create a transfer -> Just create your source and target - drag & drop them in the transfer canvas. You are good to go !! Incredibly, it's that simple...

Free-up developers: really? Yes.
How many times have you configured the cumbersome back-end scheduler jobs?
How many technical resources you hired/trained on various scripting languages just to manage and handle file transfers?
End-to-End Visibility

MFT console offers out-of-the-box monitoring dashboards with drill-down capabilities. Users can monitor overall file transfer metrics such as;

  • Most Active Transfers
  • Average, Min & Max Payload size, Transfer Speeds & Transfer Time
  • Recent Errors/Failure Ratio
  • Advanced File Search - based on file name, date, user, status etc..


You can also monitor a single file transfer instance graphically with fine grained details on the transfer. Additionally, Oracle MFT provides "Resubmit" option where users can resubmit a file transfer from various stages (Source, Transfer or Target).

Extensibility

Oracle MFT provides OOTB integration with the following source/target types in the current release. Obviously many more are coming in...
  • FTP Embedded (Read/Write from/to the embedded FTP server)
  • sFTP Embedded (Read/Write from/to the embedded sFTP server)
  • FTP Remote (Read/Write from/to a remote FTP server)
  • sFTP Remote (Read/Write from/to a remote sFTP server)
  • File (Read/Write from/to the shared file storage)
  • SOAP (Send/Receive to/from a SOAP based web service)
  • SOA (Send/Receive to/from a SOA composite) - SOA 12c provides an MFT adapter. Optionally, you can also connect to a SOA/OSB 11g instance through webservice
  • Service Bus (Send/Receive to/from an OSB proxy/business service)
  • B2B (Connect to a B2B with MFT as a channel)
  • Healthcare (Connect to Healthcare HL7)
  • ODI (Connect to Oracle Data Integrator)


High Availability

Oracle MFT runs on Oracle WebLogic 12c and can be clustered. This provides organizations with an HA MFT capability. Oracle MFT also ships with an MFT proxy server that resides outside the firewall to redirect external requests.

Highly Secure

Since MFT runs on WebLogic, it leverages Oracle WebLogic OPSS.
What this means is that: all your FTP/sFTP users in your LDAP can now connect to MFT (obviously the access rights can be managed through the MFT console).

In stark contrasts to traditional FTP/sFTP servers, you don't have to create OS level users & manage access privileges. Optionally, for each transfer, you can configure Oracle MFT to allow access to payload only to specific users/groups.

In additions to these capabilities, users can leverage out-of-the-box compression, decompression, PGP encyption & decryption capabilities of Oracle MFT.

Consolidation

Many customers have very less control on FTP & sFTP server proliferation across their enterprise. More often than not, IT doesn't have full control / visibility on administration & management of the FTP servers. Oracle MFT with its embedded FTP & sFTP server clearly helps with consolidation of FTP/sFTP servers.

This not only reduces TCO tangibly, but also brings down significant costs associated with administration/management efforts.

Automate & Schedule Transfers

How many scheduling software tools do you have in your enterprise?
How difficult is it to integrate your scheduler with file transfers?
How much time & effort does your IT/development spend in configuring/scripting of scheduler services?
How much visibility does it offer?

And,

What if; you have one comprehensive & highly customizable enterprise scheduler service which is tightly integrated with all your file transfers, is extremely easy to configure/schedule through GUI and provides end-to-end visibility through a console?

With Oracle Enterprise Scheduler Service (ESS) now being a first-class citizen & tightly integrated, Oracle MFT just does that.

Large File Transfers

Oracle MFT supports file pass-by-reference. This means that your SOAP services do not have to pass file to your webservice inline if it beyond a certain size - configurable while designing the transfer. Oracle MFT also provides out-of-the-box compression & decompression capabilities. Using custom actions you can also batch/de-batch large files for fast processing.

Fan-out, Chaining & custom callout

Oracle MFT supports fan-out: which means it can send files to multiple targets simultaneously. Also another cool feature if MFT process chaining. You can chain multiple MFT transfers where one MFT transfer can be another MFT's source.

Additionally, Oracle MFT also supports custom callouts. This allows POJOs to be executed at source and target (pre/post process).

Ready for a happy file transfer with Oracle MFT? Let me know your feedback in the comments section :)

23 comments:

  1. Hi

    do you know if it is possible to rename file (on traget server ) after uploading ?

    thanks
    yuval

    ReplyDelete
    Replies
    1. Absolutely Yuval. You can do much more than that by leveraging the post-processing actions.

      Delete
    2. we can do , but we have to give a static name .

      MFT does not save file names and pass them dynamically at run time.

      Delete
  2. Hi,

    As part of using MFT for file transfer, is there an option/configuration where MFT processes files in an "arrival by timestamp"; i.e. it processes files which have been generated first.(in a sequential order)

    As part of my testing, I generated 10 files in a span of 10sec each,but MFT file transfer randomly picks the files to process

    Thanks

    ReplyDelete
    Replies
    1. I would use OSB to front MFT transfer for strict ordering/sequencing.

      Delete
    2. Hi Sathya,

      Can you give some references for using OSB with MFT for strict ordering \ sequencing?

      Delete
  3. Hi ,

    Nice blog !!

    Could you please tell me if we cna override the Target directory,File Name etc simialr to SOASuite .

    I am very novice in MFT .

    I have a scenario where MFT service would be exposed as webservice and the SOA would invoke MFT service with parameters FileName,TargetDirectory .MFT service would use these parameters to move the file .

    ReplyDelete
    Replies
    1. Absolutely. Take a look at MFT Header element where you can pass the runtime parameters dynamically including target file name.

      Delete
    2. Hi Sathya,
      Nice Blog!!
      Do you have any sample code to use MFT Header elements?

      Delete
  4. I want to add a filter condition where depending on the file name needs to be routed to different targets .
    I created three transfer one source and three target. I added content filter in each transfer and passed the file name in the header value . But didnt work , is there any work around for that

    ReplyDelete
    Replies
    1. I am not sure what you mean by passing file name in header Sanjeev. However, you can setup the content filter in your transfer either as wildcard or java regular expression. You don't have to pass anything to MFT after setting content filter. MFT will pick up files only that conforms to the filname pattern defined in the content filter. Hope that helps.

      Delete
    2. Hi Sathya,
      I need to dynamically create the folder destination target based on source filename. Example:

      Source filenames:
      ETR_653_xxxxxxx.data.gz
      ETR_654_xxxxxxx.data.gz

      I want to route the file on the following destination: /out/ETR/653/ or /outETR/654 - is it possibile to extract part of the filename and create a dynamic target with that? The target folders 653 and 654 don't exist. They have to be created dynamically when a file arrives.

      Thanks in advance,
      Pier Paolo

      Delete
  5. I have a requirement to transfer 2 files a and baron same source. But i need a yo be transferred before b. How to achieve that.

    ReplyDelete
    Replies
    1. Can you explain your usecase? In general MFT works concurrently so no guarantee of sequence. I am interested in your use case. Can you send me an email with your usecase?

      Delete
    2. Hi, I need the same use case. I need MFT to transfer only the oldest file in several of files in the same directory. How can I achieve that?

      Delete
    3. MFT is a file transfer solution. There are hooks to callouts and perform pre/post processing. I am still not getting the usecase. Can you explain the usecase why only the oldest file must be transferred? What happens to the latest files? When the polling kicks in, MFT sweeps the source... and is multithreaded. Without a usecase it's hard to suggest.

      Delete
  6. wildcard options are not enough for us. For example, when polling period of source definiton has processed, we need MFT transfer and delete only the historically oldest file (one file) in the list of several files which are compliant to the same wildcard definition.

    ReplyDelete
    Replies
    1. What happens to the newer files and when do you think MFT must transfer those? Remember MFT is not concerned with the file contents - it never does content based routing. So there is no way for MFT to know if file 1 & file 2 of same type. What is your usecase? And why is another version (new file) is being uploaded? When do you think those files must be processed?

      Delete
  7. Project has budget constrain.. and MFT is not available for us..any link to refer to implement ftps? And ftp multiple files ?

    ReplyDelete
    Replies
    1. You did not mention what Oracle technologies you are licensed for... Assuming you have SOA suite, you can leverage the FTP adapter to achieve this. But remember, MFT provides visibility and HA capabilities which are it's main strengths.

      Delete
  8. Hi,

    We have a Requirement of Integrating MFT with ODI. Do you have any Sample example where you might have came across this integration ?

    ReplyDelete
  9. Hi satya,

    How can we delete the source/target or transfer instances which are already deployed. for example i have created one source, target and transfer and Deployed which it has some error so i have deleted them from the design. but while i am creating a source again with same name and directory i am unable to create and deploy. so please suggest me how can i remove those instances from monitoring.

    ReplyDelete
    Replies
    1. Hi Firoz,
      You must undeploy the MFT instances so that they are removed from the runtime. Deleting from the design only removes the design time artifacts. Please go to EM console and undeploy the deployed MFT instances.

      Delete