55

App-V 4.5 Sequencing Deep Dive

Embed Size (px)

Citation preview

Page 1: App-V 4.5 Sequencing Deep Dive
Page 2: App-V 4.5 Sequencing Deep Dive

2

MicrosoftApplication Virtualization 4.5Sequencing Deep Dive

Chris LordSenior Program ManagerMicrosoft

Session Code: VIR450

Page 3: App-V 4.5 Sequencing Deep Dive

3

Dynamically streaming

software as a centrally

managed service

DEM

System Center

Operations

Manager 2007

Translating software inventory

into business intelligence

Enhancing group policy through

change management

Proactively managing application and

operating system failures

Powerful tools to accelerate

desktop repair

Simplifying deployment and

management of Virtual PCs

New

(formerly SoftGrid)

Page 4: App-V 4.5 Sequencing Deep Dive

4

Session OverviewWhat to know, what to do, and how to do it

TheoryInside the App-V Application Model

Behind the Scenes of the Sequencing Process

A View from Inside the Virtual File System

Demonstration

PracticeA Look at the Artifacts (OSDs, SFTs, Manifests)

Advanced OSD Scripting and Configuration

Applying Virtual Environment Policies

Page 5: App-V 4.5 Sequencing Deep Dive

5

What to Know

Inside the concepts and behind the scenes of the sequencing process.

Page 6: App-V 4.5 Sequencing Deep Dive

6

3. Customize

Sequencing ProcessThe sequencing process at 30,000 feet

1. Install the Application 2. Run the Application

4. Save the Package

Page 7: App-V 4.5 Sequencing Deep Dive

7

Application ModelBasic components of an application model

RuntimeManagement

StateManagement

ApplicationModel

LifecycleManagement

ApplicationDescription

Page 8: App-V 4.5 Sequencing Deep Dive

8

An application is described by Open Software Description (OSD), an XML vocabulary for software components and their relationships to other components.

An OSD contains:

Name, GUID, version information

Platform and environment settings

Dependencies

Target package and application

Reference to immutable state

Shell integration

Pre/Post processing scripts

Application ModelApplication description

RuntimeManagement

StateManagement

ApplicationModel

LifecycleManagement

ApplicationDescription

Page 9: App-V 4.5 Sequencing Deep Dive

9

Application ModelLifecycle management

RuntimeManagement

StateManagement

ApplicationModel

LifecycleManagement

ApplicationDescription

The application lifecycle is managed through a single self-contained package, the SFT, that captures and contains installation and application data and metadata.

A package contains:

All application assets

Classifications and versions

Immutable state

Security descriptors

History of servicing

Optimized streaming layout

Page 10: App-V 4.5 Sequencing Deep Dive

10

Application ModelState management

RuntimeManagement

StateManagement

ApplicationModel

LifecycleManagement

ApplicationDescription

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.

Private State is:

Specific to each user

Changes isolated to each user

Attached to user profile, not system

Public State is:

Shared across all users

Changes isolated to specific users

Attached to system, not user profile

Page 11: App-V 4.5 Sequencing Deep Dive

11

Application ModelRuntime management

RuntimeManagement

StateManagement

ApplicationModel

LifecycleManagement

ApplicationDescription

The runtime of an application is managed through a virtual environment instance associated with the application package.

The Virtual Environment:

Manages namespaces and visibility

Ensures isolation between objects

Enforces interaction policies

Directs modifications

Page 12: App-V 4.5 Sequencing Deep Dive

12

Installation Phase

Sequencing ProcessThe key activities of producing a package

Launch Phase

Customization Phase

Save Phase

Page 13: App-V 4.5 Sequencing Deep Dive

13

Sequencing ProcessBehind the scenes of the install phase

Start Monitor Install Process

Package Name for MSIOptional Advanced Options

Apply SDs to Package RootIntercept Shell, AppInfo,

Service Controller

Stop/InterceptWindows Update

Upload Empty EnvironmentMonitor File Operations

Privatize SxS AssembliesCapture Registry ChangesCapture Services Changes

Capture File Changes

Intercept Reboot Requests

Simulate Reboot OperationsDownload Captured StatePrivatize SxS Assemblies

Create File ListCreate Virtual Registry

Create Virtual FS MappingsCreate Font and Service List

Classify User and App StateSet Opacity/Translucency

Remove Excluded DataMake State Portable

Page 14: App-V 4.5 Sequencing Deep Dive

14

Configure Launch Process Sequence/Save

Add/Delete ApplicationsDefine Shortcuts

Define File Type Associations

Monitor File OperationsMonitor File I/O

Stop Windows Update

Upload Previous StateCreate Application Process

Privatize SxS AssembliesCapture Registry ChangesCapture Services Changes

Capture File Changes

Wait for Process Exit

Simulate Reboot OperationsDownload Captured StatePrivatize SxS Assemblies

Create File ListCreate Virtual Registry

Create Virtual FS MappingsCreate Font and Service List

Classify User and App StateSet Opacity/Translucency

Remove Excluded DataMake State Portable

Create Package MetadataSave Security DescriptorsCompute Feature Blocks

Generate OSDsGenerate SFTGenerate MSI

Sequencing ProcessBehind the scenes of the launch phase

Page 15: App-V 4.5 Sequencing Deep Dive

15

Translucent(Merge, Virtual)

Merge with Local Data

Opaque(Override, Pure Virtual)

Mask Local Data

Sequencing ProcessHow opacity and file mappings are determined

Opacity

Did registry keyor file path already

exist?

End

No Yes

VFS Mapping

Data Redirected to Q:

No Mapping

Data Accessed via Q:

VFSMap

Was file createdoutside installation

path?

End

No Yes

Page 16: App-V 4.5 Sequencing Deep Dive

16

Pre-Install Installation Package Virtual ViewVFS Mappings

Sequencing ProcessBehind the scenes of the virtual file system

CSIDL_WINDOWS

Foo.dll

Bar.dll

Foo

CSIDL_PERSONAL

Y2

Foo.ini

VFS

FooApp.100

Windows

Plugh.doc

Win.ini

Documents

System32

Explorer.exe

Xyzzy

Windows

Foo.dll

Bar.dll

Foo

Plugh.doc

Win.ini

Documents

System32

Explorer.exe

Y2

Foo.ini

Abc.txt

Abc

Abc.txt

Abc

Xyz

Xyz.txt

Xyz

Xyz.txt

Poof.txt

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\

Windows

Foo.dll

Bar.dll

Foo

Documents

Y2

Foo.ini

Xyzzy

Abc

Abc.txt

Xyz

Xyz.txt

Poof.txt

Bin

Drive C: Drive Q:Drive C:

Drive Q:

FooApp.100

Drive Q:

FooApp.100

FooApp.exe

FooApp.dat

Bin

FooApp.exe

FooApp.dat

Drive C:

Aaa.txt Aaa.txt

Drive Q:

FooApp.100

Page 17: App-V 4.5 Sequencing Deep Dive

17

Sequencing ProcessCreating system and user independent packages

Excluder ClassifierParser

Registryand

File SystemMappings

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.510C:\Users\clord → %USERPROFILE%…

%CSIDL_INTERNET_CACHE%%CSIDL_LOCAL_APPDATA%%CSIDL_PROFILE%\Local Settings%CSIDL_WINDOWS%\Debug\%TMP%C:\$Recycle.Bin\…

%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…

osguard.cp

Page 18: App-V 4.5 Sequencing Deep Dive

18

What to Do

Sequencing an application is as easy as1-2-3: install, launch, save.

Page 19: App-V 4.5 Sequencing Deep Dive

19

How to Do It

How to tailor the sequencing process and artifacts to your environment and needs.

Page 20: App-V 4.5 Sequencing Deep Dive

20

File

Sequencing ArtifactsWhere they are created and consumed

.SPRJSequencing project with references to OSDs, default package settings, list of all parser items, classifications and exclusions.

.SFTBinary file containing all assets and state organized into

streamable feature blocks. Optionally a DSFT (Differential SFT).

.MSIInstaller to publish and load (“install”) a virtual application package in standalone environments. Embeds all but SFT.

.XML Manifest

.OSDDescription of an application including environment,

dependencies, package location, shell integration, scripts.

.ICOIcons associated with each shortcut or FTA defined in an OSD or

Manifest. These are extracted from application resources.

Publishing parameters for all applications in a package. Includes definitions of shell integration (FTAs, Shortcuts, DDE, etc.).

Description

Consumed as an input Generated as an output

Page 21: App-V 4.5 Sequencing Deep Dive

21

Sequencing ArtifactsRelationships between sequencing output files

SFT

PackageFile

OSDs

ApplicationDescription

SPRJ

SequencerProject

ICOs

Shortcutand FTA Icons

Manifest

StandalonePublishing

MSI Setup

StandaloneSetup Utility

MSI

Page 22: App-V 4.5 Sequencing Deep Dive

22

Inside the OSDA look at the general organization of the OSD

<SOFTPKG GUID="application GUID" NAME="application name" VERSION="version string"><IMPLEMENTATION>

<CODEBASE HREF="location“ GUID="package" FILENAME="application“PARAMETERS=“parameters” SYSGUARDFILE="state file"/>

<OS VALUE="platform"/>...<OS VALUE="platform"/><WORKINGDIR>optional working directory</WORKINGDIR><VIRTUALENV virtual environment configuration options>

<ENVLIST>optional variables</ENVLIST> <REGISTRY>optional values</REGISTRY><POLICIES>optional policies</POLICIES><DEPENDENCIES>

<CODEBASE ... MANDATORY="TRUE|FALSE"/>...<CODEBASE ... MANDATORY="TRUE|FALSE"/></DEPENDENCIES>

</VIRTUALENV></IMPLEMENTATION><DEPENDENCY>

<CLIENTVERSION VERSION="4.5.0.0"/> <SCRIPT>optional scripts</SCRIPT></DEPENDENCY><MGMT_SHORTCUTLIST><SHORTCUT definition>…<SHORTCUT …></MGMT_SHORTCUTLIST><MGMT_FILEASSOCIATIONS>

<PROGIDLIST>shell integration</PROGIDLIST><FILEEXTENSIONLIST>FTAs</FILEEXTENSIONLIST></MGMT_FILEASSOCIATIONS></SOFTPKG>

Page 23: App-V 4.5 Sequencing Deep Dive

23

Inside the OSDControlling when, where and how a script runs

<DEPENDENCY><SCRIPT TIMING=“PRE|POST”

EVENT=“STREAM|LAUNCH|SHUTDOWN”PROTECT=“TRUE|FALSE”WAIT=“TRUE|FALSE” TIMEOUT=“n”SUCCESSRESULT=“n” ABORTRESULT=“n”>

<SCRIPTBODY>batch script commands

</SCRIPTBODY></SCRIPT></DEPENDENCY>

When a script runs: before or after the specified

event. There is no “pre-shutdown” option.

Where the script runs: inside the virtual

(protected) environment or outside. How the script runs:

synchronously or asynchronously, and

optionally seconds to wait for synchronous scripts.

Optional action to take on script exit: continue only on specific success result, or silently fail on specific

abort result. Commands to execute as a batch script in the user’s

context. May also use a single HREF instead to run

a single program or external script.

Page 24: App-V 4.5 Sequencing Deep Dive

24

Inside the OSDExamples of OSD scripting

<SCRIPT EVENT="LAUNCH" TIMING="PRE" PROTECT="FALSE" WAIT="TRUE"><HREF>reg import "%CSIDL_LOCAL_APPDATA%\cmd.reg"</HREF></SCRIPT><SCRIPT EVENT="SHUTDOWN" TIMING="POST" PROTECT="TRUE" WAIT="TRUE"><HREF>reg export "HKEY_CURRENT_USER\Console" "%CSIDL_LOCAL_APPDATA%\cmd.reg" /y</HREF></SCRIPT>

<SCRIPT EVENT="LAUNCH" PROTECT="TRUE" TIMING="PRE" WAIT="TRUE“SUCCESSRESULT="1" ABORTRESULT="0"> <SCRIPTBODY>

@echo off\nset net35loc=%windir%\\Microsoft.NET\\Framework\\v3.5\nset file35=%net35loc%\\csc.exe\nif not exist &quot;%file35%&quot; (\n

echo .NET 3.5 Framework must be installed for this application.\npause\nexit 0 )\n

exit 1</SCRIPTBODY> </SCRIPT>

Pre-Launch Script to Check Prerequisites

Pre-Launch/Post-Shutdown Registry “Passthru”

Page 25: App-V 4.5 Sequencing Deep Dive

25

Inside the OSDExamples of registry and environment settings

<VIRTUALENV><REGISTRY><REGKEY HIVE="HKCU" KEY="\Software\Microsoft\Tracing\uccp\Communicator"><REGVALUE REGTYPE="REG_DWORD" NAME="EnableFileTracing">1</REGVALUE><REGVALUE REGTYPE="REG_DWORD" NAME="EnableDebuggerTracing">1</REGVALUE></REGKEY></REGISTRY></VIRTUALENV>

<VIRTUALENV><ENVLIST><ENVIRONMENT VARIABLE="PATH">%PATH%;%SFT_MNT%\vs2005\Microsoft SDK\bin\.;</ENVIRONMENT><ENVIRONMENT VARIABLE="W2K3DDK">%SFT_MNT%\vs2005\winddk\3790~1.183</ENVIRONMENT><ENVIRONMENT VARIABLE="W2K3SP1DDK">%SFT_MNT%\vs2005\winddk\3790~1.181</ENVIRONMENT></ENVLIST></VIRTUALENV>

Custom Registry Settings to Enable Diagnostics

Environment Variables to Setup Paths

Page 26: App-V 4.5 Sequencing Deep Dive

26

Inside the OSDExample of configuring suited applications

<SOFTPKG GUID="323CB4B5-8FA6-493F-BB2B-AC6823E8C7CF“NAME="Internet Explorer" VERSION="7.0.6000.16643">

<IMPLEMENTATION><CODEBASE HREF="FILE://C:\Packages\IE\IE .sft" GUID="0AB02546-B009-4C13-83B5-834966190299"

PARAMETERS="" FILENAME="%CSIDL_PROGRAM_FILES%\Internet Explorer\iexplore.exe"SYSGUARDFILE="Empty\osguard.cp" SIZE="68712" />

<WORKINGDIR>%CSIDL_PROGRAM_FILES%\Internet Explorer</WORKINGDIR><VIRTUALENV TERMINATECHILDREN="FALSE"><DEPENDENCIES><CODEBASE HREF="FILE://C:\Packages\JRE\JRE_6.0.sft" SYSGUARDFILE="JRE6.5\osguard.cp“

GUID="F6F0CDA4-E58D-4555-993E-3691E116326F" MANDATORY=“FALSE" /><CODEBASE HREF="FILE://C:\Packages\Flash\Flash_9.0.sft" SYSGUARDFILE="12577.v01\osguard.cp"

GUID="B276AD72-4A9E-4FDF-B8F5-7F0BEA8193DC“ MANDATORY=“FALSE" /><CODEBASE HREF="FILE://C:\Packages\SilverLight\SL_1.0.sft" SYSGUARDFILE="12578.v01\osguard.cp"

GUID="D4ECDEAF-27E4-4ABC-B7A1-79B049EE5017” MANDATORY=“FALSE" /></DEPENDENCIES></VIRTUALENV></IMPLEMENTATION></SOFTPKG>

Page 27: App-V 4.5 Sequencing Deep Dive

27

Inside the OSDVirtual environment options and policies

Attribute or Policy

TERMINATECHILDREN†

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.

LOCAL_INTERACTION_ALLOWED‡

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.

VIRTUAL_SERVICES_DISABLED‡ Disables the virtualization of services. Typically used for diagnostics. Default is enabled.

VIRTUAL_REGISTRY_DISABLED‡

VIRTUAL_FILE_SYSTEM_DISABLED‡ Disables virtualization of the file system. Typically used for diagnostics. Default is enabled.

Disables virtualization of the registry. Typically used for diagnostics. Default is enabled.

Description

‡ Set using <POLICIES><policy>TRUE|FALSE</policy></POLICIES> in OSD. First OSD launched determines VE policy for lifetime of instance.

†Set using TERMINATECHILDREN=“TRUE” attribute in VIRTUALENV element. Applies to each application independently, even within same package.

Page 28: App-V 4.5 Sequencing Deep Dive

28

Inside Customization

Behind the Installation Phase

Behind the Launch Phase

Inside Artifacts

Inside the App-V Application Model

ConclusionWhere we have been today

RuntimeManagement

StateManagement

ApplicationModel

ApplicationDescription

LifecycleManagement

Page 29: App-V 4.5 Sequencing Deep Dive

29

More to ExploreSome useful sites, tools, forums and blogs

Web

site

sB

logs

an

d F

oru

ms

Resource Description

Application Virtualization forums supported by MVPs and product team

http://forums.microsoft.com/TechNet/default.aspx?ForumGroupID=497&SiteID=17

Too

ls

SFT Explorer by Kalle Saunamäki, an MVP, that allows detailed look inside SFTs

http://www.virtualapp.net/sft-explorer.html

OSD Editor that supports easy customization and dynamic suiting

http://www.loginconsultants.com/

The illustrated OSD and other App-V tools and info by Tim Mangan, an MVP

http://www.tmurgent.com/

App-V (SoftGrid) product team bloghttp://blogs.technet.com/softgrid/

Forum run by Ruben Spruijt, an MVPhttp://www.softgridguru.com/

Blog by Rodney Medina, an MVPhttp://www.softgridblog.com/

Sequencing Best Practices and Office 2007 Prescriptive Guidance

http://support.microsoft.com/kb/932137http://support.microsoft.com/kb/939796

Microsoft Application Virtualization 4.5 RC Release available June 16

https://connect.microsoft.com

Blog by Justin Zarb and Andrew Bennetthttp://blogs.technet.com/virtualworld/

Brian Madden on App Delivery Topicshttp://www.brianmadden.com/

Page 30: App-V 4.5 Sequencing Deep Dive

Related App-V Content

Breakout Sessions

VIR359 App-V 4.5 Features (6/12 4:30)VIR352 App-V 4.5 Enterprise Management and SCCM (6/13 10:15)

Interactive Theater Sessions

VIR50-TLC Application Virtualization DiscussionVIR51-TLC Application Virtualization and Presentation Virtualization Q&AVIR53-TLC Application Virtualization Package and Data ManagementVIR55-TLC Application Virtualization Customer DiscussionVIR56-TLC Application Virtualization 4.5 Customer Stories

Hands-on Labs

VIR52-HOL Application Virtualization 4.5 Publishing LabVIR57-HOL Application Virtualization 4.5 Sequencing Lab (Basics)VIR58-HOL Application Virtualization 4.5 Sequencing Lab (Advanced)

Page 31: App-V 4.5 Sequencing Deep Dive

31

Page 32: App-V 4.5 Sequencing Deep Dive

32

Slides for VIR53-TLC

Additional slides for Microsoft Application Virtualization 4.5 Package and Data Management session.

Page 33: App-V 4.5 Sequencing Deep Dive

33

MicrosoftApplication Virtualization 4.5 Package and Data Management

Chris LordSenior Program ManagerMicrosoft

Session Code: VIR53-TLC

Page 34: App-V 4.5 Sequencing Deep Dive

34

Session OverviewInside out, outside in and inside out again

Inside OutHow Files Get Into a Package

How User and Application Files are Classified

Outside InHow the File System Organizes Package Volumes

What Happens During Launch, Upgrade, Shutdown

What Happens during Unload/Delete, Repair/Clear

Inside OutWhat the File System Looks Like from Inside

What the Virtual View Looks Like from Inside

Page 35: App-V 4.5 Sequencing Deep Dive

35

Application File

User File

Sequencing ProcessHow application and user files are classified

Install Phase File

Start

Is type cp|exe|dll|com|config|

manifest?

Was createdduring install

phase?

Is file in csidl_profile,csidl_appdata|

userprofile?

Is file incsidl_program_files\

MicrosoftShared?

Is typedat|ini|dot|

mdw?

End

No

No

Yes

Yes

Yes

Yes

Yes

Launch Phase File

No

No

No

Page 36: App-V 4.5 Sequencing Deep Dive

36

Inside State ManagementIsolation from local system and user state

Logged on User on Local SystemUser andSystemState

PackageState

UserState

Virtualized ApplicationProcesses

User-SpecificApplication Package

Environment

SharedApplication Package

Environment

LocalApplicationProcesses

Page 37: App-V 4.5 Sequencing Deep Dive

37

Inside State ManagementIsolation between multiple application packages

Logged on User on Local SystemUser andSystemState

Package BState

Package BUserState

Package BApplicationProcesses

Package BUser-SpecificEnvironment

Package BShared

Environment

Package AState

Package AUserState

Package AApplicationProcesses

Package AUser-SpecificEnvironment

Package AShared

Environment

Page 38: App-V 4.5 Sequencing Deep Dive

38

Inside State ManagementIsolation between multiple users

Local System SystemState

Package AState

Package AUser 2State

Package A User 2ApplicationProcesses

Package AUser 2-SpecificEnvironment

Package AUser 1State

Package A User 1ApplicationProcesses

Package AUser 1-SpecificEnvironment

Package AShared

Environment

Logged onUser 2

Logged onUser 1

User 2State

User 1State

Page 39: App-V 4.5 Sequencing Deep Dive

39

Inside State Management Dynamic suite composition state management

Logged on User on Local SystemUser andSystemState

Package CState

Package CUserState

Package C and DApplicationProcesses

Package C and DUser-SpecificEnvironment

Primary Package C

Environment

Package AState

Package AUserState

Package AApplicationProcesses

Package AUser-SpecificEnvironment

Package AShared

Environment

Package DState

DependentPackage D

Environment

Page 40: App-V 4.5 Sequencing Deep Dive

40

Application Stack

Plug-in Collection

Shared Base Application

Shared Middleware or Utility Application

Dynamic Suite CompositionFour typical scenarios for suiting applications

Suite

Add-on App

Primary App

Plug-in 2

Foundation

Applet 3Applet 1 Applet 2

Utility

App 3App 1 App 2

Add-on App

Plug-in 1

Example: Oracle with separately published applications, possibly with separate entitlements.

Example: JRE, Acrobat Reader or Snag-It with separately published primary applications.

Example: Office, Communicator, and Live Meeting published together.

Example: Internet Explorer with Silverlight, JRE and Flash, each updated separately.

Page 41: App-V 4.5 Sequencing Deep Dive

41

Volume OrganizationGlobal file system container volumes

sffs.fsg

File System Install

New data from allowed system processes not associated with

any package or virtual environment

sftfs.fsd

File System Install

All loaded package datafrom streamed content. This is

RO and fully recoverable by restreaming package content.

Per

Syst

em C

on

ten

t

Name and Initialization Content

‡Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.

†Located in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access.Application Data User Data

User Location ‡System Location†

File SystemData Cache

File SystemUser Cache

Page 42: App-V 4.5 Sequencing Deep Dive

42

Volume OrganizationPer-package file system container volumes

User Location ‡System Location†

UsrlVol_sftfs_v1.pkg

Load or Shutdown of User Launch of Package

New or Modified User-Specific Package Data;

User Processes Settings.cp

UsrVol_sftfs_v1.pkg

Load or Shutdown of First Package Launch

New or Modified User-Specific Package Data from Allowed

System Processes

GlblVol_sftfs_v1_S-1-5-20.pkg

Load or Shutdown of First Package Launch

Modified Application-Specific Package Data from System

Processes;System Processes Settings.cp

GlblVol_sftfs_v1_<SID>.pkg

Load or Shutdown of User Launch of Package

New or Modified Application-Specific Package Data

Per

Syst

em C

on

ten

tPe

r U

ser

Co

nte

nt

‡Located in \Users\<User>\AppData\Roaming\SoftGrid Client\<Pkg+GUID>\. User has read/write access to this volume file.

†Located in \Users\Public\Documents\SoftGrid Client\AppFS Storage\<Pkg+GUID>\. User has read access; Administrators and System have full access.

Name and Initialization Content

Application Data User Data

UserPackageVolume

App DataIsolationVolume

GlobalPackageVolume

GlobalUser

Volume

Page 43: App-V 4.5 Sequencing Deep Dive

43

Volume OrganizationPackage volume names and locations

UserPackageVolume

App DataIsolationVolume

GlobalPackageVolume

GlobalUser

Volume

File SystemData Cache

File SystemUser Cache

Page 44: App-V 4.5 Sequencing Deep Dive

44

Volume ManagementWhat happens during launch and shutdown

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

Per

Syst

emPe

r U

ser

GlblVol_sftfs_v1_S-1-5-20.tmp

GlblVol_sftfs_v1_S-1-5-20.pkg

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_S-1-5-20.tmp

GlblVol_sftfs_v1_S-1-5-20.pkg

Subsequent Launch

GlblVol_sftfs_v1_S-1-5-20.tmp

Shutdown

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_<SID>.tmp

GlblVol_sftfs_v1_<SID>.pkg

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_<SID>.tmp

GlblVol_sftfs_v1_<SID>.pkg

GlblVol_sftfs_v1_<SID>.tmp

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.tmp

Initial Launch

GlobalPackageVolume

GlobalPackageVolume

GlobalPackageVolume

GlobalPackageVolume

GlobalPackageVolume

GlobalUser

Volume

GlobalUser

Volume

GlobalUser

Volume

App DataIsolationVolume

App DataIsolationVolume

App DataIsolationVolume

App DataIsolationVolume

App DataIsolationVolume

UserPackageVolume

UserPackageVolume

UserPackageVolume

UserPackageVolume

UserPackageVolume

GlobalUser

Volume

GlobalUser

Volume

Application Data User Data

Page 45: App-V 4.5 Sequencing Deep Dive

45

Volume ManagementWhat happens during package upgrade

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

Per

Syst

emPe

r U

ser

GlblVol_sftfs_v1_S-1-5-20.tmp

GlblVol_sftfs_v1_S-1-5-20.pkg

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_S-1-5-20.tmp

GlblVol_sftfs_v1_S-1-5-20.pkg

Subsequent Launch Shutdown

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_<SID>.tmp

GlblVol_sftfs_v1_<SID>.pkg

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_<SID>.tmp

GlblVol_sftfs_v1_<SID>.pkg

ReplacedData

UpdatedData

GlobalPackageVolume

GlobalUser

Volume

GlobalUser

Volume

File SystemData Cache

GlobalPackageVolume

GlobalPackageVolume

GlobalPackageVolume

App DataIsolationVolume

App DataIsolationVolume

UserPackageVolume

UserPackageVolume

GlobalUser

Volume

GlobalUser

Volume

App DataIsolationVolume

App DataIsolationVolume

UserPackageVolume

UserPackageVolume

Application Data User Data

Page 46: App-V 4.5 Sequencing Deep Dive

46

Volume ManagementWhat happens during administrative actions

Per

Syst

emPe

r U

ser

Unload/DeleteLoadRepair/Clear

UsrVol_sftfs_v1.pkg

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_S-1-5-20.pkgUsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_S-1-5-20.tmp

GlblVol_sftfs_v1_S-1-5-20.pkg

UsrVol_sftfs_v1.tmp

UsrVol_sftfs_v1.pkg

GlblVol_sftfs_v1_<SID>.tmp

GlblVol_sftfs_v1_<SID>.pkg GlblVol_sftfs_v1_<SID>.pkg

sftfs.fsd

PackageData

Application Data User Data

GlobalUser

Volume

GlobalUser

Volume

UserPackageVolume

UserPackageVolume

GlobalPackageVolume

GlobalPackageVolume

App DataIsolationVolume

App DataIsolationVolume

UserPackageVolume

App DataIsolationVolume

GlobalPackageVolume

GlobalUser

Volume

File SystemData Cache

Page 47: App-V 4.5 Sequencing Deep Dive

47

Inside the File SystemA view from inside the file system

UserPackageVolume

App DataIsolationVolume

GlobalPackageVolume

GlobalUser

Volume

File SystemData Cache

AppData

UserData

A B C

X Y Z

B C

Z

D

F

B

Z

D

F

A

X Y

Z

E

A B

A

Y Z

EC

XUser

ProcessView

SystemProcess

View

Y

B

Page 48: App-V 4.5 Sequencing Deep Dive

48

Pre-Install Installation PackageVFS Mappings

Sequencing ProcessBehind the scenes of the virtual file system

CSIDL_WINDOWS

Foo.dll

Bar.dll

Foo

CSIDL_PERSONAL

Y2

Foo.ini

VFS

FooApp.100

Windows

Plugh.doc

Win.ini

Documents

System32

Explorer.exe

Xyzzy

Abc.txt

Abc

Xyz

Xyz.txt

Poof.txt

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\

Windows

Foo.dll

Bar.dll

Foo

Documents

Y2

Foo.ini

Xyzzy

Abc

Abc.txt

Xyz

Xyz.txt

Poof.txt

Bin

Drive C: Drive Q:Drive C:

Drive Q:

FooApp.100

Drive Q:

FooApp.100

FooApp.exe

FooApp.dat

Bin

FooApp.exe

FooApp.dat

Aaa.txt

Page 49: App-V 4.5 Sequencing Deep Dive

49

Local System Package Virtual ViewVFS Mappings

Inside the Virtual File SystemA view from inside the virtual file system

CSIDL_WINDOWS

Foo.dll

Bar.dll

Foo

CSIDL_PERSONAL

Y2

Foo.ini

VFS

FooApp.100

Windows

Plugh.doc

Win.ini

Documents

System32

Explorer.exe

Xyzzy

Windows

Foo.dll

Bar.dll

Foo

Plugh.doc

Win.ini

Documents

System32

Explorer.exe

Y2

Foo.ini

Abc.txt

Abc

Abc.txt

Abc

Xyz

Xyz.txt

Xyz

Xyz.txt

Poof.txt

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\

Bin

Drive C: Drive Q:

FooApp.exe

FooApp.dat

Drive C:

Aaa.txt Aaa.txt

Zork.doc

Zork.doc

Page 50: App-V 4.5 Sequencing Deep Dive

www.microsoft.com/techedTech·Talks Tech·Ed BloggersLive Simulcasts Virtual Labs

http://microsoft.com/technet

Evaluation licenses, pre-released products, and MORE!

Resources for IT Professionals

Page 51: App-V 4.5 Sequencing Deep Dive

Related App-V Content

Breakout Sessions

VIR359 Microsoft Application Virtualization 4.5 FeaturesVIR352 Microsoft Application Virtualization 4.5 Enterprise Management and SCCMVIR450 Application Virtualization 4.5 Sequencing Deep Dive

Interactive Theater Sessions

VIR50-TLC Application Virtualization DiscussionVIR51-TLC Application Virtualization and Presentation Virtualization Q&AVIR53-TLC Application Virtualization Package and Data ManagementVIR55-TLC Application Virtualization Customer DiscussionVIR56-TLC Application Virtualization 4.5 Customer Stories

Hands-on Labs

VIR52-HOL Application Virtualization 4.5 Publishing LabVIR57-HOL Application Virtualization 4.5 Sequencing Lab (Basics)VIR58-HOL Application Virtualization 4.5 Sequencing Lab (Advanced)

Page 52: App-V 4.5 Sequencing Deep Dive

52

Bre

ako

uts

MDOP activities at TechEd

VIR359, Thursday, June 12 4:30 PM - 5:45 PM, S230 EMicrosoft Desktop Optimization Pack: Microsoft Application Virtualization 4.5 (Formerly SoftGrid) Features, Gene Ferioli

CLI351, Friday, June 13 8:30 AM - 9:45 AM, N230MDOP: Asset Inventory Services (AIS) will count your software and your licenses; Paul Bourgeau, Niamh Burke

CLI358, Thursday, June 12 8:30 AM - 9:45 AM, S320 AMDOP: Managing GPOs with Advanced Group Policy Management; Mark Gray, Winni Verhoef

VIR362, Friday, June 13 2:45 PM - 4:00 PM, S310 CMicrosoft 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 EMDOP: System Center Desktop Error Monitoring (DEM); Jameel Khalfan

CLI350, Thursday, June 12 2:45 PM - 4:00 PM, S220 EMDOP: Microsoft Diagnostics and Recovery Toolset (DaRT); Jameel Khalfan

Hands-on-labs: VIR57-HOL; VIR51-HOL; VIR58-HOL; VIR52-HOL; CLI59-HOL; CLI50-HOL; CLI55-HOL

VIR50, Thursday, June 12 2:45 PM - 4:00 PM, Blue Theater 1Microsoft Desktop Optimization Pack (MDOP): Microsoft Application Virtualization (Formerly SoftGrid) Discussion

VIR61-TLC, Friday, June 13 1:00 PM - 2:15 PM, Blue Theater 1Microsoft Desktop Optimization Pack (MDOP): Microsoft Enterprise Desktop Virtualization Changed content

IC /

TLC

VIR53-TLC, Wednesday, June 11 10:15 AM - 11:30 AM, Blue Theater 1MDOP: Microsoft Application Virtualization 4.5 (Formerly SoftGrid), Package and Data Management

22 MDOP colleagues! 3 kiosks at TLC / Expo floor! Give us your opinion at the Speak-Your-Mind booth!

Also: VIR450, MGT371

Page 53: App-V 4.5 Sequencing Deep Dive

53

ResourcesTechnical Communities, Webcasts, Blogs, Chats & User Groupshttp://www.microsoft.com/communities/default.mspx

Microsoft Developer Network (MSDN) & TechNet http://microsoft.com/msdnhttp://microsoft.com/technet

More info on MDOP productshttp://www.windowsvista.com/optmizeddesktop

Microsoft Learning and Certificationhttp://www.microsoft.com/learning/default.mspx

Page 54: App-V 4.5 Sequencing Deep Dive

1 Year Subscription!

Complete an

evaluation on

CommNet and

enter to win!

Page 55: App-V 4.5 Sequencing Deep Dive

55

© 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.