Qual è il middleware (se esiste) nel servizio web consumato da un sito web?

2

Sto cercando di identificare le parti di un'architettura.

Il server (Python) funziona come un servizio web, fornendo file e dati. Il client (JS) richiede i dati di cui ha bisogno inviando xmlhttprequest s al server.

Ho letto che può esserci un livello "middleware" che collega l'applicazione al suo nodo del sistema distribuito. Il punto del middleware è quello di astrarre la comunicazione di rete sottostante

SOAP viene fornito come esempio per essere un protocollo middleware. Non uso SOAP (o REST) Significa che non ho un middleware? Sto usando il vecchio vecchio HTTP per la comunicazione. È sufficiente un'astrazione per essere chiamata middleware? D'altra parte, HTTP fa parte dello stack TCP / IP, il che mi fa pensare che sia una parte della comunicazione di rete e non un'astrazione di ciò. Ciò suggerirebbe di non usare / avere un middleware.

Che cosa è esattamente un middleware in questo scenario?

ulteriore confusione

Una parte del problema è che non è molto chiaro cosa sia realmente il middleware e che ci siano diverse definizioni di esso.

Quello che ho trovato finora e quello che ho posto a questa domanda è che esiste un livello di middleware, per nodo nel sistema distribuito. I livelli middleware sono non direttamente connessi. È la rete al di sotto del middleware che garantisce la connessione. Il middleware è lì per fornire un livello di astrazione tra l'applicazione e la rete.

Vedi questa immagine:

Ognibloccodelmiddlewareèseparato.ciòhasenso.ÈprobabilecheilmiddlewareperMacOSsiaunacosacompletamentediversarispettoalmiddlewareperWindows.Suogniapplicazionesibasasulrelativomiddlewarespecifico.

Unaltromododipensarciècheilmiddlewareinrealtàèpraticamentel'unicacosachecollegainodidelsistemadistribuitocomesipuòvederenell'immaginedawikipedia:

Sembra una contraddizione. In uno scenario, ciascuna parte dell'applicazione comunica con il proprio middleware individuale, che a sua volta parla al nodo della rete. Il middleware è la linea base comune che separa l'applicazione distribuita dal sistema distribuito sottostante. Nell'altro, il middleware è un grosso blob che si estende su tutti i nodi, il che significa che non esiste nulla come un singolo middleware per ciascun nodo.

Ho il crescente sospetto che tutti facciano la propria interpretazione di questa terminologia non propriamente definita.

la risposta

è che non c'è una risposta (chiara). La risposta accettata fornisce pensieri ragionevoli su tutta la questione. La terminologia cade a pezzi se applicata in modo rigoroso e concreto.

    
posta null 20.06.2015 - 21:02
fonte

1 risposta

2

Wikipedia ha una definizione adatta per il middleware. Dice:

Middleware is the software that connects software components or enterprise applications. [It] is the software layer that lies between the operating system and the applications on each side of a distributed computer network. Typically, it supports complex, distributed business software applications.

In altre parole, è il software nel mezzo, tra i sistemi. È il modo in cui i diversi sistemi software comunicano tra loro.

Se lavori con sistemi eterogenei, il modo in cui comunichi con loro e il modo in cui rispetti le aspettative di ogni sistema in termini di interfaccia e flusso di lavoro, può variare drasticamente da un sistema all'altro. Alcuni sistemi sono abbastanza semplici da utilizzare; hanno servizi web standard e un'interfaccia REST ragionevole. Altri potrebbero non avere tali sottigliezze, e in realtà potrebbero richiedere di grattare i propri siti Web per ottenere da loro informazioni utili o persino importare un file di testo o binario in un formato proprietario. L'uso di SOAP o REST non definisce necessariamente il middleware, a tale riguardo.

Alcuni middleware tentano di mappare i sistemi tra loro attraverso interfacce configurabili, regole aziendali e flussi di lavoro. Biztalk è uno di questi tentativi. Quando diversi sistemi iniziano a convergere su modalità standardizzate di comunicazione tra loro (cioè i modelli REST), tale mappatura dovrebbe diventare meno comune; il programmatore metterà maggiormente a fuoco i processi aziendali necessari per connettere insieme sistemi diversi, piuttosto che protocolli di comunicazione.

    
risposta data 21.06.2015 - 02:46
fonte

Leggi altre domande sui tag