Let us start this topic with a scenario…
User1 has just logged into his machine and he has changed his system settings like he added few favorites, changed his desktop background etc and after that he has logged off from his machine successfully. Next time when he will re-visit his machine, he will expect to get the same settings that he did the last time.
- How would it be possible for him to get his changes for subsequent logins??
- What if he wants to have same settings when he logged into any other machine on the same farm??
The answer is User Profiles.
User profile is the collection of personal data/information/user application data specific to the particular user.
Whenever user did some changes related to his settings and then logs off from the machine, those changes get saved to his profile. When he logs back to his machine, all his previous settings get loaded back and applied from his profile.
User profiles can be classified into:
- Static Profiles – Answer of First question above
- Roaming Profiles – Answer of Second question above
It is a user specific profile stored in the user’s local machine. Suppose user logs on to machine 1 and did some changes to his personal settings, these changes will get saved to the user’s static profile. In non-VISTA machines the location of the profile is [C:\Documents and Settings\[UserID]] and in VISTA machines the location is [C:\Users\[UserID]].
The architecture is shown below:
Advantage of Static Profile:
- Since it is specific to specific machine and stored at the same machine, it is easy to implement it.
- No extra space required for it.
Disadvantage of Static Profile:
- As said above, this type of profile is stored on specific machine; users will not be able to see their personal settings/data on some other machine.
- In case of failure, users will lose their profiles containing their personal data and settings.
Unlike static profile where profiles are stored on the individual machines, in Roaming profiles technique, user’s profile is stored on network shared location on some server on same network/domain as shown below:
When user logs on to machine 1, whatever changes he did with his personal settings, those get saved to his local profile folder. When user logs off from the server those changes get copied to the roaming profile share from the local machine. Next time when user logs back in to the server, user’s profile get downloaded from roaming profile share and applied to his local profile location in his machine. This way user gets his profile irrespective of the machine where user has logged in. During logoff, the changes user did get copied back to the roaming shared location.
- Automatic Resource Availability: Since the user data is saved on the central location, it is always available for user from any machine with in the same domain.
- At the time of failure of any particular machine other then the roaming profile machine, user’s data will still be available.
- Central management of user’s data: As all the profiles are stored on the central location, it is easy to manage them. Administrator can enforce various rules/policies on them.
- Network bandwidth bottle neck: During user’s login process, his profile gets downloaded from roaming profile server through network. This could slow down the login process, if user profile has large amount of data that could eat-up the network resource. This could be handled by:
- Using caching of files: If most of the files are already cached, then no need to download it time and again. However if the data get changed then only it needs to be downloaded and uploaded. This way we can decrease the overall size of the user profile so less traffic to flow and hence less bandwidth required.
- Using folder redirection: Bandwidth can also be saved by redirecting all the requests for the user profile to the folders in the roaming profile rather then downloading then at login time.
- Single point of failure: As shown in the above diagram, User’s roaming profile share machine could be the single point of failure. If this machine fails because of any reason, all the user profiles will be lost. To mitigate this single point of failure, regular backup of the profiles is recommended.
In a large farm, maintaining profiles at the central location is always recommended. With proper backup plan, caching strategy and folder redirection, above disadvantages can be addressed. After all, in this dynamic work environment like in XenApp where user can access his application from any machine, storing and managing users profile at central location could be the key to success.