Praca magisterska - Java

0

Muszę powoli myśleć o pracy magisterskiej i tutaj prośba o radę.
Na inżynierce pisałem o androidzie, napisałem aplikację itp.
A teraz:
Myślałem żeby napisać ogólnie o tworzeniu aplikacji w javie ale z naciskiem na frameworki narzędzia które mogą usprawnić pracę.
opcja 1 - Zastanawiam się czy skupić się jedynie na aplikacjach webowych(to mnie najbardziej interesuje) chciałem też wspomnieć coś o kontenerach serwletów, serwerach aplikacji itp.?

opcja 2 - Czy bardziej ogólnie od desktopowych przez webowe do androida(coś o phonegap itp)?

Aplikacji nie myślałem raczej pisać tylko skupić się na samym procesie tworzenia i jak go można usprawnić. Chyba, że jakaś prosta aplikacja żeby zademonstrować jakieś rzeczy typu spring mvc/mapowanie obiektowe czy cos takiego.

Co myślicie? Jakieś rady?

0

napisać ogólnie o tworzeniu aplikacji w javie

Co masz tutaj konkretnie na myśli? Praca magisterska to projekt badawczy, zatem musisz porównać coś z czymś.

skupić się na samym procesie tworzenia i jak go można usprawnić

Masz jakiś konkretny pomysł w jaki sposób usprawnisz proces tworzenia aplikacji? Z czym to porównasz, i jak zamierzasz określić metrykę która stwierdzi która metoda jest lepsza?

0

@Hepek
Dokładnie tak jak post wyżej - nie możesz napisać ''ogólnie o tworzeniu aplikacji w javie ale z naciskiem na frameworki", tylko zrobić normalną pracę badawczą - z ogólnie postawioną tezą, badaniami i prezentacją wyników, a na koniec odniesieniem się do tego wszystkiego.

Jak już gdzieś kiedyś pisałem, praca magisterska może i powinna mieć charakter:

  • badawczy, polegający na dokładnym przedstawieniu i opisie odkrytych zależności / nowego zjawiska,
  • innowacyjno-projektowy, czyli zaproponowanie nowych rozwiązań praktycznych w jakiejś konkretnej działce nauki/przemysłu,
  • systematyzujący,
  • czysto teoretyczny.
0

@adwy akurat tutaj ten aspekt badawczy (który zresztą wcale nie jest w mgr taki konieczny) widać gołym okiem, bo on nie chce napisać aplikacji (co jest dobre na inż) tylko chce zrobić przegląd/porównanie istniejących narzędzi.

@Hepek generalnie ok, ale sugerowałbym to jakoś mocno zawęzić, tzn wybrać konretną klasę frameworków i konkretne zastosowanie. To co napisałeś jest zbyt ogólne. Nie pisze się np. pracy "porównanie systemów składowania danych" tylko np. "porównanie/przegląd dokumentowych baz danych dla rozproszonych aplikacji wysokiej dostępności" i robi się to na przykładzie prostego systemu tego typu.
I to jest to co @xfin określił jako "systematyzujący".

0
Shalom napisał(a):

@Hepek generalnie ok, ale sugerowałbym to jakoś mocno zawęzić, tzn wybrać konretną klasę frameworków i konkretne zastosowanie. To co napisałeś jest zbyt ogólne. Nie pisze się np. pracy "porównanie systemów składowania danych" tylko np. "porównanie/przegląd dokumentowych baz danych dla rozproszonych aplikacji wysokiej dostępności" i robi się to na przykładzie prostego systemu tego typu.
I to jest to co @xfin określił jako "systematyzujący".

Jeśli chodzi o porównania to pomysł był taki, że opiszę i dam jakieś przykłady jak wyglądałoby zapisywanie danych za pomocą JDBC a jak to można zrobić za pomocą jakiegoś ORMa. Jeśli chodzi o przegląd frameworkow to np biorę na tapetę Springa i na temat jego projektów coś napisać... Generalnie to mam bardzo wczesny zarys "gdzieś dzwoni ale nie wiem w którym kościele" :D i dlatego pytam Was o radę.

Więc może tak - zagadnienia które chciałbym w pracy umieścić -szeroko pojęte tworzenie aplikacji webowych w javie, serwery aplikacji, kontenery serwletów, JPA, Spring, maven... - jak to zebrać do kupy żeby miało ręce i nogi? Nie mam też problemu z tym żeby coś napisać do tego.

0

A jak bym napisał np. "Przegląd narzędzi i frameworków użytecznych przy tworzeniu aplikacji (wysokiej dostępności) w języku Java" tą wysoką dostępność nie wiem czy dorzucić jak napisał @Shalom brzmi to dobrze jeśli to uwzględnić to chyba pasuje z rozdział napisać ogólnie o tej właśnie wysokiej dostępności coś o klastrach itp ?
I w pracy pisałbym:

  • Wstęp - najważniejsze informacje o języku Java
  • (wysoka dostępność-założenia,rozwiązania itp)??
  • Zarządzanie zależnościami (Maven)
  • Serwery aplikacji a kontenery serwletów
  • JPA(Hibernate,Ecllipselink) i od tej sekcji tworzenie prostej aplikacyjki na przykład z spring rest/hibernate czy coś takiego.
  • Spring(Core,Security,Boot,Data) - tu odnośnie boot myślałbym wspomnieć o tym, że można mieć aplikację w jarze w embeddedowanym Tomcatem to chyba ma związek z wysoką dostępnością - mam rację? Każdy user odpala sobie aplikacje u siebie i jedynie łączy się np z centralną bazą?
  • Podsumowanie/wnioski - frameworki przyspieszają pracę itd itp....

Było by coś z tego? :)
mile widziane wszelkie sugestie

0

Moim zdaniem to co chcesz zrobić jest zbyt ogólne i się przez to nie nadaje.

0
Shalom napisał(a):

Moim zdaniem to co chcesz zrobić jest zbyt ogólne i się przez to nie nadaje.

Jak Ty byś widział pracę o podobnej tematyce?

2

No w tym całym twoim planie brakuje... twojego wkładu. Bo póki co zawarłeś tam sobie "przegląd dziedziny" a to tylko fragment pracy. Brakuje najważniejszego, czyli tego co TY masz zrobić -> np. porównania czegoś względem jasnych kryteriów na jasnych przykładach. A jak zaczniesz myśleć o takich porównaniach to zauważysz że nie bardzo da się to robić dla wszystkich możliwych frameworków i dla wszytkich możliwych przypadków.

2

Jeśli chcesz żeby to była magisterka, a nie inżynierka to akurat w tym przypadku ta wysoka dostępność będzie potrzebna, bo to niejako ten wspomniany element badawczy.
Ale wtedy rozdziały podzieliłbym tak:
1.

Wstęp - najważniejsze informacje o języku Java
A gdzieżby tam. O Javie to możesz conajwyżej paragraf w rozdziale Implementacja napisać i oczywiście pokazać, że to jest Twój język implementacyjny.
We wstępie z reguły literatura: w tym przypadku właśnie o wysokiej dostępności, mechanizmach niezawodności w oprogramowaniu przy użyciu Javy itp.

(wysoka dostępność-założenia,rozwiązania itp)??
Si. Taki rozdział to zazwyczaj razem z pokazaniem i przedstawieniem tzw. State-of-the-Art - które frameworki, w jakich przypadkach, które komercyjne aplikacje ich używają (albo w jakich instytucjach są używane).

  1. Tutaj kwestia wymagań Twojej pracy jako dzieła - co chcesz zrobic, jakie są wymagania i kryteria do spełnienia itp.

Zarządzanie zależnościami (Maven)
Serwery aplikacji a kontenery serwletów
PA(Hibernate,Ecllipselink) i od tej sekcji tworzenie prostej aplikacyjki na przykład z spring rest/hibernate czy coś takiego.
Spring(Core,Security,Boot,Data) - tu odnośnie boot myślałbym wspomnieć o tym, że można mieć aplikację w jarze w embeddedowanym Tomcatem to chyba ma związek z wysoką dostępnością - mam rację? Każdy user odpala sobie aplikacje u siebie i jedynie łączy się np z centralną bazą?

Dla mnie to jest rozdział "implemetacja", gdzie po prostu omówisz z grubsza technologie, których używasz. Niemniej nadal nie jest to sedno pracy, tylko przedstawienie środowiska testowego.

I najważniejsze - ostatnie dwa rozdziały:

  1. Badania/porównanie/metodyka - coś sobie założyłeś np. to porównanie frameworków. No to teraz wypadałoby mieć przynajmniej dwie różne aplikacje, na których przeprowadzisz eksperymenty. Będziesz używał generatora ruchu? Możesz dorzucić monitorowanie dostępności tych serwisów. Kiedy który się wysypie? Dlaczego? Jak temu przeciwdziałać? Może masz jakieś swoje rozwiązanie na specyficzny problem? To jest clue pracy.

  2. P

Podsumowanie/wnioski - frameworki przyspieszają pracę itd itp....

Nope ;) Jak robisz porównanie, to tutaj idą wnioski z porównania tychże narzędzi i frameworków. Nie piszesz o ułatwieniu pracy, tylko o ich potencjale w pisaniu aplikacji wysokiej dostępności i czym i jak bardzo różnią się między sobą.

Czyli to jest miejsce na "systematyzację wiedzy" i krytyczną ocenę swojej pracy.

0

Co ma wspólnego Maven/Spring/JPA z wysoką dostępnością? Wydaje mi się że w tym przypadku powinieneś porównać np. technologie load balancingu. W ramach badania mógłbyś mierzyć ilość żądań na sekundę w różnych technologiach i jak to się skaluje gdy zwiększasz ilość serwerów. Tutaj wkładem własnym byłoby przygotowanie środowiska do pomiarów, czyli implementacja testowych aplikacji w wybranych technologiach, dane testujące, przygotowanie sprzętu itp.

0

Faktycznie frameworki typu spring itp a wysoka dostępność się tu nie zgadza. Jedynie to by mogło być chyba jako dodatek gdy implementuje przykładową aplikacje. A jeśli chodzi o dostępność to chyba bardziej kwestia serwera niż samej javy więc przykładowo kilka nodeów tomcata + httpd jako loadbalancer i wtedy np jeden node obsłuży tyle requestów a jak dodamy kolejny to więcej itp?
btw. zna ktoś darmowy generator ruchu? Miałem styczność jedynie z packet senderem ale on ma dosyć ograniczone możliwości

0

Po wstępnej rozmowie z promotorem ustaliliśmy, że będę pisał generalnie o rozwiązaniach wykorzystywanych w zapewnianiu wysokiej dostępności i testowaniu takich aplikacji.
Czy ktoś ma namiary na jakąś dobrą literaturę w tym temacie? Chodzi mi zarówno o rozwiązania, dobre praktyki jak i testy jakie się stosuję - wiem, że można użyć JMetera ale czego jeszcze można użyć i co i w jaki sposób testować oprócz wydajności?

1
Hepek napisał(a):

Po wstępnej rozmowie z promotorem ustaliliśmy, że będę pisał generalnie o rozwiązaniach wykorzystywanych w zapewnianiu wysokiej dostępności i testowaniu takich aplikacji.
Czy ktoś ma namiary na jakąś dobrą literaturę w tym temacie? Chodzi mi zarówno o rozwiązania, dobre praktyki jak i testy jakie się stosuję - wiem, że można użyć JMetera ale czego jeszcze można użyć i co i w jaki sposób testować oprócz wydajności?

Jmeter to przezytek, sprawdz Gatlinga.

0

Dzięki - sprawdzę. A jeśli chodzi o testy to na jakie sposoby można taką aplikację testować oprócz testów obciążeniowych?

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