MSI Process And Solutions
Application Discovery
In projects involving applications, the first task, is to discover applications currently being used. In a large environment this can be an uphill task involving, more than thousands of desktops and laptops with remote users. If you don't have an accurate list that you can trust, you will need to perform an application discovery task as part of your project.


Our consultants have worked on many projects where a discovery phase is required. We maintain a discovery system for the all the applications that you would use and kept track of the progress through our system. All the applications, the targeted desktops, laptops and other inventory of yours, is organized through our system. This helps in identifying duplicates and various versions of all the applications.


Requirement Gathering
Requirements gathering can be a difficult, exhaustive process. We've assembled information on the best methods for requirements engineering -- prototypes, storyboards, models, state transition diagrams and use cases -- in one guide.

Requirement gathering is usually the first part of any software project. This stage starts when you are thinking about packaging software. In this phase, we meet users and developers of all the applications that are to be packaged, analyze the risk and requirements for each application. Whether you prefer a written document, screen diagrams, prototyping or use cases, we gather the requirements in a most efficient way for packaging the software.

The art of writing requirements takes great skill and, like writing code, the end result is usually cleaner and more consistent with our consultants. It’s a matter of balancing the need for a thorough understanding of the project domain (i.e. the client's business) against understanding the process of software packaging.

 

Application Stewardship
TAKE provides application stewardship as part of application packaging process for our client in reduced costs saving you much time in finding the technical details of the applications. We meet with the developers, users and testers to perform a test install of each application before packaging. The complete stewardship is performed on each application and the same is documented. Application steward is mainly the process of collecting the technical details, dependencies and requirements of the application. The following are the main objectives of this process.

 

  • To know the system requirements of the applications like required hard drive, memory and operating system.
  • To know any pre dependencies for the applications if exists.
  • To know privileges required by the user to install and run the applications.
  • To know the complete installation instructions and procedures for the applications
  • To know the testing procedures and collect the test data to test the packages.
  • To know possible risk of installation failure for those applications.
  • To know the number of target work stations and their operating system.

 

All the above are taken care of if the clients can provide us the right contact persons for all the applications that we have to package.


Application Packaging
Managing software in an organization is a complex task which involves installing, tracking, and maintaining a variety of software applications. Especially with the reduced staff and different sets of applications for individual groups, departments or divisions, installing and upgrading individual applications and new operating systems on a large number of existing users desktops can be challenging.


This is because most setup programs do not adequately manage shared resources to enforce consistent installation rules, provide easy customization, help you decide which pieces of an application users might need, or help you diagnose and repair configuration problems. Application Packaging is the effective means of installing, deploying and upgrading an application which would reduce the total costs incurred for the process. Application packaging wraps applications and operating systems into a distribution unit, which makes it easier to deploy and install them on user’s computers.


Application packaging solution approach at TAKE Solutions includes highly repeatable processes to package applications in the standards-based .MSI format.

Repeatability and Reliability
When you purchase a software application to install it onto a computer you will need to execute an installation program such as Setup.exe. A program that puts all of the files and registry keys in the right places with the correct values, ensuring that everything works correctly. This is in essence a package. However the setup routine can sometimes be very complex and open to user error, especially when thousands of repeat installations are required in a corporate environment. In such environments reliability and repeatability are crucial where compliance to SOX or 21CFR part11 may be required. This is where application repackaging comes into its own. An experienced application packager can take a vendor application and re-write the setup routine to the specific requirements of the client. Ensuring both a reliable and accurate installation every time. The package can then be deployed silently, if desired, via your chosen deployment mechanism to all of your target workstations or users. It is a very rapid and accurate way to perform large scale deployments.


TAKE Solutions consultants have a wealth of experience in Application Packaging. Our staffs have designed application packaging strategies from the ground up for the Financial. Pharmaceutical and Manufacturing industries. We have the tools and the systems ability to produce packages to meet your requirements in a timely manner.

MSI Packaging(Windows Installer technology)
Windows Installer provides consistent and reliable methods to customize installations, update and upgrade applications, and resolve configuration problems. Using Windows Installer the operating system implements all of the proper installation rules. An application needs only to describe itself in a Windows Installer package. Windows Installer then performs the installation tasks for each application, which can help prevent problems.


Windows Installer provides a standard packaging format for applications and a standard method for customizing applications. Preparing or obtaining a Windows Installer package file for installation is called packaging the software. Each product has its own Windows Installer package file. Depending on the application to be deployed, packaging software can be as simple as performing an administrative installation to prepare the application for later installation by clients from a network location. Packaging can also be as complex as reauthoring the entire application, or even repackaging the application, which involves capturing the required modifications when installing an application and replacing the application's native installation program with a customized setup.

Potential Benefits

  • Once packaged, applications can be quickly installed on a range of desktops in multiple locations, saving administrative costs, simplifying the manage of licensing fees and minimizing support and repair expenditures
  • Simplifies management of new user set-up along with the revision and distribution of software repairs and new applications to existing users
  • Helps eliminate uncontrolled software downloads and installation, enables applications to be safely removed and reduces non-business traffic on a corporate network
  • Using .MSI format, can automate software distribution process and ensure that the installation doesn’t break other applications that have already been installed.

 

Software applications in any organization usually needs to be updated and may be removed or have added utilities installed. TAKE SOLUTIONS Packaging process accelerates this process by automating the installation and management of operating system and applications on desktops and different locations within an organization. The process results in reduction in help desk support and increase in stability of applications.

Legacy Setup Conversion
Legacy setup programs are difficult to support technologies, with high overheads when trying to resolve compatibility issues and conflicts.  Realize the benefits of moving to the industry standard: Microsoft's Windows Installer. Natively supported from Windows 2000 upwards, this technology will lower your support overheads and TCO - bringing with it the additional functionality of self-healing, upgrades, patching, installation on demand and deployment via Active Directory to name a few advantages.


Leverage our expertise for fault-free migration of proprietary or old deployment formats to the latest MSI packaging technology. Everything completed to agreed standards and made available for regression testing on your choice of platforms. We have performed application migration on thousands of packages and have developed in-house tools to ensure a perfect transition. Payload comparison reports show you know that what went in is what has come out. There are financial savings to be made through remediation as opposed to repackaging.

Component level Management
A Windows Installer component is the smallest and most fundamental of the three logical containers. When a user selects a component for installation or removal, all of the resources in that component are either installed or removed. Components are essentially the containers that are not exposed to the user. A resource can be part of only one component. For example, no two components share the same file, whether they are part of the same product or parts of different products. To include a common file, two applications must include the same common component. Because of this restriction, components are typically small, consisting of a file and other resources that are tightly coupled with it, such as registration information.

A component is globally unique, meaning that a single component is guaranteed to always contain the same set of resources in any application that includes it. To maintain global uniqueness, each component is assigned a globally unique identifier (GUID), known as the Component Code. The Component Code prevents collisions between components that must be distinct.

The management of components can be achieved as simply as maintaining a list or simple database. However the most effective solution is to use a proprietary application such as Wise Conflict Manager or Install shield’s Conflict Solver. These products help you to keep track of your components and identify potential problems, allowing you to correctly align the components within your organization. It should be noted that these tools are semi-automated but will require the packager to make informed decisions on how to resolve conflicts and align components.


Internal Consistency Evaluation
ICEs (Internal Consistency Evaluators), custom actions written by Microsoft which can be executed to determine if an installation package is built according to Windows Installer standards. They are designed to ensure that the windows installer database meets certain criteria. It is important that Errors. Warnings and Failures are resolved. Ignoring them will cause various issues with the package. Some of which may not be apparent until the day you come to upgrade. Patch or uninstall the package. by which time the package will be deployed throughout your organization and you will have the headache of trying to resolve the problems at a later date.


Both Wise and Install shield have their own tools to execute ICEs. The Microsoft Platform SDK includes a tool called Orca which is widely regarded as “the” tool to use when executing ICEs and is available as a free download. Using any of these tools will enable you to validate your windows installer database. Once validated you need to act on the information provided to resolve any errors and warnings. This is usually achieved by adjusting and correcting entries in the database tables. The vast majority of errors and warnings are resolvable. Some are not possible to resolve due to limitations of the installer database.


Conflict Management
Although a Windows Installer package or merge module may be built to guidelines put forth by Microsoft, it is possible that the interaction between packages, or between a package and the base operating system, may cause unwanted results in your production environment.


Setting up databases and base lining your operating systems and packages is a time-consuming task you want to get right first time. Particularly if you package from multiple sites. Putting Conflict Management in place will give confidence that all packages have been checked against your whole environment. We use the Conflict Wizard to identify these conflicts before you deploy packages, and resolve the problems before they affect your end users. The Conflict Wizard allows you to identify conflicts between a Windows Installer package and packages already cataloged in Conflict Solver. You can check for a variety of conflict types, including file, component, and registry conflicts. In many cases, Conflict Solver can resolve the issues automatically. You can also create your own custom rules to ensure packages conform to your internal standards and practices. Conflict Solver has rules to detect conflicts involving: Components, Files, Registry Entries, Shortcuts, INI Files, ODBC Resources, NT Services, File Extensions, and Product Properties.


Secure Packaging for Locked Down Environment
If you have taken the appropriate steps along the way then your packages should function correctly in a locked down environment. However if you have not tested your packages in the user context then there is a distinct possibility that you will encounter application errors due to file and registry permissions being too restrictive. Preventing the application from performing as expected. Other areas where security implications need to be considered are the use of public properties. Where information contained in such properties may be written to log files and the contents of such properties becoming visible. Passwords being one example. Ensuring that only approved installations and patches are applied in sensitive environments is also an option that should be explored.


TAKE Solutions ensures that a package performs correctly in a secure environment it will be necessary to determine which files and registry keys need their permissions altered. Only the required areas should have permissions relaxed. so as to maintain as high a level of security as possible. Using digital signing within your packages will ensure that the package is valid for your environment.


Quality Checking and UAT
 Prior to deploying a Windows Installer–based application, typically you need to test it in the targeted deployment environment to ensure the application works as expected. However, it is often not feasible (or possible) to test each piece of an application's functionality, due to the complexity of the application and/or its interface. Behind the scenes, there may be dozens or hundreds of attempts to access files, registry keys, or services; errors may only become apparent in rare and isolated circumstances.

One major source of failure is when the target environment is restricted in some way, such as in a locked-down environment. In this case, there may be prohibitions on certain COM activation or registry access, which ultimately prevents an application from working correctly. Quality Monitor allows you to run a series of built-in tests to installed Windows Installer–based products, helping to ensure they run correctly. When failures occur, Quality Monitor can help identify where problems exist, and ultimately direct you to the solution.

User acceptance testing involves testing each .msi package by an end user  or a subject matter expert. The testing can be done remotely or directly onsite. TAKE Solutions makes sure that all the applications are tested to the core and all the required files, registires, shortcuts perform as per Business requirements.