kompilator javac na stronie www

0

Witam,
Mam wykonać projekt do szkoły i nie wiem jak się do niego zabrać,

W czym jest problem:

Mam przygotować stronę www zawierającą pole gdzie użytkownik będzie mógł wprowadzić kod java/JSP następnie klikając na guzik kompiluj program powinien zostać skompilowany a wyniki kompilacji wyświetlony w przeglądarce (jeśli to możliwe),

  1. kompilator javac, - jak go zainstalować na serwerze np linuxpl.com czy jest to możliwe? (wchodzą do rozważenia sprawy bezpieczeństwa serwera więc podejrzewam że może z tym być problem)

  2. Czy ktoś kiedykolwiek próbował przygotować podobny projekt?

  3. Najlepiej jeśli strona www będzie znajdowała się w sieci, zastanawiam się jeszcze nad rozwiązaniem z własnym serwerem np Rassbery PI na linuxie, może tak łatwiej byłoby wykorzystać i zainstalować javac.

Na pewno należy kod pobrać od użytkownika przesłać POSTem do kompilatora, następnie dać kompilatorowi polecenie kompilacji, potem wynik pobrać z kompilatora i odesłać na stronę www.

Jeśli ktoś ma jakieś propozycje będę wdzięczny.

Mam nadzieję że dobrze opisałem problem,

1

A gdzie widzisz problem? Bo przecież sama logika takiej aplikacji jest trywialna. Przy czym faktycznie pewien problem może stanowić serwer gdzie to postawisz, oraz sandboxowanie takiego kodu.

0

Zgadza się, serwer musi mieć zainstalowane takie narzędzie (albo umożliwiać taką instalację, zakładając że należałoby korzystać z serwera u jakiegoś dostawcy) nie znam takiego. Może ktoś zna?

0

Do szkoły zatem w wersji najprostszej, bo w wersji PRO robi się to trochę inaczej:

  1. Klient przesyła kod.
  2. Kod jest wrzucany do bazy danych
  3. Wysyłane jest powiadomienie do farmy workerów, które wybierają jednego do obsługi zgłoszenia.
  4. Worker obsługuje zgłoszenie i output wrzuca do bazy.

Sam worker to tak naprawdę okrojony system postawiony na maszynie wirtualnej, gdzie w razie zwały po prostu ubija się go i startuje nową maszynę.

Warto też popatrzyć jak robi to Ideone.

1 użytkowników online, w tym zalogowanych: 0, gości: 1