/* * cvmServ3.java * --- CVM server servlet invoking Local_cvm * * 23rd,March,1997 -- Ver1.0 * // ver1.1 : 30th,March,1997 // * test on IBM machines // * attach port number when invoke local machines // * passing paramters from master servlet // // ver1.2 : 8th,April,1997 // * upgrate on Web-Server-Beta version // * modified to related API // // ver1.2.1: 23rd,May,1997 // * check ACL running status // // ver1.3 : 6th,June,1997 // * pass all test for several tasks (SOLARIS) // (mSQL version) // ver1.4 : 26th,June,1997 // * support socket connection to ACL */ import java.io.*; import java.net.*; import javax.servlet.*; public class cvm3 extends GenericServlet { OutputStream out = null; Server_Pll3 servercvm = null; ACL_INV acl_invoke = null; int port = 40000; int ACL_port = 50000; public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { //+++receive user information from ADL+++++ String userid = req.getParameter("userID"); String appid = req.getParameter("applID"); String DB_IP = req.getParameter("DrepIP"); String DB_port = req.getParameter("DrepPort"); String DB_ADMIN = req.getParameter("DrepDBA"); String AESServHost = req.getParameter("AESServHost"); String AESPortNo = req.getParameter("AESPortNo"); System.out.println("userID received from ADL : " + userid); System.out.println("appID received from ADL : " + appid); System.out.println("DrepIP received from ADL : " + DB_IP); System.out.println("DrepPort received from ADL : " + DB_port); System.out.println("DrepDBA received from ADL : " + DB_ADMIN); System.out.println("AESServHost received from ADL : " + AESServHost); System.out.println("AESPortNo received from ADL : " + AESPortNo); // set "RUN" status to the flag flag set_run_Serv set_run_flag = new set_run_Serv(userid,appid); // set ACL not-ready signal ACL_not_ready A1 = new ACL_not_ready(userid,appid); //++++ get current time +++++++++++++ cur_t d = new cur_t(); long time0 = d.work(); //++++ setup respond information res.setContentType("text/html"); PrintWriter out = new PrintWriter(res.getOutputStream()); String title = new String("Runtime Output of the VDCE"); out.println(" " + title + "<"); //+++++ get the host name for the server ++++ InetAddress local_addr; String local_name=null; String server_IP = null; try { local_addr = java.net.InetAddress.getLocalHost(); local_name = local_addr.toString(); int len = local_name.length(); char[] local_name_ch = local_name.toCharArray(); int begIndx=0 , i ; for(i=0;ifinished"); out.println(""); out.flush(); out.close(); destroy(); // System.exit(0); } // reset client machine "RUN" flag if no "STOP" action // lauch stop_servlet with userid, appid,flag = RUN set_stop_client reset_c = new set_stop_client(userid,appid,"RUN",DB_IP,DB_port); reset_c.work(); // set ACL ready signal and write ready in ACL_ready file. ACL_ready A2 = new ACL_ready(userid,appid); out.println("Domain Schedule has done... "); out.flush(); //+++++++ envoke server-CVM +++++++++++++++ if(servercvm!=null) port+=40; servercvm = new Server_Pll3(port,userid,appid,time0,DB_IP,DB_port); System.out.println("SC:port of server cvm is " + port); System.out.println("SC:server cvm work is going to be called"); servercvm.work(); System.out.println("SC:server cvm work called"); out.println("reading ACT table... "); out.flush(); servercvm.read_ACT(); // lanuch local cvms using URL and connect to them. if necessary, send CIT/ACT //using the socket connection. out.println("Connecting to Local CVMs ... "); out.flush(); servercvm.URL_sock_conn(); out.println("Waiting DVM is ready to start send-recieve... "); out.flush(); servercvm.wait_finish(); out.println("Update DB the set-up time..."); out.flush(); servercvm.get_set_up_time(); out.println("waiting for DVM finish computation ..."); out.flush(); servercvm.wait_cmplt(); //++++++++++ server-CVM finishs ++++++++++++++ out.println("

finished"); out.println(""); out.flush(); out.close(); } public String getServletInfo() { return("CVM invoking servlet"); } }