Sto lavorando su un server HTTP in Delphi che semplicemente rimanda un set di dati XML personalizzato. Non sto seguendo alcun tipo di formattazione standard, come SOAP. Ho il sistema che funziona perfettamente, tranne un piccolo difetto: quando ho un dataset molto grande da inviare al client, potrebbero essere necessari fino a 2 minuti per trasferire tutti i dati. Il server HTTP che sto costruendo è essenzialmente un'API basata su dati XML attorno a un database, implementando la regola aziendale comune, quindi le richieste sono specifiche per i dati dietro il sistema.
Quando, ad esempio, recupero una grande serie di dati di prodotto, vorrei suddividerli e rispedirli pezzo per pezzo. Tuttavia, una singola richiesta HTTP richiede una singola risposta. Non posso necessariamente continuare ad alimentare il client con più pacchetti XML diversi a meno che il client non lo richieda esplicitamente.
Non ho alcuna gestione delle sessioni, ma piuttosto una chiave API. So che se avessi delle sessioni, potrei tenere in vita temporaneamente un set di dati per un cliente, e potrebbero richiederne dei frammenti. Tuttavia, senza la gestione delle sessioni, dovrei eseguire la query SQL più volte (per ogni blocco di dati), e nel frattempo, se i dati cambiano, le "pagine" potrebbero essere incasinate, causando quindi la visualizzazione degli elementi sulle pagine sbagliate, dopo aver navigato su una pagina diversa.
Quindi, come viene comunemente gestito? Qual è la metodologia alla base della scomposizione di un grande set di dati XML in blocchi per salvare il carico?