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

 

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

SOAP RPC ή Doc-Lit Messaging ???

Îåêßíçóå áðü ôï ìÝëïò anjelinio. Τελευταία δημοσίευση από το μέλος anjelinio στις 12-09-2005, 20:05. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-09-2005, 17:40 5141

    SOAP RPC ή Doc-Lit Messaging ???

    Καλησπέρα παιδιά,

       μιας και τις τελευταίες μέρες δεν παίζει πολλή δουλειά, έχω τον καιρό να ασχολούμαι με φιλοσοφικές αναζητήσεις. Μια εκ των οποίων αποφάσισα να μοιραστώ μαζί σας, να δούμε και μια άλλη άποψη.

    Η μορφή που έχουν - ως έχει - τα περισσότερα Web Services που έχω δεί, θυμίζει Remote Procedure Call με τη μόνη διαφορά να είναι η χρήση του HTTP και SOAP αντί για κάποιο proprietary πρωτόκολλο τύπου Remoting, CORBA κτλ κτλ. Η ένστασή μου με τον παραπάνω τρόπο, είναι οτι δεν κάνει expose ένα end-point ... πιο πολύ κάνει expose ένα API. Έτσι, στην ουσία γράφεις tightly-bound κώδικα σα να είχες αυτά τα objects τοπικά. Καλά ως εδώ ...

    ... αλλά ...

    ... όλη αυτή η όμορφη προτεινόμενη κατάσταση με τα SOA και τα σόγια που λέει κι ο μέγιστος, δεν θα έπρεπε να μας σπρώχνει προς όσο το δυνατόν πιο loosely-coupled τρόπους επικοινωνίας;;; Σκέφτηκα εγω ... και (αντι)λέγω ...

    Αντί να έχω ένα Web Service, ή μια πληθώρα απο Web Services στο .... enterprise μου ( μπορείτε να με λέτε Captain Kirk... ) οι οποίες δίνουν έξω ένα σωρό απο API-α, δεν θα ήταν πιο απλό και όμορφο να έχω μόνο μία, η οποία έχει μόνο μια μέθοδο, καπως έτσι:

    public IMessage ProcessRequest(IMessage request) { ... }

    ... και να έχω subclasses ενός abstract implementation του IMessage για όλα τα μυνήματα και τις λειτουργίες όλων αυτών των Web Services που προανέφερα; Πακετάκι με λίγο xml config, λίγο Xml Serialization και λίγο reflection, θα μπορούσα να προσθέτω δυναμικά message handlers οι οποίοι εξυπηρετούν νέους τύπους μυνημάτων, χωρίς ποτέ να χρειαστεί να κάνω recompile το service μου, και χωρίς ποτέ να χρειαστεί καν να το σταματήσω ...

    ( Αν δεν κάνω λάθος, και το ίδιο το SOAP πλέον, χρήσιμοποιεί κάποια αντίστοιχη ιδέα - αυτό που ακούω να λένε οτι περάσαμε απο το SOAP/RPC στο Document Literal SOAP ... αλλά θα σας γελάσω για τις λεπτομέρειες, ίσως κάποιος άλλος γνωρίζει περισσότερα επι του θέματος και μας φωτίσει όλους ... )

    Ποιά η γνώμη σας για όλα αυτά;


    Angel
    O:]
  •  07-09-2005, 11:12 5165 σε απάντηση της 5141

    Απ: SOAP RPC ή Doc-Lit Messaging ???

    Έχεις απόλυτο δίκιο. Είναι λάθος να δει κανείς τα Web Services σαν άλλη μια μορφή DCOM/CORBA/Remoting. Δυστυχώς, είναι η εύκολη λύση, καθώς τα διάφορα εργαλεία δημιουργούν εύκολα schema από κλάσεις και το αντίστροφο, οπότε πολλοί σταματάνε εκεί και λένε "φτιάξαμε web services".
    Για να μπορέσεις να εκμεταλλευτείς τις δυνατότητες του SOA θα πρέπει να υλοποιήσεις μια διαδικασία ανταλλαγής μηνυμάτων. Πρέπει να ορίσεις τη μορφή των μηνυμάτων και τις διαδικασίες που τα αφορούν. Αν το εργαλείο σου μπορεί εύκολα να μετατρέψει το schema σε κλάση, κανένα πρόβλημα. Αλλά τα βασικά στοιχεία που πρέπει να δημιουργήσεις είναι το schema των μηνυμάτων και οι διαδικασίες.
    Τώρα, πως θα φτιάξεις τα end points, είναι καθαρά θέμα σχεδίασης του κάθε συστήματος. Μπορείς να έχεις μια μέθοδο SubmitPurchaseOrder που θα δέχεται ένα αντικείμενο PurchaseOrder. Μπορείς να έχεις μία SubmitTransaction που θα δέχεται ένα αντικείμενο Transaction, και ανάλογα με το είδος του θα καλεί άλλες μεθόδους.
    Το SOAP δεν επιβάλλει τον ένα ή τον άλλο τρόπο σχεδίασης απλά επειδή δεν είναι πρότυπο σχεδίασης αλλά πρωτόκολλο επικοινωνίας.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  07-09-2005, 13:33 5188 σε απάντηση της 5165

    Απ: SOAP RPC ή Doc-Lit Messaging ???

    ... φωνή βοώντως εν τοι ερήμω :D Οκ, άρα δεν είμαι εγώ ψυχάκιας, ο γιαλός είναι στραβός !

    Που θα πάει, κάποια στιγμή θα παίξει κάποιο project-άκι να γίνουν όλα αυτά πραγματικότητα. thanx Πάνο.
    Angel
    O:]
  •  09-09-2005, 20:54 5301 σε απάντηση της 5188

    Απ: SOAP RPC ή Doc-Lit Messaging ???

    Ριξτε μια ματια εδω:
    http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20030722WEBSVCSDP/manifest.xml
  •  12-09-2005, 11:13 5344 σε απάντηση της 5301

    Απ: SOAP RPC ή Doc-Lit Messaging ???

    ... τους πήρε λίγο καιρό, αλλά την παλέψανε τελικά, κέρδισε η λογική :) Δεν το είδα ακόμη, (είναι και 33 Μb download) αλλά είμαι σίγουρος οτι θα'ναι ενδιαφέρον.
    Angel
    O:]
  •  12-09-2005, 20:05 5382 σε απάντηση της 5344

    Απ: SOAP RPC ή Doc-Lit Messaging ???

    Έχοντας δεί το webcast (18 min μόνο.. ) έχω να πώ τα εξής ...

    1. Aν ξαναδώ το παρακάτω θα ουρλιάξω ...

    public string Whatever(string strMessage){
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(strMessage);

    ....
    }

    ... οχι, οχι όχι. Αυτό είναι πρόσκληση για DOS. Φαντάσου το μέγεθος αυτού του XmlDocument στη μνήμη, αν η αρχική παράμετρος είναι κανένα Mb. Προτείνω ειδκή κλασσούλα handler, η οποία θα χρησιμοποιεί SAX ή Xml Serialization τα οποία είναι πιο οικονομικά σε μνήμη.

    2. ...

    public string Whatever(object objMessage){
    ....
    }

    ... είπαμε να "ανοίξουμε" το service, αλλά πια αυτο είναι διάπλατο :D

    3. Τελειώνοντας ο φίλος προτείνει versioned user defined types ... ok, αλλά με κάτι πιο generic απο μια κλάσση Customer ...

    ... all in all, καλή η εισαγωγή, αλλά μόνο εισαγωγή. Θα περιμένω ίσως κάποιο full-length episode του .Net Show :)
    Angel
    O:]
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems