Εγκατάσταση σε UBUNTU του Eclipse – Spring Tool Suite (STS)

Δε νομίζω ότι υπάρχει κάποιος από εμάς που να μην γνωρίζει για το Eclipse. Το συγκεκριμένο περιβάλλον ανάπτυξης ούτως ή άλλως δε χρειάζεται ιδιαίτερες συστάσεις. Οι γλώσσες προγραμματισμού που υποστηρίζει είναι πρακτικά απεριόριστες (χάρη σε αμέτρητα plugins που έχουν βγεί) ενώ τις δυνατότητες επεκτασιμότητάς του έχουν χρησιμοποιήσει διάφορες τεχνολογίες. Σε αυτό το πλαίσιο η Springsource δημιούργησε ένα ξεχωριστό περιβάλλον ανάπτυξης για όλη τη γκάμα των τεχνολογιών της, το Spring Tool Suite (STS), που κουμπώνει πάνω στο Eclipse.

Το STS το έχουμε δει και σε προηγούμενα άρθρα μας. Εδώ θα δούμε πώς εγκαθίσταται σε ένα περιβάλλον Ubuntu σε λίγα, απλά βήματα.

Continue reading “Εγκατάσταση σε UBUNTU του Eclipse – Spring Tool Suite (STS)”

Spring Framework Series: Μερος 4ο – Spring Webflow

Φτάσαμε αισίως στο 4ο μέρος της σειράς μας για το Spring. Στο προηγούμενο κομμάτι του αφιερώματος μας είδαμε την αρχιτεκτονική του Spring MVC και τις δυνατότητες που προσφέρει το framework στον προγραμματιστή για να υλοποιήσει μία εφαρμογή στηριζόμενη σε αυτό το J2EE pattern.

Σto σημερινό μας άρθρο θα δούμε μια εξελιγμένη μεθοδολογία που εισήγαγε η ομάδα του Spring που απλοποιεί τη διαδικασία κατασκευής εφαρμογών MVC ιδιαίτερα εκείνες που απαιτούν πολύπλοκες αλληλουχίες φορμών όπως για παράδειγμα ένας wizard, ένα shopping cart κτλ. Η τεχνική αυτή είναι το Spring Webflow.

1. ΕΙΣΑΓΩΓΗ

Φτάσαμε αισίως στο 4ο μέρος της σειράς μας για το Spring. Στο προηγούμενο κομμάτι του αφιερώματος μας είδαμε την αρχιτεκτονική του Spring MVC και τις δυνατότητες που προσφέρει το framework στον προγραμματιστή για να υλοποιήσει μία εφαρμογή στηριζόμενη σε αυτό το J2EE pattern.

Σto σημερινό μας άρθρο θα δούμε μια εξελιγμένη μεθοδολογία που εισήγαγε η ομάδα του Spring που απλοποιεί τη διαδικασία κατασκευής εφαρμογών MVC ιδιαίτερα εκείνες που απαιτούν πολύπλοκες αλληλουχίες φορμών όπως για παράδειγμα ένας wizard, ένα shopping cart κτλ. Η τεχνική αυτή είναι το Spring Webflow.

Continue reading “Spring Framework Series: Μερος 4ο – Spring Webflow”

Εκμηδενίστε το χρόνο υλοποίησης web εφαρμογών με το Spring Roo

Η υλοποίηση ενός Java project είναι μία δημιουργική διαδικασία που όμως όπως όλοι μας γνωρίζουμε αρκετές φορές εμπεριέχει κάποιες επαναλαμβανόμενες εργασίες  που μειώνουν τον ρυθμό ανάπτυξης και συνήθως τείνουν να είναι κουραστικές για τον προγραμματιστή. Αυτό ακριβώς το θέμα έρχεται να επιλύσει μία πολύ δυναμική τεχνολογία, το Roo από την Springsource.  Σκοπός του είναι να επιτρέψει στον developer να οικοδομήει υψηλής ποιότητας και υψηλής απόδοσης συστήματα σε λίγα μόνο λεπτά. Σε αυτό το άρθρο θα περιγράφεται αναλυτικά τι είναι αυτή η τεχνολογία και παράλληλα θα διαπιστώσουμε μαζί πώς μπορούμε να χτίσουμε μία πλήρως λειτουργική enterprise εφαρμογή σε λιγότερο απο ένα τέταρτο της ώρας.

1. ΕΙΣΑΓΩΓΗ

Η υλοποίηση ενός Java project είναι μία δημιουργική διαδικασία που όμως όπως όλοι μας γνωρίζουμε αρκετές φορές εμπεριέχει κάποιες επαναλαμβανόμενες εργασίες  που μειώνουν τον ρυθμό ανάπτυξης και συνήθως τείνουν να είναι κουραστικές για τον προγραμματιστή. Πόσες φορές για παράδειγμα δεν αγανακτούμε με το POJO που πρέπει να γράψουμε για να αντιστοιχήσουμε τις 100 στήλες ενός πίνακα σε Java πεδία, ή για την για την JSP που πρέπει να εμφανίζει σε φόρμα τα πεδία αυτά για input KAI με τα απαραίτητα validations. Για να μη μιλήσω για το plumbing που πρέπει να γίνει μεταξύ των components ενός τυπικού MVC. Όλα αυτά παίρνουν χρόνο και αποσπούν τη προσοχή από το core της εφαρμογής, δηλαδή το καθεαυτό business logic και μειώνουν, εν τέλει, την παραγωγικότητα.

Spring Framework Series: Μερος 3ο

1. ΕΙΣΑΓΩΓΗ

Καλωσορίσατε στο 3ο μέρος της σειράς για το Spring Framework. Μέχρι τώρα είχαμε την ευκαιρία να δούμε τι είναι το Spring framework και πώς, πολύ γρήγορα, μπορούμε να στήσουμε ένα σημείο εκκίνησης για να κατασκευάσουμε μία web εφαρμογή βασισμένη στην πλατφόρμα αυτή. Πάμε τώρα να δούμε αναλυτικά τον τρόπο λειτουργίας του και τα επιμέρους κομμάτια μίας Spring MVC εφαρμογής.

ΕΤΟΙΜΟΙ; Φύγαμε!

Continue reading “Spring Framework Series: Μερος 3ο”

Spring Framework Series: Μερος 2ο

ΕΙΣΑΓΩΓΗ

Στο 1ο μέρος αυτής της σειράς κάναμε μία γενική επισκόπηση του Spring Framework και είδαμε τα πλεονεκτήματα και τις δυνατοτητες που προσφέρει στον σύγχρονο J2EE developer (και όχι μονο). Ωραία η θεωρία, όμως  χωρίς πρακτικό κομμάτι…. δεν πάιζει. Πάμε λοιπόν να δούμε στο 2o μέρος αυτής της σειράς πώς μπορούμε να στήσουμε ένα Project σε Spring μέσα σε ελάχιστο χρόνο.

Continue reading “Spring Framework Series: Μερος 2ο”

J2EE και Aspect Oriented Programming

ΕΙΣΑΓΩΓΗ

Όπως οι περισσότεροι προγραμματιστές J2EE, έχω γαλουχηθει, στο μεγαλύτερο μέρος της καριέρας μου, και για πολλά χρόνια, στην ανάπτυξη συστημάτων λογισμικού με τη χρήση τεχνικών αντικειμενοστραφούς προγραμματισμού (OOP). Η μέθοδος αυτή είναι η πλέον διαδεδομένη με κύριο χαρακτηριστικό τον κατακερματισμό ενός προβλήματος σε αντικείμενα που χαρακτηρίζονται από ιδιότητες (μέθοδους) και δεδομένα (μεταβλητές).

Παρά το γεγονός ότι ο OOP έχει μεγάλη επιτυχία στη διαμόρφωση και υλοποίηση πολύπλοκων συστημάτων λογισμικού, έχει και τα προβλήματά του. Η πρακτική εμπειρία με μεγάλα έργα έχει δείξει ότι οι προγραμματιστές ενδέχεται να αντιμετωπίσουν  προβλήματα με τη διατήρηση του κώδικα τους, δεδομένου ότι όσο μεγαλύτερο το λογισμικό που υλοποιείται τόσο και πιο δύσκολος γίνεται ο ξεκάθαρος διαχωρισμός του έργου σε ενότητες (αντικείμενα), πράγμα και το οποίο  αποτελεί τη βάση του OOP. Για παράδειγμα, μια μικρή αλλαγή σε μία επαναχρησιμοποιούμενη ενότητα μπορεί τελικά να προκαλέσει πολλές αλλαγές σε άλλες, ανεξάρτητες, ενότητες του κώδικα.

Τέτοιου είδους προβλήματα και πολλές άλλες ανησυχίες έρχεται να επιλύσει μία διαφορετική τεχνική, ο πτυχοστρεφής  ή κατά άλλους θεματοστρεφής προγραμματισμός (AOP). Πάμε να δούμε  λοιπόν κάποια προκατάρκτικά στοιχέια για αυτόν.

Σημείωση: Προτείνω γενικά τον όρο πτυχοστρεφή γιατί εκφράζει καλύτερα την έννοια aspect στα ελληνικά ακόμη και σε λειτουργικό επίπεδο.

Continue reading “J2EE και Aspect Oriented Programming”

Επιλέγοντας τον κατάλληλο J2EE application server

Μια από τις σημαντικές αποφάσισεις στην αρχιτεκτονική ενός online συστήματος στηριζόμενου σε τεχνολογία J2EE αποτελεί η επιλογή του application container πάνω στο οποίο θα στηθεί. Αν το “κέλυφος” του λογισμικού δεν είναι το κατάλληλο για την περίπτωση, οι συνέπειες μπορεί να αποδειχτούν καταστροφικές όταν είναι live ανεξάρτητα οποιασδηποτε προσπάθειας έχει προηγηθεί για την τελειοποίηση της λειτουργίας της εφαρμογής.
Υπάρχουν διάφοροι παράμετροι που επηρεάζουν την καταληλότητα του application server ανά περίπτωση. Στη λίστα των ποιο βασικών φιγουράρουν οι ακόλουθες:

  • Οι επιδόσεις
  • Το κόστος άδειας
  • Η επεκτασιμότητα
  • Η διαθεσιμότητα
  • Η αποτελεσματικότητα / ευκολία που προσδίδει στην ανάπτυξη της εφαρμογής
  • Υπoστήριξη του παρόχου

Σίγουρα όμως ο ποιο καθοριστικός παράγοντας είναι το μέγεθος της εφαρμογής τόσο σε components όσο και στο πλήθος των χρηστών για το οποίο προορίζεται. Με βάση λοιπόν την κατηγοριοποίηση σε μέγεθος, η προτεραιότητα για κάθε μία από τις προαναφερθαίντες παραμέτρους αλλάζει.

Το παρακάτω άρθρο περιγράφει αναλυτικά τη στρατηγική που πρέπει να ακολουθείται στην επιλογή ενός J2EE application server
http://archive.devx.com/java/free/articles/sf0101/sf0101-1.asp

J2EE URL rewrite

To mod_rewrite module του Apache web server πιθανόν το ξέρετε. Πόσες νύχτες έχουν κάποιοι από εμάς ξοδέψει για να το configure-άρουμε ξεσκαρτίζοντας ως και τα ποιο απίθανα forum (από Κορέα μέχρι Αργεντινή) για να χρησιμοποιήσουμε τις απεριόριστες δυνατότητες που έχει ως προς την επαναεγγραφή του URL on the fly στη δική μας περίπτωση.

Να όμως που υπάρχει και έκδοση του URL rewrite σε επίπεδο web application. Η συγκεκριμένη τεχνολογία λέγεται Url Rewriter Filter, ένα ελέυθερα διαθέσιμο προϊόν της Tuckey. Σε αυτό το άρθρο περιγράφω κάποια χαρακτηριστικά και κάποιες πρακτικές οδηγίες χρήσεως.

 

Continue reading “J2EE URL rewrite”

Quick Tip: Κάνοντας remote debugging στον application server

ΟΚ φανταστείται το εξής σενάριο: Εϊναι 3 η ώρα το πρωί και ο μετρητής καφέδων δείχνει 10+. Κλασικά η εφαρμογή έπρεπε να είναι έτοιμη για demo στο UAT περιβάλλον χτες… (ως συνήθως) αλλά πατώντας το Submit σκάει. Το πρόβλημα με το Null pointer exception που φαίνεται στα logs είναι αδύνατο να εντοπιστεί σε τί οφείλεται παρόλο που ο ίδιος κώδικας “παίζει” στο δικό σας PC. Πανικός !!!

Ευτυχώς όμως μπορούμε να κάνουμε remote debugging και να δούμε βήμα προς βήμα που είναι το πρόβλημα. Στο συγκεκριμένο παράδειγμα θα χρησιμοποιήσουμε Glassfish V3 και Eclipse αλλά παρόμοια διαδικασία υπάρχει για άλλους application servers και IDEs. Continue reading “Quick Tip: Κάνοντας remote debugging στον application server”

Spring Framework series: Μέρος 1ο

ΕΙΣΑΓΩΓΗ 

SpringSourceDecisions, decisions, decisions… λέει το γνωστό απόφθεγμα και δε θα μπορούσε να ταιριάζει καλύτερα σε ένα από το βασικά διλήμματα που έχει να αντιμετωπίσει ένας J2EE architect όσων αφορά την επιλογή middleware. Για ένα τυπικό MVC design pattern, πρέπείτε να γράψει ένα fully custom συστήμα με κάποιον controller και μια ομάδα components για business layer και επικοινωνία με τη βάση ή β) να στηριχθεί σε ένα framework που αναλαμβάνει όλες αυτές τις εργασίες για εκείνον. Μέχρι πρότινως, στη δεύτερη περίπτωση αποτελούσε σχεδόν μονόδρομο η επιλογή των Enterprise Java Beans (EJB) για τα οποία υπήρχαν διαχρονικά παράπονα που σχετίζονται με το ότι είναι βαρεία κτλ. Κάπου λοιπόν στο 2003 ξεκίνησε μία πρωτοβουλία για τη δημιουργία ενός lightweight framework το οποίο δειλά-δειλά και με μεθοδευμένα βήματα αποτελεί σήμερα τον, κατά τη γνώμη πολλών, δεύτερο πόλο ο οποίος δεν είναι άλλος από το Spring Framework. Το άρθρο αυτό αποτελεί το πρώτο σε μία σειρά άρθρων για την τεχνολογία αυτή και εστιάζεται στα γενικά χαρακτηρίστικα και τα πλεονεκτήματα της.  Continue reading “Spring Framework series: Μέρος 1ο”

Close