在远程slave上执行java方法和应用程序

时间:2015-02-10 19:23:56

标签: java reflection rmi processbuilder

我希望能够拥有一个可以执行以下操作的客户端/服务器应用程序:

  1. 让客户端向远程服务器发送“java任务指令”(例如方法名称,要运行的类或要执行的应用程序)
  2. 服务器接收任务执行细节并启动新的JVM并加载类路径等......
  3. 服务器执行任务
  4. 服务器将任务响应存储在缓存中
  5. 关闭新JVM
  6. 服务器继续等待可以按名称
  7. 引用缓存中的对象的更多可执行任务详细信息

    如果我不想使用RMI,在Java中实现此功能的最佳API是什么? 我想通过套接字建立连接还是有更简单的API?

    据我所知,如果我错了,请更正我,我不能使用ProcessBuilder来执行静态方法或获得响应。

    提前致谢

    更新

    我是线程和RMI的新手,所以我怎么做才能让客户端获取工厂存根来创建一个新对象,该对象将包含在服务器上执行任务所需的行为,即对象代码正在自己的线程中执行?

    我想要这种行为,以便两个不同的客户端在不同的线程中同时执行两个不同的任务,而无需重用相同的远程对象实例。这是一些简单的示例代码,以帮助解释我想要的内容

    因子接口

    public interface Factory extends Remote
    {
        public Executor create() throws RemoteException;
    }
    

    工厂实施

    public class FactoryImpl implements Factory
    {
        public FactoryImpl()
        {}
    
        @Override
        public Executor create() throws RemoteException
        {
             //create a new executor in another thread
        }
    }
    

    执行者界面

    public interface Executor extends Runnable, Remote
    {
        public String executeTask(String pClass, String pMethod, List<String> arguments) throws RemoteException;
    
    }
    

    我是否只想创建/启动一个实例化执行者对象的新Runnable类?

0 个答案:

没有答案