Confusione dell'architettura software App-Server / Client

1

Ho una domanda sulla seguente architettura software:

Quindi, c'è un database, un app server, che fornisce un servizio rilassante, un client e un framework, utilizzato dal server dell'app e dal client.

Ora ho alcuni problemi con l'accesso ai dati nel Core Framework. Da un lato, il client utilizza alcune funzioni del framework principale e tutti i dati devono essere trasferiti tramite il protocollo HTTP. D'altra parte, l'app-server usa le stesse funzioni, ma dovrebbe usare il nostro O / R-Mapper per leggere e scrivere i dati.

O devo dividere l'API (nel client) e il Core Framework? Ma in questo caso, devo scrivere gli stessi metodi, più volte, ad esempio:

Esempio di creazione dell'utente:

  1. Crea un metodo per il servizio Restful (GET / POST /...)
  2. Scrivi il metodo nel Core Framework
  3. Scrivi il metodo nell'API

Penso, ho dei grossi errori di architettura nel mio piano, qualcuno ha avuto problemi simili e trovato una soluzione?

Grazie!

    
posta BendEg 12.02.2015 - 09:24
fonte

1 risposta

1

Sì, questa è un'architettura molto comune, quindi il problema si presenta spesso.

Quello che vorrei fare è introdurre un nuovo livello di astrazione definendo un "modello" per il mio progetto che contenga e presenti le classi del mio progetto indipendentemente da come vengono ottenute (tramite HTTP o ORM).

Sul server, questo modello sarebbe implementato per recuperare i dati usando l'ORM.

Sul client, il modello sarebbe implementato per recuperare i dati usando HTTP.

Quindi, il più possibile delle funzionalità del framework verrebbe creato sulla parte superiore del modello, in modo che lo stesso codice possa essere utilizzato sia sul client che sul server.

    
risposta data 12.02.2015 - 12:09
fonte

Leggi altre domande sui tag