konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

cześć..

od sierpnia zaczynamy z kolegą pisać dość, nawet bardzo duży projekt. Mamy duże doświadczenie jeśli chodzi o pisanie aplikacji jednostanowiskowych głównie po C++ / Visual C++ / .NET, jednak o sieciowym programowaniu wiele nie wiemy
Z wielu względów do tego projektu wdrażamy się w Jave ( co nie jest naprawdę dla nas na szczęście problemem ) i tą aplikację oprzemy o Javę.
Cała koncepcja projektu, opuszczając zbędne szczegóły:
- aplikacja kliencka uruchamiana na komputerach użytkowników
- aplikacja? na serwerze, która będzie pośredniczyła między aplikacją kliencką a bazą MySQL ( bo zdalny dostęp bezpośrednio do bazy danych MySQL chyba nie byłby zbyt dobry, a poza tym chyba dość utrudniony prawda? czy się mylimy? )

Aplikacje klienckie muszą mieć zdolność zarówno dodawania do bazy jak i częstego odczytywania z niej informacji, potrzebny będzie także moduł "czatu" między użytkownikami którzy w danym momencie będą mieli uruchomioną aplikację.

W kierunku jakich rozwiązań iść ? z czego się ich uczyć ? ( nie mówię o nauce Javy, do tego książki już wybraliśmy i mamy )
Mile widziane jednak szersze wypowiedzi niż "webservice" bo na dzień dzisiejszy to mi prawie nic nie mówi ( jeśli chodzi o implementację )
Maja Miarecki

Maja Miarecki Senior Frontend
Developer

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Osobiscie odradzam uklad na zasadzie aplikacja kliencka odpalana na maszynie klienta + aplikacja na serwerze... Najsensowniejszym rozwiazaniem jest zrobienie aplikacji opartej na WWW. Klient otwiera przegladarke i ma dostep do tego, do czego ma uprawnienia.

Takie rozwiazanie jest stosowane np w duzych aplikacjach wykorzystywanych w firmach ubezpieczeniowych. Im mniej aplikacji posredniczacych, tym rozwiazanie jest bezpieczniejsze i prostsze w utrzymaniu.

Rozwiazanie mozna oprzec o rozwiazania open-source (sadzac po MySQLu raczej idziecie w te strone). Mozna wykorzystac JBossa lub Tomcata, Maven/Ant (jakos osobiscie wole Mavena). Jako warstwe komunikujaca sie z baza polecam Hibernate'a, a calosc oprzec na Spring MVC. I wszystko macie. W warstwie prezentacji (wybierzcie sobie jakis system szablonow) mozna uzyc AJAXa, zeby czesc rzeczy zautomatyzowac (upodobnic do aplikacji okienkowej).

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

tylko że w naszym projekcie Maju ważna jest bardzo własnie sprawa działania na komputerze klienta.. ze względów ergonomicznych, praktycznych... jak w tym kierunku proponowałabyś to rozwiązać ? myśleliśmy o napisaniu programu php, do którego program u klienta wysyłałby zapytania w XML, ten komunikowałby się z bazą i zwracał mu wynik w XML...

wejdź proszę na http://www.fabri.mariaczi.com

o tym jest mowa. i doradź:)

i przy takich rozwiązaniach jak Ty proponujesz musielibyśmy jakimś cudem postawić swój serwer.. o dużej przepustowości.. a na to nas nie stać..Marek Urbanowicz edytował(a) ten post dnia 20.06.08 o godzinie 23:27

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

jezeli tak to moze po prostu jakis webservice do ktorego bys pukal sobie aplikacja kliencka np AXIS, JBoss WS oraz JAX-2.0 tz jest tego wiecej ale o tym cos slyszalem. Generalnie, axis jest dosc prosty w nauce, i mozna go traktowac jako fajna technologie szkoleniowa chodz spotykalem sie z ofertami pracy co szukali z axis. Na stronie axis jest nawet bardzo fajny tutorial gdzie wlasciwie w ciagu 30 min mozna zrobic pierwszy webservice. JAX-2.0 nie pisalem w tym, ale dosc donrze o tym pisali na pl.comp.lang.java i generalnie jakbys chcial uzyskac jakies porownanie tych technologii od strony praktycznej, to odsylam na ta grupe.

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

ale jak z hostowaniem tego ? na czym to się opiera? bo chcemy korzystać z normalnego konta hostingowego

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

przykładowo na serwerze macie:
mysql server + mysql connector do javy + java

stawiacie tomcata z projektu apacha, i rozszerzacie go o AXIS2,

wtedy na tomcacie macie odpalona usługę serwera.

i teraz klient jest świetny bo może być dowolnie, c# lub java lub obiektowe, które ma wbudowane usługi sieciowe - łatwo szybko i na temat

linki do szukania:
j2ee, axis, tomcat, mysql connector, web services(usługi sieciowe), netbeans

jeśli chodzi o same usługi sieciowe to już wikipedia daje radę:
http://pl.wikipedia.org/wiki/Web_service

chodzi o to że usługi sieciowe są jakby kolejną warstwą abstrakcji nałożoną aby ukryć takie szczegóły jak choćby połączenia sieciowe oraz umożliwić komunikację w rożnych systemach operacyjnych. wychodzi na to że odwołujesz się w c# do obiektu który jest z warstwy javy i to jeszcze daleko daleko bo serwer jest z gdańska a Ty klikasz we wrocławiu. bardzo przydatne, warto zajrzeć do zagadnień z technologii internetowych. :)

i warto sie w nie pobawić bo można nawet łatwo robić połączenia szyfrowane jeśli potrzeba.

jakoś poleci - życzę sukcesów
Michał Filip Plewka

Michał Filip Plewka Team leader / Java
developer

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Do komunikacji polecam Ci Axis2, stawiasz Tomcata, deployujesz .war'a z axis'em, implementujesz swoje usługi w sposób naprawdę prosty i umieszczasz na serwerze. To będzie chyba najlepsze rozwiązanie, Tomcat jest bardzo lekki i powinien spełnić większość Twoich potrzeb.Michał Filip Plewka edytował(a) ten post dnia 21.06.08 o godzinie 07:43

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

i tutaj pojawia się problem, bo my chcemy to zahostować na normalnym koncie hostingowym :/ ... nie stać nas za bardzo na postawienie serwera, choć jeszcze na sam serwer dałoby radę, ale na łącze które da radę to nie..

aha. i jeśli już jakoś pomożecie mam nadzieję co z hostowaniem tego( bo oprócz javy potrzeba naprawdę dużej przestrzeni i dużego transferu ) to powiedzcie co musiałbym zainstalować sobie na kompie żeby zrobić sobie localhost do tworzenia tej aplikacjiMarek Urbanowicz edytował(a) ten post dnia 21.06.08 o godzinie 10:14

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

i powiedzcie proszę jakiś tok postępowania żeby to wszystko nas nie przerosło :) bo zaczynamy się bać:)
Zacheusz Siedlecki

Zacheusz Siedlecki Senior Java
Architect, Working
Manager

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Odezwij się na priv to dam Ci namiary na hosting wirtualny w Polsce z Tomcatem. Do celów developerskich zainstaluj sobie też Tomcata na swoim komputerze (wystarczy po prostu zainstalować MySQL + Tomcat).
O Tomcacie można powiedzieć, że to tak jakby odpowiednik Apache z php. To jest tylko kontener webowy. Jeśli Twój projekt ma być naprawdę duży to zastanowiłbym się nad poważniejszym serwerem aplikacji i zaprojektowaniem strony serwerowej aplikacji tak, żeby można było rozszyć ją na kilka serwerów. Jeśli to ma funkcjonować na uczelni to może rozważ postawienie dedykowanego-uczelnianego serwera pod to. Wtedy może popularny JBoss by wystarczył.

Jeśli nie masz czasu na naukę webserice'ów i jest to jakiś uczelniany projekt to jest jeszcze jedno rozwiązanie. Nie jest ono super, ale może Ci wystarczyć. Możesz po prostu z desktopowej aplikacji javowej łączyć się przez jdbc przez sieć z bazą mysql. Ze strony bezpieczeństwa musiałbyś oprzeć się na kontach użytkowników i uprawnieniach mysql. Do tego potrzebowałbyś hostingu wirtualnego gdzie masz użytkownika z prawami grant w mysql i na nim oprzeć administrację. Jest to dosyć niebezpieczne i niewygodne rozwiązanie bo wystawiasz port bazy na zewnątrz i w dodatku na wirtualnych hostingach często nie można zestawiać ssl z mysqlem, ale jeśli J2EE Cię przeraża to może wystarczyć. Wszystko zależy od skali.Zacheusz Siedlecki edytował(a) ten post dnia 21.06.08 o godzinie 13:53

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

nic mnie nie przeraża :)
bezpieczeństwo to podstawa w tego typu aplikacjach.

projekt jest dość spory .. znaczy będzie.. ma szansę zdobyć dość dużą popularność i z tego względu musimy od początku tworzyć go w tym kierunku.

koncepcja nasza na dzień dzisiejszy jest taka:
na serwerze stoi aplikacja Javy, która będzie posiadać ileś tam różnych metod wywoływanych zdalnie przez aplikację kliencką i będzie przekazywać wygodnie po prostu jakiś obiekt gotowy czy coś co znacznie ułatwi pracę, jeśli projekt się rozwinie to zbudujemy dodatkowy program na serwer do zarządzania całością projektu, a na początku dodanie nowej bazy, to że tak powiem będzie z ręki robione.

tomcata z mysql juz sobie zainstalowałem. mam pytanie. jak ma być przygotowana i zainstalowana aplikacja Javy żeby działała na tomcat, ale nie jako strona tylko jako aplikacja na serwerze.
co o tym sądzicie? chyba będzie to zarówno bezpieczne jak i wygodne ?Marek Urbanowicz edytował(a) ten post dnia 21.06.08 o godzinie 16:55

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Marek Urbanowicz:
nic mnie nie przeraża :)
bezpieczeństwo to podstawa w tego typu aplikacjach.

projekt jest dość spory .. znaczy będzie.. ma szansę zdobyć dość dużą popularność i z tego względu musimy od początku tworzyć go w tym kierunku.

koncepcja nasza na dzień dzisiejszy jest taka:
na serwerze stoi aplikacja Javy, która będzie posiadać ileś tam różnych metod wywoływanych zdalnie przez aplikację kliencką i będzie przekazywać wygodnie po prostu jakiś obiekt gotowy czy coś co znacznie ułatwi pracę, jeśli projekt się rozwinie to zbudujemy dodatkowy program na serwer do zarządzania całością projektu, a na początku dodanie nowej bazy, to że tak powiem będzie z ręki robione.

tomcata z mysql juz sobie zainstalowałem. mam pytanie. jak ma być przygotowana i zainstalowana aplikacja Javy żeby działała na tomcat, ale nie jako strona tylko jako aplikacja na serwerze.
co o tym sądzicie? chyba będzie to zarówno bezpieczne jak i wygodne ?Marek Urbanowicz edytował(a) ten post dnia 21.06.08 o godzinie 16:55

pracowalem troche na tomcat i tak kojarze ze do kontenera wrzucasz pliki war, jak napiszesz sobie zwykla aplikacje w java i zrobisz jar no to nie dostaniesz sie do niej przynajmniej ja nie kojarze zeby tak mozna bylo. Jezeli chcesz aplikacje wygladajaca jak okienka to moze skorzystaj sobie np z
http://www.eclipse.org/rap/ albo jakies GWT ale to i tak bedzie zawsze przez przegladarke.

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

mi właśnie zależy żeby do serwera nie szło się dostać w żaden sposób z przeglądarki.
tylko aplikacja klienta, przez odpowiedni port ma mieć możliwość połączenia się z aplikacją serwera i poproszenia go o coś tam..

jeden problem tylko mam..
czy i jak rozwiązać problem odświeżania...
użytkownik włącza program. loguje się. pobiera wszystko co zmieniło się od czasu jego ostatniego zalogowania.
i teraz pytanie czy: nawiązuje połączenie z serwerem, i serwer w momencie jakiejś zmiany w bazie danych, lub nowej wiadomości w komunikatorze ogólnym w jakiś sposób wysyła informację o tej zmianie ( czyli nowy news, nową wiadomość, info o nowym pliku itd ) do wszystkich podłączonych, czy aplikacja klienta sama odpytuje co jakiś czas ( różny w zależności od treści np. pliki co 5 minut, news'y co 10 minut, czat co minutę lub nawet 30 sekund ) ??
Drugie rozwiązanie chyba byłoby łatwiejsze.. i chyba aż tak bardzo nie chłonęłoby mocy serwera.. ? przecież to tylko proste zapytania SQL właściwie i zwrócenie odpowiedzi NULL albo jakiś tam obiekt czy coś..
Zacheusz Siedlecki

Zacheusz Siedlecki Senior Java
Architect, Working
Manager

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Ogólnie obserwując ten wątek i drugi w którym dyskutujesz na temat Waszego systemu nasunęła mi się pewna myśl. Zdecydowanie brakuje Wam kogoś kto Wam zaprojektuje ten system. Musicie postarać się o chociaż jedną, obeznaną w technologiach osobę, która podejmie decyzje projektowe. Takie pytanie się po forach i miotanie po technologiach grozi porażką. Różne osoby będą Wam różnie radzić bo każdy ma swoje preferencje. Jeśli będziecie to próbować 'składać do kupy' może wyjść niezły bałagan i bardzo prawdopodobne, że w pewnym momencie traficie na problem nie do przejścia i projekt polegnie. Właściwie to wygląda na to, że nie macie jeszcze do końca sprecyzowanych nie tylko technologii, ale nawet architektury. Postarajcie się o kogoś kto ogarnie całość na pewnym poziomie abstrakcji i będzie podejmował decyzje projektowe.

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Projekt systemu powstaje i jest coraz bardziej klarowny, a myślę, że takie wrażenie jakie odniosłeś to skutek tego, że popełniłem błąd, mianowicie zbyt wcześnie zacząłem ten wątek, zanim tak naprawdę sami doszliśmy do tego, czego potrzebujemy. teraz jest jasne że potrzebujemy webservice i nie ma tu krztyny wątpliwości.
przepraszam za ten błąd.

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

analizujemy problem, i dochodzimy do wniosków że webservice jest za wolne w porównaniu na naszych potrzeb...
może RMI ? czy to już przeżytek ??

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

z każdym dniem coraz bardziej utwierdzamy się w tym, że najlepszym rozwiązaniem w wielu aspektach będzie dla nas bezpośrednie łączenie się klienta z serwerem. umożliwi nam to bardzo wiele rozwiązań potrzebnych w projekcie.
czy realizować to właśnie na RMI czy istnieje zaimplementowana jakaś inna metoda?
Łukasz Żuchowski

Łukasz Żuchowski Software Wizard

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Marek Urbanowicz:
czy i jak rozwiązać problem odświeżania...
użytkownik włącza program. loguje się. pobiera wszystko co zmieniło się od czasu jego ostatniego zalogowania.


Rozumiem, że w takim razie chcesz trzymać całą baze danych, która znajduje się na serwerze, na lokalnym dysku ?
Pamiętaj że dane mogą zostać nie tylko dodane ale także usunięte lub zmienione. Czy zamierzasz synchronizować te dane przy każdym logowaniu ? Brzmi jak zły pomysł, ale może poprostu Cię źle zrozumiałem.

konto usunięte

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

newsy beda pobierane po prostu po włączeniu programu z serwera.
podobnie zdarzenia kalendarza itp.
to co zostanie pobrane będzie zapisywane w pliku na dysku.
problem jest tylko z tym, co zrobić jeśli coś zostało zmienione.. chociaż zakładając ze bedzie to moderowane (news,kalendarz) to nie ma z tym problemu..
bo ściągać za każdym razem wszystkie dane.. trochę to będzie trwać.. chociaż to sam tekst własciwie więc może paczki nie będą aż tak duże.. maksymalnie 100-200kB(co przy coraz powszechniejszym dostępie do szerokopasmowego internetu nie jest dużą ilością danych) zakładając że pobieramy newsy powiedzmy dwa tygodnie w tył, cały kalendarz do przodu itp.
Łukasz Żuchowski

Łukasz Żuchowski Software Wizard

Temat: Duży projekt. Prośba o pomoc przy doborze rozwiązań.

Jeżeli przyjmiesz taktykę ściągania wszystkiego za każdym razem będzie to kosztowne.
Jeżeli przyjmiesz taktykę przechowywania na dysku, to bedziesz miał problemy z synchornizacją. Może lepiej pobierać to co w danej chwili wyświetlasz (ew. co nie co cache'ować), wtedy masz pewność że masz świeże rzeczy.

Druga sytuacja potencjalnie niebezpieczna to gdy 2 klientów będzie pracowało na tych samych danych (prędzej czy później znajdzie się takie miejsce w aplikacji).

Może przemyśl jeszcze raz projekt, może lepszym rozwiązaniem będzie aplikacja web-owa niż gruby klient ? Webappy to nie lekarstwo na zło tego świata ale ma wiele zalet...Łukasz Żuchowski edytował(a) ten post dnia 26.06.08 o godzinie 12:00



Wyślij zaproszenie do