49
What is COTI? A brief introduction to the new standard for exchanging translation data

What is COTI?

Embed Size (px)

DESCRIPTION

A brief introduction to the new standard for exchanging translation data. www.blog.ovidius.com www.dercom.de

Citation preview

Page 1: What is COTI?

What is COTI?A brief introduction to the new standard for exchanging translation data

Page 2: What is COTI?

COTI = Common Translation Interface

Page 3: What is COTI?

Common: not proprietary

Page 4: What is COTI?

Translation: the rendering of something into another language (dictionary.com)

Page 5: What is COTI?

Interface: a common boundary or inter- connection between systems (dictionary.com)

Page 6: What is COTI?

COTI: Standard for exchanging translation data with a Translation Management System

Page 7: What is COTI?

Why?

Page 8: What is COTI?

Translation data is complex.

Page 9: What is COTI?

Everybody does it differently.

Page 10: What is COTI?

System integration is key.

Page 11: What is COTI?

Strong demand to increase flexibility and capability of CMS/ TMS integration

Page 12: What is COTI?

Who?The Association of German Editing and Content Management Software System Designers

Page 13: What is COTI?

German vendors for Content Management Systems

Page 14: What is COTI?

How does it work?

Page 15: What is COTI?

3 consecutive integration levels

L3:Communication API

L2:Import and Export

L1:Translation package

Page 16: What is COTI?

Level 1: Translation package defined

Translation data is provided in the specified package structure.

Page 17: What is COTI?

Level 2: automatic export and import

Translation packages are exchanged with the TMS via the specified exchange folder mechanism.

Page 18: What is COTI?

Level 3: Communication API

Translation packages are exchanged with the TMS using the Communication API over SOAP.

Page 19: What is COTI?

Level 1Translation packages

Page 20: What is COTI?

COTI translation package = ZIP-file with meta file, translation files, reference files and additional files

Page 21: What is COTI?

translation-COTI-specification_ 2009-11-13T10:39:35Z.coti

/4711_de-DE_en-GB//COTI.xml/translation files//reference files/

/4711_de-DE_ru-RU//COTI.xml/translation files//reference files/

multiple projects in one package!

A COTI package

Page 22: What is COTI?

Meta file COTI.xml

<coti version="1.0" level="1" ...>

<project name="4711" project-id="123" proposal="yes"

checkout-date= "2013-08-21T11:59:00Z" due-date= "" ...>

<subject>Subject</subject>

<translation source-language= "de-DE" target-language= "en-GB" status="none|proof|final"/>

<meta name="CMS meta field" value="123" description=""/>*

<files>...</files>

</project>

</coti>

Page 23: What is COTI?

Meta file | COTI.xml

Describes the translation project.References the project content.

Page 24: What is COTI?

Translation content

All files to be translated.Can be anything, not only XML.

Page 25: What is COTI?

Reference content

Optional support material for the translator or the TMS.

DTDs, Style sheets, templates, context material (e.g. rendered output)

Page 26: What is COTI?

Level 2How to exchange those COTI packages?

Page 27: What is COTI?

The COTI exchange folder

untranslated/translated/error/untranslated/error/translated/archive/untranslated/archive/translated/logs/TMSlogs/CMS

the CMS puts packages here...

...and gets translated content back, here

Page 28: What is COTI?

Level 3Communication API

Page 29: What is COTI?

the “grown up” system integration

Page 30: What is COTI?

SOAP v1.2 message

<e:Envelopexmlns:e="http://www.w3.org/2003/05/soap-envelope">

<e:Header>

<!-- Header data />

</e:Header>

<e:Body>

<!-- Body data />

</e:Body>

</e:Envelope>

Here is where the COTI payload goes

Page 32: What is COTI?

MTOM MIME attachment

Content-Type: multipart/related;boundary=MIMEBoundary_5F0BF3DC11582467646222; type="application/xop+xml";

start="<0.urn:uuid:[email protected]>";

start-info="text/xml";charset=UTF-8

--MIMEBoundary_5F0BF3DC11582467646222

content-type: application/xop+xml; charset=UTF-8; type="text/xml"; content-transfer-encoding: binary

content-id: <0.urn:uuid:[email protected]>

<e:Envelope ...>

<e:Body>

<c:SampleRequest>

<xop:Include href="cid:1.urn:uuid:[email protected]"/>

</c:SampleRequest>

</e:Body>

</e:Envelope>

--MIMEBoundary_5F0BF3DC11582467646222

content-type: text/plain content-transfer-encoding: binary

content-id: <1.urn:uuid:[email protected]>

... binarydata ...

--MIMEBoundary_5F0BF3DC11582467646222--

Page 33: What is COTI?

Authentication and Security? WS-Security; Support of Username Token and X.509 profiles is mandatory

Page 34: What is COTI?

WS-Secutity header with Username Token

<s:Security><s:UsernameToken>

<s:Username>TheName</s:Username><s:Password Type="s:PasswordDigest">fj73h83jcG6SD5k98jsd7jgmn/yj0=</s:Password><s:Nonce>5uW4ABku/m6/S5rnE+L7vg==</wsse:Nonce><wsu:Created xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">2013-07-12T04:24:02Z</wsu:Created>

</s:UsernameToken></s:Security>

Page 35: What is COTI?

COTIsessionId authenticates an API call after login()

<e:Envelopexmlns:e="http://www.w3.org/2003/05/soap-envelope"xmlns:c="http://www.DERCOM.de/COTI/2013/1.0/namespace">

<e:Header><c:COTIsessionId>345jkhjDHjk1Dl9HgelkDLK</c:COTIsessionId>

</e:Header><e:Body><!-- Body data --></e:Body>

</e:Envelope>

Page 36: What is COTI?

Level 3 - CMS APIThe interface of the CMS

Page 37: What is COTI?

SessionServiceLogin and logout from the CMS

Page 38: What is COTI?

NotificationServiceTMS pushes updates for translation projects

Page 39: What is COTI?

ReportServiceTMS pushes requested reports

Page 40: What is COTI?

Level 3 - TMS APIThe interface of the TMS

this is where the music plays

Page 41: What is COTI?

SessionServiceLogin and logout from the TMS

Page 42: What is COTI?

InfoServiceRequest meta info from the TMS: version, meta attributes, status of a project

Page 43: What is COTI?

ReportServiceCMS requests reports

Page 44: What is COTI?

ProjectServicecreate and manage translation projects

Page 45: What is COTI?

DocumentServiceupload and download documents

Page 46: What is COTI?

Lifecycle of a translation project in TMS API calls (if all goes well)

1. String CreateProject(byte[] cotiFile)

2. String UploadDocument(String projectId, FileType

fileType, String fileRef, byte[] content)

3. void StartProject(String projectId, String workflow)

4. byte[] DownloadDocument(String documentId)

5. void CloseProject(String projectId)

Page 47: What is COTI?

CreateProject and UploadDocument are different operations for a reason: by sending one document at a time, the interfaces scales.Big documents can still be a problem though and should be avoided.

Good to know

Page 48: What is COTI?

And adoption of the standard? The standardization process is currently in the Request for Comments status.

The DERCOM members are committed to implement all levels as soon as RfC phase concludes.

Page 49: What is COTI?

Thank you!

Get the COTI spec: http://www.dercom.de/projekte

Twitter: #PRubarth