Hi John,

It sounds interesting, and looks like parts of it can be used in Alchemi's management of appdomains for running user's applications, and of course...we would definitely want you to contribute ideas / code / anything you can, towards Alchemi :)

Currently we have a simple way of unloading an application domain: it is done when the manager informs the executor that the "GApplication" is complete : meaning that no further jobs would be sent to the Executor as part of THAT GApplication. Of course, for another GApplication, a new app domain would be loaded.

So do you think this model would be too restrictive / insufficient? Is lease-time a better way of managing app domains on the Executor? If so, how would the manager determine the lease time for an app domain: please bear in mind, that a user's GApplication can actually have completely independent tasks i.e GThreads or GJobs, which could even do completely different things, reference different dlls, run for variying lengths of time, all of which will not be known by the manager beforehand.

Ideas anyone?

Cheers
Krishna...


John Sheppard wrote:

Krishna,
That is good to hear. I have a fairly robust 'plugin' framework that does something similiar to what Alchemi is doing. I actually manage lease-lifetime on the appdomains via the marshal-by-ref controller that gets loaded into each app domain that then loads up the plugin(s)/work units. The appdomain has fairly restricted access to the system. This allows for a 'plugin' or 'package' to hang around until its lease times out. If another work package comes in during the time that the lease is alive it will go ahead a service the request. If the lease expires it will unload the app domain there by reclaiming resources. The way in which I am currently using it is for reporting using Active Reports. It was not designed to be remotable but we worked around that issue by encapsulating the report controller as a remoting service that controls the plugins/reports by loading them in their own app domain and just passing back serialized active report content that is then loaded up by whatever client called it. The manager also handles the caching of the plugins in their own folder and monitors the original non-cached location for updates so that if a report is replaced it will stop using the old version and let it lease expire while at the same time caching and loading the new version which allows us to add and update plugins on the fly without having to restart the system. Would some similiar mechanism be of interest to Alchemi? If so I would be glad to contribute the knowledge that I have gained in my current endeavors.

John

On 2/21/06, *Krishna* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hi John,

    Alchemi already does exactly that!
    Run each Grid application in a seperate Application domain (on the
    executor) created dynamically at runtime;
    It has always done that, right from the beginning (It is not just
    .Net2.0, even .Net 1.1 gives you good control over AppDomains.). This
    way we already do have a simple sandbox on the executor, however
    there is  a need to enforce proper permissions on the sandbox.
    Currently
    the appdomain created on each Executor gives the app full permissions.
    This is actually where improvements need to be made.

    Cheers
    Krishna.

    Jonathan Mitchem wrote:

    >John,
    >
    >Do you have any references, books or web, that discuss .NET 2.0's
    >ability to use app domains in that manner?
    >
    >Jonathan
    >
    >On 2/21/06, John Sheppard <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:
    >
    >
    >>Krishna,
    >>   Another approach you might want to look into is to run each
    grid app in
    >>it's own appdomain and limit the abilities of that app
    domain.  You can lock
    >>it down to a specific directory if the executor service is
    dropping data
    >>files to given directories for a grid app.  You could lock out
    app domains
    >>from using the System.Net namespaces there by limiting phone
    home abilities
    >>and you can make the executor more resilent by allowing the
    offending app
    >>domain to die upon an unhandled exception rather than bringing
    down the
    >>executor.  You could also take advantage of caching grid apps on
    the client
    >>machine where you wouldn't have to push or sip that app if you
    already have
    >>the dlls on your system.  .NET 2.0 does a very good job of
    allowing you set
    >>up Sandboxing environs using app domains.
    >>
    >>John
    >>
    >>
    >>On 2/21/06, Krishna < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:
    >>
    >>
    >>>Hi Jonathan,
    >>>
    >>>I guess a simple way to prevent "grid-viruses", would be to use
    the .NEt
    >>>CAS (Code access security)
    >>>feature. We will need to implement some code in Alchemi to run
    user code
    >>>under reduced priveleges inside a sand-box kind of environment on
    >>>an Executor.
    >>>
    >>>Cheers
    >>>Krishna.
    >>>
    >>>Jonathan Mitchem wrote:
    >>>
    >>>
    >>>
    >>>>I've been thinking about security recently, and started
    questioning
    >>>>the security of a distributed system such as Alchemi.
    >>>>
    >>>>Is there anything that actually "constrains" the grid
    environment on a
    >>>>machine so that a user doesn't allow some sort of distributed
    malware
    >>>>to damage their machine?
    >>>>
    >>>>For instance, an application that reads the files on the machine
    >>>>hosting the Executor, searches for certain files or filetypes
    (like,
    >>>>password and private key files), and then sends them to a
    specified
    >>>>address.  And maybe even proceeds to break their encryption.
    >>>>
    >>>>Or, an application that creates several threads so that every
    machine
    >>>>has a copy of the required DLLs, which subsequently proceeds
    to remove
    >>>>critical system files from every machine.
    >>>>
    >>>>Is there anything to prevent such sort of usage?  And if not
    (since
    >>>>I'm presuming there isn't), how would we go about preventing such
    >>>>damage?
    >>>>
    >>>>
    >>>>Jonathan
    >>>>
    >>>>
    >>>>-------------------------------------------------------
    >>>>This SF.net email is sponsored by: Splunk Inc. Do you grep
    through log
    >>>>
    >>>>
    >>files
    >>
    >>
    >>>>for problems?  Stop!  Download the new AJAX search engine that
    makes
    >>>>searching your log files as easy as surfing
    the  web.  DOWNLOAD SPLUNK!
    >>>>
    >>>>
    >>>http://sel.as-us.falkag.net/sel?cmd=k&kid3432&bid#0486&dat1642
    <http://sel.as-us.falkag.net/sel?cmd=k&kid%103432&bid#0486&dat%121642>
    >>>
    >>>
    >>>>_______________________________________________
    >>>>Alchemi-developers mailing list
    >>>>[email protected]
    <mailto:[email protected]>
    >>>>
    >>>>
    >>>>
    >>https://lists.sourceforge.net/lists/listinfo/alchemi-developers
    >>
    >>
    >>>>
    >>>>
    >>>>
    >>>
    >>>-------------------------------------------------------
    >>>This SF.net email is sponsored by: Splunk Inc. Do you grep
    through log
    >>>
    >>>
    >>files
    >>
    >>
    >>>for problems?  Stop!  Download the new AJAX search engine that
    makes
    >>>searching your log files as easy as surfing the  web.  DOWNLOAD
    SPLUNK!
    >>>
    >>>
    >>>
    >>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
    <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642>
    >>
    >>
    >>>_______________________________________________
    >>>Alchemi-developers mailing list
    >>>[email protected]
    <mailto:[email protected]>
    >>>
    >>>
    >>>
    >>https://lists.sourceforge.net/lists/listinfo/alchemi-developers
    >>
    >>
    >>
    >>--
    >>Life should NOT be a journey to the grave with the intention of
    arriving
    >>safely in an attractive and well preserved body, but rather to
    skid in
    >>sideways, paddle in one hand, beer in the other, body thoroughly
    used up,
    >>totally worn out and screaming "WOO HOO what a ride!"
    >>
    >>
    >
    >
    >-------------------------------------------------------
    >This SF.net email is sponsored by: Splunk Inc. Do you grep
    through log files
    >for problems?  Stop!  Download the new AJAX search engine that makes
    >searching your log files as easy as surfing the  web.  DOWNLOAD
    SPLUNK!
    > http://sel.as-us.falkag.net/sel?cmd=k&kid3432&bid#0486&dat1642
    <http://sel.as-us.falkag.net/sel?cmd=k&kid%103432&bid#0486&dat%121642>
    >_______________________________________________
    >Alchemi-developers mailing list
    > [email protected]
    <mailto:[email protected]>
    >https://lists.sourceforge.net/lists/listinfo/alchemi-developers
    >
    >
    >
    alche




--
Life should NOT be a journey to the grave with the intention of arriving safely in an attractive and well preserved body, but rather to skid in sideways, paddle in one hand, beer in the other, body thoroughly used up, totally worn out and screaming "WOO HOO what a ride!"




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
alchemi-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alchemi-users

Reply via email to