34
1 Software Development Using Software Development Using KIDS KIDS Software Development Software Development using KIDS using KIDS Developed by David Developed by David Whitten Whitten WorldVistA WorldVistA Education Meeting Education Meeting Las Cruces, NM Las Cruces, NM May 2007 May 2007

1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 1: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 2: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 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

Page 3: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 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

Page 4: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 5: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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)

Page 6: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 7: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 8: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 9: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 10: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 11: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 12: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 13: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 14: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 15: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 16: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 17: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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]

Page 18: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 19: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 20: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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)

Page 21: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 22: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 23: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 24: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 25: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 26: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 27: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 28: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 29: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 30: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 31: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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.

Page 32: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 33: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

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

Page 34: 1Software Development Using KIDS Software Development using KIDS Developed by David Whitten WorldVistA Education Meeting Las Cruces, NM May 2007

Software Development Using KIDSSoftware Development Using KIDS 3434

• QUESTIONS ?

• Thank you

• Contact me at– David Whitten– 713-870-3834– [email protected]