Purpose: To enable and facilitate the creation of standard VistA
management methods and tools.
Attempted completion date: 01/30/2009, aka pull the bandaid off as
quickly as possible.
Changes: Added ./etc and ./etc/vista.conf, removed
/version_patch_info, suggested more mount points for different
physical devices.
Plan is to Vote on about Friday for the following base directory
candidates (more may be added as a result of discussion) and vote on
this whole spec I guess.
/opt for now for discussion purposes:
To be voted on Base Directory <base-dir> for VistA Community Standard
Base Server:
a) /opt/mumps
b) /opt
c) /var/opt
d) /srv
e) /home/<userid>
/opt/lsb-gtm/<version>_<platform> # default for gtm,
owned by bin, all uppercase routines.
/<base-dir>/<branding>vista/<instance>
/<base-dir>/<branding>vista/<instance>/doc # all documentation resides here.
/<base-dir>/<branding>vista/<instance>/g<lobals> # Can be a mount
point to a different physical device.
/<base-dir>/<branding>vista/<instance>/web # Future web items.
/<base-dir>/<branding>vista/<instance>/backup # Can be mount
point. Backups that are not journals.
/<base-dir>/<branding>vista/<instance>/j<ournals> # Can be a mount
point to a different physical device.
/<base-dir>/<branding>vista/<instance>/r<outines> # Usually mumps
routines, see additional heirarchy 13) below
/<base-dir>/<branding>vista/<instance>/etc # Version, release
and other configuration information.
/<base-dir>/<branding>vista/<instance>/etc/vista.conf # contains
version, release and other config information.
/<base-dir>/<branding>vista/<instance>/etc/patch_listing.txt #
Optional listing of patches for this instance.
/<base-dir>/<branding>vista/<instance>/o<bjects> # Object files.
/<base-dir>/<branding>vista/<instance>/images # Can be mount point
for patient photos, scanned documents.
/<base-dir>/<branding>vista/<instance>/env # for gtm/VistA
environment variables.
/<base-dir>/<branding>vista/<instance>/bin # for server controller
type software.
/<base-dir>/<branding>vista/<instance>/bin/run # Bhaskar'sconvention,
run an instance.
/<base-dir>/<branding>vista/<instance>/bin/vistastart # Bhaskar's convention.
/<base-dir>/<branding>vista/<instance>/bin/vistastop # Bhaskar's convention.
/etc/init.d/vista-<instance> # Automatic start stop startup
handling. Bhaskar's convention.
/etc/xinetd.d/vista-<instance> # setup listening port for
client such as CPRS for <instance>.
Where:
<base-dir> -- Preferred base-dir default to be voted on about Friday.
Can be /opt, /var/opt, /opt/mumps as well as
'single-user' mode /home/<userid>, /opt/mumps (see 1 below)
<branding> -- 'world', 'open', 'vx' etc, MUST be preceeded or followed
by 'vista' as in <branding>vista.
<instance> -- can be multiple instances. Parent and child instances
via symlink okay. See 4) below for default names.
g<lobals>, r<outines>, o<bjects>, j<ournals> are defaulted to g, r, o
with full name available only if the vista release
supports it.
1) <base-dir> scenarios:
1.1) /opt - Pros: simple, brief, understandable. Cons: May be less
robust if not split across physical devices, may not
strictly
adhere to Linux Standard Base.
1.2) /var/opt - Pros: Strict adherence to Linux Standard Base and with
splitting across physical devices, possibly more
robust.
Cons: More complexity, more difficult to create management
tools, more difficult to understand.
1.3) /opt/mumps - Pros: All mumps applications in one place. Cons: All
mumps applications in one place.
1.4) /home/<userid> - 'Single-user mode' Pros: Possible security
advantages and some understandability. Cons: Variable
location, less organized.
1.5) /srv - Pros: The new thing. Cons: Doesn't already exist on some
distributions.
2) Good practice for /backup and j<ournals> is that they should be
symlink or a mount point on a different physical media.
Directories that can be mount points are:
a) /<base-dir>/<branding>vista/<instance>/g<lobals>
b) /<base-dir>/<branding>vista/<instance>/backup # Backups that
are not journals.
c) /<base-dir>/<branding>vista/<instance>/j<ournals> # Can be a mount
point to a different physical device.
d) /<base-dir>/<branding>vista/<instance>/images # Can be mount
point for patient photos, scanned documents.
3) Default port for clients such as CPRS listening: 9260 Production,
9261 Training, 9262 Development
4) Defaults names for <instance>: production, training, development,
<customer name>
5) All documentation explicitly converted from Microsoft format cr/lf
to Unix/Linux format before posting to
6) Standard use of tar.gz format for bundling of files and residing on
Sourceforge.
7) Default user id: vista, default group id: vista
8) /var/log for logs
9) /tmp for temp files
10) Use /etc/skel and /etc/profile.d for global environment settings
where appropriate.
11) Use the suffix .sh on scripts that are shell scripts.
12) GT.M journal files are written to the j<ournals> directory.
13) If supported by VistA release, additional r<outines>
subdirectories first proposed by J. Tai with modifications:
The routines directory contains MUMPS routines (.m files). No
routines are stored in the routines directory itself; the
routines are stored in subdirectories that reflect the origin of the routine.
/<base-dir>/<branding>vista/<instance>/r<outines>/development
/<base-dir>/<branding>vista/<instance>/r<outines>/hotfixes
/<base-dir>/<branding>vista/<instance>/r<outines>/customer
/<base-dir>/<branding>vista/<instance>/r<outines>/vendor
/<base-dir>/<branding>vista/<instance>/r<outines>/foia
Where:
* development – code that is under development; this directory
should always be empty in production environments
* hotfixes – code not yet part of any Kernel Installation and
Distribution System (KIDS) build or other distribution
* customer –code that is part of a customer-specific KIDS build
* vendor – code from third-party vendors, e.g., the Victory
Programming Environment
* foia – unmodified code from the U.S. Department of Veterans Affairs (VA)
* version_patch_info -- Information on versions and patches on the system.
Regards,
grandpaZ
We need to include input form other VistA vendors. And, I would think, from
folks like Jim Self on where M2Web should fit.
We also need coordination with EWD as we expand options for hitting the VistA
server.
The work is obviously useful; but Jim Self, just for example, (or Rod
Tweed) may have a different set of criteria for what must be done this
week.
Regards,
jlz
On Wed, Jan 28, 2009 at 5:24 PM, ival...@gmail.com <ival...@gmail.com> wrote:
>... I really need basic consensus this week in order
--snip--
> /<base-dir>/<branding>vista/<instance>/env # for gtm/VistA
> environment variables.
Sorry, but I must have missed the e-mail where this was introduced. I
don't believe it was discussed at length.
Is "env" a file or a directory? If it's a file, what's the proposed
format? If it's a directory, what goes in it?
- Jon
Regards
-- Bhaskar
-------------------------------------------
$ cat env
# env - file to be sourced to create VistA environment
#
# This temporary version of the commands to set up the VistA
# environment assumes that the parent and child use the same
# version of GT.M.
export gtmver=`basename $PWD`
if [[ -d ../parent ]] ; then
pushd ../parent/$gtmver 1>/dev/null
source ./env
popd 1>/dev/null
fi
tmp=`dirname $PWD`
tmp0="$PWD/o($PWD/p $PWD/r $tmp/p $tmp/r)"
# If there is an existing $routines, this environment comes before it
if [[ -n $routines ]] ; then
export routines="$tmp0 $routines"
else
export routines="$tmp0"
fi
# If a mumps.dat exists (vs. mumps.dat.gz) then this a usable environment
if [[ -f $PWD/g/mumps.dat ]] ; then export vista_home=$tmp ; fi
source gtm/gtmprofile
export gtmgbldir=$PWD/g/mumps.gld
export gtmroutines="$routines $gtm_dist"
-------------------------------------------
fred trotter wrote:
> His name is Ignacio, (not sure if Ignatio is a term of affection or a typo)
I suppose I could conjure up either, but it's just a brain fart.
> Ignacio is coding important tools that VistA novices like myself have
> been clamoring about for years. His work will form the basis of
> countless "introductions" to VistA, as a result his decision on the
> matter will likely form the basis of a de facto standard.
Maybe. We can hope.
> Ignacio is already asking for a vote on the issues that he needs
> decisions on. Asking him to "slow down" while we discuss this is
> insulting to him and disrespectful of his very valuable time.
It is no such thing. It is just a different perspective.
Ignacio must budget his time, you and I our own, which has <some> value, too.
> I understand that some of us have valid, differing opinions on this,
> and many have already spoken up. Now it is time for some of you
> lurkers to actually vote.
> If you do not, then please recognize that
> there will be countless people...
World domination hangs in the balance?
> ...who assume that Ignacio's way is
> "the way", you will see installations done in the fashion that he is
> recommending.
Sure 'nuf. My own approach is influenced by the current discussion
here and will
be further altered by Ignacio's work. But we are talking about de facto,
not ANSI or MDC.
> How do you want Ignacio to handle these issues? SNOFHYP
Ok, Fred.
My position is simple. I am not as technically competent as many on
the list. My
suggestions therefore tend to nibble at the edges and have limited
effect that I
do not insist are needed to determine our future. (e.g. I like /routine,
/object, /global better than /routines, /objects, etc. ) big hairy deal.
But this thing needs to meet Bhaskar's standards and Mehling's and Anthracite's
so I'll give my proxy to Bhaskar.
I think you are under-estimating the value of what Ignacio will be
releasing soon. The culmination of his "Intracare" posts will
essentially be the missing manual to VistA allowing hundreds of mere
Linux people, (like myself) to actually deploy working instances.
He has to configure his recommendation somehow. That configuration,
right or wrong, will become many people initial experience with VistA.
>
> > Ignacio is already asking for a vote on the issues that he needs
> > decisions on. Asking him to "slow down" while we discuss this is
> > insulting to him and disrespectful of his very valuable time.
>
> It is no such thing. It is just a different perspective.
> Ignacio must budget his time, you and I our own, which has <some> value, too.
It is not the same. I am payed to think about these issues. Ignacio is
not merely -not- paid, but donating his time on this. He is an MD, and
because of our crazy reimbursement system, his time is basically his
livelihood. Every hour he spends doing this instead of seeing patients
is a substantial loss of income. I am not trying to imply that your
time is valueless. Just that his time needs to be respected.
>
> > I understand that some of us have valid, differing opinions on this,
> > and many have already spoken up. Now it is time for some of you
> > lurkers to actually vote.
> > If you do not, then please recognize that
> > there will be countless people...
>
This is where I think people get hung up on this... I perfectly respect
the need to have guidance and consensus from the community on "how
should I set this up if I'm plan to stamp out a bunch of these." I'm
struggling with the same exact problem now with OpenVista on GT.M, and
this tremendous response from people with live implementation experience
on GT.M has been very helpful.
But the idea of a VSB implies that no matter who you are, you must set
things up like the VSB dictates. And that's I think what scares people.
The document could be both useful and yet non-intimidating if we
approached it like "this is what WorldVista recommends" with no "/opt
or /srv or /var or /var/opt" language in it, but instead recommend one
thing and handle the deviations with language like "others commonly
deviate from the recommendation by doing this". We could then revise
the document as problems are found so that our "best practice" will
continue to evolve. But at least this way, no one will be "standards
in-compliant" come Monday morning, and there will be wiggle room for
people to try new things and suggest revisions to the best practice.
- Jon
Definition:
SNOFHYP Speak Now or Forever Hold Your Peace (chat/email)
FWIW (For What It's Worth) I vote with Ignacio, and I even think I
mostly understand his proposal.
My take on Bhaskar vs Ignacio is that I deeply admire both. But
Bhaskar is paid by the banking community, which is not a bad thing at
all, but they may not be the best model at this time for VistA. I
[KSB] Yes, it would a smaller footprint in the 2-3 instance setting (it
can't have a smaller footprint in the 1 instance setting).
"Significantly" is a subjective term.
It would have a smaller backup footprint as well.
Regards
-- Bhaskar
P.S. The best way to get VistA out to the thousands of non-IT savvy
small practices out there is to deploy VistA as an appliance, with
secondary instances in a data center. I can envision the server in the
data center easily having hundreds, if not thousands of VistA instances.
Significance takes on a whole new meaning when looking at high levels
of scalability.
_____________
I mean between 400 to 500MB saved (shared) per instance. You still need
a database and journal files for each instance. You are going to have
to benchmark it yourself. I think I should stop answering these posts
because I am dying a death of a thousand cuts from answering all these
posts.
I will try to update my directory layout proposal with notes for shared
libraries and start adding sections on best practices.
Regards
-- Bhaskar
On 01/29/2009 12:02 PM, I, Valdes wrote:
>
> So a 2GB machine should run rather well with little or no virtual
> memory swapping for 3 concurrent non-re-entrant instances and 3
> concurrent yes re-entrant instances per your spec would take about 500
> Mb and run very comfortably on a 1Gb machine with little to no virtual
> memory use? Next up would be how many concurrent logged in users such
> machines can handle.
>
> -- IV
_____________
-- --------------------------------------- Jim Self Systems Architect, Lead Developer VMTH Information Technology Services, UC Davis (http://www.vmth.ucdavis.edu/us/jaself) --------------------------------------- M2Web Demonstration with VistA (http://vista.vmth.ucdavis.edu/) ---------------------------------------
On 01/29/2009 09:11 AM, ssw0213 wrote:[KSB] The wtf program is often helpful at translating acronyms:
Definition:
SNOFHYP Speak Now or Forever Hold Your Peace (chat/email)
FWIW (For What It's Worth) I vote with Ignacio, and I even think I
mostly understand his proposal.
$ wtf fwiw
FWIW: for what it's worth
$ wtf snofhyp
Gee... I don't know what snofhyp means...
$
<...snip...>
[KSB] My recommendations are based on what is best practice for GT.M. Our own banking software does not necessarily follow my recommendations. FWIW, I don't compromise on what I think is right. I may compromise by going along with what a group I belong to decides to do, but I never compromise on what I think is right. A compromise is like walking down the middle of the road, in the words of one of my favorite members of Congress.My take on Bhaskar vs Ignacio is that I deeply admire both. But
Bhaskar is paid by the banking community, which is not a bad thing at
all, but they may not be the best model at this time for VistA. I
Regards
-- Bhaskar
There is no "Bhaskar vs. Ignacio" at all, just "Ignacios timing" and
"Bhaskars timing", I have been trying to ensure that both schedules
can be accommodated.
Before Bhaskar ran out of steam for this, he gave a pretty substantial
amount of material to work with, and that material is still being
integrated by Ignacio.
We have also put forward a plan to allow Bhaskar, and others, to
continue to contribute meaningful modifications moving forward. We
just feel under the gun on this, and I think Bhaskar is right, just
because we are under the gun, does not mean that he should be. So we
are trying to find ways to allow us to meet deadlines, while ensuring
that we do not lose valuable insights permanently.
No disrespect intended at all. We are keenly aware of how critical GTM
and Bhaskar are to this community!
-FT
On Thu, Jan 29, 2009 at 8:12 PM, Jim Self <jas...@dcn.davis.ca.us> wrote:
> Bhaskar's recommendations have always been exceptionally solid and forward
> thinking in my view. The little bits of best practice from the banking
> industry that I have gleaned from past discussions with him, suggest to me
> that they are far ahead of the medical community in areas of systems
> management and in recognition of the critical importance of IT to overall
> institutional viability.
>
> Without them and Bhaskar's contribution specifically there would most likely
> be no WorldVistA and no viable open source VistA platform in existence at
> this time - essentially nothing of VistA outside the VA.
>
> K.S. Bhaskar wrote:
>