Τα Web Services είναι ένας τύπος διεπαφής λογισμικού σε ένα πληροφοριακό σύστημα, όπου μέσω αυτού είναι δυνατή η διάθεση λειτουργιών του και δεδομένων στο web, έτσι είναι εφικτή η επικοινωνία και διασύνδεση μεταξύ διαφορετικών συστημάτων, όπως είναι τα web application, application servers,  mobile apps, Desktops αλλά και το internet of things ΙοΤ.

Η χρήση τους βρίσκεται στην ανάγκη για επικοινωνία και ανταλλαγή δεδομένων στη μορφή JSON ή XML συστήματα, και ειδικότερα όταν που έχουν κατασκευαστεί σε διαφορετικές γλώσσες προγραμματισμού και βρίσκονται σε διαφορετικά γεωγραφικά σημεία, αυτή πραγματοποιείται μέσω web χρησιμοποιώντας το πρωτόκολλο HTTP.

Οπότε μία εφαρμογή που βρίσκεται σε ένα κόμβο στο internet και η οποία κατασκευασμένη σε μια γλώσσα προγραμματισμού μπορεί να επικοινωνήσει με μια δεύτερη εφαρμογή στην ίδιο server ή σε διαφορετική γλώσσα προγραμματισμού, ακόμα και όταν αυτή βρίσκεται σε διαφορετικό υπολογιστή ή κόμβο ή IOT device ανταλλάζοντας δεδομένα. Γενικά, γενικά τα web services συσχετίζονται με το SOA (Service-Oriented Architecture) .

Αυτές οι υπηρεσίες χρησιμοποιούν τις μεθόδους του HTTP όπου είναι

  • GET όπου αναζητεί δεδομένα από μια πηγή
  • POST στέλνει δεδομένα στο server δημιουργήσει δεδομένα
  • PUT ενημερώνει τα δεδομένα της πηγής
  • DELETE διαγράφει δεδομένα
  • HEAD μοιάζει με το GET αλλά χρησιμοποιείται για ελεγχθεί τι θα επιστρέψει το GET
  • OPTIONS Περιγραφεί της μεθόδους που είναι διαθέσιμες σε μια πηγή

Τα παραπάνω πραγματοποιείται  επικοινωνία, και είναι τα βασικά που πρέπει να γνωρίζει ένα web development για να χρησιμοποιεί APIs (consuming) όταν δεν υπάρχουν αντίστοιχες βιβλιοθήκες για αυτά.

Machine to machine Communication M2M

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

Ο τρόπος επικοινωνίας μεταξύ των εφαρμογών προέρχεται από τις τεχνολογίες των Web Services. Συγκεκριμένα είναι ένα web service τρέχει σε έναν server ο οποίος ακούει request σε ένα συγκεκριμένο port και ανταποκρίνεται στέλνοντας δεδομένα σε μορφή XML, JSON ή html.

REST SOAP XML-RPC

Οι τρεις κυριότερες τεχνολογίες των Web Services είναι το REST (Representational State Transfer), η XML-RPC (Remote Procedure Call) και το SOAP ( Simple Object Access Protocol).

RESTful Web Services

Στο REST διαθέτουμε ήδη όλα τα μέσα για να κάνουμε τις δύο εφαρμογές να επικοινωνήσουν, και αυτό γίνεται μέσα από HTTP όπου οι υπηρεσίες παρέχονται μεURIs (resources) που χρησιμοποιούν τη μέθοδούς HTTP όπως είναι το GET, POST, PUT και τα δεδομένα περιλαμβάνονται σε μορφή JSON ή XML

Το πρότυπο για ένα επιτυχημένο RESTful API development OpenAPI Specification όπου αποτελεί ένα προγραμματιστικά αγνωστικιστικό interface για την περιγραφή HTTP APIs.

XML-RPC

Η δεύτερη τεχνολογία η XML-RPC χρησιμοποιεί απομακρυσμένες διαδικασίες κλήσεις πάνω στο HTTP χρησιμοποιώντας encoding XML, δηλαδή μπορούμε να καλέσουμε μια συγκεκριμένη λειτουργία μιας εφαρμογής η οποία βρίσκεται σε διαφορετικό υπολογιστή χρησιμοποιώντας συγκεκριμένους παραμέτρους σε αντίθεση με το REST που χρησιμοποιούνται δεδομένα.

SOAP

Ο τρίτος τύπος το SOAP είναι παρόμοιος με την XML-RPC και με τη διαφορά ότι υποστηρίζει περισσότερους τύπου δεδομένων και υποστηρίζεται από μεγάλες εταιρίες. Όλες οι γνωστές εταιρείες που παρέχουν cloud υπηρεσίες  παρέχουν πρόσβαση σε αυτές μέσω αυτή της τεχνολογίες και είναι τα Αmazon Web Services ή Google Cloud Compute Products.

Η δομή του απλά ένα xml έγγραφό που αποτελείται από τα παρακάτω μέρη

  • Envelope element - είναι το στοιχείο που δηλώνει το xml είναι τύπου soap
  • Header element - περιλαμβάνει πληροφορίες για το authentication κ.α.
  • Body element - τα στοιχεία κλήσης και αναμενόμενης απάντησης

Websocket APIs

Ένα WebSocket API υποστηρίζει αμφίδρομη επικοινωνία μεταξύ των εφαρμογών πελάτη (client) και του διακομιστή (Server). Ο διακομιστής μπορεί να στείλει μηνύματα επανάκλησης σε συνδεδεμένους clients, καθιστώντας τον πιο αποτελεσματικό από το REST API.

OData Open Data Protocol

Αυτό το πρωτόκολλο μια μορφή REST API με τη διαφορά ότι επικεντρώνεται στο business logic και για αυτό   χρησιμοποιείται και από δημοφιλή ERP όπως είναι το SAP ERP και το Microsoft Dynamics για να συνδέσετε για να κάνετε system integration με συστήματα όπως είναι ένα e-shop ή άλλα συστήματα και υπηρεσίες για να προσφέρουν αυξημένες δυνατότητα και εμπλουτισμό δεδομένων με αυτό που λέμε API economy.

Το πρωτόκολλο OData χρησιμοποιείται για τη δημιουργία RestFull Apis για να γίνουν implement οι καλύτερες πρακτικές

Οπότε αν χρειάζεστε να φτιάξετε API για την επιχείρηση ώστε να παρέχετε προγραμματική πρόσβαση σε άλλες ή να χρησιμοποιήσετε δημοφιλής άλλες υπηρεσίες  APIs μπορείτε να προσλάβετε ειδικού στο web development

Τι είναι API

Εδώ θα θέλαμε να το τονίσουμε ότι όλα τα web services είναι API αλλά όλα τα APIs δεν είναι web services και συγκεκριμένα API Application Programming Interface είναι ένα interface όπου κάνει διαθέσιμα τα δεδομένα της εφαρμογής σε άλλα λογισμικά όχι απαραίτητα μέσω του web