Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

C# και εκτέλεση εφαρμογών σε Unix

Îåêßíçóå áðü ôï ìÝëïò wizo. Τελευταία δημοσίευση από το μέλος Κώστας Μιχαλόπουλος στις 08-11-2007, 18:48. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-04-2007, 20:42 30881

    C# και εκτέλεση εφαρμογών σε Unix

    Καλησπέρα και καλώς σας βρήκα. Αυτή είναι η επίσημα πρώτη μου δημοσίευση και χρειάζομαι την άποψη σας σε κάτι.
    Θέλω να αναπτύξω μία εφαρμογή (σε C#, αυτό είναι το μόνο σίγουρο) η οποία θα τρέχει -προφανώς- σε Windows αλλά θα συνδέεται σε ένα Solaris server.
    Το επιθυμητό είναι να δίνεται η δυνατότητα στον χρήστη να εκτελεί εφαρμογές του Server η οποίες παράγουν κάποια αρχεία. Τα αρχεία αυτά θέλουμε να βλέπουμε στα Win.
    Δλδ. έχουμε κάποια εκτελέσιμα προγράμματα (scripts κυρίως) σε Solaris τα οποία παράγουν αρχεία από μία βάση και η εφαρμογή μας θα πρέπει να εκτελεί αυτά, να περιμένει να παραχθούν τα αρχεία και έπειτα να τα προβάλει στην οθόνη του win user.

    Σαν πρώτη ιδέα έχω την δημιουργία του κλασικού client - server (socket) μοντέλου. Άνοιγμα socket,bind και γράψιμο σε αυτό τα παραχθέντα αρχεία.
    C# δλδ στα Win (client) και C++ στο Solaris (Server).
    Επειδή όμως το όλο consept περιστρέφετε γύρω από αρχεία και θα ήθελα το σύστημα να είναι όσο δυνατό ποιό ευέλικτο η ερώτηση μου είναι η εξής:
    Υπάρχει κάποια τεχνολογία (την οποία πιθανότατα αγνοώ, Corba π.χ ) η κάποιος καλύτερος τρόπος για να πραγματοποιηθεί αυτό?\

    Ευχαριστώ εκ των προτέρων.

  •  24-04-2007, 20:48 30884 σε απάντηση της 30881

    Απ: C# και εκτέλεση εφαρμογών σε Unix

    Ναι.. Με Xml web services! Πιστευω θα είναι είναι το πιο σωστό...
    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  24-04-2007, 22:43 30887 σε απάντηση της 30881

    Απ: C# και εκτέλεση εφαρμογών σε Unix

    Το τί θα χρησιμοποιήσεις εξαρτάται κυρίως από το τί σε βολεύει να φτιάξεις στην πλευρά του Unix. Μπορείς βέβαια να φτιάξεις socket servers στο Unix, Web Services, ακόμα και να χρησιμοποιήσεις Rexec ή SSH. Εξαρτάται τί σου είναι ευκολότερο.

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

    Web Services θα χρησιμοποιήσεις μόνο και μόνο για να μπορούν διάφοροι clients να επικοινωνήσουν με τα scripts. Τα web services καλύπτουν σε μεγάλο βαθμό και θέματα κλήσεων και αναφοράς λαθών.

    Τέλος, μπορείς να χρησιμοποιήσεις RExec ή SSH, π.χ. με τα components της nSoftware ή της Dart, για να εκτελέσεις τα script. Υπάρχουν και open source εργαλεία για telnet και SSH. Δες το http://csharp-source.net/open-source/network-clients για μία λίστα από open source projects.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-11-2007, 18:48 37107 σε απάντηση της 30881

    Απ: C# και εκτέλεση εφαρμογών σε Unix

    Άν κατάλαβα καλά τι θέλεις να κάνεις, πιστεύω το να χρησιμοποιήσεις κάτι απλό όπως ένα CGI script που παίρνει τα δεδομένα μέσω POST request και στέλνει πίσω τα αποτελέσματα είναι αρκετά εύκολο.

    Εναλλακτικά αν δεν θέλεις να πέφτει η σύνδεση με κάθε request (ή δεν θέλεις να φτιάξεις CGI ή να τρέχεις web server), μπορείς και να χρησιμοποιήσεις κάτι ακόμα πιο απλό: έναν inetd server. Αυτό δουλεύει με τον εξής τρόπο: ορίζεις μια πόρτα στο inetd configuration και ένα πρόγραμμα. Όταν ανοίξει ένα connection σε αυτή την πόρτα, το inetd εκτελεί το πρόγραμμα. Όλα τα δεδομένα έρχονται απο το client στο server, τα στέλνει στο standard input (στο Unix μπορείς να χρησιμοποιήσεις την select() με το stdin αρχείο για να δεις αν υπάρχουν διαθέσιμα δεδομένα και την scanf ή την fread για να λάβεις τα δεδομένα). Ότι θέλεις να στείλεις, τα στέλνεις στο standard output (με την printf ή την fwrite στο stdout για παράδειγμα). Δεν χρειάζεται να μπλέκεσαι με sockets, κλπ ούτε να μπερδεύεσαι με θέματα πολλαπλών clients κλπ, αφού το inetd αναλαμβάνει το κομμάτι αυτό.


    ~bs~
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems