easysoa / EasySOA

A light, collaborative platform to make Service Oriented Architecture simple.
http://www.easysoa.org
35 stars 8 forks source link

Nuxeo - Talend integration #127

Open mdutoo opened 11 years ago

mdutoo commented 11 years ago

There are several solutions, some of them already work, so it must be decided to which extent this will go, according to partner's interests.

Talend - Nuxeo integration, Service-oriented :

That's a matter of telling Talend about endpoints and letting it get their (versioned) definition. When a service version goes up, developers should refresh & update the definition in the Talend job definition, patch the newly appeared inconsistencies and voilà.

Talend - Nuxeo integration, Data-oriented :

That's a first matter of easing for the Talend developper the mapping of Nuxeo fields to other Talend-known fields. There are several solutions :

In my experience (e.g. Alfresco ETL Connector), here are useful requirements for remote Nuxeo services to be used for Talend integration :

tiry commented 11 years ago

Raw XML Mapping

We could use CoreIO to manage XML data interface with Nuxeo.

This should work easily, how evever this would be more a data level integration than a service level integration :

SOAP

Using SOAP Webservice exposed by Nuxeo is an option.

However :

Using Automation

As for any WebService issue in Nuxeo, I would prefer to use Automation that provide adaptability of API and of granularity.

Inside Nuxeo Automation there are a list of well known types :

And for each operation we have a definition of :

Ideally, when using Talend I would like to be able to call any Automation Chain or Automation Operation that is exposed by Nuxeo. Then, dependening on the Input/Output of the target Operation/Chain, I can do the mapping inside Talend.

On the Talend side, naively I would say that it requires :

NB : If needed, we can easily extend the default Automation Marshaling to provide XML instead of JSON.

tiry commented 11 years ago

As already discussed I think the best option would be to have 1 Nuxeo dev + 1 Talend dev working together during 1 or 2 days to define what can be done.

tiry commented 11 years ago

An initial Connector was commited here https://github.com/tiry/nuxeo-talend-components.

For now this code is in a Sandbox because :

Of course, this would be even better to be able to have a "custom UI" where we can select Operation and display parameters according to selected Operation.

=> This would also allow to have a kind of playground to test Automation API from withing TOS

Tiry

mdutoo commented 11 years ago

Nice !

Cédric, your suggestions about Thierry's connector best practices questions ?

About avoiding the comment field "hack" for XPath : I'd say have another field of type list and of the same size as the number of rows (arguments) and store XPath there at the same row index. A custom UI would allow to resize & fill it transparently.

About TOS Automation playground : now I guess it would be much more work... Being able to generate the right Talend data schema (and XPath list field) from you Automation Operation definitions would be the first step. From there TOS itself could be used as "smart playground-like client".

tiry commented 11 years ago

I just added support for RecordSet object in Automation, so I should be able to leverage this from Talend. I'll try to work on that tomorow.