Autor Wątek: .NET Remoting komunikacja serwer -> klient / klient->serwer  (Przeczytany 1566 razy)

Offline kafor7

  • Użytkownik

# Lipiec 28, 2012, 22:55:12
Witam,

Potrzebuję napisać aplikację rozproszoną działającą mniej więcej na takiej zasadzie, że serwer zarządza całą aplikacją, a pozostałe maszyny służą tylko do obliczania pewnych wartości a następnie zwracają je z powrotem do serwera, który kontynuuje pracę po otrzymaniu wszystkich wyników od workerów.

W pseudokodzie wygląda to mniej więcej tak :

Serwer :

Main(){
    int n = 100000, numOfWorker = 1000;
    obj data[n];
    obj result[n];
    for(int i = 0; i < numOfWorker; ++i)
         Worker[i].Process(subArray[i * (n / numOfWorker), (i + 1) * (n / numOfWorker));
     for(int i = 0; i < numOfWorker; ++i)
         result += Worker[i].ReceiveResult();
    //Reszta Obliczeń
}

Wiem, że istnieje do tego typu obliczeń rónoległych dobra biblioteka MPI .NET, lecz mam z góry narzucony Remoting w .NET. Nie mam za bardzo pomysłu jak to wykonać w tej technologi, gdyż nie wiem jak serwer ma nakazać konkretnemu procesowi na zdalnej maszynie przetworzyć jakieś dane. Tutoriale co przeglądałem, to ukazywały, że to klient sam modyfikuje jeden globalny obiekt (tzw tryb singleton, tzn. istnieje jedyna kopia obiektu na serwerze) a nigdzie nie mogłem znaleźć przykładu by serwer zlecał coś do obliczenia klientom. (Pewnie dlatego, że jestem mało doświadczonym programistą w technologii .NET)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Esidar

  • Użytkownik

# Lipiec 29, 2012, 10:40:16
Nie bardzo rozumiem, na czym polega twój problem. Co to znaczy, że masz z góry narzucony Remoting ? Masz gotowe połączenie sieciowe serwera z klientami ? To wystarczy, że wyślesz im wszystkie potrzebne dane a potem w ten sam sposób karzesz im wykonać zadanie.