Upload
susanna-shepherd
View
214
Download
0
Embed Size (px)
DESCRIPTION
Software Development Using KIDS 3 Definitions of Terms KIDS is an acronym for –Kernel the backbone of a VistA computing platform, providing a virtual operating system for packages –Installation and –Distribution –System
Citation preview
11Software Development Using KIDSSoftware Development Using KIDS
Software Development Software Development using KIDSusing KIDS
Developed by David Developed by David WhittenWhitten
WorldVistA Education WorldVistA Education MeetingMeeting
Las Cruces, NMLas Cruces, NM
May 2007May 2007
Software Development Using KIDSSoftware Development Using KIDS 22
Who is David Whitten ?Who is David Whitten ?
• MUMPS Programmer since 1982• Programmer in FileMan since version 15• Involved in initial installation of DHCP
(VistA) at Houston VAMC in mid 1980s• Worked at SAIC on (DoD Kernel) Tools
team in early 1990s• Chief Technical Officer of WorldVistA since
January 2007
Software Development Using KIDSSoftware Development Using KIDS 33
Definitions of TermsDefinitions of Terms
• KIDS is an acronym for – Kernel
• the backbone of a VistA computing platform, providing a virtual operating system for packages
– Installation and– Distribution– System
Software Development Using KIDSSoftware Development Using KIDS 44
KIDS historyKIDS history
• Replacement for DIFROM– DIFROM is part of VA FileMan and converts all
transported elements into MUMPS routines– These MUMPS routines were called INIT
routines• Developed by San Francisco ISC• Ron Dimicelli was chief architect
Software Development Using KIDSSoftware Development Using KIDS 55
KIDS in a NutshellKIDS in a Nutshell
• KIDS is a method to transport changes to a VistA system from a developer's system to a target user/production system
• KIDS uses two methods to transport– Host Operating Systems files on disk (called a
Distribution)– VA MailMan mail messages (called PackMan
messages)
Software Development Using KIDSSoftware Development Using KIDS 66
KIDS specific termsKIDS specific terms
• Package – A cohesive set of Files, data, and components
that together form a set of computing activities related to a functional area.
• Build entry – An entry in the BUILD file that defines the parts
of a package to export. Also known as a build.
Software Development Using KIDSSoftware Development Using KIDS 77
KIDS specific termsKIDS specific terms
• Component (an element of one of the following types):
• template (print, sort, and input); • form; • Function;• bulletin; • help frame; • routine; • option; • security key• protocol.
Software Development Using KIDSSoftware Development Using KIDS 88
KIDS specific termsKIDS specific terms
• Transport Global – An exported package, stored in a global. KIDS
exports a package based on its definition in a build entry. The transport global also contains the build entry and the PACKAGE file entry (if any) for a given package.
Software Development Using KIDSSoftware Development Using KIDS 99
KIDS specific termsKIDS specific terms
• Distribution – A host file system (HFS) file containing
transport global(s). If a distribution contains multiple transport globals, KIDS treats them as a single installation when installing from the distribution.
Software Development Using KIDSSoftware Development Using KIDS 1010
Accessing KIDS optionsAccessing KIDS options
• Select Systems Manager Menu Option: PRogrammer Options
• Select Programmer Options Option: KIDS Kernel Installation & Distribution System [XPD MAIN]
• **> Locked with XUPROG– Edits and Distribution ... [XPD DISTRIBUTION MENU]
– Utilities ... [XPD UTILITY]– Installation ... [XPD INSTALLATION MENU]
• **> Locked with XUPROGMODE
Software Development Using KIDSSoftware Development Using KIDS 1111
Build Entries &Build Entries & the BUILD File (#9.6) the BUILD File (#9.6)
• Used by developers to define a package. – Developers can select any components
available on the current system and include them in their build entries as package components.
• A package's build entry is installed as part of the package– Sites can examine the build entry to see the
package definition.
Software Development Using KIDSSoftware Development Using KIDS 1212
The INSTALL File (#9.7)The INSTALL File (#9.7)
• The INSTALL file stores a record of each installation a site performs.
• KIDS stores a separate installation entry for each installation with its own installation's history.– The developers' installation history– sites' installation history
Software Development Using KIDSSoftware Development Using KIDS 1313
The INSTALL File (#9.7)The INSTALL File (#9.7)
• The three main items recorded in the INSTALL file for each installation – the installing site's answers to installation
questions (each BUILD can be different)– any installation output, including warning
messages and status messages– the installation's timing information.
• Start times, Stop times, • timing for different phases
Software Development Using KIDSSoftware Development Using KIDS 1414
The PACKAGE File (#9.4)The PACKAGE File (#9.4)
• A cohesive set of Files, data, and components that together form a set of computing activities related to a functional area.
• Mainly static package information that is not version specific
• There is a link from the build entry of a package to the PACKAGE file.
• installations automatically update the VERSION multiple.
Software Development Using KIDSSoftware Development Using KIDS 1515
Two kinds of KIDS distributionsTwo kinds of KIDS distributions
• standard distribution – contains transport globals for packages,
including files, data, and all components.– can contain one or more transport globals– If there is more than one,
• each one is treated as a single installation unit.• global distribution
– contains one transport global only, and that transport global can export M globals only
Software Development Using KIDSSoftware Development Using KIDS 1616
KIDS Installation SequenceKIDS Installation Sequence
• standard distributions have multiple phases:– Loading transport globals from the distribution– Previewing transport globals information– Answering installation questions for each
transport global– Installing each transport global in the
distribution.
Software Development Using KIDSSoftware Development Using KIDS 1717
Details of Site Install ProcessDetails of Site Install Process
Select Kernel Installation & Distribution System Option: INStallation **> Locked with XUPROGMODE
1 Load a Distribution [XPD LOAD DISTRIBUTION]2 Verify Checksums in Transport Global
[XPD PRINT CHECKSUM]3 Print Transport Global [XPD PRINT INSTALL]4 Compare Transport Global to Current System
[XPD COMPARE TO SYSTEM]5 Backup a Transport Global [XPD BACKUP]6 Install Package(s) [XPD INSTALL BUILD] Restart Install of Package(s)
[XPD RESTART INSTALL] Unload a Distribution
[XPD UNLOAD DISTRIBUTION]
Software Development Using KIDSSoftware Development Using KIDS 1818
Loading transport globals from Loading transport globals from the distributionthe distribution
• If loading from an HFS File,– Use the Load a Distribution option– Choose the HFS file to load distributions from.
• If loading from a PackMan message– choose the message– invoke the INSTALL/CHECK MESSAGE
PackMan option (accessed via “X” action).
Software Development Using KIDSSoftware Development Using KIDS 1919
Verify Checksums Verify Checksums in Transport Globalin Transport Global
• Checksums only exist for Routine components of a build
• The checksum is a number that represents a routine as a whole. There is more than one checksum algorithm even in Kernel
• Checksum mismatching is usually a sign of a local modification to a program
• Checksum mismatch does NOT stop install.
Software Development Using KIDSSoftware Development Using KIDS 2020
Print Transport GlobalPrint Transport Global
• prints out description of build• print out the definitions stored in the
transport globals• every component exported in each
transport global is listed• Useful review before you install a KIDS
build• Description in the build is not the same as
Patch description (in Mail message or HFS)
Software Development Using KIDSSoftware Development Using KIDS 2121
Compare Transport Global Compare Transport Global to Current Systemto Current System
• VA Kernel equivalent to Unix diff command• you can compare the package you're about
to install with the current version of the package on your system.
• Compares are good practice to stay informed about changes which are made in an incoming build.
Software Development Using KIDSSoftware Development Using KIDS 2222
Compare Transport Global Compare Transport Global to Current Systemto Current System
• Compares a transport global to the matching package already installed on your system
• Most useful for routines, but does work on other components as well
• Pointers are converted to free text when exporting VA FileMan entries, so these show up as differences when using the compare feature.
Software Development Using KIDSSoftware Development Using KIDS 2323
Backup a Transport GlobalBackup a Transport Global
• Creates a MailMan message (PackMan format)
• Backs up all current routines on your system that would be replaced by a KIDS install
• It only works on a build that has been loaded on your system, but not installed.
• Does NOT backup KIDS Components that are not routines.
Software Development Using KIDSSoftware Development Using KIDS 2424
Answering Installation QuestionsAnswering Installation Questions
For each transport global in a distribution:➢ pre-installation questions defined by
developers➢ standard KIDS questions.➢ post-installation questions defined by
developers
Software Development Using KIDSSoftware Development Using KIDS 2525
Answering Installation QuestionsAnswering Installation Questions
After answering Installation question, person installing must choose a device for the installation to run on.
➢ can queue the installation ➢ can run it directly;➢ can enter an up-arrow to stop the installation.
Software Development Using KIDSSoftware Development Using KIDS 2626
Order of InstallationOrder of Installation
1. KIDS disables any options and protocols the site has asked to be disabled for this install. However, KIDS does not disable options and protocols which have an Action of USE AS LINK FOR MENU ITEMS.
2. KIDS waits for the time period (from 0 to 60 minutes) the site specifies, if they chose to disable options and protocols.
Software Development Using KIDSSoftware Development Using KIDS 2727
Order of InstallationOrder of Installation
3. KIDS suspends the running of queued options by TaskMan for this install, if the site chooses to do so.
4. For each transport global in the distribution4.1 The pre-install routine is run 4.2 All components are installed 4.3 The post-install routine
Software Development Using KIDSSoftware Development Using KIDS 2828
Order of InstallationOrder of Installation
5. Options and protocols that were disabled for this install (if any) are re-enabled.
6. Queued options are removed from suspense (if the site chose to suspend queued options).
7. Messages are sent that install was completed.
Software Development Using KIDSSoftware Development Using KIDS 2929
Restart Install of Package(s)Restart Install of Package(s)
• KIDS uses a checkpoint system to keep track of how many phases of an installation it completed.
• KIDS does not automatically re-run the entire installation from the beginning;
• KIDS re-runs the installation only from the last completed checkpoint.
Software Development Using KIDSSoftware Development Using KIDS 3030
KIDS CheckpointingKIDS Checkpointing
• Standard checkpoints built into KIDS – Completion of pre-install– completion of each component type– completion of postinstall
• Developers can create checkpoints – within their pre-install routines– within their post-install routines.
Software Development Using KIDSSoftware Development Using KIDS 3131
Restarting Install CaveatsRestarting Install Caveats• you should try to determine what caused an
installation to abort. – If an error occurred, any error messages will be
in the INSTALL file entry, in the MESSAGES word processing field.
• Once you've fixed the problem – use the Restart Install Of Package(s) option to
continue with the installation. • KIDS also allows you to restart an install if
the install is queued and you get an error during the installation.
Software Development Using KIDSSoftware Development Using KIDS 3232
Global DistributionsGlobal Distributions
• second type of distribution supported by KIDS
• Use the Load a Distribution option to install global distributions.
• There is no Compare and Backup process for global distributions
• KIDS installs global distributions immediately
• There is no queueing of the installation
Software Development Using KIDSSoftware Development Using KIDS 3333
SummarySummary
• KIDS allows a site to receive updates and enhancements from Developers
• KIDS has high level logging capability• An install is a multiple step process• Installs can be automated and queued• Updates and Enhancements (aka Patches)
cover more than programs, but also data structures as well
Software Development Using KIDSSoftware Development Using KIDS 3434
• QUESTIONS ?
• Thank you
• Contact me at– David Whitten– 713-870-3834– [email protected]