Το Service-oriented Architecture (SOA) είναι μια αρχιτεκτονική δομή λογισμικού που επιτρέπει στo λογισμικό που αναπτύσεται να γίνεi πιο ευέλικτο και να ανταποκρίνεται πιο γρήγορα στις απαιτήσεις της αγοράς. Συγκεκριμένα είναι μέθοδος ανάπτυξης λογισμικού που χρησιμοποιεί στοιχεία λογισμικού που ονομάζονται υπηρεσίες - services για τη δημιουργία business logic software.
Ο συνήθης τρόπος δημιουργίας ενός πληροφοριακού συστήματος μιας εταιρείας, είναι αγορά του hardware, του software και του συστήματος δικτύωσης. Συνήθως υπάρχει μια ομάδα που πλαισιώνει και είναι υπεύθυνη για την ομαλή λειτουργία όλου του πληροφοριακού συστήματος και το integration συστημάτων επιχειρησιακών πόρων.
Η πιο συνηθησμένος τρόπος διαχείρισης των τμημάτων μια εταιρείας είναι με την εγκατάσταση και παρεμετροποίηση ενός συστήματος ERP. Αλλά σε εταιρίες που χρειάζονται μεγαλύτερη ευξελιξία μπορεί να γίνει custom ανάπτυξη ή υπάρχει ήδη αυτή δομή σε vendors όπως το SAP, τι είναι sap. Σε κάθε περίπτωση το πρόβλημα δημιουργείται όταν θέλουμε να κάνουμε αλλαγές στο software ή στο hardware ή στη δικτύωση του συστήματο το σύστημα είναι άκαμπτο monolithic.
Σε αυτή περίπτωση το soa η δημιουργία ενός custom λογισμικού μπορεί να σπάσει το μέγαλο πληρφοριακό σύστημα σε μικρότερα κομμάτια που έχουν συγκεκριμένο businness logic που ονομάζονται δομικά block αλλά μπορούν να λειτουργήσουν αυτόνομα και να επικοινωνήσουν μεταξύ τους, θα μπορούσε να χαρακτηριστεί και ώς Application Architecture
Δομικά Block
Αυτό το πρόβλημα μπορεί να λυθεί χτίζοντας το πληροφοριακό σύστημα της επιχείρησης όχι σαν κομμάτια από hardware ή software αλλά σαν υπηρεσίες τύπου HTTP. Δηλαδή ένα building block θα είναι μια υπηρεσία (web service) της επιχείρησης όπως ο έλεγχος της αποθήκης της. Αυτό το building block θα πρέπει να μπορεί λειτουργεί αυτόνομα με το δικό του hardware και software και ταυτόχρονα να δέχεται, να επεξεργάζεται και να εξάγαγει δεδομένα.
Με την ίδια λογική μπορούν και οι υπόλοιπες διεργασίες μια επιχείρησης να χτιστούν σε building blocks, οπότε η επιχείρηση δεν είναι τίποτα άλλο από ένα σύνολο διεργασιών όπου η μία υπηρεσία είναι εντελώς ανεξάρτητη από την άλλη, διασφαλίζοντας βέβαια την αποτελεσματική επικοινωνία μεταξύ τους.
Ένα παράδειγμα είναι η τεχνολογία SAP Netweaver όπου είναι πλατφόρμα πάνω στην οποία τρέχουν εφαρμογές της SAP όπως είναι το CRM, ERP, SCM και η οποία είναι σε αρχιτεκτονική SOA για enterprise application integration. Βέβαια στη περίπτωση της SAP η Service-Oriented Architecture είναι λίγο διαφορετική γιατί ο σκοπός της ειναι να παρέχουν end-to-end business process ή steps για να συνθέσουν μία επιχειρηματική διαδικασία.
Οπότε η SAP επέκτεινε τα web services σε μια πιο ειδική κατηγορία για business που την ονομάζει SAP enterprise Service, σε τεχνικόεπίπεδο είναι ίδιο με ένα Web service ειδικά κάνει χρήση των πρωτοκόλλων WSDL και SOAP, χρησιμοποιούνται συγκκεκριμένοι τύπποι δεδομένων global data types, έχουν σχεδιαστεί με το SAP ESR και δημοσιευθεί στο SAP service registry.
Ευξελιξία Μετασχηματισμού
Στη συνέχεια για να παράγει ένα αποτέλεσμα η επιχείρηση θα πρέπει όλες οι διεργασίες της να μπορούν να συνδεθούν με μια συγκεκριμένη σειρά και να το παράγουν.
Οπότε όταν αλλάξουν οι ανάγκες της αγοράς η επιχείρηση δεν έχει παρά να προσθέσει ένα καινούργιο block στo τρόπο σύνδεσης των διεργασιών της ή απλά να αλλάξει τη σειρά με την οποία συνδέονται ώστε να παράγουν ένα καινούργιο αποτέλεσμα προϊόν κτλ. εξοικονομώντας χρήματα και χρόνο. Η σύνδεση αυτών των ανεξάρτητων blocks κυρίως στηρίζεται στα web services για τη εισαγωγή και εξαγωγή των απαιτούμενο δεδομένων σε κάθε building block.
Μια εξέλιξη των web services ειναι τα web application microservices με τα οποία είναι δυνατόν να απομονωθούν σημεία των εφαρμογών που δημιουργούνται bottlenecks και να κλιμακωθούν πιο εύκολα.