<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Web Services</title><link>https://www.dotnetzone.gr:443/cs/forums/21/ShowForum.aspx</link><description>Συζήτηση περί των web services και WSE, την υλοποίησή τους με το .NET Framework, καθώς και θέματα interoperability με άλλα συστήματα</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Προσθήκη φίλτρου συμπίεσης σε web services</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/9057.aspx</link><pubDate>Tue, 31 Jan 2006 19:15:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:9057</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/9057.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=9057</wfw:commentRss><description>&lt;P&gt;Κοίτα, στην ουσία παίρνεις τα περιεχόμενα του SOAP (την xml με τα δεδομένα σου δηλαδή), τα συμπιέζεις με gzip και τα βάζεις σαν attachment. Ο client μπορεί να κάνει την αντίστροφη διαδικασία χωρίς να απαιτείται .net, έχει να παίζει μόνο με SOAP και gzip. Η διαδικασία είναι αρκετά απλή και εκτός .net.&lt;/P&gt;
&lt;P&gt;Επιπλέον, μπορείς να ορίσεις ότι αν ο client θέλει τα δεδομένα του συμπιεσμένα, να σου βάζει ένα header στο request. Έτσι, όποιος έχει υλοποιήσει την αποσυμπίεση μπορεί να ζητά συμπιεσμένα δεδομένα και όποιος δεν το έχει κάνει ακόμα μπορεί να συνεχίσει να δουλεύει όπως πριν. Οπότε μπορεί να προστεθεί ανώδυνα σε production περιβάλλον που βρίσκεται ήδη σε λειτουργία.&lt;/P&gt;</description></item><item><title>Απ: Προσθήκη φίλτρου συμπίεσης σε web services</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/9055.aspx</link><pubDate>Tue, 31 Jan 2006 18:21:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:9055</guid><dc:creator>kkara</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/9055.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=9055</wfw:commentRss><description>Πολύ ενδιαφέρον Χρήστο! Εδώ και καιρό αναρωτιόμουν αν γινόταν αυτό, γιατί υπάρχουν όντως περιπτώσεις όπου το εξερχόμενο XML είναι τέρας. Πραγματικά πολύ χρήσιμο για τις εφαρμογές στις οποίες έχεις τη δυνατότητα να φτιάξεις και τον Server και τον Client.&lt;br&gt;&lt;br&gt;Το πρόβλημα όμως εξακολουθεί να υφίσταται στην περίπτωση όπου είσαι υπεύθυνος μόνο για το Server κομμάτι (τα Web Services δηλαδή). Τότε με αυτό τον τρόπο ψιλο-υποχρεώνεις τους client να φτιαχτούν σε .NET (εκτός κι αν το ψάξουν ΠΑΡΑ ΠΟΛΥ).&lt;br&gt;&lt;br&gt;Ξέρει όντως κανείς αν έχει βρεθεί καμιά λύση για αυτό με στόχο τη διαλειτουργικότητα; Ομολογώ ότι δεν κατέχω από WS-*, οπότε μπορεί να ορίζεται κάτι εκεί. Έστω κάτι που να μπορείς ένα μύνημα να το χωρίσεις σε περισσότερα (χωρίς βέβαια να το κάνεις manually);&lt;br&gt;&lt;br&gt;Και πάλι πάντως το post ήταν πολύ βοηθητικό και ελπίζω να το αξιοποιήσω κάπου :)!</description></item><item><title>Προσθήκη φίλτρου συμπίεσης σε web services</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/9042.aspx</link><pubDate>Tue, 31 Jan 2006 05:23:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:9042</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/9042.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=21&amp;PostID=9042</wfw:commentRss><description>&lt;P&gt;Η επικοινωνία με τα web services παρουσιάζει πολλές φορές προβλήματα λόγου του όγκου των δεδομένων που ανταλλάσσονται. Όταν ένας client ζητά μια μεγάλη ποσότητα δεδομένων, σε πολλές περιπτώσεις η κοινή πρακτική είναι να επιστρέψουμε ένα dataset με τα δεδομένα που ζήτησε. Το dataset όμως γίνεται &lt;A href="http://msdn2.microsoft.com/library/182eeyhh.aspx"&gt;serialized&lt;/A&gt; σε xml και τα προβλήματα αρχίζουν, καθώς ο όγκος της xml που περιγράφει το dataset είναι πολλές φορές μεγάλος.&lt;/P&gt;
&lt;P&gt;Υπάρχουν τεχνικές συμπίεσης των δεδομένων σε επίπεδο web method. Ο client ζητά τα δεδομένα, τα παίρνουμε από τη βάση, τα συμπιέζουμε και επιστρέφουμε πίσω ένα array από bytes. Αυτό όμως απαιτεί αλλαγές στον κώδικα για κάθε web method, εξαφανίζει ουσιαστικά τον τύπο των δεδομένων (επιστρέφει πλέον bytes αντί του dataset ή typed dataset) (μιλάμε για .net 1.1),&amp;nbsp;ενώ απαιτεί αλλαγές και στον κώδικα του client προκειμένου να αποσυμπιέσει τα bytes που παραλαμβάνει.&lt;/P&gt;
&lt;P&gt;Ο &lt;A href="http://www.codeproject.com/script/profile/whos_who.asp?id=65656"&gt;DaberElay&lt;/A&gt; στο άρθρο του "&lt;A href="http://www.codeproject.com/cs/webservices/WebServiceZipFilter.asp"&gt;&lt;STRONG&gt;Adding a zip filter to web services&lt;/STRONG&gt;&lt;/A&gt;", προσεγγίζει το θέμα από μια άλλη οπτική γωνία, χρησιμοποιώντας προς όφελός του τη δυνατότητα των &lt;A href="http://msdn.microsoft.com/webservices/webservices/building/wse/default.aspx"&gt;WSE&lt;/A&gt; να περνάνε τα &lt;A href="http://en.wikipedia.org/wiki/SOAP"&gt;soap messages&lt;/A&gt; από φίλτρα πριν φτάσουν στον τελικό προορισμό τους.&lt;/P&gt;
&lt;P&gt;Η τεχνική που περιγράφει δημιουργεί στην ουσία ένα φίλτρο συμπίεσης και ένα αποσυμπίεσης, και ορίζει τη χρήση τους με μια απλή δήλωση μέσα στο configuration αρχεία του server και του client. Η ιδέα είναι πολύ καλή, ο κώδικας λίγος, ενώ αν αποφασίσετε να το χρησιμοποιήσετε θα κατανοήσετε καλύτερα πολλά θέματα γύρω από την επικοινωνία των web services και τα WSE.&lt;/P&gt;
&lt;P&gt;Αν έχετε απορίες ή προβλήματα στην υλοποίηση... εδώ είμαστε...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.codeproject.com/cs/webservices/WebServiceZipFilter.asp"&gt;http://www.codeproject.com/cs/webservices/WebServiceZipFilter.asp&lt;/A&gt;&lt;/P&gt;</description></item></channel></rss>