← Back to team overview

ubuntu-phone team mailing list archive

Re: Applications spawning other Applications

 

On Sun, Jul 21, 2013 at 8:57 AM, Thomas Voß <thomas.voss@xxxxxxxxxxxxx> wrote:
> Hmmm, I think applications knowing one another's names and assuming
> them to be available will result in tight coupling and introducing
> dependencies that we cannot resolve automatically. I would consider it
> similar to not relying on an interface to request functionality but
> instead relying on one possible implementation  of an interface.
>
> Thomas

If an application is supposed to run other application as part of its
functionality, it should know other app's "name". This is not much different
from requirement to know other app's absolute path to do fork() && exec().
Except that I believe using of "name" should be more secure.

An application to be spawned doesn't need to know any "names", if it is not
supposed to spawn anything in its turn.

Applications do not have to assume other app's availability, they must have
a possibility to check that.
Pseudo-code:
    if (isInstalled("com.google.chrome"))
        spawn("com.google.chrome")

I am not sure what dependencies you are talking about, but I can't imagine
what else Ubuntu would have to do except managing of a table of the installed
apps with apps' name=>path correspondence:
"com.google.chrome" => /path-to-container/chrome

Another example when one application can easily know other app's name is
software developed by one company:
- com.mozilla.firefox, com.mozilla.thunderbird, etc.
- com.libreoffice.writer, com.libreoffice.calc, etc.
Why LibreOffice suite may not know names of its bundled apps and hasn't an
ability to spawn them? I assume here that every application is placed in its own
confinement.


Follow ups

References