Microsoft Office Online Server Integration with ownCloud
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 34 | |
Author | ||
Contributors | ||
License | CC Attribution - ShareAlike 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/42809 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Server (computing)DisintegrationGoodness of fitResultantINTEGRALPoint cloudMultiplication signBuildingLecture/Conference
00:30
Server (computing)Office <Programm>DisintegrationSanitary sewerWeb browserVideo gameReal numberPresentation of a groupHard disk driveOffice suiteComputer clusterPoint cloudServer (computing)Computer animationSource code
00:49
Office suitePoint cloudComputer fileServer (computing)Office <Programm>DisintegrationSimultaneous localization and mappingWordToken ringDemosceneConnectivity (graph theory)Point cloudOffice suiteServer (computing)Demo (music)Web 2.0ImplementationOpen setInformationProxy serverSet (mathematics)Communications protocolVideo gameOpen sourceInterface (computing)Revision controlNeuroinformatikPay televisionJava appletMechanism designSelf-organizationGroup actionWordComputer animationPanel painting
03:45
ParsingWordPhysical lawNo free lunch in search and optimizationFreewareAverageParity (mathematics)MathematicsWeb pageView (database)FamilyPoint cloudWordProxy serverHydraulic jumpOffice suiteDemosceneServer (computing)Computer animation
05:11
Group actionDemoscenePoint cloudComputer fileLatent heatWordWeb pageComputer virusNormal (geometry)View (database)Formal grammarDisk read-and-write headMenu (computing)Office suiteMusical ensemblePoint cloudTap (transformer)Right angleWritingComputer animation
05:48
WordEmpennageWeb pageView (database)Computer virusFront and back endsImplementationLatent heatConnectivity (graph theory)Client (computing)Function (mathematics)Communications protocolOffice suiteWordMultiplication signGroup actionPoint cloudAuthorizationPhysical systemComputer fileBitInstance (computer science)Modal logicNP-hardReal numberComputer animation
07:40
INTEGRALOffice suiteComputer fileClient (computing)Web 2.0InformationExtension (kinesiology)CybersexImplementationContent (media)Mechanism designLatent heatCommunications protocolLecture/Conference
08:45
View (database)Office <Programm>Server (computing)DisintegrationWebDAVCore dumpMobile WebOffice suiteOpen setPressureInternet forumPresentation of a groupRandom number generationContinuous integrationMobile appComputer fileOffice suiteOpen sourceServer (computing)Online helpReal numberUniform resource locatorINTEGRALInterface (computing)Revision controlCASE <Informatik>MereologySystem callPublic key certificateProgramming languageSoftwareConnectivity (graph theory)Extension (kinesiology)Physical systemProcess (computing)Lebesgue integrationBranch (computer science)Domain nameProjective planePlanningDemo (music)Product (business)Mechanism designLine (geometry)Validity (statistics)Modal logicPoint cloudCore dumpAdditionWordToken ring.NET FrameworkInternetworkingInformationData storage deviceImplementationProxy serverOpen setInternet forumInstance (computer science)AreaProbability density functionLatent heatReading (process)WritingMathematical analysisSoftware testingMedical imagingDifferent (Kate Ryan album)Slide rulePasswordCommunications protocolTrailMultiplication signInternet service providerSoftware suiteView (database)FeedbackRight angleWeb 2.0Content (media)Alpha (investment)Proper mapComputer animationPanel painting
18:53
Patch (Unix)Point cloudCore dumpComputer fileLevel (video gaming)ImplementationServer (computing)Proxy serverBranch (computer science)Mobile appSoftware developerMereologyOffice suiteProduct (business)Digital rights managementCodeMathematicsINTEGRALSystem callCuboidRevision controlNumbering schemeRow (database)Structural equation modelingLecture/Conference
Transcript: English(auto-generated)
00:08
So, good afternoon, I have the pleasure to show you the results of the past month of work, where we spent some time in building something nice.
00:24
I will talk about the Microsoft Office online integration with own cloud and showing it from the local hard drive is boring, so we already do this live now. So actually, this is a real PowerPoint presentation, which is already running now in the browser,
00:42
which is rendered by an Office online server, and the data itself is hosted in own cloud. I will give you now just a quick overview on what components are involved and how this
01:01
thing is in general working, and then we dive into a live demo, because I think this shows best what this all is about. Okay, so, overview, yes, when we talk about the Microsoft Office online server, we are not talking about Office 365. Technically, they are the same, but the Office online server is
01:28
basically the on-premise version of Office 365 that you can install in your own basement or computing center or whatever. Usually, bigger customers and institutions already have
01:46
enough subscription mechanism to have this already in place somewhere, so this is, as soon as you reach a certain size of the company or the organization, you automatically have this thing, so it should be maybe for most of you already installed somewhere.
02:03
Nevertheless, as of today, we support within own cloud to open and edit Excel documents, Word documents, and PowerPoint documents. We have the capability from within the Office
02:24
online web UI to trigger the native share implementation, so you can actually from within Office share with other users and groups, as you notice from own cloud itself. The protocol which is used between the Office online server and own cloud is called Whoopi.
02:46
This is the web open protocol initiative. This is driven by Microsoft itself, and it's driven in a very open way, so you can find the documentation online on GitHub.
03:01
They use Sphinx and Python to generate it, and you actually don't believe it, it's Microsoft, but they're doing open source stuff. The Whoopi interface requires something which is called an access token, which transports
03:21
information across requests, and therefore we implemented Java web tokens to get this information spinning around the servers. As I said, I just show it live. It's better to have a lot of screenshots and stuff like that.
03:44
Actually, when we have our own cloud, as we all know it, there is the capability to say, oh, I want to have a new Word document or a new Excel document or a new PowerPoint document. Let's start off with Word. Yeah, pop up. Come on, open it. Okay, let's try it again.
04:19
That's the problem with live demos, right? It immediately opens up the Office online server,
04:33
and it's rendering itself in an own tab, so you can still switch back to own cloud in an easy way where you say I want to do something else, and in here you do your general editing.
04:48
Yeah, I mean, editing a Word document is something that I don't need to demo that much, right? I was talking about the sharing capabilities that we have, and therefore we have
05:01
this sharing button on the right-hand side, and this will easily open up another tab, jump you directly in own cloud to the file, and open the share tab on the right-hand side. So now you can easily say, oh, I want to share this. Let's see who I can share this with.
05:23
Yeah, there is somebody I can share with. Nice. I can share the document, get back and write something again, and Office itself comes also along with co-authoring
05:49
capabilities. I'm here now logged in with this other user, and the document is here, and I can now easily say, yeah, I want to edit this document as well. Again, pops up in another
06:03
tab, and let's do this side by side to get the co-authoring feature.
06:21
Then you see immediately real-time the co-authoring thing. So why am I talking about this now? This is a Microsoft Office online feature, nothing to do with own cloud. The implementation of the WOBY protocol in the backend to make this happen required a
06:44
large amount of time, because the API specifications, especially for Word, to make co-authoring work, requires that files can be logged. So it's really like, there's the Word document that is opened, and Office really hard needs to lock it to prevent
07:01
any overwrite actions from other tools, other systems, other components, other clients. Even it protects itself from rewriting its own stuff, because it could technically be that a second instance is also opening, and then the locks to prevent that the overwriter,
07:22
there is this necessity of having this lock in place. Up to now, we have no real hard locks within own cloud. There is no capability to say, okay, I want to lock this file now for the next four hours or something. For those who are a little bit more involved into deeper API
07:41
specifications and protocols, the WebDAF API itself has an extension for locking. There was, let's say, a fake implementation of this locking mechanism, because other tools need this as well. And now with this Office Online integration,
08:04
we do have the real integration, the real implementation of the locking mechanism. And it's not only for Office, but also if other tools want to lock, there are some file clients
08:20
– what was it? Cyber darker tools like that, they really want to lock before they start with bigger uploads. This now is fully supported, and we also make sure that no other tool in parallel is overwriting the information on the files and the contents itself. Yeah, this is
08:42
the deal behind it. Thanks. Quite naturally, the same works with excellent PowerPoint as well. For PowerPoint, you already
09:00
have seen it as I opened my presentation. It has features like starting it as a slideshow, things like that. Yeah, so let's get back. Yeah, why don't you start there? Okay, so if you want to have a look and play with it for yourself, we have the server
09:24
set up, office.owncloud.team. You can log in with the user demo. Password, I think, is demo as well. Give it a try. You can play around. Maybe don't do nasty stuff, because others might be offended by it. So play around with it. I happily take your feedback on
09:42
that to see how the user interfaces integrate and things like that. Yeah, so more about the technical stuff. As of today, because we have the necessity of having this real lock-hard locking mechanism for files implemented, as of today, it would require the
10:04
server core master branch, which is what we call what might be own cloud 11 version. There are plans, there are ideas to make a more lightweight locking mechanism, which we can backport
10:21
to the stable 10 product line so that we can roll it out, let's say, in the scope of the next few months. Otherwise, waiting for own cloud 11 would be a little bit boring if I talk about it today. The API documentation, just the URL is listed there. If you want to have a look at it,
10:45
it's pretty intensive, pretty detailed and explanatory what is necessary and what you have to do in there. In addition to that, Microsoft themselves provide a WOP validator tool.
11:02
It's a .NET written tool which actually tests your WOP implementation. It has a bunch of scenarios, especially in the locking area. This was really, really damn helpful to see if your API implementation is behaving properly. Even if you have the best documentation or specification,
11:22
how you implement or how you should implement the API, you might still misunderstand things, read things differently and end up with a situation where your service is not properly behaving. And then you have scenarios where you start editing a Word document, which works pretty
11:42
perfect. Then you start with the co-authoring and both sessions just die away and nothing's working anymore, which is bad. Debugging this is also not that easy because the tokens that you get for this lock information, they're just some random numbers, so you cannot really make any, let's say, deeper analysis on it, what's going wrong there.
12:08
Using this tool was really just a big time saver. We have it set up in a Docker image by now. It's also running in our continuous integration system of this WOP implementation. Whenever
12:21
we change something, the full test suite is running against it and we just make sure that the implementation continues to behave properly and things are continuing to work. As I just said, the true WebDAF file locking is coming with it,
12:44
which I think is a really helpful component or extension for the whole system. We already have been chatting about other scenarios where we would need file locking, where you want to file lock a file for a longer time to make sure the content is preserved.
13:05
Next steps. Let's call it a technology preview or maybe alpha or whatever. What are the next steps? We are not yet done. Sooner or later we also want to support Office 365 natively so that you really can use
13:26
the real online version of Microsoft Office Online. This is especially necessary if you want to also support the mobile applications. So there are mobile applications where you can open up the Office documents and they rely on
13:44
Office 365 as well. How we do that I don't know yet because to be listed or to be capable to interact with Office 365 you need to take part in some certification process which requires
14:03
that you really register the domain where your storage is running. So especially for us being a open source project and also a product vendor there is no domain that we can register for you. So it would be each individual installation of you out there to register yourself with
14:25
Microsoft and go through the validation process. I mean if you want to use it on the internet, the on-premise installation. This is a different story but if you want to use real Office 365 there's this validation process. There are maybe concepts or mechanisms around it. So maybe that
14:45
we provide a proxy which we register and validate and then forward the request to your instances. But this is just let's say early thinking to solve these problems.
15:00
As I said the onCloud 10 support is to be coming. Let's see how this will work out. Furthermore there are other Office applications within this Office Online server. For example Visio, OneNote and also the support PDF viewing and PDF editing. Whatever that tool then is within
15:25
Office. I don't know maybe Word. This is something where we need to look into how we realize that because they require additional API calls through the WOP interface and we have to have a closer look how to support this how to make this work.
15:45
Throughout the past weeks there were also additional test cases added to this validator tool I was talking about. There are things like displaying or setting activities and stuff like that. So this API, this protocol is continuously evolving and enhancing.
16:05
Of course we should also keep track of that how to take care, how to implement that support or if it is reasonable at all to support it or not. I was quickly showing you how to share these Office documents and how to co-author them.
16:23
This works as of today only for users who are logged in. We also want to provide viewing and of course also editing these documents on public shares. So when you have a public share you can set the rights, read and write permissions
16:44
and respecting them we can also then display the Office Online Integration on that. Last but not least I have to shout out some credits. First of all I'd like to thank Giuseppe from CERN who helped me in the initial implementation because the guys
17:04
at CERN already have a WOP implementation. Of course a different program language that we need so copy and paste was not working out. But to get an understanding of the concepts mechanisms and what needs to be done especially cases where I say okay how do I interpret this
17:24
specification that I'm having in front of me. It was really helpful to talk to somebody who actually went through this process already and in the long run we also find found out together solutions for both of our software products how to make it better at the end.
17:43
There's also one guy Will Gregg from the support team of the Microsoft Open Specifications Forum. So they have really a public forum where you can come up with your troubles about the WOP protocol and of course other things. He was really helpful to get especially this co-authoring
18:02
trouble sorted out. I mean it was pretty fastly clear that it has to do something with locking but how and when and why this was really crazy. He also pointed me to this WOP validator tool which is written by a Microsoft employee Tyler Butler. Of course without this tool I would
18:23
stand here because it would not already be done. So thanks to these guys and thanks to you for listening. If you want to have a closer look go for yourself on the URL I told you before and in any other cases I'm open for questions if you have
18:47
and if not you're released to the next call then talk then. Thanks.
19:09
Yeah the question was what the problem is with the support of OnCloud 10 and OnCloud 11. The problem is the implementation of this file locking. So it is necessary to have this
19:22
file locking. This file locking is an integral change to the core server itself and because of its changing API and behaviors I cannot back put it out of the box to the next 10.0.11 because we try to do some kind of sem version and breaking APIs on the patch level
19:46
delivery is maybe not that cool idea. But still we want to give the Office Online integration to people running OnCloud 10. So we will have an alternative implementation for this locking
20:02
which maybe then is only limited to Office to the only Office application itself. So it could still be possible that you bypass it and work around it. So we need to see how in detail how to make it work or we are fast with OnCloud 11. That's the other opportunity but this
20:23
is something we need to discuss with product management. This is not my call then. Any other questions? Yeah well there is always our master branch which is our development
20:55
branch in Git where we are working on and this is always the next major version and the logical
21:01
next major version after 10 is 11. So I call it OnCloud 11. Even if you change the versioning scheme one day and it will be I don't know OnCloud 2020. I don't care. For me it is the master branch and because I don't want to put too much development detail burden on you I call
21:21
it OnCloud 11. Maybe because it's that school we just jump to 12. It's also possible. Okay anything else I can answer? Yes. Yeah so just to repeat for the recordings out there.
21:49
Sorry I forgot before. The question was if it is a supported app if it's part of the OnCloud product suite. Yes it is something that the OnCloud company is providing to customers.
22:03
Yeah anything else? No. Okay so if you have questions later on you see me running around here the next day so just stop by. Thank you.