
Αυτό είναι ένα πιο «μπορεί να γίνει» και όχι «πώς γίνεται» ερώτηση. Ψάχνω στην οικοδόμηση μιας υπηρεσίας (μεσαία βαθμίδα, .net, παρέχοντας άντληση στοιχείων και κάποια επιχειρηματική λογική) που θα χρησιμοποιηθούν από πολλαπλά συστήματα εσωτερικού πελάτη σε διαφορετικές πλατφόρμες. Για παράδειγμα, ένας πελάτης μπορεί να είναι μια ιστοσελίδα, ένα άλλο πελάτη ένα τμήμα κώδικα java, μια άλλη πελάτης C #, κ.λπ.


Θέλω να παρέχει μια σύγχρονη και ασύγχρονη API σε λειτουργία μου, π.χ. GetData, BeginGetData, μεθόδους EndGetData. Θέλω επίσης τους πελάτες να είναι σε θέση να εγγραφείτε για ειδοποιήσεις για νέα «δεδομένα» που προστίθεται στο σύστημα. Στο παρελθόν έχω υλοποιηθεί αυτό με τη χρήση διαδικτυακών υπηρεσιών με ένα κανάλι Tibco EMS για τις κοινοποιήσεις.


Το ερώτημά μου είναι: Μπορώ να επιτευχθούν οι τρεις προϋποθέσεις (synch, ασύγχρονη, και pub / sub) εκθέτοντας μια υπηρεσία WCF; Θα μπορούσε αυτή η υπηρεσία από καταναλώνεται από μη πελάτες WCF;


Συγχωρείστε την ασάφεια αυτή την ερώτηση - μπορώ να επεξεργαστεί ανάλογα με τις ανάγκες.


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

 
Οι αρχάριοι WCF Ερώτηση - Αναλώσιμα ασύγχρονη υπηρεσίες
=======================================================



Οι μέθοδοι είναι σύγχρονη από προεπιλογή. Για να τους κάνουν ασύγχρονη, θα πρέπει να προσθέσετε αυτό το χαρακτηριστικό [OperationContract (AsyncPattern = true)] και να επιστρέψει ένα IAsynchResult, όπως ακριβώς θα κάνατε αν ήσασταν κάνει BeginIvoke () με WinForms. (διαβάστε περισσότερα εδώ <http://msdn.microsoft.com/en-us/library/ms734701.aspx> )


Μπορείτε να κάνετε δημοσιεύσεων / συνδρομών με κάτι που ονομάζεται επανάκλησης Συμβόλαιο (αν im δεν είναι σίγουρος για την εφαρμογή αυτή σε άλλες πλατφόρμες) Δεν έχω μεγάλη εμπειρία με αυτά, αλλά δεν φαίνεται εξαιρετικά complected (μπορείτε να διαβάσετε περισσότερα εδώ [http: //dotnetaddict.dotnetdevelopersjournal.com/wcf\_alarmclock.htm](http://dotnetaddict.dotnetdevelopersjournal.com/wcf_alarmclock.htm) )

 

Ρύθμιση ασύγχρονη εργασίες για την υπηρεσία WCF σας μπορεί να γίνει ως Ninja δημοσιεύτηκε από τη AsyncPattern = true ή μπορεί να γίνει από την πλευρά του πελάτη με την αφήγηση svcutil για την παραγωγή των τελικών ασύγχρονη σημεία, θέτοντας το σωστό επιχείρημα της γραμμής εντολών ή ελέγχοντας το «Δημιουργία ασύγχρονες λειτουργίες»επιλογή στην έκδοση GUI του svcutil. Δημιουργία ασύγχρονη θα εξακολουθούν να παράγουν σύγχρονη επιχειρήσεις, καθώς και.


Το θέμα με την επιλογή async πελάτης θα πρέπει να επαναλάβει τον κώδικα σε Java. Svcutil κάνει VB εξαγωγή ή C # κώδικα, όπως έχετε ορίσει έτσι θα μπορούσε πολύ πιθανόν μεταφράσει το C # κώδικα σε Java, χωρίς πάρα πολλή δουλειά.


Για Pub / Sub, callbacks πελάτη είναι το πώς θέλετε να χειριστείτε. Είμαι χρήση τους και λειτουργούν πολύ καλά. Στο επίπεδο της ρίζας, είναι Καθαρά απομακρυσμένης πρόσβασης και τη χρήση τρίαθλο για να περάσει τα δεδομένα στον πελάτη (κατανόησή μου). Δεν μπορώ να επιβεβαιώσω ότι αυτό θα μπορούσε να χρησιμοποιηθεί σταυρό πλατφόρμα, αλλά θα πρέπει να είναι με κάποια εργασία.

 