Σύνδεση application με web application

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
cocoflop
Δημοσιεύσεις: 46
Εγγραφή: 23 Αύγ 2007 19:51

Σύνδεση application με web application

Δημοσίευση από cocoflop » 27 Ιούλ 2010 16:39

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

Το PC 192.168.1.10 τρέχει μια εφαρμογή η οποία κάθε 5 δευτερόλεπτα διαβάζει ένα τάδε αρχείο XML από τον σκληρό δίσκο.

Το PC 192.168.1.20 τρέχει έναν Webserver, εκεί στεγάζεται μια web application όπου πρέπει να μου παρουσιάσει αυτά τα δεδομένα XML (από το PC 192.168.1.10).

Τι σύνδεση να χρησιμοποιήσω; Sockets; HTTP Requests;

Ποιός στέλνει που; (Η webapplication πρέπει να κάνει Requests; Ή η κανονική εφαρμογή να κάνει streaming; Για λόγους απόδοσης τείνω προς το streaming...


Εσείς τι λέτε;


Υ.Γ. Μόλις λύσω βασικές απορίες θα προχωρήσω το πείραμα και σε Internet-ικό περιβάλλον. (Επικοινωνία ενός απομακρυσμένου PC με μια ιστοσελίδα). Όμως για να μην σας μπερδέψω θέλω να μου εξηγήσετε τα βασικά για ξεκίνημα.

Σας ευχαριστώ. :D

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Σύνδεση application με web application

Δημοσίευση από soteres2002 » 27 Ιούλ 2010 22:54

Για να κάνεις sockets πρέπει να φτιάξεις client-server application στις 2 ΙΡ. Καλύτερα είναι να χρησιμοποιήσεις μία database πχ MySQL την οποία και θα εγκαταστήσεις σε μία από τις 2 ΙΡ, ή μπορεί και να προσθέσεις και μία τρίτη ΙΡ στο δίκτυό σου. Έτσι από το application στην πρώτη ΙΡ θα κάνεις updates και insertions με νέα data και στην άλλη ΙΡ που έχεις το web application θα συνδέεσαι με server-side coding στην database και θα τραβάς τα δεδομένα που πριν έκανες update/insert.

Όσον αφορά την XML αν είναι όντως ανάγκη να χρησιμοποιηθεί αυτή, μπορείς να παράγεις dynamically XML output με βάση τα results που λαμβάνεις από τα σχετικά queries στην database.

cocoflop
Δημοσιεύσεις: 46
Εγγραφή: 23 Αύγ 2007 19:51

Σύνδεση application με web application

Δημοσίευση από cocoflop » 28 Ιούλ 2010 15:19

Κατάλαβα τι εννοείς. Καλό ακούγεται.

Μια ερώτηση. Στην ουσία τα HTTP requests, δεν είναι σύνδεσεις socket με προτόκολλο HTTP;

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Σύνδεση application με web application

Δημοσίευση από soteres2002 » 28 Ιούλ 2010 17:33

cocoflop έγραψε: Μια ερώτηση. Στην ουσία τα HTTP requests, δεν είναι σύνδεσεις socket με προτόκολλο HTTP;
Ναι, όπως τα λες είναι... Στην ουσία όμως για να κάνεις exchange δεδομένων θα πρέπει να παίξεις σε υψηλότερο επίπεδο από το πρωτόκολλο ΗΤΤΡ, δηλαδή με προγραμματισμό σε web server, πχ με ΡΗΡ. Και για να γίνει αυτό, είναι αποδοτικότερο να παρεμβληθεί μία βάση δεδομένων μεταξύ της εφαρμογής του σερβερ και της άλλης εφαρμογής που υποθέτω ότι θα κάνει ενημερώσεις δεδομένων και εισαγωγή δεδομένων στην ΒΔ.

Φυσικά θα μπορούσες ακόμα και να μεταβάλλεις ένα αρχείο ΧΜΛ αλλά αυτό προσωπικά δεν στο συνιστώ, καθώς αυτή η λύση προκαλεί τα εξης προβλήματα: α) όσο το αρχείο μεγαλώνει, το network delay της web εφαρμογής θα αυξάνει, και εκτός από αυτό, όσο το αρχείο σου μεγαλώνει η αναλογία άχρηστης προς χρήσιμης πληροφορίας θα αποκλίνει, μεταφέρωντας έτσι άχρηστη πληροφορία μέσω του επιπέδου δικτύου και επεξεργάζωντάς την αυτήν χωρίς να την χρησιμοποιείς στο τέλος β) επίσης θα αυξάνει και το υπολογιστικό κόστος που απαιτείται για να επεξαργαστείς το αρχείο real-time μέσα στην εφαρμογή, γ) αναγκαστικά θα γίνονται ξανά και ξανά άσκοποι υπολογισμοί σε κάθε request, που είναι κακό και ως προς την CPU αλλά και ώς προς το impact που θα έχεις λόγο της καθυστέρησης επεξεργασίας της σελίδας δ) το να φτιάξεις έναν parser XML δεν είναι δύσκολη υπόθεση, όμως το να επεξεργάζεσαι την πληροφορία θέλει προσεκτική σχεδίαση και ικανότητα.

Με ΧΜΛ επομένως ξανα-ανακαλύπτεις τον τροχό χωρίς ιδιαίτερο ώφελος, επομένως χοντρικά όλα συνηγορούν στο να χρησιμοποιηθεί μια βάση δεδομένων, που υπάρχει για αυτό ακριβώς το σκοπό: να κάνεις δηλαδή σύνθετα ερωτήματα σε δομημένη ή αδόμητη πληροφορία που την αποθηκεύεις σε κάποιο schema, κάνωντας επερωτήσεις στο σύστημα και λαμβάνωντας αποκρίσεις από αυτό σε νορμάλ timings, καθώς και να μην έχεις τα προβλήματα που σου ανέφερα πιο πάνω.

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες