0

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.

Soumyaansh
  • 8,626
  • 7
  • 45
  • 45

1 Answers1

5

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 :)

rocky
  • 7,506
  • 3
  • 33
  • 48
  • Hi @rocky thanks for the detailed explanation and example link, I have configured the given example(https://github.com/petrsvihlik/WopiHost) in my VS, used the Microsoft.CobaltCore.dll now I can run it directly from the Visual Studio (IIS Express) by setting WopiHost and WopiHost.Web as startup projects but you mentioned for testing this we would need an operational WOPI client, I am working on Windows 10, and I have installed (WAC) Web Application server 2013 (for Microsoft.CobaltCore.dll), now can I just run WAC on my Windows 10 and treat it as a client ? sorry if all this sound naive. – Soumyaansh Apr 06 '16 at 07:45
  • I haven't tried installing WAC (OWA) 2013 on W10 so I don't know if it works. The [documentation](https://technet.microsoft.com/en-us/library/jj219455.aspx) only describes how to make it run on server systems. But yeah, you could possibly run both WOPI Server and WOPI Client on the same machine for testing purposes, there's nothing wrong with that. However, I'd recommend a virtual machine (WS2012R2) to simulate real conditions... – rocky Apr 06 '16 at 08:22
  • Thanks rocky, I will try to do what you mentioned ! – Soumyaansh Apr 06 '16 at 08:50
  • @rocky I have posted another question regarding wopi integration. Can you please help me with it https://stackoverflow.com/q/68064163/2982379 – yakhtarali Jun 21 '21 at 11:31