Академический Документы
Профессиональный Документы
Культура Документы
New
Session Overview
What to know, what to do, and how to do it
Theory
Inside the App-V Application Model Behind the Scenes of the Sequencing Process A View from Inside the Virtual File System
Demonstration Practice
A Look at the Artifacts (OSDs, SFTs, Manifests) Advanced OSD Scripting and Configuration Applying Virtual Environment Policies
4
What to Know
Inside the concepts and behind the scenes of the sequencing process.
Sequencing Process
The sequencing process at 30,000 feet
1. Install the Application 2. Run the Application
3. Customize
6
Application Model
Basic components of an application model
Application Description
Runtime Management
Application Model
Lifecycle Management
State Management
7
Application Model
Application description
Application Description
An application is described by Open Software Description (OSD), an XML vocabulary for software components and their relationships to other components.
An OSD contains:
Runtime Management
Application Model
Lifecycle Management
State Management
8
Name, GUID, version information Platform and environment settings Dependencies Target package and application Reference to immutable state Shell integration Pre/Post processing scripts
Application Model
Lifecycle management
Application Description
The application lifecycle is managed through a single self-contained package, the SFT, that captures and contains installation and application data and metadata.
Runtime Management
Application Model
Lifecycle Management
A package contains:
All application assets Classifications and versions Immutable state Security descriptors History of servicing Optimized streaming layout
State Management
9
Application Model
State management
Application Description
State is managed by separating it from the system, classifying it into public and private data, making it portable across machines and users, and isolating changes at runtime.
Runtime Management
Application Model
Lifecycle Management
Specific to each user Changes isolated to each user Attached to user profile, not system
Public State is:
State Management
10
Shared across all users Changes isolated to specific users Attached to system, not user profile
Application Model
Runtime management
Application Description
The runtime of an application is managed through a virtual environment instance associated with the application package.
Runtime Management
Application Model
Lifecycle Management
Manages namespaces and visibility Ensures isolation between objects Enforces interaction policies Directs modifications
State Management
11
Sequencing Process
The key activities of producing a package
Installation Phase
Sequencing Process
Behind the scenes of the install phase
Start Monitor Install Process
Apply SDs to Package Root Intercept Shell, AppInfo, Service Controller Stop/Intercept Windows Update Upload Empty Environment Monitor File Operations
Privatize SxS Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Intercept Reboot Requests
Simulate Reboot Operations Download Captured State Privatize SxS Assemblies Create File List Create Virtual Registry Create Virtual FS Mappings Create Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable
13
Sequencing Process
Behind the scenes of the launch phase
Configure Launch Process Sequence/Save
Monitor File Operations Monitor File I/O Stop Windows Update Upload Previous State Create Application Process Privatize SxS Assemblies Capture Registry Changes Capture Services Changes Capture File Changes Wait for Process Exit
Simulate Reboot Operations Download Captured State Privatize SxS Assemblies Create File List Create Virtual Registry Create Virtual FS Mappings Create Font and Service List Classify User and App State Set Opacity/Translucency Remove Excluded Data Make State Portable
Create Package Metadata Save Security Descriptors Compute Feature Blocks Generate OSDs Generate SFT Generate MSI
14
Sequencing Process
How opacity and file mappings are determined
Opacity VFS Map
No
Yes
No
Yes
End
End
15
Sequencing Process
Behind the scenes of the virtual file system
Pre-Install
Drive C: Documents Abc Aaa.txt Xyzzy Plugh.doc Poof.txt Windows System32 Explorer.exe Win.ini Drive Q: FooApp.100 Foo Foo.ini Y2 Xyzzy Poof.txt Windows Foo.dll Bar.dll Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat Win.ini Drive Q: FooApp.100
Installation
Drive C: Documents Abc Abc.txt Xyz Xyz.txt
VFS Mappings
C:\Windows\Foo.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Foo.dll C:\Windows\Bar.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Bar.dll C:\Documents\Abc\Abc.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Abc.txt C:\Documents\Abc\Xyz\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyz\ C:\Documents\Abc\Xyz\Xyz.txt=Q:\Foo \VFS\CSIDL_PERSONAL\Xyz\Xyz.txt C:\Documents\Foo\=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\ C:\Documents\Foo\Foo.ini=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\Foo.ini C:\Documents\Y2\=Q:\Foo\ VFS\CSIDL_PERSONAL\Y2\ C:\Documents\Poof.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Poof.txt C:\Documents\Xyzzy\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyzzy\
Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll
Virtual View
Drive C: Documents Abc Aaa.txt Abc.txt Xyz Xyz.txt Foo Foo.ini Y2 Plugh.doc Windows System32 Explorer.exe Foo.dll Bar.dll
16
Sequencing Process
Creating system and user independent packages
Registry and File System Mappings osguard.cp
Parser
Excluder
Classifier
17
CLORD-NOTE %COMPUTERNAME% C:\Users\clord\AppData\Roaming %CSIDL_APPDATA% C:\Users\Public\Documents %CSIDL_COMMON_DOCUMENTS% C:\Users\clord\Desktop %CSIDL_DESKTOPDIRECTORY% C:\Windows\Fonts %CSIDL_FONTS% C:\Users\clord\AppData\Local %CSIDL_LOCAL_APPDATA% C:\Users\clord\Documents %CSIDL_PERSONAL% C:\Program Files %CSIDL_PROGRAM_FILES% C:\Windows\System32 %CSIDL_SYSTEM% C:\Windows %CSIDL_WINDOWS% Q: %SFT_MNT% Q:\TextPad.510 %SFT_MNT%\TextPad.510 C:\Users\clord %USERPROFILE%
%COMPUTERNAME% System %CSIDL_APPDATA% User %CSIDL_COMMON_DOCUMENTS% System %CSIDL_DESKTOPDIRECTORY% User %CSIDL_FONTS% System %CSIDL_LOCAL_APPDATA% User %CSIDL_PERSONAL% User %CSIDL_PROGRAM_FILES% System %CSIDL_SYSTEM% System %CSIDL_WINDOWS% System %SFT_MNT% System %SFT_MNT%\TextPad.510 System %USERPROFILE% User
What to Do
18
How to Do It
How to tailor the sequencing process and artifacts to your environment and needs.
19
Sequencing Artifacts
Where they are created and consumed
File Description Sequencing project with references to OSDs, default package settings, list of all parser items, classifications and exclusions. Binary file containing all assets and state organized into streamable feature blocks. Optionally a DSFT (Differential SFT).
.SPRJ
.SFT
.OSD
Description of an application including environment, dependencies, package location, shell integration, scripts.
Icons associated with each shortcut or FTA defined in an OSD or Manifest. These are extracted from application resources.
.ICO
.XML Manifest
.MSI
20
Publishing parameters for all applications in a package. Includes definitions of shell integration (FTAs, Shortcuts, DDE, etc.).
Installer to publish and load (install) a virtual application package in standalone environments. Embeds all but SFT.
Generated as an output
Consumed as an input
Sequencing Artifacts
Relationships between sequencing output files
SPRJ
Sequencer Project
OSDs
Application Description
SFT
Package File
ICOs
Shortcut and FTA Icons
Manifest
Standalone Publishing
MSI Setup
Standalone Setup Utility
MSI 21
Where the script runs: inside the virtual (protected) environment or outside.
Optional action to take on script exit: continue only on specific success result, or silently fail on specific abort result.
How the script runs: synchronously or asynchronously, and optionally seconds to wait for synchronous scripts.
Commands to execute as a batch script in the users context. May also use a single HREF instead to run a single program or external script.
23
25
26
Description
Causes all children of the launched virtual application to be terminated when the application terminates. Set when you force stop to monitoring. Sometimes needed with apps that spawn tray widgets. Disables isolation of named objects and creates COM objects in the global namespace, first attempting to resolve them locally. Sometimes necessary when virtual applications need to interact with locally installed applications.
LOCAL_INTERACTION_ALLOWED
VIRTUAL_SERVICES_DISABLED
Disables the virtualization of services. Typically used for diagnostics. Default is enabled.
VIRTUAL_REGISTRY_DISABLED
Disables virtualization of the registry. Typically used for diagnostics. Default is enabled.
VIRTUAL_FILE_SYSTEM_DISABLED
Set
Disables virtualization of the file system. Typically used for diagnostics. Default is enabled.
using TERMINATECHILDREN=TRUE attribute in VIRTUALENV element. Applies to each application independently, even within same package. Set using <POLICIES><policy>TRUE|FALSE</policy></POLICIES> in OSD. First OSD launched determines VE policy for lifetime of instance.
27
Conclusion
Where we have been today
Application Description Runtime Management Application Model Lifecycle Management
State Management
28
More to Explore
Some useful sites, tools, forums and blogs
Resource Websites https://connect.microsoft.com http://support.microsoft.com/kb/932137 http://support.microsoft.com/kb/939796 http://www.virtualapp.net/sft-explorer.html Tools http://www.loginconsultants.com/ http://www.tmurgent.com/ Blogs and Forums http://forums.microsoft.com/TechNet/defaul t.aspx?ForumGroupID=497&SiteID=17 http://blogs.technet.com/softgrid/ http://www.softgridguru.com/ http://blogs.technet.com/virtualworld/ http://www.brianmadden.com/ http://www.softgridblog.com/
29
Description Microsoft Application Virtualization 4.5 RC Release available June 16 Sequencing Best Practices and Office 2007 Prescriptive Guidance SFT Explorer by Kalle Saunamki, an MVP, that allows detailed look inside SFTs OSD Editor that supports easy customization and dynamic suiting The illustrated OSD and other App-V tools and info by Tim Mangan, an MVP Application Virtualization forums supported by MVPs and product team App-V (SoftGrid) product team blog Forum run by Ruben Spruijt, an MVP Blog by Justin Zarb and Andrew Bennett Brian Madden on App Delivery Topics Blog by Rodney Medina, an MVP
Application Virtualization Discussion Application Virtualization and Presentation Virtualization Q&A Application Virtualization Package and Data Management Application Virtualization Customer Discussion Application Virtualization 4.5 Customer Stories
Application Virtualization 4.5 Publishing Lab Application Virtualization 4.5 Sequencing Lab (Basics) Application Virtualization 4.5 Sequencing Lab (Advanced)
31
Additional slides for Microsoft Application Virtualization 4.5 Package and Data Management session.
32
33
Session Overview
Inside out, outside in and inside out again
Inside Out
How Files Get Into a Package How User and Application Files are Classified
Outside In
How the File System Organizes Package Volumes What Happens During Launch, Upgrade, Shutdown What Happens during Unload/Delete, Repair/Clear
Inside Out
What the File System Looks Like from Inside What the Virtual View Looks Like from Inside
34
Sequencing Process
How application and user files are classified
Launch Phase File Start Was created during install phase?
No No
User File
Yes
Yes Yes
End
Yes
No
Application File
User State
Package State
Package A State
Package B State
37
Package A State
User 1 State
Logged on User 1
Logged on User 2
User 2 State
Local System
System State
38
Package D State
Package A State
Package C State
39
Applet 1
Applet 2
Applet 3
Example: Oracle with separately published applications, possibly with separate entitlements.
Plug-in Collection
Primary App
Plug-in 1
Plug-in 2
Utility
Example: JRE, Acrobat Reader or Snag-It with separately published primary applications.
Example: Internet Explorer with Silverlight, JRE and Flash, each updated separately. 40
Volume Organization
Global file system container volumes
System Location User Location Name and Initialization sftfs.fsd
File System Data Cache
Content All loaded package data from streamed content. This is RO and fully recoverable by restreaming package content. New data from allowed system processes not associated with any package or virtual environment
sffs.fsg
File System User Cache
Application Data User Data in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access. Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
Located
41
Volume Organization
Per-package file system container volumes
System Location User Location Name and Initialization GlblVol_sftfs_v1_S-1-5-20.pkg Per System Content
Global Package Volume
Content Modified Application-Specific Package Data from System Processes; System Processes Settings.cp New or Modified User-Specific Package Data from Allowed System Processes
42
Application Data User Data in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access. Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.
Located
Volume Organization
Package volume names and locations
Global Package Volume
43
Volume Management
What happens during launch and shutdown
Initial Launch
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Shutdown
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Subsequent Launch
Global User Volume Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Per System
UsrVol_sftfs_v1.tmp
Per User
GlblVol_sftfs_v1_<SID>.tmp
44
Volume Management
What happens during package upgrade
Subsequent Launch
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Shutdown
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Per System
Per User
GlblVol_sftfs_v1_<SID>.tmp
45
Volume Management
What happens during administrative actions
Repair/Clear
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.tmp
Load
Global User Volume
UsrVol_sftfs_v1.tmp
Unload/Delete
Global Package Volume
GlblVol_sftfs_v1_S-1-5-20.pkg
Per System
Package Data
Per User
GlblVol_sftfs_v1_<SID>.tmp
46
A B C E
X Y Z F
D Z F B C A B Y Z
X Y Z
E
A B C
File System Data Cache
X Y Z
47
Sequencing Process
Behind the scenes of the virtual file system
Pre-Install
Drive C: Documents Abc Aaa.txt Xyzzy Plugh.doc Poof.txt Windows System32 Explorer.exe Win.ini Drive Q: FooApp.100 Foo Foo.ini Y2 Xyzzy Poof.txt Windows Foo.dll Bar.dll Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat
Installation
Drive C: Documents Abc Abc.txt Xyz Xyz.txt
VFS Mappings
C:\Windows\Foo.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Foo.dll C:\Windows\Bar.dll=Q:\Foo\ VFS\CSIDL_WINDOWS\Bar.dll C:\Documents\Abc\Abc.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Abc.txt C:\Documents\Abc\Xyz\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyz\ C:\Documents\Abc\Xyz\Xyz.txt=Q:\Foo \VFS\CSIDL_PERSONAL\Xyz\Xyz.txt C:\Documents\Foo\=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\ C:\Documents\Foo\Foo.ini=Q:\Foo\ VFS\CSIDL_PERSONAL\Foo\Foo.ini C:\Documents\Y2\=Q:\Foo\ VFS\CSIDL_PERSONAL\Y2\ C:\Documents\Poof.txt=Q:\Foo\ VFS\CSIDL_PERSONAL\Poof.txt C:\Documents\Xyzzy\=Q:\Foo\ VFS\CSIDL_PERSONAL\Xyzzy\
Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll
48
VFS Mappings
Package
Drive Q: FooApp.100 Bin FooApp.exe FooApp.dat VFS CSIDL_PERSONAL Foo Foo.ini Xyz Xyz.txt Y2 Abc.txt CSIDL_WINDOWS Foo.dll Bar.dll
Virtual View
Drive C: Documents Abc Aaa.txt Abc.txt Xyz Xyz.txt Foo Foo.ini Y2 Plugh.doc Zork.doc Windows System32 Explorer.exe Foo.dll Bar.dll Win.ini
49
http://microsoft.com/technet
Application Virtualization Discussion Application Virtualization and Presentation Virtualization Q&A Application Virtualization Package and Data Management Application Virtualization Customer Discussion Application Virtualization 4.5 Customer Stories
Application Virtualization 4.5 Publishing Lab Application Virtualization 4.5 Sequencing Lab (Basics) Application Virtualization 4.5 Sequencing Lab (Advanced)
Breakouts IC / TLC
VIR359, Thursday, June 12 4:30 PM - 5:45 PM, S230 E Microsoft Desktop Optimization Pack: Microsoft Application Virtualization 4.5 (Formerly SoftGrid) Features, Gene Ferioli VIR362, Friday, June 13 2:45 PM - 4:00 PM, S310 C Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization, Formerly from Kidaro; Niamh Burke, Eric Borst CLI370, Friday, June 13 4:30 PM - 5:45 PM, S320 E MDOP: System Center Desktop Error Monitoring (DEM); Jameel Khalfan CLI351, Friday, June 13 8:30 AM - 9:45 AM, N230 MDOP: Asset Inventory Services (AIS) will count your software and your licenses; Paul Bourgeau, Niamh Burke VIR50, Thursday, June 12 2:45 PM - 4:00 PM, Blue Theater 1 Microsoft Desktop Optimization Pack (MDOP): Microsoft Application Virtualization (Formerly SoftGrid) Discussion VIR61-TLC, Friday, June 13 1:00 PM - 2:15 PM, Blue Theater 1 Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization Changed content VIR53-TLC, Wednesday, June 11 10:15 AM - 11:30 AM, Blue Theater 1 MDOP: Microsoft Application Virtualization 4.5 (Formerly SoftGrid), Package and Data Management
52
Resources
Technical Communities, Webcasts, Blogs, Chats & User Groups http://www.microsoft.com/communities/default.mspx Microsoft Learning and Certification http://www.microsoft.com/learning/default.mspx Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdn http://microsoft.com/technet
53
Subscription!
1 Year
2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
55