[Info-vax] OpenVMS development tooling (was: Re: VSI strategy for OpenVMS)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Sep 29 13:55:17 EDT 2021
On 2021-09-29 17:27:22 +0000, Dave Froble said:
> I'm not going to claim that I understand everything being discussed
> because I'm not familiar with some of the tools, concepts, and such.
As a specific example, installing an app that creates an app-specific
username and UIC and that then wants to set up its own environment and
protect its files is tough to reliably automate on OpenVMS. That
usually gets tossed over to some other procedure, and—best case—the
user then has to enter a bunch of prompts for this data, which—best
case—the app then has to verify that no collisions occur.
> It is my opinion that as soon as one counts on some tooling, concepts,
> capabilities that one doesn't totally control and understand that total
> control of an application isn't possible. I've never done so. I've
> always thought that an application design must include understanding
> and being in control of the environment in which the application exists.
I'd like to, but the environments—even OpenVMS itself—have gotten past
what most of us can keep track of. Apps and platforms and networks have
gotten big enough that we can only hope to keep hunks in focus at any
one time.
> Long ago I designed applications in a manner that would let me run
> hundreds of copies of an application, totally separate from each other,
> on a single computer system. Of course, the system would never support
> such numbers, but, the environments would be controlled in a manner to
> guarantee there would not be any collisions between each copy of the
> application. Not talking small stuff, I'm talking about robust ERP
> systems.
Yeah, that's naming coordination and job control and the rest. All
possible to implement. But it can make for complex app code, or—as
happens more often than not—no code and a pile of documentation for the
installer to follow and to deconflict. Or for guests, as many of us are
probably heading for. VSI will probably be discussing how x86-64 guests
will be licensed, but that's still a year or three ahead for many of us.
> In practice, multiple copies of the ERP system, with a few exceptions,
> doesn't happen. The computer systems themselves just don't have the
> resources to do so. But, the design still would support such activity.
Typical for many are old and production and new and development
versions for instance, and—as I've experienced—the occasional username
or logical name or UIC collisions across disparate and utterly
unrelated packages. Some of which will be silent errors. Or weird
errors.
> Does it take some individual work on each copy? Sure, when they are
> sharing resources such as disks. The way I understand containers, they
> also need similar setup. TANSTAAFL
The difference with having common code is that most of the easy
app-separation mistakes have already been made.
> So, for me, I'm not sure I understand all the commotion about GUIDs,
> containers, sand boxes, and such.
It's more about automation, and working to reduce the cognitive load on
the developers or support folks or the end-user folks. Coding an app to
do what you did is that effort, all within the app. Having similar app
coordination implemented in the underlying platform is what is being
discussed.
Preferably with better means to isolate and protect apps against
developer-created mistakes, or support- or end-user folks' mistakes,
too. App and server reliability and robustness, in marketing terms.
This whole area is part of why robust OpenVMS installers stink to
write, and part of why isolating potentially-vulnerable app servers (or
components of apps, such as parsers) is difficult.
Simple installers and simple configuration scripts are somewhat faster
to write, and suitable for isolated apps and dedicated servers.
But when we're dealing with ever-increasing numbers of
dependencies—yeah, we'd all like less of that, but that's not the path
any of us are on—problems and collisions are inevitable.
And each of us would really rather not have to learn each app's own way
of doing this coordination, for those apps that do it for themselves
(VSI SSL/TLS sorta-kinda tries this, Oracle Rdb does pretty well, some
others leave it all to the installer.)
> I will add that I'm not into using lots of off-the-shelf applications.
> Much more into very specific designs.
Downside there is owning lots of code that then has to be maintained
and updated. Which can then have knock-off effects around—for
instance—online backups of app data using BACKUP or other tools.
Features that would be useful, but that never get near the top of the
development schedule. Some databases can do live backups, while that's
much less common with apps using RMS.
> Regardless, there are already capabilities that exist for setting up
> applications, should the application design allow use of said
> capabilities, that will co-exist.
>
> And yeah, I really like to use logical names ...1
I've chased a whole bunch of logical name collisions around, over the
years. Met several that collided with OpenVMS verbs the developers
didn't know about, too.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list