SlideShare a Scribd company logo
1 of 11
Download to read offline
Malte Timmermann โ€“ Head of Development OX Documents 
ODF Plugfest 2014 
Operations based ODF editing 
with OX Documents
Bio 
ODF since itโ€™s very beginning 
2 Operations based ODF editing with OX Documents 
โ€ข 1991-2011: StarOffice and OpenOffice.org 
โฏ From junior developer to senior developer and technical architect 
โฏ Focus on text editing, security and accessibility 
โฏ Author of Sunโ€™s ODF Plugin for Microsoft Office 
โฏ Member OASIS ODF TC, Accessibility SC 
โ€ข 2012 โ€“ today: OX Documents 
โฏ Document editing again โ€“ now in the browser 
โฏ In the team: 14 former colleagues from the Hamburg OpenOffice.org team 
โฏ http://techblog.open-xchange.com/
OX Documents 
Customer Requirements 
3 Operations based ODF editing with OX Documents 
Documents 
Round-trip 
Edit Open Office and Microsoft Office documents (ODF and OOXML). 
View and convert documents in many different formats, including PDF. 
Interoperability with other office products. 
Preserve content and layout of complex documents. 
Work together on shared documents. 
See otherโ€˜s people edits โ€“ in real-time. 
Edit your documents anywhere. On any device, including mobile. 
In the browser. 
Collaboration 
Availability
OX Documents 
4 
Operations 
โ€ข Describe document changes and entire document 
๏ƒ˜ Examples: insertParagraph, insertText, setAttributes 
โ€ข Abstraction of file formats 
โ€ข Building block for โ€œOperational Transformationโ€œ (OT) 
โ€ข Allow collaborative editing 
โ€ข Used in Client-Server communication, could also be 
used for macro recording, scripting, ... 
Key Concept: Operations 
Operations based ODF editing with OX Documents 
Document 
OP 
OP 
OP
Architecture Overview 
5 
OX Text 
App 
OX Text 
Editor 
Lorem ipsum dolor sit 
amet, consectetuer 
adipiscing elit. Aenean 
commodo ligula eget dolor. 
Aenean massa. Cum sociis 
natoque penatibus et magnis dis 
parturient montes, nascetur 
ridiculus mus. Donec quam felis, 
ultricies nec, 
Operations 
DOM 
Manipulations 
Browser 
OX Text 
OSGi 
Document 
Converter 
OpenOffice 
ODF <=> 
Operations 
ODFDOM 
OOXML <=> 
Operations 
DOCX4J 
OX Drive 
> ODF 
< Operations 
ODF / OOXML / Operations / other 
> Non-ODF/OOXML 
< ODF 
Operations 
(JSON) 
Client Server 
> OOXML 
< Operations 
Operations based ODF editing with OX Documents
Operations Processing 
Step 1 โ€“ Decomposing the document (on server) 
6 
Lorem ipsum dolor 
sit... 
Duis autem vel eum 
iriure dolor in 
hendreritโ€ฆ 
Unknown object โ€“ will be ignored 
OOXML to Operations 
insertParagraph start:[0] 
insertDrawing start:[1,0] imageUrl:โ€œpic.jpgโ€œ, 
width=100, height=100, โ€ฆ 
insertText start:[2,0], text=โ€žDuis autemโ€ฆโ€œ 
setAttributes start:[2,5] end:[2,10] 
attrs:{fontweight=bold} 
insertText start:[0,0], text:โ€œLorem ipsumโ€ฆโ€œ 
insertParagraph start:[1] 
Operations describe how to manipulate the document โ€“ including how to build it up from scratch 
insertParagraph start:[2] 
Operations based ODF editing with OX Documents
Operations Processing 
Step 2 โ€“ Apply operations to editor (on client) 
7 
<html> 
<p> <p> <p> 
โ€žLoremโ€ฆโ€œ <img> โ€žDuisโ€ฆโ€œ 
insertText 
insertParagraph 
Operations to 
HTML DOM 
The browser will do the layout and the rendering 
Lorem ipsum dolor sit... 
Duis autem vel eum iriure 
dolor in hendreritโ€ฆ 
insertDrawing 
insertParagraph 
insertText 
insertParagraph 
Operations based ODF editing with OX Documents
Operations Processing 
Step 3 โ€“ Edit document in browser (on client) 
8 
โ€ข Intercept all events โ€“ do not let the browser do any DOM manipulations 
โ€ข Create operations for desired document manipulations 
๏ƒ˜ For mouse/keyboard input as well as for actions triggered in the user interface 
โ€ข Apply these operations to HTML DOM 
๏ƒ˜ The browser will display the updated document 
โ€ข Send operations to the server - for persistence and for further distribution 
Lorem ipsum dolor sit... 
Duis autem vel eum iriure 
dolor in hendreritโ€ฆ 
Ut wisi enim ad minimโ€ฆ 
User Input 
to Operations delete start:[2,5] end:[2,10] 
delete start:[1,0] 
splitParagraph start:[2,42] 
insertText start:[3,0], text:โ€œUt wisi...โ€œ 
Operations based ODF editing with OX Documents
Operations Processing 
Step 4 โ€“ Apply operations to document (on server) 
9 
<XML> 
<p> <p> <p> 
โ€žLoremโ€ฆโ€œ โ€žDuisโ€ฆโ€œ โ€žUtโ€ฆโ€œ 
1 delete 
Operations 
to XML DOM 
ODF / OOXML 
โ€ข This step is optional (for supporting legacy applications) 
๏ƒ˜ It would also be possible to just make the operations list persistent 
<p> 
โ€ข Duplicate original document, build DOM tree 
โ€ข Use only the newly created operations to update the DOM tree 
โ€ข Do not touch any DOM nodes that you donโ€˜t understand or donโ€˜t care about, 
so the round-trip is nearly perfect! 
2 delete 
3 splitParagraph 
4 insertText 
2 
3 
1 4 
Unknown object โ€“ still there! 
Operations based ODF editing with OX Documents
Operations Processing 
Demonstration in OX App Suite 
10 Operations based ODF editing with OX Documents 
Open Source (like): 
โ€ข Backend: GPL2 
โ€ข Frontend: CC BY-SA-NC
ยฉ 2014 Open-Xchange 
Operations based ODF editing 
with OX Documents

More Related Content

Similar to 2014 12-08 - odf plugfest - operations based odf editing with ox documents

Bp124
Bp124Bp124
Bp124
John Head
ย 
MWLUG 2011: The Never Ending Integration Story
MWLUG 2011: The Never Ending Integration StoryMWLUG 2011: The Never Ending Integration Story
MWLUG 2011: The Never Ending Integration Story
John Head
ย 
Office 2007 uof-u4-07
Office 2007 uof-u4-07Office 2007 uof-u4-07
Office 2007 uof-u4-07
Vishal Mehta
ย 
node_js.pptx
node_js.pptxnode_js.pptx
node_js.pptx
dipen55
ย 
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
John Head
ย 
JavaScript DOM & event
JavaScript DOM & eventJavaScript DOM & event
JavaScript DOM & event
Borey Lim
ย 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
Alexandro Colorado
ย 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
dominion
ย 

Similar to 2014 12-08 - odf plugfest - operations based odf editing with ox documents (20)

Bp124
Bp124Bp124
Bp124
ย 
Slides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceSlides from the NASIG 2018 Preconference
Slides from the NASIG 2018 Preconference
ย 
MWLUG 2011: The Never Ending Integration Story
MWLUG 2011: The Never Ending Integration StoryMWLUG 2011: The Never Ending Integration Story
MWLUG 2011: The Never Ending Integration Story
ย 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
ย 
Office 2007 uof-u4-07
Office 2007 uof-u4-07Office 2007 uof-u4-07
Office 2007 uof-u4-07
ย 
XML Performance
XML PerformanceXML Performance
XML Performance
ย 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
ย 
node_js.pptx
node_js.pptxnode_js.pptx
node_js.pptx
ย 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open Xml
ย 
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
BP204 Integration of OpenOffice.org and IBM Lotus Notes and Domino
ย 
ODX (Offloaded Data Transfers)
ODX (Offloaded Data Transfers)ODX (Offloaded Data Transfers)
ODX (Offloaded Data Transfers)
ย 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
ย 
JavaScript DOM & event
JavaScript DOM & eventJavaScript DOM & event
JavaScript DOM & event
ย 
Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.Office OpenXML: a technical approach for OOo.
Office OpenXML: a technical approach for OOo.
ย 
Spreadsheet
SpreadsheetSpreadsheet
Spreadsheet
ย 
Opw presentation of open office-lgma
Opw presentation of open office-lgmaOpw presentation of open office-lgma
Opw presentation of open office-lgma
ย 
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And DxlBp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
ย 
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
ย 
Node.js: The What, The How and The When
Node.js: The What, The How and The WhenNode.js: The What, The How and The When
Node.js: The What, The How and The When
ย 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
ย 

More from Malte Timmermann

OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
Malte Timmermann
ย 
OpenOffice.org and ODF Accessibility, ABI Workshop 2006
OpenOffice.org and ODF Accessibility, ABI Workshop 2006OpenOffice.org and ODF Accessibility, ABI Workshop 2006
OpenOffice.org and ODF Accessibility, ABI Workshop 2006
Malte Timmermann
ย 
OpenOffice.org Digital Signatures, OOoCon 2004
OpenOffice.org Digital Signatures, OOoCon 2004OpenOffice.org Digital Signatures, OOoCon 2004
OpenOffice.org Digital Signatures, OOoCon 2004
Malte Timmermann
ย 
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
Malte Timmermann
ย 
OpenOffice.org and ODF Accessibility, OOoCon 2006
OpenOffice.org and ODF Accessibility, OOoCon 2006OpenOffice.org and ODF Accessibility, OOoCon 2006
OpenOffice.org and ODF Accessibility, OOoCon 2006
Malte Timmermann
ย 
Linux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun AccessibilityLinux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun Accessibility
Malte Timmermann
ย 
Sun ODF Plugin for MS Office
Sun ODF Plugin for MS OfficeSun ODF Plugin for MS Office
Sun ODF Plugin for MS Office
Malte Timmermann
ย 

More from Malte Timmermann (7)

OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
OpenOffice.org and ODF Accessibility Today (OOoCon 2008 Bejing)
ย 
OpenOffice.org and ODF Accessibility, ABI Workshop 2006
OpenOffice.org and ODF Accessibility, ABI Workshop 2006OpenOffice.org and ODF Accessibility, ABI Workshop 2006
OpenOffice.org and ODF Accessibility, ABI Workshop 2006
ย 
OpenOffice.org Digital Signatures, OOoCon 2004
OpenOffice.org Digital Signatures, OOoCon 2004OpenOffice.org Digital Signatures, OOoCon 2004
OpenOffice.org Digital Signatures, OOoCon 2004
ย 
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
OpenOffice.org/StarOffice & DRM, OMC Workshop 2006
ย 
OpenOffice.org and ODF Accessibility, OOoCon 2006
OpenOffice.org and ODF Accessibility, OOoCon 2006OpenOffice.org and ODF Accessibility, OOoCon 2006
OpenOffice.org and ODF Accessibility, OOoCon 2006
ย 
Linux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun AccessibilityLinux Accessibility Workshop, Sun Accessibility
Linux Accessibility Workshop, Sun Accessibility
ย 
Sun ODF Plugin for MS Office
Sun ODF Plugin for MS OfficeSun ODF Plugin for MS Office
Sun ODF Plugin for MS Office
ย 

Recently uploaded

CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
anilsa9823
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
ย 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
ย 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
bodapatigopi8531
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female serviceCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
ย 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
ย 
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
ย 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
ย 
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธcall girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
ย 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
ย 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
ย 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
ย 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
ย 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
ย 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
ย 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
ย 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ย 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
ย 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female serviceCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Badshah Nagar Lucknow best Female service
ย 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
ย 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
ย 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
ย 

2014 12-08 - odf plugfest - operations based odf editing with ox documents

  • 1. Malte Timmermann โ€“ Head of Development OX Documents ODF Plugfest 2014 Operations based ODF editing with OX Documents
  • 2. Bio ODF since itโ€™s very beginning 2 Operations based ODF editing with OX Documents โ€ข 1991-2011: StarOffice and OpenOffice.org โฏ From junior developer to senior developer and technical architect โฏ Focus on text editing, security and accessibility โฏ Author of Sunโ€™s ODF Plugin for Microsoft Office โฏ Member OASIS ODF TC, Accessibility SC โ€ข 2012 โ€“ today: OX Documents โฏ Document editing again โ€“ now in the browser โฏ In the team: 14 former colleagues from the Hamburg OpenOffice.org team โฏ http://techblog.open-xchange.com/
  • 3. OX Documents Customer Requirements 3 Operations based ODF editing with OX Documents Documents Round-trip Edit Open Office and Microsoft Office documents (ODF and OOXML). View and convert documents in many different formats, including PDF. Interoperability with other office products. Preserve content and layout of complex documents. Work together on shared documents. See otherโ€˜s people edits โ€“ in real-time. Edit your documents anywhere. On any device, including mobile. In the browser. Collaboration Availability
  • 4. OX Documents 4 Operations โ€ข Describe document changes and entire document ๏ƒ˜ Examples: insertParagraph, insertText, setAttributes โ€ข Abstraction of file formats โ€ข Building block for โ€œOperational Transformationโ€œ (OT) โ€ข Allow collaborative editing โ€ข Used in Client-Server communication, could also be used for macro recording, scripting, ... Key Concept: Operations Operations based ODF editing with OX Documents Document OP OP OP
  • 5. Architecture Overview 5 OX Text App OX Text Editor Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, Operations DOM Manipulations Browser OX Text OSGi Document Converter OpenOffice ODF <=> Operations ODFDOM OOXML <=> Operations DOCX4J OX Drive > ODF < Operations ODF / OOXML / Operations / other > Non-ODF/OOXML < ODF Operations (JSON) Client Server > OOXML < Operations Operations based ODF editing with OX Documents
  • 6. Operations Processing Step 1 โ€“ Decomposing the document (on server) 6 Lorem ipsum dolor sit... Duis autem vel eum iriure dolor in hendreritโ€ฆ Unknown object โ€“ will be ignored OOXML to Operations insertParagraph start:[0] insertDrawing start:[1,0] imageUrl:โ€œpic.jpgโ€œ, width=100, height=100, โ€ฆ insertText start:[2,0], text=โ€žDuis autemโ€ฆโ€œ setAttributes start:[2,5] end:[2,10] attrs:{fontweight=bold} insertText start:[0,0], text:โ€œLorem ipsumโ€ฆโ€œ insertParagraph start:[1] Operations describe how to manipulate the document โ€“ including how to build it up from scratch insertParagraph start:[2] Operations based ODF editing with OX Documents
  • 7. Operations Processing Step 2 โ€“ Apply operations to editor (on client) 7 <html> <p> <p> <p> โ€žLoremโ€ฆโ€œ <img> โ€žDuisโ€ฆโ€œ insertText insertParagraph Operations to HTML DOM The browser will do the layout and the rendering Lorem ipsum dolor sit... Duis autem vel eum iriure dolor in hendreritโ€ฆ insertDrawing insertParagraph insertText insertParagraph Operations based ODF editing with OX Documents
  • 8. Operations Processing Step 3 โ€“ Edit document in browser (on client) 8 โ€ข Intercept all events โ€“ do not let the browser do any DOM manipulations โ€ข Create operations for desired document manipulations ๏ƒ˜ For mouse/keyboard input as well as for actions triggered in the user interface โ€ข Apply these operations to HTML DOM ๏ƒ˜ The browser will display the updated document โ€ข Send operations to the server - for persistence and for further distribution Lorem ipsum dolor sit... Duis autem vel eum iriure dolor in hendreritโ€ฆ Ut wisi enim ad minimโ€ฆ User Input to Operations delete start:[2,5] end:[2,10] delete start:[1,0] splitParagraph start:[2,42] insertText start:[3,0], text:โ€œUt wisi...โ€œ Operations based ODF editing with OX Documents
  • 9. Operations Processing Step 4 โ€“ Apply operations to document (on server) 9 <XML> <p> <p> <p> โ€žLoremโ€ฆโ€œ โ€žDuisโ€ฆโ€œ โ€žUtโ€ฆโ€œ 1 delete Operations to XML DOM ODF / OOXML โ€ข This step is optional (for supporting legacy applications) ๏ƒ˜ It would also be possible to just make the operations list persistent <p> โ€ข Duplicate original document, build DOM tree โ€ข Use only the newly created operations to update the DOM tree โ€ข Do not touch any DOM nodes that you donโ€˜t understand or donโ€˜t care about, so the round-trip is nearly perfect! 2 delete 3 splitParagraph 4 insertText 2 3 1 4 Unknown object โ€“ still there! Operations based ODF editing with OX Documents
  • 10. Operations Processing Demonstration in OX App Suite 10 Operations based ODF editing with OX Documents Open Source (like): โ€ข Backend: GPL2 โ€ข Frontend: CC BY-SA-NC
  • 11. ยฉ 2014 Open-Xchange Operations based ODF editing with OX Documents