Dear all, Again, I have to start my mail apologising. First, again, for the long time writing this mail took me (even though I intend to keep it short, I promise!). Second, I'd like to apologise to Cristoph because it looked as if I totally neglected his answer to my email, and the reality is that somehow that mail came in later (my Gmail account is doing weird things lately), and I only saw it when I was re-reading the other mails. So let me come back to your answers first :)
I see your point. An alternative to "presentation" may be "publication". Nooow we are talking! :) The idea with the "presentation/publication" element is different. It is > intended to describe a _logical_ presentation of the media package und > should _not_ deal with technical or implementation details like where to > find the actual media files. So in the case of Engage there's only one > element, like there would be only one element for YouTube. Take the YouTube > example: Here there would also be no reference to the actual media file. > This is totally subject to YouTube presentation layer to create the page to > view the video in a way that the embedded player knows where the media is > located. This should be the same with Engage. The entry only points to the > presenting page. How the player then knows where to fetch the media files > from is an implementation detail that should not be handled by the media > package structure. That being said the search index needs to expose the > URLs to the media files seperately now. Currently (if I'm not totally > wrong) the URLs are parsed from the returned media package XML. But that's > acutally a design flaw and should be corrected anyway. I don't mean for the publications (allow me to use the alternative I like best :) ) to reference "actual" files, but I see like a good thing that publications point out to the tracks in the Mediapackage that are distributed. Because, taking also the Youtube example, the files are sent to an external server and we do not know anything else about them, but we * do* know which *Tracks (and metadata)* we have sent in the first place. And we must agree that the publication in Youtube is just a *view* or a * (re)presentation* of those tracks and catalogs. Why not keeping mutual references between the mediapackage elements and their representations? >From a human perspective, it makes it easier to know which elements have been published and where, while it also makes it easier for the services to know which publication(s) depend on which element(s) a vice-versa. Besides, *your proposed scheme does not eliminate the need for a publishing service to keep a relation between every single publication and the "source" material for that publication*. It just *hides it*, leaving it to each specific implementation. I think this is bad in the long run, because if you hide such details, then it is more difficult to coordinate the actions of different services. Take, for instance, the case in which you watch a video in the Engage player and you discover there's something you have to edit. In order to change a video/some metadata/whatever, you need to know the element ID and the Mediapackage ID (now the latter happens to be the same as the engage ID, but it's just a happy coincidence), so you need to ask the search service about that info. Then you reprocess the element(s) and republish it/them. And, since it's not obvious by examining the Mediapackage whether that/those element(s) was/were published somewhere else, you need to poll all the publishing services, informing them that this/these elements has/have been modified, please republish. Of course, that edition may just be intended only for the engage. You never know how it is going to affect the other publishing services, since you don't know which services' publications are based in the element(s) you have just modified, since you don't know where that/those specific element(s) has/have been published. What is worse, *you don't know if you want that change to be exclusive to Engage.* Maybe that edition would be OK for Youtube, too, maybe not, but if you want to know you need to explicitly ask: "Hey Youtube, do you know something about this stuff?", and make your decision later, because you don't have this information until you ask it explicitly. Depending on which publishing services are *serving* the same element(s), you may want to create a duplicate, or you may want to simply substitute it/them by this/these new version(s), depending on the circumstances, but *you can't make a well-informed decission without having the whole picture, and you need to explicitly gather information from all the services involved in order to get the whole picture. **Which is just the situation we have now and that the archive tries to solve*, that if you want to get the whole Mediapackage, you need to ask the workflow service *and* the search service *and* all the potential services that may have copied parts of the mediapackage that might have been deleted after the workflow cleanup. In conclusion, I think that knowing the relation between a certain publication and the Mediapackage elements it depends on, but also whether a certain element has been published to a certain "publication" (if you allow the repetition) is *crucial* to make an efficient repository management. This is not alluding to the internal implementation of your system, but to the structure of you Mediapackage: what is there, where it is exactly and which view(s) of that your audience has. I was going to address Tobias' remarks explicitly, but I think that I sort of have addressed them already. Rubén Pérez Vázquez <http://www.teltek.es> www.teltek.es 2013/2/8 Tobias Wunden <tob...@entwinemedia.com> > Hi Ruben, > > > I'd like to briefly state my general opinion here: I don't think that > this proposal is not necessary; quite the contrary, I do think that we lack > the ability to keep track of where our media has been published. What I'm > saying is that we need to be exhaustive about it, not just note down all > the (so to speak) "external references" to our media with no more hierarchy > than "who put those references there", because such references may depend > on each other in ways that "those who put them there" may not understand > (or even should not). > > In order to stick to good old tradition, I can't agree with you :-) In my > opinion, the mediapackage is not the place to store how excatly the > distribution channel was doing its work. It is up to the channel > implementation to keep track of the inner mechanics if that should be > needed for retraction. The <dict> section in the presentation element > already gives the channel a chance to store some metadata or information it > may need to get back to. > > > Let me explain this with your specific example: when you distribute your > files via streaming, you *still* have to distribute those files to the > streaming server AND publish them (announce them, include them in the > search index, create some RSS pointing at the player, etc). Even though the > file is not directly accessible (downloadable), this does not change the > fact that if you retract the files from the streaming server, all the other > stuff is invalid and outdated. > > One of the overall design goals of the proposal is to *decouple* > dependencies that had so far been interpreted into various aspects of the > mediapackage, so I would not agree that there should be a dependency > between the presentations. One may publish to an LMS and Engage, and even > if those two presentations would rely on the same Apache or Red5 serving > the files, I would not want that to be expressed in the mediapackage, > because now you are storing part of your infrastructure setup in the > mediapackage which may change at any time, resulting in invalid > mediapackages. > > > I see two ways to go: > > • We do not care about this interdependency. If we retract media > from the streaming server, we must explicitly "unpublish" the reference(s) > to that media, too. So this is a manual process, that will become more > complicated as the number of available channels grows. > > Here I see a difference in the ways we are thinking. You are talking about > retracting from the streaming server. The streaming server however is not a > "presentation". It is merely a helper service to Engage, your LMS and so > on. So you would retract from Engage or the LMS, not from the streaming > server. It is then up to the infrastructure setup to keep track of how many > clients rely on a stream (for example by introducing a counter that is > increased every time a service is putting the same file here. Only if that > counter is down to zero, which is after all "presentation" have been > retracted can the file be deleted). > > > • We make the distribution services notify the publishing services > about certain media being removed, so that they can "unpublish" their > references to the media. > > This again seems to be looking the other way. If you keep looking from the > other side, the presentation services would inform the file hosting service > that it no longer needs that file (because it has just been retracted). If > the file hosting service receives enough "retract" notifiactions as it > received "publish" notifications, it may safely delete the file. > > Looking forward to your's (and anyone else's) thoughts, > > Tobias > _______________________________________________ > Matterhorn mailing list > Matterhorn@opencastproject.org > http://lists.opencastproject.org/mailman/listinfo/matterhorn > > > To unsubscribe please email > matterhorn-unsubscr...@opencastproject.org > _______________________________________________ >
_______________________________________________ Matterhorn mailing list Matterhorn@opencastproject.org http://lists.opencastproject.org/mailman/listinfo/matterhorn To unsubscribe please email matterhorn-unsubscr...@opencastproject.org _______________________________________________