Analysis
Overview
Streaming is the way to start using a resource before getting its whole content. In our case it is useful for viewing/editing a book on the server, which contains large resources. For example, if we have 1h movie in our book, we should not wait a long time before it starts playing. "Streaming" can be the so-called "pseudo-streaming" (the media starts downloading and when enough content is present, it starts displaying it) or "actual streaming" (the media is not stored on the remote machine). The both ways have advantages - the first one could cache the media, and the second one could seek random posision in the media. In Sophie2, according to me, streaming makes sense for the binary content of the resources.
Task requirements
- Get Familiar with S2S_FACADE_LARGE_RESOURCE_ACCESS_R0, think about who should be able to stream what (just the server, or the client, too; streaming only large media, or everything) in order to get familiar with the needed functionality.
- In the design, define the term "streaming" for our project - describe an initial model of this feature. As a proto revision, building something like a model, this should be well documented.
- Write the code, providing the resource streaming.
Task result
Source code, specification.
Implementation idea
The whole streaming aspect should be well considered. If only the server will be able to stream resources, then the client should be able to connect to the server in order to receive the streamed content. The connectivity is part of another tasks, which could be not implemented at this time. It should be clear what will be done when you start implementing the task.
Related
BASE_RESOURCE_COMMONS_R0
S2S_FACADE_LARGE_RESOURCE_ACCESS_R0
How to demo
Depends on what is done in the task - if it is implemented together with the FACADE one, you could access a large resource on the server and see how it starts playing. Otherwise, at least show the design with its documentation (diagrams, etc.), explain the basics to the team.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)