Документ взят из кэша поисковой машины. Адрес оригинального документа : http://angel.cs.msu.su/projects/system/javadoc/server/Core.html
Дата изменения: Tue Dec 21 00:38:44 2004
Дата индексирования: Sat Apr 9 23:51:39 2016
Кодировка:
Core

server
Class Core

java.lang.Object
  extended byHttpServlet
      extended byserver.Core

public class Core
extends HttpServlet

Klass Core predstavlyaet soboj' yadro Sistemy Obrabotki E'ksperimental'nyx Dannyx, realizovannoe v vide servleta. Vse zaprosy ot klientov obrabatyvayutsya metodom doPost().

Author:
e.g.Orius
See Also:
doPost(HttpServletRequest req, HttpServletResponse resp), Serialized Form

Nested Class Summary
private  class Core.DaemonConnection
           
private  class Core.ReturnNeeded
           
private  class Core.ServerLogger
           
private  class Core.TaskScheduler
           
private  class Core.TaskStarter
           
 
Field Summary
(package private)  java.sql.Connection con
           
(package private) static java.util.Map daemonConnections
           
(package private) static int daemonIds
           
(package private) static boolean debug
          Flag otladki.
(package private) static java.lang.String localImportDir
           
(package private) static java.lang.String sysDBDriver
           
(package private) static java.lang.String sysDBLocation
           
(package private) static java.lang.String sysDBPassword
           
(package private) static java.lang.String sysDBUsername
           
(package private) static java.lang.String sysNCDir
           
(package private) static java.lang.String sysSSHDir
           
(package private) static java.lang.String sysWebPage
           
(package private) static java.util.Vector taskList
           
 
Constructor Summary
Core()
           
 
Method Summary
 void connectDB()
          Soedinyaemsya s sistemnoj' BD
 java.io.File createNewUniqueFile(UserInfo info, java.io.File directory)
           
 void doGet(HttpServletRequest req, HttpServletResponse resp)
          Metod doGet() perenapravlyaet brauzer na saj't Sistemy.
 void doPost(HttpServletRequest req, HttpServletResponse resp)
          Poluchaet zapros ot klienta, obrabatyvaet ego i vozvrashchaet rezul'tat.
 void ensureUserDir(java.io.File userdir)
          Proveryaet nalichie pol'zovatel'skoj' poddirektorii v sistemnoj' direktorii sxem netCDF.
private  void execAtHost(Task task)
           
private  void execAtHostHttp(Task task)
           
private  void execAtHostSsh(Task task)
           
private  void execAtHostSshSI(Task task)
           
private  void execCleanup(Task task)
           
private  void execException(java.lang.String message)
           
 void extractSchema(java.io.File fin, java.io.File fout)
          Metod extractSchema() vyrezaet sxemu iz faj'la NetCDF i soxranyaet ego v drugom faj'le.
private  java.lang.String[] fetchHosts()
           
private  java.lang.String[] fetchMethods(java.lang.String table)
           
private  void findHost(Task task)
           
private  Task[] getBackgroundList(UserInfo info, boolean justCompleted)
          Spisok fonovyx processov
private  java.lang.String[] getDataList(UserInfo info)
          Vozvrashchaet spisok faj'lov v pol'zovatel'skoj' direktorii.
private  void getFromHost(Task task)
           
 UserInfo getUserInfo(java.lang.String username, java.lang.String password)
          Metod getUserInfo() vybiraet iz BD informaciyu po pol'zovatelyu i osushchestvlyaet avtorizaciyu.
 java.lang.String getUserNCDir(UserInfo info)
          Vozvrashchaet imya pol'zovatel'skoj' poddirektorii v sistemnoj' direktorii sxem NetCDF.
 void init(ServletConfig config)
          Metod init() - inicializaciya servleta.
 void log(java.lang.String msg)
          Metod log() pishet soobshcheniya v servletnyj' log, no tol'ko esli ustanovlen flag otladki debug.
(package private)  java.lang.String parseErrors(java.sql.SQLException e)
          Sostavlyaet soobshchenie ob oshibke po ob~ektu SQLException.
private  void processNewData(Task task)
           
private  void putToHost(Task task)
           
 void sendResponse(GeneralResponse r, java.io.ObjectOutputStream out)
          Posylaet otvet klientu.
 void serveAuthRequest(AuthRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Obrabatyvaet zapros na avtorizaciyu.
 void serveAYTRequest(AYTRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Metod serveAYTRequest() obrabatyvaet zapros "Are You There?"
private  void serveCallDaemonRequest(CallDaemonRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveDeleteRequest(DeleteRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Obrabatyvaet zaprosy na udalenie dannyx
private  void serveDropDaemonRequest(DropDaemonRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveExecModuleRequest(ExecModuleRequest r, UserInfo info, java.io.ObjectOutputStream outStream)
          Obrabatyvaet zaprosy na vypolnenie metoda
 void serveGetBackgroundListRequest(GetBackgroundListRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Obrabatyvaet zaprosy na spisok fonovyx processov XXX Rename this legacy, there're no backgrounds...
 void serveGetDataListRequest(GetDataListRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Vozvrashchaet spisok dostupnyx pol'zovatelyu dannyx.
 void serveGetDataRequest(GetDataRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Vozvrashchaet klientu ukazannyj' netCDF-faj'l.
 void serveGetHostListRequest(GetHostListRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveGetHostLoadRequest(GetHostLoadRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveGetMethodListRequest(GetMethodListRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Vozvrashchaet klientu spisok dostupnyx emu metodov.
 void serveGetSchemaRequest(GetSchemaRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Vozvrashchaet klientu sxemu ukazannogo netCDF-faj'la.
private  void serveGiveDaemonDataRequest(GiveDaemonDataRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveImportRequest(ImportRequest r, UserInfo info, java.io.ObjectOutputStream outStream)
          Obrabatyvaet zaprosy na import faj'lov v Sistemu.
 void servePutDataRequest(PutDataRequest r, UserInfo info, java.io.ObjectOutputStream out)
          Poluchaet ot klienta ukazannyj' netCDF-faj'l.
 void serveStartDaemonRequest(StartDaemonRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
private  void serveSyncAndDeleteDaemonDataRequest(SyncAndDeleteDaemonDataRequest r, UserInfo info, java.io.ObjectOutputStream out)
           
 void serveUnauthRequest(java.lang.String reason, java.io.ObjectOutputStream out)
          Obrabatyvaet zaprosy, ne proshedshie avtorizaciyu.
 void serveUnknownRequest(java.io.ObjectOutputStream out)
          Obrabatyvaet neizvestnye zaprosy.
private  Core.DaemonConnection startDaemonAtHost(java.lang.String cgibin, java.lang.String daemonProgram)
           
private  boolean taskIsReadyForStart(Task task)
           
private  void watchForTaskRunning(Task task)
          For Standard Interface tasks only: checks for task status periodically.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

static final boolean debug
Flag otladki. Esli ustanovlen, v log pishetsya dopolnitel'naya informaciya.

See Also:
Constant Field Values

sysWebPage

static java.lang.String sysWebPage

sysDBLocation

static java.lang.String sysDBLocation

sysDBDriver

static java.lang.String sysDBDriver

sysDBUsername

static java.lang.String sysDBUsername

sysDBPassword

static java.lang.String sysDBPassword

sysNCDir

static java.lang.String sysNCDir

sysSSHDir

static java.lang.String sysSSHDir

localImportDir

static java.lang.String localImportDir

taskList

static java.util.Vector taskList

daemonConnections

static java.util.Map daemonConnections

daemonIds

static int daemonIds

con

java.sql.Connection con
Constructor Detail

Core

public Core()
Method Detail

log

public void log(java.lang.String msg)
Metod log() pishet soobshcheniya v servletnyj' log, no tol'ko esli ustanovlen flag otladki debug.


init

public void init(ServletConfig config)
          throws ServletException
Metod init() - inicializaciya servleta. Chitaet argumenty, peredannye servletu.

Throws:
ServletException

connectDB

public void connectDB()
               throws ServletException
Soedinyaemsya s sistemnoj' BD

Throws:
ServletException

doPost

public void doPost(HttpServletRequest req,
                   HttpServletResponse resp)
            throws ServletException,
                   java.io.IOException
Poluchaet zapros ot klienta, obrabatyvaet ego i vozvrashchaet rezul'tat. E'to - osnovnoj' metod servleta.

Throws:
ServletException
java.io.IOException

sendResponse

public void sendResponse(GeneralResponse r,
                         java.io.ObjectOutputStream out)
                  throws java.io.IOException
Posylaet otvet klientu. V kachestve otveta ispol'zuetsya klass GeneralResponse ili ego nasledniki.

Parameters:
r - Ob~ekt, posylaemyj' kak otvet.
Throws:
java.io.IOException - pri vozniknovenii oshibki vvoda/vyvoda.

serveAYTRequest

public void serveAYTRequest(AYTRequest r,
                            UserInfo info,
                            java.io.ObjectOutputStream out)
                     throws java.io.IOException
Metod serveAYTRequest() obrabatyvaet zapros "Are You There?", to est' prosto posylaet podtverzhdenie. E'tot tip zaprosa vveden dlya otladochnyx celej'.

Throws:
java.io.IOException

serveAuthRequest

public void serveAuthRequest(AuthRequest r,
                             UserInfo info,
                             java.io.ObjectOutputStream out)
                      throws java.io.IOException
Obrabatyvaet zapros na avtorizaciyu. V nastoyashchee vremya server vse ravno proveryaet parol' pri kazhdom zaprose, tak chto real'noj' neobxodimosti v takom zaprose net. No on, tem ne menee, vveden vo-pervyx, s pricelom na budushchee (ispol'zovanie sessij'), i vo-vtoryx, e'to udobno dlya klienta. Vozvrashchaetsya imya klassa - rabochego stola.

Throws:
java.io.IOException

serveGetDataListRequest

public void serveGetDataListRequest(GetDataListRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Vozvrashchaet spisok dostupnyx pol'zovatelyu dannyx.

Throws:
java.io.IOException

serveGetSchemaRequest

public void serveGetSchemaRequest(GetSchemaRequest r,
                                  UserInfo info,
                                  java.io.ObjectOutputStream out)
                           throws java.io.IOException
Vozvrashchaet klientu sxemu ukazannogo netCDF-faj'la.

Throws:
java.io.IOException

serveGetDataRequest

public void serveGetDataRequest(GetDataRequest r,
                                UserInfo info,
                                java.io.ObjectOutputStream out)
                         throws java.io.IOException
Vozvrashchaet klientu ukazannyj' netCDF-faj'l.

Throws:
java.io.IOException

servePutDataRequest

public void servePutDataRequest(PutDataRequest r,
                                UserInfo info,
                                java.io.ObjectOutputStream out)
                         throws java.io.IOException
Poluchaet ot klienta ukazannyj' netCDF-faj'l. XXX: E'to ad hoc!!! Rabotaet tol'ko v polnost'yu lokal'nom rezhime, inache otvalivaetsya!!!

Throws:
java.io.IOException

serveGetMethodListRequest

public void serveGetMethodListRequest(GetMethodListRequest r,
                                      UserInfo info,
                                      java.io.ObjectOutputStream out)
                               throws java.io.IOException
Vozvrashchaet klientu spisok dostupnyx emu metodov.

Throws:
java.io.IOException

fetchMethods

private java.lang.String[] fetchMethods(java.lang.String table)
                                 throws java.sql.SQLException
Throws:
java.sql.SQLException

fetchHosts

private java.lang.String[] fetchHosts()
                               throws java.sql.SQLException
Throws:
java.sql.SQLException

serveImportRequest

public void serveImportRequest(ImportRequest r,
                               UserInfo info,
                               java.io.ObjectOutputStream outStream)
                        throws java.io.IOException
Obrabatyvaet zaprosy na import faj'lov v Sistemu.

Throws:
java.io.IOException

serveExecModuleRequest

public void serveExecModuleRequest(ExecModuleRequest r,
                                   UserInfo info,
                                   java.io.ObjectOutputStream outStream)
                            throws java.io.IOException
Obrabatyvaet zaprosy na vypolnenie metoda

Throws:
java.io.IOException

serveStartDaemonRequest

public void serveStartDaemonRequest(StartDaemonRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Throws:
java.io.IOException

serveCallDaemonRequest

private void serveCallDaemonRequest(CallDaemonRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Throws:
java.io.IOException

serveDropDaemonRequest

private void serveDropDaemonRequest(DropDaemonRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Throws:
java.io.IOException

startDaemonAtHost

private Core.DaemonConnection startDaemonAtHost(java.lang.String cgibin,
                                                java.lang.String daemonProgram)
                                         throws ExecException
Throws:
ExecException

serveGiveDaemonDataRequest

private void serveGiveDaemonDataRequest(GiveDaemonDataRequest r,
                                        UserInfo info,
                                        java.io.ObjectOutputStream out)
                                 throws java.io.IOException
Throws:
java.io.IOException

serveSyncAndDeleteDaemonDataRequest

private void serveSyncAndDeleteDaemonDataRequest(SyncAndDeleteDaemonDataRequest r,
                                                 UserInfo info,
                                                 java.io.ObjectOutputStream out)
                                          throws java.io.IOException
Throws:
java.io.IOException

findHost

private void findHost(Task task)
               throws java.sql.SQLException,
                      ExecException
Throws:
java.sql.SQLException
ExecException

putToHost

private void putToHost(Task task)
                throws java.io.IOException
Throws:
java.io.IOException

execAtHost

private void execAtHost(Task task)
                 throws java.io.IOException,
                        ExecException,
                        java.lang.InterruptedException
Throws:
java.io.IOException
ExecException
java.lang.InterruptedException

execAtHostSshSI

private void execAtHostSshSI(Task task)
                      throws java.io.IOException,
                             ExecException,
                             java.lang.InterruptedException
Parameters:
task -
Throws:
java.io.IOException
ExecException
java.lang.InterruptedException

watchForTaskRunning

private void watchForTaskRunning(Task task)
                          throws java.io.IOException,
                                 ExecException,
                                 java.lang.InterruptedException
For Standard Interface tasks only: checks for task status periodically.

Parameters:
task -
Throws:
java.io.IOException
ExecException
java.lang.InterruptedException

execAtHostHttp

private void execAtHostHttp(Task task)
                     throws java.io.IOException,
                            ExecException
Throws:
java.io.IOException
ExecException

execAtHostSsh

private void execAtHostSsh(Task task)
                    throws java.io.IOException,
                           ExecException
Throws:
java.io.IOException
ExecException

getFromHost

private void getFromHost(Task task)
                  throws java.io.IOException
Throws:
java.io.IOException

processNewData

private void processNewData(Task task)
                     throws java.io.IOException
Throws:
java.io.IOException

execCleanup

private void execCleanup(Task task)
                  throws java.io.IOException
Throws:
java.io.IOException

serveGetBackgroundListRequest

public void serveGetBackgroundListRequest(GetBackgroundListRequest r,
                                          UserInfo info,
                                          java.io.ObjectOutputStream out)
                                   throws java.io.IOException
Obrabatyvaet zaprosy na spisok fonovyx processov XXX Rename this legacy, there're no backgrounds...

Throws:
java.io.IOException

getBackgroundList

private Task[] getBackgroundList(UserInfo info,
                                 boolean justCompleted)
Spisok fonovyx processov

Parameters:
justCompleted - Esli true, vozvrashchayutsya zavershennye zadachi (oni udalyayutsya iz spiska), esli false, vse zadachi.

serveDeleteRequest

public void serveDeleteRequest(DeleteRequest r,
                               UserInfo info,
                               java.io.ObjectOutputStream out)
                        throws java.io.IOException
Obrabatyvaet zaprosy na udalenie dannyx

Throws:
java.io.IOException

serveGetHostListRequest

public void serveGetHostListRequest(GetHostListRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Throws:
java.io.IOException

serveGetHostLoadRequest

public void serveGetHostLoadRequest(GetHostLoadRequest r,
                                    UserInfo info,
                                    java.io.ObjectOutputStream out)
                             throws java.io.IOException
Throws:
java.io.IOException

serveUnknownRequest

public void serveUnknownRequest(java.io.ObjectOutputStream out)
                         throws java.io.IOException
Obrabatyvaet neizvestnye zaprosy.

Throws:
java.io.IOException

serveUnauthRequest

public void serveUnauthRequest(java.lang.String reason,
                               java.io.ObjectOutputStream out)
                        throws java.io.IOException
Obrabatyvaet zaprosy, ne proshedshie avtorizaciyu.

Throws:
java.io.IOException

getDataList

private java.lang.String[] getDataList(UserInfo info)
                                throws java.io.IOException
Vozvrashchaet spisok faj'lov v pol'zovatel'skoj' direktorii.

Throws:
java.io.IOException

getUserInfo

public UserInfo getUserInfo(java.lang.String username,
                            java.lang.String password)
                     throws AuthorizeException
Metod getUserInfo() vybiraet iz BD informaciyu po pol'zovatelyu i osushchestvlyaet avtorizaciyu.

Throws:
AuthorizeException - esli avtorizaciya ne proj'dena

ensureUserDir

public void ensureUserDir(java.io.File userdir)
                   throws java.io.IOException
Proveryaet nalichie pol'zovatel'skoj' poddirektorii v sistemnoj' direktorii sxem netCDF. Esli voznikayut problemy, metod pytaetsya ix ustranit' i sozdat' direktoriyu.

Throws:
java.io.IOException - esli direktoriya ne sushchestvuet i ne mozhet byt' sozdana

getUserNCDir

public java.lang.String getUserNCDir(UserInfo info)
Vozvrashchaet imya pol'zovatel'skoj' poddirektorii v sistemnoj' direktorii sxem NetCDF.


createNewUniqueFile

public java.io.File createNewUniqueFile(UserInfo info,
                                        java.io.File directory)
                                 throws java.io.IOException
Throws:
java.io.IOException

extractSchema

public void extractSchema(java.io.File fin,
                          java.io.File fout)
                   throws java.io.IOException
Metod extractSchema() vyrezaet sxemu iz faj'la NetCDF i soxranyaet ego v drugom faj'le. E'tot metod vyzyvaetsya dlya kazhdogo novogo faj'la i ispol'zuetsya dlya sozdaniya lokal'nogo spiska dannyx kazhdogo pol'zovatelya. Sxemy posylayutsya klientam pri zaprose "GetDataSchema".

Parameters:
fin - isxodnyj' faj'l NetCDF
fout - faj'l, v kotoryj' nuzhno zapisat' sxemu
Throws:
java.io.IOException

doGet

public void doGet(HttpServletRequest req,
                  HttpServletResponse resp)
           throws ServletException,
                  java.io.IOException
Metod doGet() perenapravlyaet brauzer na saj't Sistemy.

Throws:
ServletException
java.io.IOException

parseErrors

java.lang.String parseErrors(java.sql.SQLException e)
Sostavlyaet soobshchenie ob oshibke po ob~ektu SQLException.


taskIsReadyForStart

private boolean taskIsReadyForStart(Task task)

execException

private void execException(java.lang.String message)
                    throws ExecException
Throws:
ExecException