Spoon.net - Application Virtualization

  • #10, by DunkelseeleTuesday, 22. June 2010, 16:39 16 years ago
    ...Außerdem hat man dann gleich eine gehörig aufgemöbelte wine-Bibliothek.


    Nun, ich bin allerdings von Windows ausgegangen, da ich Spoon größtenteils nur zur Website-Validierung in älteren Browsern benutze. Spoon lässt sich momentan auf Linux nicht ausführen, bzw. die Seite natürlich schon, aber das benötigte Spoon-Plugin für den Firefox gibt's nur für Windows.


    ...könnte man Dateiendungen keine Spoon-Programme zuordnen...


    Das ist allerdings wahr. Ein sehr interessanter Ansatz. Hierfür wäre eine Art Hintergrunddienst bzw. Agent nützlich welcher überwacht welche Dateitypen geöffnet werden sollen. Wird versucht einen entsprechenden Dateitypen zu öffnen, startet der Agent im Hintergrund den Download (und wenig später das Programm) und funktioniert weiterhin wie eine browserunabhängige Variante des Spoon-Plugins. Problem hierbei: Spoon.net ist eine Seite die als "Proof-of-concept" dient. Man führt hierbei seine Technologie vor, während die eigentliche Absicht der Verkauf an große Firmen ist. Nicht das eigentliche zur Verfügung stellen der Applikationen - zumindest nicht ohne die Möglichkeit dass sich jemand auch über Preise, Lizensierungsmöglichkeiten usw. informiert. Mehr dazu weiter unten.

    Was mich zu deiner dritten Fragen bringt:
    ... Könnte man so etwas auch auf dem eigenen Webserver...


    Ja. Allerdings nicht problemlos. Anwendungen dieser Art gibt es schon lange in Firmen, revolutionär ist bei Spoon nur die nichtlineare Aufteilung bzw. adaptive Streaming der nach Funktion aufgebrochenen Programmteile und damit einhergehende niedrige Netzauslastung im Vergleich zu traditionellen Ansätzen. Das ermöglicht auch das Streaming übers Netz so flüssig.
    Willst du dir selbst so einen Dienst einrichten kannst du dir den "Spoon Server" (Stellt die virtualisierten Anwendungen bereit und streamt sie an den Client) sowie das "Spoon Studio" (Dient der Aufbereitung der Programme für den Server) kaufen. Allerdings sind die Lizenzen nicht billig und du musst über ein Gewerbe verfügen, an Privatkunden wird nicht verkauft. Lizenzen kosten für den Server 1395 US-$ oder für die Weblizenz 7995 US-$ (+ eine Programmlizenz die zum Ausführen eines virtualisierten Programmes berechtigt) und ~3000 US-$ pro weiterer Applikation für die Weblizenz. Günstiger kommt die Großkundenversion mit 2395 US-$ pro Endbenutzerlizenz, aber dafür muss deine Firma mind. eine Viertelmillion jährlichen Umsatz machen.

    weiterführende Informationen zu dieser Technologie


    Ein sehr interessantes Whitepaper gibt es hier (auf Englisch) von den Entwicklern der Technologie: http://www.spoon.net/Server/Spoon-Streaming-White-Paper.pdf


    Für Endbenutzer ist es vermutlich leichter, einfach die Spoon.net-Seite zu benutzen, da der Betreiber einem Deeplinking kaum zustimmen wird. Er will ja dass über die Seite auch Aufmerksamkeit auf die Technologie gelenkt wird. Früher konnte man die Browser-Sandbox mal als .exe laden und man konnte den Streaming-Aufruf über JavaScript starten, aber inzwischen ist das alles ja geändert worden. Man könnte eine minimalisierte Firefox-Version basteln, die quasi nichts anderes tut als die Seite aufzurufen und über das Plugin dann direkt die Applikation zu starten die man starten will. Man müsste also dem "Minifox" über eine Windows API so beschicken dass er bei Dateiaufruf für *.od meinetwegen Openoffice von der Spoon.net-Seite startet.
    Ich kann mir noch nicht ganz vorstellen wie das gehen könnte, aber möglich könnte es sein.
    Nur die Frage ist, ob Spoon.net da nicht technisch leicht einen Riegel vorschieben kann und ob sich der vermutlich recht große Entwicklungsaufwand lohnen würde dafür.
    Allein als "Proof-of-Concept" vor dem Hintergrund immer weborientierter Betriebssysteme wäre es aber sehr interessant.

    Beste Grüße,
    Noël

    P.s: Vielleicht wär es Zeit nen neuen Thread zu starten dafür. Vielleicht auch in einem geeigneterem Forum. ; )

    Newbie

    0 Posts


  • #11, by BrokenClawThursday, 24. June 2010, 16:19 16 years ago
    Studio monitors and analyzes the installation of an application onto a clean desktop and constructs a virtual machine package based on deltas between the pre- and post-install machine state.

    Verstehe ich das richtig, dass man im Endeffekt gar nicht den Source-Code braucht, um ein streaming Model zu erstellen? Je mehr man von der Technologie liest, desto mehr Magie scheint dahinter zu stecken. Ich seh schon, ich werde mich da noch ein bisschen einlesen müssen.

    However, the prefetch is a vastly more complex object to compute than in the case of one-dimensional stream buffering since it must take into account multiple probabilistically-weighted feasible execution paths, the application resource consumption structure, and the underlying transport layer transmission rate.

    Hier versucht anscheinend jemand den Kunden mit Fachbegriffen und Mathematik einzuschüchtern, den besonders viel erklärt dieser Abschnitt nicht. Haben die das wirklich nötig?

    Allerdings sind die Lizenzen nicht billig ...

    Nun gut. Die lohnen sich wirklich nur, wenn man damit etwas kommerziel erreichen will. Und ich dachte Adobeprogramme wären teuer...

    Man könnte eine minimalisierte Firefox-Version basteln ...

    Ja... ich kann wohl leider nicht. Da fehlt mir dann doch das Know-How und so dringend bräuchte ich so ein Feature auch nicht, als dass sich das Einarbeiten in den Source von Firefox lohnen würde. Da hab ich dann doch sinnvolleres mit meiner Zeit anzustellen.

    Aber vielen Dank für deinen langen Post. Ich hab wieder mal viel gelernt.

    Newbie

    0 Posts

  • #12, by calliFriday, 25. June 2010, 09:39 16 years ago
    Hallo Leute,
    schön das der Thread noch weiter diskutiert wird.

    @Dunkelseele:
    Also zuerst mal glaube ich beispielsweise nicht dass du den IE6 auf dem Rechner hast, zumindest nicht ohne erheblichen Mehraufwand (wie spezielle "IE6 Installer" usw. ). Auch die verschiedenen Versionen der diversen Browser kann man oft nicht parallel auf einem Rechner betreiben, zumindest ohne Virtual Machines... um wieviel einfacher ist es, mit zwei Klicks den IE6, oder Firefox 2 zu starten, Seiten zu validieren und einfach und beinahe rückstandslos wieder zu schließen.


    Doch ich habe den IE6 auf meinem Lokalen Rechner installiert. Hier meine Installierten Browser:
    - IE 5-8 (IETester)
    - Chrome
    - Netscape
    - Safari
    - Firefox
    - Opera

    Ob du nun mit einem Programm ins Internet gehst welches die Auswahl der Programme zeigt und ggf. eines startet oder ob du mit einem anderen Programm (Browser) ins Internet gehst um das gleiche zu tun, ist eigentlich kein Unterschied. Tatsächlich müsste man bloß wieder ein Programm mehr installieren, eben dieses Spoon-Programm... unnötig.


    Ich denke es ist angenehmer wenn man über ein Tray Icon die Browser öffnen könnte und nicht erst über eine Internetseite, welche dann einen Browser virtualisiert.

    Um das "Feeling" eines Programms zu erzeugen reicht es völlig eine Verknüpfung zu deiner Firefox.exe mit dem Parameter (zB.) "http://www.spoon.net/browsers/" anzulegen und dem ganzen noch ein hübsches Spoon-Icon zu verpassen (Das FavIcon von Spoon.net eignet sich hervorragend). Sobald du über diese Verknüpfung dann Spoon.net aufrufst erscheint die offene Instanz des Firefox in Taskbar/Superbar wie eine geöffnete Applikation und komfortabel ist es auch noch.


    Und das nicht kein Mehraufwand wink?!

    Newbie

    11 Posts

  • #13, by BrokenClawFriday, 25. June 2010, 12:36 16 years ago
    Eigentlich würde diese Technologie doch Super in den Indie/Fanadventure Bereich passen.
    Man stelle sich die Spiele-Datenbank hier vor und zusätzlich zu Screenshots und Beschreibungen ein kleines Fenster, in dem man das Spiel gleich Probespielen könnte. Gerade Spiele, die von Haus aus Modular in verschiedene Räume/Level aufgeteilt sind, müssten von solch einer Technologie profitieren.
    Das gute alte Guild Wars illustriert dieses Modulare Prinzip perfekt. Der Client an sich ist nur wenige Megabyte groß, Gebiete werden erst heruntergeladen, wenn man sie auch betritt (leider nicht asynchron, d.h. man hat immer eine Pause). Erst wenn das Spiel komplett durchgespielt ist, hat man die gesamten Game-Dateien auf dem Rechner.

    Was mich jetzt interessieren würde wäre, ob man eine ähnliche Technologie nicht auch in die AdventureEngines einbauen könnte. Den jeweiligen Player der die Daten verarbeitet könnte man fest auf dem Rechner evt. in Form eines Firefox-Plugins installieren, dann müssten nur zur rechten Zeit die richtigen Daten angefordert werden. Prefetch wäre dann ausschließlich der erste Raum in dem man sich befindet mit den jeweiligen Animationen und während man diesen in Augenschein nimmt, kann die Engine asynchron die angrenzenden Räume schon mal vorladen, so dass es keine Ladeverzögerung gibt (und danach deren angrenzende Räume usw.). Das wäre dann das Spoon-Prinzip, nur auf Adventures einer Engine begrenzt.
    Die Frage die ich mir jetzt stelle ist nur: warum hat das noch keiner gemacht? xD

    Newbie

    0 Posts

  • #14, by DunkelseeleTuesday, 29. June 2010, 10:46 16 years ago
    Verstehe ich das richtig, dass man im Endeffekt gar nicht den Source-Code braucht...

    Ja. Es wird überprüft was das Programm aktiv nutzt und wohin es was installiert und welche Dienste / APIs usw. angesprochen werden bzw. mit Daten beschickt werden (per Vergleich). Daraus wird dann ein Paket geschnürt, welches diese Dependanzen und Vorgänge innerhalb des Programmes quasi emuliert.

    Hier versucht anscheinend jemand den Kunden mit Fachbegriffen und Mathematik einzuschüchtern, den besonders viel erklärt dieser Abschnitt nicht.

    Nun ich vermute hier geben sie einfach ein bisschen an. : )
    Letztlich sagt der Abschnitt aus, dass deren Prefetch komplexer ist als ein normaler eindimensionaler Prefetch der nicht auf die unterschiedlichen möglichen (und nach Wahrscheinlichkeit geordneten) Pfade die ein Benutzer innerhalb eines Programmes einschlägt) eingeht sondern nur den Weg von A nach B buffert (wie bei einem Youtube-Video eben). Auch geht deren Prefetch-Technologie auf den momentanen und möglichen bzw. wahrscheinlichen Ressourcenverbrauch und die damit verbundene Übertragungsrate der Transport-Ebene ein, gut sichtbar bei zB. Splinter Cell welches du auf Spoon.net spielen kannst. Dort müssen viele hundert Mb an Shadern und anderen Engineinformationen für Shadowmaps usw. ständig nachgeladen werden, und zwar so dass der User möglichst nie merkt was geladen wird. Im Grunde passiert hier was du weiter unten forderst, der User bewegt sich in einen Tunnel und der Spoon Server bzw. vorher das Spoon Studio wissen dass es gut wäre die entsprechenden Daten für die Räume nach dem Tunnel zu buffern da es wahrscheinlich ist, dass der User den Tunnel auf der anderen Seite verlässt. Ähnlich dem Guild-Wars Ansatz - nur fließender.

    Im Grunde arbeiten die meisten Spiele mit sehr großen Leveln nach diesem Prinzip, nur eben anders: Die relevanten Optionen zur Darstellung werden erst dann in den Speicher geladen wenn der Spieler sie sieht. Allerdings müssen die Daten dafür schon lokal auf dem Rechner verfügbar sein.

    Die Frage die ich mir jetzt stelle ist nur: warum hat das noch keiner gemacht? xD

    So wie ich das sehe ist der Hauptgrund hierfür, dass wir in Deutschland noch sehr sehr weit davon entfernt sind eine annehmbare Netzwerkinfrastruktur zu besitzen. Ich rede hier von Kabeln, DSLAMs und Vermittlungsstellenhardware. Somit wäre für viele oder die meisten so ein Spieleerlebnis höchstens sporadisch möglich. Ich selbst wohne zentral in Köln und habe nicht mehr als 4Mbit zur Verfügung (für 3 Personen die alle über eigene Rechner verfügen und bandbreitenintensive Dinge wie leechen/streamen usw. tun). Bei Adventures mit begrenzten Datenmengen da vergleichsweise kleine Grafiken und Scripte mag das angehen, Assassins Creed II per Streaming stelle ich mir aber grausig vor unter diesen Bedingungen. : )

    Newbie

    0 Posts

  • #15, by BrokenClawSunday, 04. July 2010, 22:50 16 years ago
    Im Grunde arbeiten die meisten Spiele mit sehr großen Leveln nach diesem Prinzip, nur eben anders: Die relevanten Optionen zur Darstellung werden erst dann in den Speicher geladen wenn der Spieler sie sieht

    Genau. Darüber hatte ich unter anderem in einem kleinen Dokument über die Dungeon Siege Engine gelesen ( http://scottbilas.com/files/2003/gdc_san_jose/continuous_wor... ). Ein "World Frustum" und einige globale Objekte sind im Speicher, der Rest wird nachgeladen sobald sich der Spieler weiter bewegt. Ob man die Daten allerdings von der Festplatte nachlädt, oder einen http-Request an einen Server sendet, dürfte doch relativ gleich sein.
    Assassins Creed II per Streaming stelle ich mir aber grausig vor unter diesen Bedingungen. : )

    Ich weiß nicht. Ich hätte auch nicht geglaubt, dass Splinter Cell funktionieren würde, aber das scheint ja wirklich zu klappen.
    Wäre im Prinzip auch der perfekte Kopierschutz. Falls man keinen gültigen CD-Key besitzt, antwortet einem der Server nicht mehr :-)
    Wobei... ich glaube der AC II Kopierschutz funktioniert auch so ähnlich. Wobei das mit Application-Streaming eigentlich wenig zu tun hat.
    I work at Ubisoft as a programmer [...] What the next step will be in the DRM, the ramp-up, is gameplay code that is run from the server. [...] Not the whole of the gameplay code mind you, just a small, but necessary and essential, portion.
    Quelle: http://www.4players.de/4players.php/spielinfonews/Allgemein/...

    Newbie

    0 Posts