Condividi tramite


Elaborazione avviata dall'host

L'elaborazione avviata dall'host consente a un'applicazione host di chiamare un metodo di un oggetto COM o .NET, passare i parametri al metodo e ricevere i parametri dal metodo. Quando i dati vengono spostamento prima dall'host al client e quindi dal client all'host, i dati vengono trasformati da un formato comprensibile dall'host al formato appropriato per il client

L'elaborazione avviata dall'host viene implementata nei passaggi seguenti:

  1. Il processo del servizio HIP, denominato applicazione, inizia ad ascoltare le connessioni in ingresso in un elenco di endpoint specificati da una definizione di ambiente locale.

  2. L'applicazione client, in esecuzione nell'host, avvia una connessione TCP a un sistema HIP usando uno degli endpoint

  3. Il processo del servizio HIP verifica se esiste un'associazione stabilita tra l'endpoint e il nome host o l'indirizzo IP dei client. Se non viene trovata alcuna associazione, la connessione viene interrotta.

  4. L'associazione identifica in modo univoco il piano di lavoro che è una sequenza di flussi di lavoro da eseguire per completare la richiesta dei client. Esistono tre tipi di piani di lavoro:

    1. Endpoint

    2. Messaggio di richiesta di transazione

    3. Dati.

Endpoint

Il piano di lavoro dell'endpoint è costituito da un singolo flusso di lavoro finale. L'associazione viene mappata direttamente a un metodo di un oggetto COM che deve essere richiamato per l'elaborazione delle richieste dei client. Il flusso di lavoro dell'endpoint esegue le operazioni seguenti:

  1. Riceve i dati client

  2. Decomprimere i dati e popolare i parametri per il metodo

  3. Crea l'oggetto e chiama il metodo

  4. Pacchetti restituiti parametri nei dati client

  5. Invia dati client

  6. Chiude la connessione.

Messaggio di richiesta di transazione

Il piano di lavoro TRM (Transaction Request Message) è costituito da due flussi di lavoro: TRM e Final. Il flusso di lavoro TRM gestisce la parte iniziale della conversazione quando il client invia il TRM e risponde al flusso di lavoro con la risposta TRM. A seconda del tipo di TRM, il flusso di lavoro TRM può usare uno dei tre gestori TRM: Microsoft Concurrent Server, Microsoft Link, IBM Concurrent Server. Il flusso di lavoro TRM esegue le operazioni seguenti:

  1. Riceve e decomprime il TRM usando il formato di input assegnato

  2. Passa il TRM al gestore assegnato

  3. Il gestore restituisce le informazioni sulla risoluzione e la risposta TRM positiva

  4. Le informazioni sulla risoluzione, che devono essere dati di carattere, vengono convertite in Unicode usando la tabella codici associata all'ambiente host

  5. Il flusso di lavoro esegue query sul database se è presente un mapping a un metodo di un oggetto definito per le informazioni sulla risoluzione

  6. Nel caso in cui la corrispondenza non venga trovata, il gestore viene chiamato per ottenere la risposta TRM negativa

  7. La risposta TRM viene inserita con il formato di output assegnato e inviato. Nel caso negativo, la connessione viene interrotta

  8. Il flusso di lavoro passa il controllo al flusso di lavoro finale insieme all'identità del metodo trovata

Dati

Il piano di lavoro determinante dei dati è costituito da due flussi di lavoro: Determinante dei dati e Flusso di lavoro finale. Il flusso di lavoro Determinante dati elabora i dati client che tentano di trovare una corrispondenza con uno dei determinanti definiti per l'associazione. Determina include una stringa di caratteri e la posizione della stringa nei dati client. Ogni determinante viene mappato a un metodo di un oggetto. All'avvio i determinanti vengono pre-convertiti in tutte le pagine di codice degli host associati ai determinanti. Le regole vengono applicate che determinano i fattori determinanti per un punto finale: l'associazione host non è duplicata o un fattore determinante non fa parte dell'altro. Il flusso di lavoro segue questa procedura:

  1. L'elenco dei determinanti per la combinazione end point - Host specificato viene ottenuto e ordinato in base alla somma della lunghezza e della posizione in ordine crescente

  2. Il primo determinante viene tratto dall'elenco

  3. Viene ricevuta una parte dei dati client

  4. I dati vengono controllati se corrisponde al determinante

  5. In caso di mancata corrispondenza del determinante successivo viene ottenuto dall'elenco, più dati client ricevuti se necessario, dati rispetto a determinanti

  6. Quando non è disponibile alcun fattore determinante corrispondente ai dati che la connessione viene interrotta

  7. Se viene trovato un fattore determinante, il controllo viene passato al flusso di lavoro finale insieme all'identità del metodo e ai dati client già letti. Potrebbe verificarsi una situazione quando i dati determinanti si trovano all'interno o anche dopo il mapping dei dati client ai parametri dei metodi.

Nota

Un client HIP MVS deve eseguire un arresto socket immediatamente dopo l'invio di un socket e prima della ricezione di un socket. Se non si esegue un arresto immediato del socket, il runtime TI rifiuta i dati, interrompe la connessione e registra un messaggio di evento 808 (un'applicazione HIP dell'integratore di transazioni ha ricevuto più dati del previsto). Inoltre, il pacchetto contenente i dati inviati alla workstation potrebbe risultare fuorviante: Microsoft Network Monitor mostra i dati all'interno del pacchetto e della lunghezza dei dati non eccessiva.

Vedere anche

Elaborazione avviata da Windows
Modelli di programmazione