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

Επικοινωνία μεταξύ διεργασιών στην Java

Ε: Πώς μπορούν να αλληλεπιδράσουν δύο διεργασίες Java (δύο JVM) στον ίδιο υπολογιστή - δηλαδή, να διαβάζουν ο ένας τον άλλο τις μεθόδους και να ανταλλάσσουν αντικείμενα; Χρησιμοποιώ RMI, αλλά φαίνεται ότι πρέπει να υπάρχει μια απλούστερη λύση.

ΕΝΑ: Η επικοινωνία μεταξύ διεργασιών είναι ένα σημαντικό θέμα προγραμματισμού και η Java, όπως και κάθε σοβαρό περιβάλλον προγραμματισμού, αντιμετωπίζει το ζήτημα. Μια προσέγγιση, όπως έχετε ήδη μάθει, είναι το RMI. Μια στενά συνδεδεμένη εναλλακτική λύση είναι η CORBA. Το CORBA σας επιτρέπει να ανταλλάσσετε αντικείμενα και να ενεργοποιείτε δυναμικές μεθόδους κατά το χρόνο εκτέλεσης. (Για ένα γρήγορο σεμινάριο CORBA, ανατρέξτε στην ενότητα Πόροι παρακάτω.)

Ωστόσο, όπως το RMI, το CORBA μπορεί να είναι υπερβολικό σε ορισμένες περιπτώσεις. Για απλή επικοινωνία μεταξύ διεργασιών, μπορείτε να χρησιμοποιήσετε απλές παλιές υποδοχές για επικοινωνία μεταξύ εφαρμογών Java. Τα αντικείμενα μπορούν να σειριοποιηθούν και να μεταδοθούν μέσω πριζών μέσω της χρήσης του ObjectInputStream και ObjectOutputStream τάξεις. Ενώ οι πρίζες είναι απλούστερες από το RMI ή το CORBA, τίποτα δεν ορίζεται για εσάς, οπότε θα πρέπει να ορίσετε τα πάντα. Αυτό σημαίνει ότι θα πρέπει να ορίσετε τα δικά σας πρωτόκολλα επικοινωνίας, να γράψετε τις δικές σας υπηρεσίες αναζήτησης και σύνδεσης, να φροντίσετε την ασφάλεια και ούτω καθεξής. (Για μια καλή εισαγωγή στον προγραμματισμό υποδοχής Java, ανατρέξτε στην ενότητα Πόροι.)

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

Ο Tony Sintes είναι ανώτερος σύμβουλος της ObjectWave Corporation που ειδικεύεται στις τηλεπικοινωνίες. Ο Tony συνεργάζεται με την Java από το 1997 και είναι πιστοποιημένος από την Sun προγραμματιστής Java 1.1 και προγραμματιστής Java 2.

Μάθετε περισσότερα σχετικά με αυτό το θέμα

  • "Εισαγωγή στο CORBA", από το Java Developer Connection

    //developer.java.sun.com/developer/onlineTraining/corba

  • "Java Basic Programming Language Basics, Part 2Lesson 1Socket Communications", επίσης από το Java Developer Connection, παρέχει ένα καλό σεμινάριο για τον προγραμματισμό υποδοχών

    //developer.java.sun.com/developer/onlineTraining/Programming/BasicJava2/socket.html

Αυτή η ιστορία, "Interprocess communications in Java" δημοσιεύθηκε αρχικά από το JavaWorld.