0
votes

I am working on a document storage application which hosts a ton of office files (WORD, EXCEL, PPT) on cloud, now I want to render these files and open/show on the browser.

but I have a very vague picture of how and where all these below things fits and communicate

(WOPI HOST)
Browser
|
(WOPI SERVER)
Office Web Apps Server
|
(Third Party Application)
My Document Storage App

Before I had an impression that (document storage application) will serve as Office Web Apps Server but after reading few blogs I got more confused.

Most of the blogs and contents talk about the WOPI host/client but they don't really clarify WOPI server and implementation of integrating Third party applications with it.

Any input will be greatly appreciated.

1

1 Answers

3
votes

I think this image illustrates it the best: WOPI Conversation

A typical combination of WOPI Client/Host are Office Web Apps connected to SharePoint where:

  • Office Web Apps Server = WOPI Client implementation
  • SharePoint = WOPI Host implementation

You need to build a WOPI Host that will implement all the methods (GetCheckFileInfo, GetContents, etc.) These methods will get information from and perform operations upon your storage.

You'll also need to implement a discovery mechanism to be able to generate links to the files. The WOPI client should provide you with a template of such links if you go to http://wopiclient_eg_owas/hosting/discovery. You'll then just replace the placeholders with the real parameters (especially WOPISrc and access_token). See the example. This is how you tell the WOPI client where to fetch the data from.

To begin with, I recommend the brand new WOPI documentation. If you need some more inspiration look at MVC6 implementation or HttpListener implementation.

And please note that WOPI Server == WOPI Host :)