Windows, Anwendungen und Multimedia über
Transcription
Windows, Anwendungen und Multimedia über
Windows, Anwendungen und Multimedia über dünne Drähte Remoting-Protokolle im Detail Bernhard Tritsch Immidio http://www.immidio.com © 2009 Immidio. All rights reserved. This presentation is for informational purposes only. Immidio makes no warranties, express or implied, in this summary. Über Bernhard Tritsch • Autor von Microsoft Windows Server 2003 Terminaldienste (Microsoft Press) • Microsoft Most Valuable Professional (MVP) Windows Server – Terminal Server • Citrix Technology Professional • CTO bei Immidio • Autor von www.drtritsch.com Immidio – Die Fakten • Gegründet 2008, Zentrale in Amsterdam (NL) • Geschäftsidee: Punktgenaue Produkte zur Lösung von einzelnen Herausforderungen, mit denen Unternehmen beim Einsatz von Virtualisierungstechnologien konfrontiert werden • Spektrum unterstützter Virtualisierungstechniken – Präsentationsvirtualisierung und Desktopvirtualisierung – Anwendungsvirtualisierung – Virtualisierung der Benutzerumgebung – Servervirtualisierung und Cloud Computing Virtuelle Desktops RDP/ICA Benutzersitzungen OS Hardware Terminal Server Hypervisor Hypervisor Hardware Hardware Virtual Shared Terminal Servers Remote Desktops Blade Chassis Dedicated Remote Desktops MS Remoting-Protokoll – RDP • Verbreitung des RDP-Protokolls – Terminal Server und Remote Desktop Services – Remote Assistance und Fast User Switching – Windows Media Center Edition – Windows Meeting Spaces (in Windows Vista) – Windows XP Mode mit Virtual PC (in Win7 Enterprise/Ultimate) – Windows Network Projector (Display Device) – Live Mesh – Hyper-V Remote Control – Xbox 360 – SCCM Remote Control – Office Communicator – In Zukunft: MED-V Vollständige ProtokollSpezifikation auf MSDN (~2500 Seiten!) http://msdn.microsoft.com/enus/library/cc216513.aspx Windows Remoting • Andere oder erweiterte Remoting-Protokolle – Microsoft Calista (virtuelle GPUs) – RDP+ (Wyse, Ericom, VMware) – Citrix ICA – XenApp und XenDesktop (PortICA) – Quest EOP (Experience Optimized Protocol, basiert auf RDP) – Teradici (Chip Company – Partnerschaft mit VMware) – HP RGS (Remote Graphics Solution) – Sun ALP (Appliance Link Protocol, Sun Ray) – Sun/Tarantella AIP (Adaptive Internet Protocol) – Net2Display – Qumranet Spice (mit Solid ICE, akquiriert von Red Hat) – VNC (Client fordert jeweils neue Snapshots an) Windows Remoting über RDP RDP Client Rendering RDP Host Rendering Direct2D WPF Direct 3D: 10.1 Silverlight Efficient Media Flash Requires: Codecs on Client Content cannot have DRM or licensing GDI All other media DirectX Client und Host Rendering ? ? Client Window Manager Host Window Manager Was ist “Rendering”? Rasterization or rendering is the task of taking an image described in a vector graphics format (shapes, primitives) and converting it into a raster image (pixels or dots) for output on a video display or printer, or for storage in a bitmap file format. Verhandlung der RDP 6.x Sitzungseigenschaften • • • • • • • • • • Bitmap Order Bitmap Cache Control Activation Pointer Share Color Cache Sound Input • • • • • • • • • • Font Brush Glyph Cache Offscreen Cache Virtual Channels GDI+ RAIL (= RemoteApp) Window Desktop Composition Large pointer (Mouse) Auch Citrix ICA “verhandelt” RDP Virtuelle Kanäle Core (GDI graphics, keyboard, mouse Seamless Windows / RemoteApp Printing Data Clipboard Mapping Drive Mapping Audio RDP Client Dynamic Virtual Channels RDP Protocol Stream RDS Server ICA Virtuelle Kanäle ThinWire (video, keyboard, mouse, etc Seamless Windows Printing Data Clipboard Mapping ICA Client Drive Mapping Audio ICA Protocol Stream Anmerkungen: • ICA-specifisch – RDP VCs sind verschieden • Limit von 32 Virtuellen Kanälen pro Sitzung XenApp Server Citrix XenApp 4.5 / 5.0 Virtual Drivers Video/MM Drivers Per Channel Compression S I L O S I L O S I L O S I L O Winstation Driver Reducer MKIII Protocol Driver(s) Transport Driver Buffer Client Performance Information RDP Tuning – Client-Seite • In RDP 6.x, “Enable Font Smoothing” (=Cleartype) kann im Remote Desktop Connection Client ausgeschaltet werden – 2 bis 10 mal schneller, sieht aber ggf. unschön aus • Konfiguration von Persistent Cache – Registry: – HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Terminal Server Client\BitmapPersistCacheSize • Konfiguration der Speicher-Cache-Größe in der RDP-Datei: – “bitmapcachesize:i:1500“ setzt die Cache-Größe auf 1500 Kbytes RDP Tuning – Server-Seite • Allokierung der Bandbreite (Registry – TermDD) – FlowControlDisable – Standardwert = 0 – FlowControlDisplayBandwidth – Standardwert = 70 – FlowControlChannelBandwidth – Standardwert = 30 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD Kompressionsalgorithmen • Planare Kompression (angewandt auf Bitmaps) – Vier Planare: RGB + Alpha • Bulk-Kompression: RDP5.x - RDP6.0 - RDP6.1 – Angewandt nach den spezifischen Kompressionen – Zeichenkommandos und Ressources, z.B. Bitmaps und Virtuelle Kanäle Tests RDP5.x RDP6.0 RDP6.1 Memory 128K 328K 2.6MB CPU 0.5% 1.5% 1.0% Bandwidth Reduction 0 (baseline) 15% 35% Setze RDP Bulk-Kompressor Behandlung von Latenzen GDI – User Interface Primitives GDI(+) Font 2 Font 2 Font 1 2D Vector Graphics Images (Bitmaps) Fonts Font 2 Font 3 Big Font 4 GDI – Device Context DC High-level graphics commands Animation/3D GDI GDI cannot animate properly, as there is no mechanism of synchronizing with the framebuffer DC GDI lacks rasterization for 3D primitives GDI Pipeline 1 Application (API) SetColor (COLOR) Rectangle (x1, y1, x2, y2) 5 Driver 2 Windows GDI Converts calls to driver functions 3 …put a red pixel there…put a green pixel there…put a black pixel there… 4 Display Adapter GDI – Repaint Mechanismus Client Area Invalid Rectangle WM_PAINT Desktop/Application Remoting Client Untitled - Notepad Server _ File Edit Format View Help p GDI q GDI Rendering Demos GDI ÜBER RDP UND ICA Lösung von Quest – EOP http://www.brianmadden.com/blogs/brianmadden/archive/2009/07/30 /live-webcast-today-with-brian-madden-and-peter-ghostine-noon-edt-16-00-gmt.aspx Video Codec Spatial Model Temporal Model Discrete Cosine Transform Quantization Entropy Encoder Key Frame Delta Frame Delta Frame Audio Signal Delta Frame Key Frame WMV Remoting Client Server WMV Video Rendering Demos VIDEO ÜBER RDP UND ICA Direct3D und GDI Windows Application Windows Application Direct3D API GDI HAL Device Device Driver Interface (WDDM) Graphics Hardware OpenGL and GDI Windows Application Windows Application OpenGL32 GDI OpenGL Installable Client Driver Generic OpenGL Module IHV-specific Device Driver Interface (DDI, WDDM) Win32 DDI OpenGL Support 3D DDI Support Graphics Hardware DirectX/OpenGL Remoting (RDP) Client DirectX/OpenGL Server _ DirectX/OpenGL File Edit Format View Help _ File Edit Format View Help p p Bitmaps q q DirectX/OpenGL Rendering WPF Architecture http://windowsclient.net/wpf/white-papers/wpf-app-quality-guide.aspx WPF Rendering Presentation Framework Presentation Core Visual System .NET CLR Message Transport Media Integration Layer (MIL) Composition System Render Engine DirectX User32 GDI Device Driver Interface (DDI, WDDM) Graphics Hardware Windows Desktop Manager • Der Desktop ist eine Direct3D-Oberfläche, die Windows Aero und Visual Theme ermöglicht (nur primärer Desktop) • Minimale Anforderung ist DirectX 9 und Shader Model 2 • Anwendungen zeichnen in Off-Screen Pufferspeicher, aus denen alles zusammengesetzt wird um den finalen Bildschirminhalt zu rendern, der konstant aus den OffScreen Puffern aufgefrischt wird • GDI weiß nichts von WPF; die GDI-Ausgabe wird in die Puffer umgelenkt, indem die Elemente als Bitmaps gerendert werden • WPF hat direkten Zugriff zu internen DWM-Strukturen und wird in DirectX-Texturen konvertiert GDI und Vista/Win7 • Alle Windows GDI(+) Anwendungen werden im Desktop Window Manager ausgeführt – Verwendung des Windows Display Driver Model • Das neue Konzept für die Desktop-Komposition beschleunigt animierte Bitmaps, Transparenz und Anti-Alias-Effekte – Anwendungen müssen den Inhalt nicht neu rendern • GDI Hardware-Beschleunigung ist eingebettet in Windows 7 WPF Remoting über RDP Client Server Bitmaps WPF Rendering Demos WPF ÜBER RDP UND ICA Flash und Silverlight Adobe Flash Microsoft Silverlight • Riesige Menge an Flash/Flex-Inhalten verfügbar • Web-basiertes Subset von WPF (.NET Framework, inklusive XAML) • Animiert auf der Basis von Video-Rendering Flash Remoting über RDP Client Server Bitmaps Flash Rendering Demos FLASH ÜBER RDP UND ICA Fazit • Sowohl RDP als auch ICA haben in den letzten Jahren dramatische Entwicklungssprünge erlebt – Aber RDP und ICA sind doch unterschiedlicher als zumeist angenommen wird • Ziel wird es sein, dass lokale und entfernte Desktops / Anwendungen nicht mehr unterscheidbar sind – Dies wird sich am Ende durch Hardware erreichen lassen – aber jetzt sind wir erst bei einem Zwischenschritt (und wir warten auf Calista) Es gibt keine großen Entdeckungen und Fortschritte, solange es noch ein unglückliches Kind auf Erden gibt. (Albert Einstein)