Προγραμματισμός

Java ME 8 και το Διαδίκτυο των πραγμάτων

Ενσωματωμένα συστήματα είναι συστήματα υπολογιστών ενσωματωμένα σε πλήρεις συσκευές, των οποίων οι ειδικές λειτουργίες βρίσκονται εντός ενός μεγαλύτερου μηχανικού ή ηλεκτρικού συστήματος. Συνήθως χρησιμοποιείται τόσο σε βιομηχανικές όσο και σε καταναλωτικές εφαρμογές, τα ενσωματωμένα συστήματα μπαίνουν στο προσκήνιο με το Internet of Things (IoT). Για προγραμματιστές που μόλις ξεκινούν με το IoT, αυτό το άρθρο είναι ένας οδηγός για να μάθετε περισσότερα σχετικά με τις τεχνολογίες που περιλαμβάνουν την πλατφόρμα IoT της Oracle: Java ME 8, Java ME Embedded, Java SE Embedded και Java Embedded Suite.

Το 1991, ο Mark Weiser, τότε επικεφαλής του Palo Alto Research Center (PARC) της Xerox, προσπάθησε να συλλάβει την επόμενη εποχή των πανταχού παρόντων υπολογιστών. Σημειώνοντας ότι "οι πιο βαθιές τεχνολογίες είναι εκείνες που εξαφανίζονται", ο Weiser περιέγραψε τις διάφορες σκέψεις και τεχνικά πειράματα που διεξήγαγαν οι συνάδελφοί του στο PARC, καθώς αναζήτησαν έναν νέο τρόπο σκέψης για τους υπολογιστές ως ενσωματωμένα συστήματα. Το όραμά τους, το οποίο μπορεί να φαινόταν τόσο φανταστικό όσο το hovercraft το 1991, γίνεται γρήγορα πιο συνηθισμένο σήμερα:

Το Sal ξυπνά: μυρίζει καφέ. Πριν από λίγα λεπτά το ξυπνητήρι της, προειδοποιημένο από το ανήσυχο κύλισμά της πριν ξυπνήσει, ρώτησε σιωπηλά, «Καφές;», και μουρμούρισε, «Ναι». "Ναι" και "όχι" είναι οι μόνες λέξεις που γνωρίζει [...]

Στο πρωινό ο Sal διαβάζει τις ειδήσεις. Προτιμά ακόμα το έντυπο, όπως και οι περισσότεροι. Παραθέτει ένα ενδιαφέρον απόσπασμα από έναν αρθρογράφο στο επιχειρηματικό τμήμα. Σκουπίζει το στυλό της πάνω από το όνομα, την ημερομηνία, την ενότητα και τον αριθμό σελίδας της εφημερίδας και στη συνέχεια περιβάλλει το απόσπασμα. Η πένα στέλνει ένα μήνυμα στο χαρτί, το οποίο διαβιβάζει το απόσπασμα στο γραφείο της [...]

Μόλις η Sal φτάσει στη δουλειά, η πρώτη προβολή (στο αυτοκίνητό της) τη βοηθά να βρει γρήγορα ένα χώρο στάθμευσης. Καθώς μπαίνει στο κτίριο, οι μηχανές στο γραφείο της ετοιμάζονται να την συνδέσουν ...

Οι ενσωματωμένες συσκευές στο σενάριο της εργάσιμης ημέρας του Weiser χρησιμοποιούν αισθητήρες για να παρακολουθούν τις αλληλεπιδράσεις ενός ανθρώπινου χρήστη και την ασύρματη συνδεσιμότητα για να ενορχηστρώσουν μια απόκριση: το κρεβάτι του Sal, το ξυπνητήρι και η καφετιέρα είναι όλα συνδεδεμένα για να διασφαλίσουν ότι το πρώτο φλιτζάνι του καφέ της είναι σε εξέλιξη πριν κυλήσει εκτός κρεβατιού. Για τον Weiser και τους συναδέλφους του, αυτό ήταν ήρεμος υπολογιστής; σήμερα μπορούμε να το ονομάσουμε Διαδίκτυο των πραγμάτων (IoT).

Διαβάστε περισσότερα για τη δουλειά του Weiser στο PARC και τη θεωρία του για τον πανταχού παρόν υπολογισμό: "Εξασφαλίστε την ποιότητα των διαδικτυακών υπηρεσιών στην εποχή της ήρεμης πληροφορικής" (Frank Sommers, JavaWorld, Απρίλιος 2001).

Επισκόπηση IoT

Εάν υπάρχει ένα καθοριστικό χαρακτηριστικό του IoT, είναι η διαλειτουργικότητα ή ο συντονισμός πολλαπλών συσκευών. Όπως παρατηρήθηκε στο παραπάνω σενάριο, το IoT χρησιμοποιεί αισθητήρες για τη συλλογή δεδομένων (σε αυτήν την περίπτωση σχετικά με τις αλληλεπιδράσεις της Sal στο περιβάλλον της) και την ασύρματη συνδεσιμότητα για να οργανώσει μια απόκριση. Το IoT βασίζεται σε μια σειρά τεχνολογιών, συμπεριλαμβανομένων νέων και παλιών πλατφορμών υλικού, μεγάλων δεδομένων, υπολογιστικού νέφους και υπολογιστών από μηχανή σε μηχανή (M2M). Τα API είναι η απαραίτητη κόλλα, ενώνοντας όλα αυτά τα κινούμενα μέρη μαζί.

Το πιο σημαντικό για προγραμματιστές Java, η Java είναι το κλειδί για πολλές από τις αναδυόμενες τεχνολογίες IoT και η Oracle έχει δεσμευτεί να κάνει την Java μια κορυφαία πλατφόρμα (εάν όχι ο πλατφόρμα) για IoT. Το Java ME 8 αναπνέει νέα ζωή στην τεχνολογία μικρών συσκευών της Java, επεκτείνοντάς την με μια διαφοροποιημένη σειρά ενσωματωμένων πλατφορμών Java.

Οι επόμενες ενότητες θα παρουσιάσουν τις τεχνολογίες που περιλαμβάνουν την πλατφόρμα IoT της Oracle. ακολουθήστε τους συνδέσμους για να μάθετε περισσότερα σχετικά με τα Java ME, Java ME 8 και τα τρία ενσωματωμένα πλαίσια: Java ME Embedded, Java SE Embedded και Java Embedded Suite.

Java ME

Το Java Micro Edition προοριζόταν αρχικά να αντιμετωπίσει τους περιορισμούς που σχετίζονται με την κατασκευή εφαρμογών για μικρές συσκευές. Με βάση το Java SE, το Java ME (ή το J2ME, όπως το γνωρίζαμε το 1999) ήταν η πλατφόρμα για εφαρμογές Java που εκτελούνται σε μικρές συσκευές με περιορισμένη μνήμη, οθόνη και χωρητικότητα ισχύος. Σήμερα χρησιμοποιείται για την ανάπτυξη ενσωματωμένων συστημάτων, που κυμαίνονται από βιομηχανικά χειριστήρια έως κινητά τηλέφωνα (ειδικά τηλέφωνα), έως αποκωδικοποιητές και συσκευές αναπαραγωγής Blu-ray.

Οι προγραμματιστές που εργάζονται στο Java ME μπορούν να επιλέξουν από πολλές διαμορφώσεις, προφίλ και προαιρετικά πακέτα:

  • ΕΝΑ διαμόρφωση παρέχει το πιο βασικό σύνολο βιβλιοθηκών και δυνατοτήτων εικονικής μηχανής για ένα ευρύ φάσμα συσκευών.
  • ΕΝΑ Προφίλ είναι ένα σύνολο API που υποστηρίζουν ένα μικρότερο εύρος συσκευών.
  • Ενα προαιρετικό πακέτο είναι ένα σύνολο API ειδικά για την τεχνολογία. Το Wireless Messaging API είναι ένα παράδειγμα. Ρίξτε μια ματιά στο προαιρετικό αστάρι της Oracle για να μάθετε περισσότερα σχετικά με τα προαιρετικά πακέτα.

Διαμορφώσεις και προφίλ

Με την πάροδο του χρόνου προέκυψαν δύο διαμορφώσεις: Το Connected Limited Device Configuration (CLDC) είναι η διαμόρφωση για μικρές συσκευές και το Connected Device Configuration (CDC) είναι η διαμόρφωση για πιο ικανές κινητές συσκευές, όπως smartphone και αποκωδικοποιητές.

Τα προφίλ Java ME βρίσκονται στην κορυφή των διαμορφώσεων, καθορίζοντας API υψηλότερου επιπέδου χρήσης σε συγκεκριμένες εφαρμογές. Προφίλ συσκευής πληροφοριών για κινητές συσκευές (MIDP), για παράδειγμα, βρίσκεται στην κορυφή του CLDC και παρέχει διεπαφή χρήστη, δικτύωση και μόνιμα API αποθήκευσης. Οι εφαρμογές που εκτελούνται σε περιβάλλον CLDC / MIDP (όπως παιχνίδια) είναι γνωστές ως MIDlets.

Προγραμματισμός συσκευών με CLDC / MIDP

Ο "προγραμματισμός συσκευών με MIDP" (Michael Cymerman) περιλαμβάνει μια πρακτική επίδειξη για προγραμματιστές που είναι νέοι στο CLDC / MIDP. Δείτε επίσης "Building MIDlets" (Jonathan Knudsen και Sing Li) και "Μεγάλα σχέδια για μικρές συσκευές" (Ben Hui).

Για το CDC, υπάρχουν τρία προφίλ, Foundation, Personal Basis και Personal:

  • Το Foundation Profile είναι ένα σύνολο Java API που έχουν ρυθμιστεί για συσκευές χαμηλού αποτυπώματος που έχουν περιορισμένους πόρους και δεν χρειάζονται γραφική διεπαφή χρήστη (GUI).
  • Το Προσωπικό προφίλ βάσης είναι ένα υπερσύνολο των API προφίλ ιδρύματος και υποστηρίζει συσκευές με ελαφρές απαιτήσεις GUI. Αυτό το προφίλ συνοδεύεται από ένα πλαίσιο για την κατασκευή ελαφρών στοιχείων GUI και υποστηρίζει ορισμένες κλάσεις Abstract Window Toolkit (AWT).
  • Το Προσωπικό Προφίλ επεκτείνει το Προσωπικό προφίλ βάσης με μια εργαλειοθήκη GUI που βασίζεται στο AWT. Παρέχει ένα πλήρες περιβάλλον εφαρμογών Java ME με πλήρη υποστήριξη AWT και προορίζεται για συσκευές υψηλού επιπέδου όπως PDA, αποκωδικοποιητές, κονσόλες παιχνιδιών και ούτω καθεξής.

Οι εφαρμογές που εκτελούνται σε περιβάλλον CDC / Foundation / Personal Basis / Personal (όπως μενού ταινιών Blu-ray) είναι γνωστές ως Xlets.

Ελαφρύ κιτ εργαλείων διεπαφής χρήστη

Η χρήση του AWT Java (Abstract Window Toolkit) για τη δημιουργία εφαρμογών για κινητές συσκευές πολλαπλών πλατφορμών με ευρεία έκκληση για τους χρήστες είναι δύσκολη! Γραμματοσειρά, διάταξη και άλλες διαφορές προκαλούν την ίδια εφαρμογή να φαίνεται και να συμπεριφέρεται πολύ διαφορετικά σε διαφορετικές συσκευές. Επιπλέον, απουσιάζουν προηγμένες δυνατότητες διεπαφής χρήστη, όπως κινούμενα σχέδια και εφέ. Αναγνωρίζοντας αυτές τις ανεπάρκειες, η Sun Microsystems ανέπτυξε το Lightweight User Interface Toolkit (LWUIT) [PDF], ένα κιτ εργαλείων UI εμπνευσμένο από Swing για Java ME που υποστηρίζει CLDC 1.1 με MIDP 2.0 και CDC με Προσωπικό προφίλ βάσης. Το Codename One είναι μια δημοφιλής εφαρμογή ανοιχτού κώδικα του αρχικού LWUIT.

Java ME 8

Στα τέλη του 2012, η ​​Oracle ξεκίνησε ένα φιλόδοξο έργο για να προσφέρει μια σημαντική ενημέρωση του προτύπου της πλατφόρμας Java ME. Δύο αιτήσεις προδιαγραφών Java (JSRs) σχεδιάστηκαν για να ικανοποιήσουν τις τρέχουσες απαιτήσεις της αγοράς για ενσωματωμένες συσκευές και να προετοιμάσουν το Java ME για μελλοντικές προδιαγραφές πλατφόρμας Java: το JSR 360 (CLDC 8), μια εξελικτική ενημέρωση στο CLDC 1.1.1, θα φέρει την εικονική μηχανή, Java γλώσσα και βιβλιοθήκες ενημερωμένες με το Java SE 8. Το JSR 361 (Java ME Embedded Profile / MEEP 8) θα ενημερώσει το Information Module Profile - Next Generation (IMP-NG).

CLDC 8 και MEEP 8

Το CLDC 8 βασίζεται στο JSR 139 (CLDC 1.1) και ευθυγραμμίζει την κεντρική εικονική μηχανή Java ME, υποστήριξη γλώσσας, βιβλιοθήκες και άλλες δυνατότητες με το Java SE 8:

  • Η εικονική μηχανή έχει ενημερωθεί ώστε να συμμορφώνεται με την έκδοση 2 των προδιαγραφών JVM.
  • Υποστηρίζονται πλέον νέες λειτουργίες γλώσσας Java SE, όπως γενικά, ισχυρισμοί, σχολιασμοί και πόροι δοκιμής.
  • Υποστηρίζονται τώρα νέες βιβλιοθήκες όπως Συλλογές, υποσύνολο NIO και υποσύνολο API καταγραφής.
  • Υποστηρίζεται ένα ενοποιημένο και βελτιωμένο γενικό πλαίσιο σύνδεσης για I / O πολλαπλών πρωτοκόλλων.

Το MEEP 8 ενημερώνει την αρχική προδιαγραφή IMP-NG για να παρέχει ένα ισχυρό και ευέλικτο περιβάλλον εφαρμογών για μικρές ενσωματωμένες πλατφόρμες Java. Η προδιαγραφή βασίζεται στο CLDC 8 με τα ακόλουθα χαρακτηριστικά:

  • Ένα νέο, ελαφρύ μοντέλο εξαρτημάτων και υπηρεσιών
  • Κοινόχρηστες βιβλιοθήκες
  • Συνδυασμός πολλαπλών εφαρμογών, επικοινωνία μεταξύ εφαρμογών και σύστημα συμβάντων
  • Διαχείριση εφαρμογών
  • Προαιρετικότητα API για την αντιμετώπιση περιπτώσεων χρήσης χαμηλού αποτυπώματος

Το MEEP 8 παρέχει στους ενσωματωμένους προγραμματιστές εφαρμογών ένα σύγχρονο περιβάλλον εφαρμογών που διευκολύνει την ανάπτυξη και ανάπτυξη ενσωματωμένων λύσεων που είναι αρθρωτές, στιβαρές, εξελιγμένες λύσεις που έχουν βελτιστοποιηθεί για ένα ευρύ φάσμα περιπτώσεων χρήσης και συσκευών.

Περισσότερα για το Java ME 8

Η εισαγωγή του Terrence Barr στα κορυφαία του χαρακτηριστικά Java ME 8 προσδιορίζει τα στοιχεία που περιλαμβάνονται στην κυκλοφορία του Απριλίου 2014. Δείτε επίσης τη σελίδα λήψης Java ME SDK 8 για περαιτέρω τεκμηρίωση.

Ενσωματωμένο Java

Το Java Embedded είναι μια ανάπτυξη των Java ME και Java SE, μιας σειράς τριών πλατφορμών που στοχεύουν συγκεκριμένα ενσωματωμένες συσκευές. Κάθε ένα από αυτά τα προϊόντα παρέχει μια πολύ εξειδικευμένη και βελτιστοποιημένη εικονική μηχανή Java και παρέχει τα μέσα για την ενημέρωση του εγκατεστημένου λογισμικού και των υπηρεσιών (για παράδειγμα, χρησιμοποιώντας OSGi). Παρακάτω περιγράφω το Java ME Embedded, το Java SE Embedded και το Java Embedded Suite.

Java για ενσωματωμένα συστήματα;

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

Java ME ενσωματωμένο

Το Java ME Embedded αποτελείται ουσιαστικά από δύο εκδόσεις: Java ME Embedded και Java ME Embedded Client.

Το Java ME Embedded είναι μια εφαρμογή Java ME CLDC που παρέχει μια ισχυρή και ευέλικτη πλατφόρμα εφαρμογών με αποκλειστική ενσωματωμένη λειτουργικότητα για πάντα, χωρίς κεφαλή (χωρίς γραφικά / διεπαφή χρήστη) και συνδεδεμένες συσκευές. Οι σχεδιαστές και οι προγραμματιστές συστημάτων μπορούν να χρησιμοποιήσουν το Java ME Embedded για να δημιουργήσουν εξελιγμένες, μικρές ενσωματωμένες λύσεις που αξιοποιούν τα οφέλη της γλώσσας Java, του χρόνου εκτέλεσης και του οικοσυστήματος ενώ επιτυγχάνουν αυστηρούς στόχους πόρων συστήματος. Το Oracle Java ME Embedded μπορεί να χρησιμοποιηθεί από συσκευές με μνήμη μικρότερη από ένα megabyte.

Το Java ME Embedded Client είναι μια εφαρμογή Java ME CDC που έχει μειωθεί ώστε να ταιριάζει με τους περιορισμούς των περιορισμένων πόρων συσκευών και έχει βελτιστοποιηθεί για ενσωματωμένα συστήματα χαμηλής έως μεσαίας εμβέλειας. Αν και αυτό το προϊόν προσφέρει ένα μικρό αποτύπωμα, εξακολουθεί να παρέχει τις περισσότερες από τις λειτουργίες γλώσσας Java και χρόνου εκτέλεσης που γνωρίζουν οι προγραμματιστές Java και είναι εξοικειωμένοι με το Java SE. Το Java ME Embedded Client μπορεί να χρησιμοποιηθεί από συσκευές με μνήμη μικρότερη από 10 megabyte και χωρίς γραφικά.

Αποκτήστε το ενσωματωμένο Java ME 8

Μπορείτε να κατεβάσετε το Java ME Embedded 8 για διάφορες συσκευές ARM ή Java ME Embedded Client 1.1.1 για περιβάλλοντα ARM, MIPS και x86. Θα χρειαστεί να εγκαταστήσετε το Java ME SDK 8 για να εκτελέσετε αυτήν την πλατφόρμα. Δείτε επίσης το Java ME CDC στο Java SE Embedded 8 Migration Guide.

Java SE ενσωματωμένο

Το Java SE Embedded είναι μια ολοκληρωμένη εφαρμογή της πλατφόρμας Java SE που έχει βελτιστοποιηθεί για ενσωματωμένα συστήματα. Η έκδοση 8, η τρέχουσα τελευταία έκδοση αυτής της πλατφόρμας, περιλαμβάνει τις ακόλουθες δυνατότητες:

  • Νέα χαρακτηριστικά γλώσσας Java SE 8 για βελτίωση της παραγωγικότητας του προγραμματιστή
  • Συμπαγή προφίλ και εργαλεία για τη δημιουργία προσαρμοσμένων, βελτιστοποιημένων με το χώρο εικονικών μηχανών
  • 50% καλύτερη απόδοση από τις προηγούμενες εκδόσεις χάρη στο Java SE 8
  • Υπέροχες εφαρμογές GUI με επιταχυνόμενο GPU JavaFX
  • Εργαλεία για λεπτομερή παρακολούθηση χρόνου εκτέλεσης και ανάλυση συμβάντων μετά το γεγονός

Σημειώστε ότι το Java SE Embedded 8 μπορεί να χρησιμοποιηθεί από συσκευές με ελάχιστο χώρο αποθήκευσης 11 megabyte. Κατεβάστε το Java SE Embedded 8 για πλατφόρμες ARM, Power Architecture και x86.

Ολοκληρωτής πλατφόρμας Java

Η Oracle παρουσίασε το πρόγραμμα Java Platform Integrator για να παρέχει στους συνεργάτες τη δυνατότητα να προσαρμόσουν τα προϊόντα Java Embedded, συμπεριλαμβανομένων των Java ME Embedded, Java ME Embedded Client και Java SE Embedded για να προσεγγίσουν διαφορετικούς τύπους συσκευών και τμήματα αγοράς.

Java Embedded Σουίτα

Η Java Embedded Suite είναι η τελευταία προσφορά στην οικογένεια Java Embedded. Αυτή η σουίτα εργαλείων προσθέτει λειτουργίες τύπου επιχείρησης στο Java SE Embedded runtime, επιτρέποντας στις εφαρμογές να κάνουν τα εξής:

  • Αποθηκεύστε δεδομένα σε σχεσιακή βάση δεδομένων Java DB.
  • Φιλοξενήστε εφαρμογές Web που βασίζονται σε servlet Web servlet, για παράδειγμα, για να παρέχουν ασφαλή απομακρυσμένη πρόσβαση σε δεδομένα και λειτουργίες συσκευών.
  • Φιλοξενήστε και αποκτήστε πρόσβαση σε υπηρεσίες RESTful Web με την εφαρμογή Oracle's Jersey της προδιαγραφής JAX-RS.

Ουσιαστικά, το Java Embedded Suite συνδυάζει το Java SE Embedded 7 (το οποίο παρέχει χρόνο εκτέλεσης για εφαρμογές Java) με το Java DB (το οποίο παρέχει μια βάση δεδομένων για την ασφαλή αποθήκευση τοπικού περιεχομένου), το GlassFish για το Embedded Suite (το οποίο παρέχει διακομιστή εφαρμογών για ιστοσελίδες), Jersey Πλαίσιο Υπηρεσιών Ιστού (για φιλοξενία και πρόσβαση σε υπηρεσίες Ιστού) και Επεξεργασία συμβάντων για Ενσωματωμένο Java (το οποίο χειρίζεται την επεξεργασία συμβάντων σε πραγματικό χρόνο και το οποίο είναι προαιρετικό στοιχείο).

Κατεβάστε το Java Embedded Suite για ARM ή x86.

συμπέρασμα

Η Oracle έχει τοποθετήσει το Java ME και τις σχετικές τεχνολογίες για να αντιμετωπίσει τις προκλήσεις της ανάπτυξης ενσωματωμένων συσκευών, με τον τελικό στόχο του IoT. Αυτό το άρθρο παρουσίασε ένα σύντομο αστάρι στο Java ME και στη συνέχεια σας παρουσίασε στα προϊόντα Oracle's Java ME 8, Java ME Embedded, Java SE Embedded και Java Embedded Suite.

Για μαθήματα προγραμματισμού και βέλτιστες πρακτικές που θα σας βοηθήσουν να ξεκινήσετε με τις βασικές αρχές του IoT, επισκεφθείτε τις σελίδες προγραμματισμού Java ME, MIDP και Embedded Java στο JavaWorld. Για να μάθετε περισσότερα σχετικά με τη στρατηγική της Oracle για το IoT και τη θέση της Java σε αυτήν τη στρατηγική, ρίξτε μια ματιά στα διάφορα άρθρα, βίντεο, λευκές βίβλους και φυλλάδια στη σελίδα πληροφοριών του Oracle Internet of Things.

Αυτή η ιστορία, "Java ME 8 and the Internet of Things" δημοσιεύθηκε αρχικά από την JavaWorld.