Condividi tramite


elaborazione iniziata dal host

L'elaborazione avviata dall'host consente a un'applicazione host di chiamare un metodo di un oggetto COM o .NET, di passare parametri al metodo e di ricevere parametri dal metodo . Quando i dati passano 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 controlla se è presente 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. Punto finale

    2. Messaggio di richiesta transazione

    3. Dati.

Punto finale

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 del cliente

  2. Decomprime i dati e popola i parametri per il metodo

  3. Crea l'oggetto e chiama il metodo

  4. Inserisce i parametri restituiti nei dati del cliente

  5. Invia dati cliente

  6. Chiude la connessione.

Messaggio di richiesta transazione

Il piano di lavoro TRM (Transaction Request Message) è costituito da due flussi di lavoro: TRM e Flusso di lavoro finale. Il flusso di lavoro TRM gestisce la parte iniziale della conversazione quando il client invia il TRM e il flusso di lavoro risponde 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 tipo carattere, vengono convertite in Unicode usando la tabella codici associata all'ambiente host

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

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

  7. La risposta TRM viene compressa usando 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 dati è costituito da due flussi di lavoro: Determinante dati e Flusso finale. Il flusso di lavoro Data Determinant elabora i dati del cliente cercando di trovare una corrispondenza con uno dei determinanti definiti per l'associazione. Il determinante 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. Si applicano le regole secondo cui i determinanti di un endpoint, ossia l'associazione host, non vengono duplicati o un determinante non è 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 è tratto dall'elenco

  3. Viene ricevuta una parte dei dati client

  4. I dati vengono controllati se corrispondono al determinante

  5. In caso di assenza di corrispondenza, il criterio successivo viene preso dall'elenco; se necessario, vengono ricevuti ulteriori dati del cliente che vengono poi confrontati con il criterio.

  6. Quando nessun determinante disponibile corrisponde ai dati, la connessione viene interrotta.

  7. Se viene trovato un 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 in cui i dati determinanti si trovano all'interno o anche dopo il mapping dei dati client ai parametri dei metodi.

Annotazioni

Un client HIP MVS deve eseguire una chiusura del socket immediatamente dopo l'invio di un messaggio attraverso il socket e prima della ricezione di un messaggio attraverso il 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 di Transaction Integrator ha ricevuto più dati del previsto). Inoltre, il pacchetto contenente i dati inviati alla workstation potrebbe sembrare fuorviante: Microsoft Network Monitor mostra i dati all'interno del pacchetto e la lunghezza dei dati non è eccessiva.

Vedere anche

Elaborazione Iniziata da Windows
Modelli di programmazione