J2EE Τεχνολογίες

145 views
Skip to first unread message

LiTTle

unread,
Jan 9, 2013, 3:52:11 AM1/9/13
to jh...@googlegroups.com
Καλημέρα σε όλους,

Αποφάσισα να ασχοληθώ λίγο περισσότερο με την J2EE μετά από πολύ καιρό. Υπάρχει όμως ένα πρόβλημα. Νιώθω ότι υπάρχει ένα χάος στα API που χρησιμοποιούνται. Από παλιότερα είχα χωρίσει (όχι εγώ, αλλά έτσι είχα διαβάσει) τις J2EE εφαρμογές σε 3 μέρη (Web Tier-Front End, Business Logic Tier, EIS Tier). Κοιτώντας τώρα πάλι ένα προς ένα τα μέρη αυτά της εφαρμογής βλέπω πολλές τεχνολογίες. Ακολουθεί μια λίστα με τις τεχνολογίες που έχω δει:
-Web Tier (servlets, JSP, JSF, Facelets, GWT, Javascript, Vaadin)
-Business Logic Tier (EJB, Entities, JAX-RS web services, JAX-WS web services, Spring)
-EIS Tier (JCA, JTA, JPA, JDBC, Hibernate)

Προφανώς κάποιες τεχνολογίες είναι ανταγωνιστές (πχ javascript και GWT) και κάποιες άλλες συμπληρωματικές (πχ servlet και JSP).

Και τώρα έρχεται η ερώτηση! 
Θα μπορούσατε να μου πείτε με ποιες τεχνολογίες αξίζει να ασχοληθώ? Ποιες τεχνολογίες ζητούνται στην αγορά? Ποιές βλέπεται να υιοθετούνται στο άμεσο μέλλον και ποιες να εξαλείφονται? Ή να με παραπέμψετε σε κάποιο έγκυρο άρθρο για να διαβάσω.

ΥΓ: Αν σε κάποιο από τα παραπάνω κάνω λάθος πείτε μου. Απλά στο μυαλό μου έτσι τα έχω χωρίσει.

Evangelos Pappas

unread,
Jan 9, 2013, 4:18:59 AM1/9/13
to jh...@googlegroups.com
Καλημέρα,


Από ο,τι κατάλαβα υπάρχει αρκετή ομίχλη σε ο,τι ανέφερες. Για παράδειγμα η GWT δεν ανταγωνίζεται την Javascript, ίσα ίσα ο compiled κώδικας που δημιουργεί είναι Javascript. Θα μπορούσες να πεις η GWT ανταγωνίζεται την Vaadin (and vise versa), όπως επίσης ανέφερες τα JSP δεν ανταγωνίζονται τα servlets τα δυο αυτά στοιχεία είναι άρτια αλληλένδετα. Επίσης, η JPA είναι Specification και εχει γίνει implemented απο την Hibernate, ο JDBC ειναι πιο low level από το specification της JPA.

Τωρα για βιβλίο, με ένα γρήγορο search βρήκα αυτό: http://www.amazon.com/Murachs-Java-Servlets-JSP-2nd/dp/1890774448 βεβαία εγώ είχα ξεκινήσει με ένα head first editions (κλασικά) που μιλούσε για Servlets & JSP αλλα τότε ήταν η v.1.4 βρες ένα βιβλίο που μιλάει για τις πιο πρόσφατες. Θα σε συμβούλευα να ξεκινήσεις με τα απλά πριν πιάσεις GWT, Hibernate κτλπ..


Cheers!

2013/1/9 LiTTle <littl...@gmail.com>

--
 
 

Panos Konstantinidis

unread,
Jan 9, 2013, 4:38:00 AM1/9/13
to jh...@googlegroups.com
H κάθε εταιρεία έχει τις δικές της τεχνολογίες. Αν πας σε μεγάλα έργα (enterprise) τότε JEE και μόνο. Πλέον υπάρχουν εργαλεία που κάνουν τη δουλειά του developer ευκολότερη (δε χρειάζεται να τα κάνεις όλα με το χέρι). Για μεσαία έργα χρησιμοποιείται και Spring (στο εξωτερικό το έχω δει και σε enterprise έργα, στην Ελλαδα όχι). Για βάση αν ασχοληθείς με hibernate/eclipselink/jpa έχεις καλύψει σχεδόν το 100% της αγοράς. Για web tier λίγοι πλέον γράφουν servlets/JSP με το χέρι, τα πάντα γίνονται με κάποια άλλα framework (spring web framework, jsf/richfaces, κλπ). Πάντως αν ασχοληθείς με jsp/servlets τα έχεις μάθει όλα καθώς όλα τα web framework βασίζονται εκεί.

2013/1/9 Evangelos Pappas <papas.e...@gmail.com>
--
 
 

Thomas Pliakas

unread,
Jan 9, 2013, 4:38:39 AM1/9/13
to jh...@googlegroups.com
Καλημέρα και από εμένα,
  η αλήθεια είναι ότι υπάρχει ένας χαμός από framework για κάθε tier σε μια J2EE εφαρμογή.  Το να ασχοληθείς με όλα τα tiers σε βάθος είναι αρκετά δύσκολο και πολύπλοκο, εκτός αν σε ενδιαφέρει να ασχοληθείς με την αρχιτεκτονική των εφαρμογών αυτών. Φυσικά καλό είναι να υπάρχει ένα γενικότερο overview, αλλά θα σου πρότεινα να ασχοληθείς με ένα από τα tier, αυτό που νομίζεις ότι σου αρέσει περισσότερο.

Γενικα πάντως, εγώ θα σου πρότεινα  είτε να αρχίσεις με το reference implementation του J2EE (provided by oracle), έτσι ώστε να κατανοήσεις και την τεχνολογία αλλά και την ονοματολογία (http://docs.oracle.com/javaee/).

Μια άλλη εναλλακτική είναι επίσης από την springsource, που ουσιαστικά έχεις αντίστοιχες τεχνολογίες για όλα τα tiers (spring-core, spring-mvc, spring-webflow, spring-integration και μπορείς να δείς όλο το δέσιμο από το front-end μέχρι την database.

Αλλη εναλλακτική είναι και τα frameworks από την Jboss (http://www.jboss.org), που έχεις λύσεις για κάθε tier.

Επίσης εάν θέλεις να ασχοληθείς με enterprise applications, νομίζω ότι θα πρέπει να αρχίσεις σιγά σιγά να ασχολείσαι και με Service Oriented Architectures, που εκεί για αρχή θα πρότεινα να εξοικοιωθείς με την ονοματολογία και μετά σιγά σιγά να μπείς σε κάθε κομμάτι.

Πολύ ενδιαφέρον κομμάτι, είναι και αυτό των Enterprise Application Servers (Glassfish, JBOSS, Weblogic, WebShpere), που μπορείς να δείς και αυτό.

Χαιρετώ
Θωμάς


2013/1/9 LiTTle <littl...@gmail.com>

--
 
 

Zisis Pontikas

unread,
Jan 9, 2013, 5:28:31 AM1/9/13
to jh...@googlegroups.com
Γεια,
Θα πω και εγώ τα δικά μου μια που έχει πει ο καθένας τα δικά του :)
Αν πας σε εταιρία που έχει συστήματα που δουλεύουν πολλά χρόνια τότε μάλλον θα είναι legacy J2EE η απλά servlets/JSP (δεν παλεύεται γενικά). Αν θέλεις να κάνεις κάτι δικό σου από την αρχή (είτε σε εταιρία είτε για προσωπική χρήση) τότε το ποιο εύκολο είναι srping τεχνολογίες με hibernate. Έχουν όλα τα modules που θα ήθελες με ποιο απλή λογική από τα J2EE αντίστοιχα (αν και από ότι έχω ακούσει στα commets ενός άρθρου του φίλου μας του Καπελώνη τα EE 6 είναι πολύ ποιο απλά από τα EE 5). Spring-core, Spring MVC και spring web-flow θα σε καλύψουν για ένα web application. Επίσης μπορείς να κάνεις πολύ εύκολα spring project prototype με το spring roo. Σε μία ώρα έχεις σκελετό, βάση και CRUD web application με rest services support και junits (ζόρικο θα έλεγα).

Για front-end καλό είναι να μην έχει σχέσει με java πάντως και να σταματήσεις στα rest services που στέλνεις μπροστά με JSON object, αυτή είναι η νέα(?) μόδα, και το μπροστά το κάνεις με j-query frameworks, coffescript κτλ. αν έχεις την πολυτέλεια να έχεις dedicated άτομο για αυτή τη δουλειά ακόμα καλύτερα. 
Οπότε ή θα κάνεις κάτι νέο και με spring, spring roo, hibernate θα ξεκινήσεις ποιο γρήγορα ή θα δουλέψεις σε κάτι που είναι σε J2EE που έχει την ίδια λογική απλά έχει το δικό του τρόπο ρύθμισης.

Λίγο άσχετο επίσης αλλά καλό είναι όλα τα project να είναι maven configured τουλάχιστον (είναι και το gradle φυσικά αλλά δεν είναι τόσο διαδεδομένο όπως το maven προς το παρόν)
Είναι πολλά πάντως για να τα μάθεις απλά (χωρίς να χρειαστεί να τα εφαρμόσεις κάπου). 

Στα recources πάντως στο dropbox του jhug θα βρεις υλικό να σε βοηθήσει. Αν δεν είσαι μέσα στείλε μου email ή στον Πάρη να σε κάνουμε add στο dropbox

Αυτά


2013/1/9 Thomas Pliakas <tpli...@gmail.com>
Καλημέρα και από εμένα,
  η αλήθεια είναι ότι υπάρχει ένας χαμός από framework για κάθε tier σε μια J2EE εφαρμογή.  Το να ασχοληθείς με όλα τα tiers σε βάθος είναι αρκετά δύσκολο και πολύπλοκο, εκτός αν σε ενδιαφέρει να ασχοληθείς με την αρχιτεκτονική των εφαρμογών αυτών. Φυσικά καλό είναι να υπάρχει ένα γενικότερο overview, αλλά θα σου πρότεινα να ασχοληθείς με ένα από τα tier, αυτό που νομίζεις ότι σου αρέσει περισσότερο.

Γενικα πάντως, εγώ θα σου πρότεινα  είτε να αρχίσεις με το reference implementation του J2EE (provided by oracle), έτσι ώστε να κατανοήσεις και την τεχνολογία αλλά και την ονοματολογία (http://docs.oracle.com/javaee/).

Μια άλλη εναλλακτική είναι επίσης από την springsource, που ουσιαστικά έχεις αντίστοιχες τεχνολογίες για όλα τα tiers (spring-core, spring-mvc, spring-webflow, spring-integration και μπορείς να δείς όλο το δέσιμο από το front-end μέχρι την database.

Άλλη εναλλακτική είναι και τα frameworks από την Jboss (http://www.jboss.org), που έχεις λύσεις για κάθε tier.

Επίσης εάν θέλεις να ασχοληθείς με enterprise applications, νομίζω ότι θα πρέπει να αρχίσεις σιγά σιγά να ασχολείσαι και με Service Oriented Architectures, που εκεί για αρχή θα πρότεινα να εξοικειωθείς με την ονοματολογία και μετά σιγά σιγά να μπείς σε κάθε κομμάτι.

Πολύ ενδιαφέρον κομμάτι, είναι και αυτό των Enterprise Application Servers (Glassfish, JBOSS, Weblogic, WebShpere), που μπορείς να δείς και αυτό.

Χαιρετώ
Θωμάς



2013/1/9 LiTTle <littl...@gmail.com>
Καλημέρα σε όλους,

Αποφάσισα να ασχοληθώ λίγο περισσότερο με την J2EE μετά από πολύ καιρό. Υπάρχει όμως ένα πρόβλημα. Νιώθω ότι υπάρχει ένα χάος στα API που χρησιμοποιούνται. Από παλιότερα είχα χωρίσει (όχι εγώ, αλλά έτσι είχα διαβάσει) τις J2EE εφαρμογές σε 3 μέρη (Web Tier-Front End, Business Logic Tier, EIS Tier). Κοιτώντας τώρα πάλι ένα προς ένα τα μέρη αυτά της εφαρμογής βλέπω πολλές τεχνολογίες. Ακολουθεί μια λίστα με τις τεχνολογίες που έχω δει:
-Web Tier (servlets, JSP, JSF, Facelets, GWT, Javascript, Vaadin)
-Business Logic Tier (EJB, Entities, JAX-RS web services, JAX-WS web services, Spring)
-EIS Tier (JCA, JTA, JPA, JDBC, Hibernate)

Προφανώς κάποιες τεχνολογίες είναι ανταγωνιστές (πχ javascript και GWT) και κάποιες άλλες συμπληρωματικές (πχ servlet και JSP).

Και τώρα έρχεται η ερώτηση! 
Θα μπορούσατε να μου πείτε με ποιες τεχνολογίες αξίζει να ασχοληθώ? Ποιες τεχνολογίες ζητούνται στην αγορά? Ποιές βλέπεται να υιοθετούνται στο άμεσο μέλλον και ποιες να εξαλείφονται? Ή να με παραπέμψετε σε κάποιο έγκυρο άρθρο για να διαβάσω.

ΥΓ: Αν σε κάποιο από τα παραπάνω κάνω λάθος πείτε μου. Απλά στο μυαλό μου έτσι τα έχω χωρίσει.

--
 
 

--
 
 



--
Zisis Pontikas
zis...@gmail.com

Konstantinos Polychronis

unread,
Jan 9, 2013, 5:34:58 AM1/9/13
to jh...@googlegroups.com
Εγώ προσωπικά είμαι μεγάλος fan του PlayFramework. http://playframework.org/t
Project που σε Spring πήρε αρκετό καιρό, το ξαναέγραψα στο play σε 4 μέρες.


2013/1/9 Zisis Pontikas <zis...@gmail.com>

--
 
 



--
Personal Website: http://www.kospol.gr
Android: http://www.AndroidGreece.gr

Alx

unread,
Jan 9, 2013, 5:44:32 AM1/9/13
to jh...@googlegroups.com
Καλό το play αλλά που το κάνεις deploy; Για το 2.0 μιλάμε ετσί;

Επισης εκτός του επίσημου site, ανύπαρκτο documentation. Είναι ακόμα πολύ καινούριο για enterprise έστι δεν είναι;

2013/1/9 Konstantinos Polychronis <ven...@gmail.com>

--
 
 

Konstantinos Polychronis

unread,
Jan 9, 2013, 6:20:20 AM1/9/13
to jh...@googlegroups.com
Δεν εχω προλάβει να δω το 2.0 ακόμα που παίζει και με scala.
Εγώ παίζω με 1.2.5 με Java και μπροστά βάζω nginx. Μπορείς επίσης να το σηκώσεις σαν war σε application server. 
Απο την εμπειρία μου με μέτριο traffic (6.000 users / day) σε EC2 micro παίζει άψογα.
Εαν με τον όρο enterprise εννοείς stability, το play υπάρχει απο το 2007 και μέχρι στιγμής τα έχει καταφέρει άψογα. Κατα τα λοιπά δεν εχω δει κάποια συγκεκριμένη διαφορά.


2013/1/9 Alx <otin...@gmail.com>

Kostis Kapelonis

unread,
Jan 9, 2013, 6:47:29 AM1/9/13
to jh...@googlegroups.com
Ξεκινα από εδω

http://docs.oracle.com/javaee/6/tutorial/doc/
΄
Άσε ολα τα άλλα για αργότερα που αναφέρθηκαν για αργότερα.

2013/1/9 Konstantinos Polychronis <ven...@gmail.com>:

> --
>
>

Christos KK Loverdos

unread,
Jan 9, 2013, 6:53:59 AM1/9/13
to jh...@googlegroups.com
$howdoi learn J2EE


Καλή Χρονιά!

--
 
 

--
Christos KK Loverdos
@loverdos
stepsinscala.com

Everything that is really great and inspiring is created by the individual who can labor in freedom — Albert Einstein


Alx

unread,
Jan 9, 2013, 7:13:23 AM1/9/13
to jh...@googlegroups.com
Ok, απλά εγώ έχω δει μόνο το 2.0 και δεν κατάφερα ούτε σε tomcat να το κάνω deploy (υπάρχει ένα ανεπίσημο plugin αλλά το ότι είναι ανεπίσημο με ανησυχεί)

Enterprise εννοώ τουλάχιστον τη δυνατότητα για deployment σε application servers, αξιόπιστο support και επαρκές documentation. Νομίζω ότι τίποτα από τα 3 δεν ισχυεί ακόμα για το 2.0 ώστε να βασίσει μία εταιρεία τις critical εφαρμογές της στο play 2.0. Και ειδικά στην Ελλάδα θα πρέπει να υπάρχουν πολλά και γνωστά success stories γιατί αλλιώς δεν πρόκειται κανείς ποτέ να το κάνει adopt (δυστυχώς)

Αυτή τη γνώμη σχημάτισα αν και ασχολήθηκα μόλις μία εβδομάδα όποτε ευχαρίστως θα ήθελα να ακούσω διαφορετικές απόψεις και εμπειρίες.


2013/1/9 Konstantinos Polychronis <ven...@gmail.com>
--
 
 

Dimitris Zavaliadis

unread,
Jan 9, 2013, 8:01:15 AM1/9/13
to jh...@googlegroups.com
@ventrix

Προσωπικό project ή εταιρικό;

Εάν είναι public και δεν υπάρχει πρόβλημα στείλε link pls να το δούμε.

Ευχαριστώ,
Δημήτρης


2013/1/9 Konstantinos Polychronis <ven...@gmail.com>
--
 
 

Konstantinos Polychronis

unread,
Jan 9, 2013, 9:06:33 AM1/9/13
to jh...@googlegroups.com
@Alx, δοκίμασε καλύτερα το 1.2.5. Όσες φορές το δοκίμασα σε tomcat και glassfish έπαιζε.
Support δεν χρειάστηκα ποτέ, δεν γνωρίζω να σου πω κατι ιδιαίτερο. Όσον αφορά το documentation, βρήκα οτιδήποτε ήθελα στο http://www.playframework.org/documentation/1.2.5/home, αυτό που δεν καλύπτεται πλήρως είναι το JPA που όμως υπάρχει άφθονο documentation εκεί έξω.

@Δημήτρη είναι το API backend του GreekAndroidApps (https://play.google.com/store/apps/details?id=com.pinapps.greekandroidapps), το οποίο λειτουργεί κοντά στα δυο χρόνια τώρα σε ενα ec2 micro. Δεν εχω κάτι να σου στείλω δυστυχώς. Αυτή την περίοδο το ξαναχρησιμοποιώ για το backend μιας άλλης εφαρμογής που αναπτύσουμε, αρκετά πιο πολύπλοκης, θα μπορούσα να παρουσιάσω το structure και το design σε κάποιο meeting...


2013/1/9 Dimitris Zavaliadis <dim...@gmail.com>

Antonis Kouzoupis

unread,
Jan 9, 2013, 9:40:16 AM1/9/13
to jh...@googlegroups.com
Καλησπέρα και από εμένα.

Πολύ πρόσφατα άρχισα να ασχολούμαι με το λεγόμενο Enterprise Edition της Java
και ήμουν *πάρα* πολύ μπερδεμένος. Ξεκίνησα να διαβάζω αυτό [0] το βιβλίο και νομίζω
ότι είμαι λιγότερο μπερδεμένος :) Δεν ξέρω αν είναι καλό ή κακό βιβλίο αλλά
εμένα τουλάχιστον με έχει βοηθήσει. Προσωπική εκτίμηση είναι ότι είναι καλύτερο
(???) να μάθω πρώτα την τεχνολογία Java EE και μετά κάποιο framework πχ Spring.
Σε αυτό βέβαια θα ήθελα και τη γνώμη των πιο έμπειρων.

[0] http://goo.gl/4R2wg

Καλή συνέχεια,
--
Αντώνης Κουζούπης
Antonis Kouzoupis
signature.asc

vaggelis spathas

unread,
Jan 9, 2013, 9:44:25 AM1/9/13
to jh...@googlegroups.com
Προσωπικά με έχει βοηθήσει πολύ το http://www.javapassion.com/portal/
Πληρώνεις 100 ευρώ το χρόνο ...αλλά έχει μαθήματα online ,pdf, video κώδικες οργανωμένα για κάθε topic.

Εξαιρετικό για spring , android, hibernate,jpa , web services 

Reply all
Reply to author
Forward
Message has been deleted
0 new messages