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)