< Indietro | Avanti >

Lezione 1: Creazione di un progetto Web EGL per il servizio

I progetti EGL possono agire come servizi, client o come entrambi allo stesso tempo. Per questa esercitazione, verranno creati due progetti: uno che agisce come servizio e l'altro come client. Anche se è possibile inserire tutto il codice in un singolo progetto EGL, utilizzando due progetti si dimostra come EGL può richiamare i servizi in un'altra applicazione.

Procedimento

  1. È possibile utilizzare un workspace diverso durante lo svolgimento dell'esercitazione, in modo da non interferire con gli altri progetti. Se si desidera utilizzare un workspace diverso, procedere come segue:
    1. Nel workbench, fare clic su File > Cambia workspace. Viene aperta la finestra Utilità di avvio workspace.
    2. Immettere un nuovo percorso per il workspace nel campo Workspace.
    3. Fare clic su OK. Il workbench viene riaperto utilizzando il nuovo percorso del workspace. È possibile cambiare il percorso del workspace in qualsiasi momento e disporre di un qualsiasi numero di percorsi.
  2. Passare alla prospettiva Web:
    1. Fare clic su Finestra > Apri prospettiva > Altro.
    2. Nell'elenco di prospettive, fare clic su Web. Se non viene visualizzata la prospettiva Web, selezionare la casella di spunta Mostra tutto.
    3. Fare clic su OK.
  3. Assicurarsi che EGL sia impostato in modo da generare automaticamente descrittori di distribuzione. I descrittori di distribuzione contengono informazioni che descrivono come i servizi EGL vengono resi disponibili alle altre applicazioni e come le applicazioni EGL individuano i servizi forniti dalle altre applicazioni.
    1. Nel workbench, fare clic su Finestra > Preferenze... > EGL.
    2. In Scelte funzioni di progetto EGL predefinite, assicurarsi che l'opzione Crea un descrittore di distribuzione EGL sia selezionata. In caso contrario, fare clic su questo campo per selezionarla.
    3. Fare clic su OK.
  4. Nel workbench, fare clic su File > Nuovo > Progetto.
  5. Nella finestra Nuovo progetto, espandere EGL e fare clic su Progetto EGL. Se il Progetto EGL non viene visualizzato, selezionare la casella di spunta Mostra tutte le procedure guidate. Se ancora non è possibile visualizzare una categoria EGL o Progetto EGL, significa che EGL non è installato sul sistema. Eseguire nuovamente la configurazione del prodotto e selezionare la voce Funzione aggiuntiva per EGL.
  6. Fare clic su Avanti.
  7. Nel campo Nome progetto, assegnare questo nome al progetto:
    EGLService
  8. In Tipi di progetto EGL, fare clic su Progetto Web. Questo tipo di progetto consente di utilizzare le interfacce utente per pagine Web.
  9. Fare clic su Avanti.
  10. In Runtime di destinazione, selezionare WebSphere Application Server v6.1.
  11. Assicurarsi che l'opzione Crea un nuovo descrittore di build sia selezionata. I descrittori di build contengono opzioni per la generazione del programma in un altro linguaggio. In questa fase non sarà necessario interagire con questi descrittori, perché la procedura guidata creerà un descrittore di build appropriato. Non è necessario utilizzare le impostazioni avanzate a meno che non si stia utilizzando WAS e siano state precedentemente modificate le impostazioni predefinite che consentono di aggiungere il progetto a un EAR EAR (Enterprise Application Resource). Se si utilizza WAS, il progetto EGLService deve appartenere a un EAR. Il workbench ricorda questa impostazione.
  12. È possibile che venga visualizzata una finestra in cui si richiede se si desidera passare alla prospettiva J2EE. In questa finestra, fare clic su No.
Il nuovo progetto viene visualizzato nella vista Esplora progetti.
La vista Esplora progetti contenente il nuovo progetto

Creazione dell'interfaccia per definire il servizio

EGL utilizza il termine "interfaccia" allo stesso modo in cui è utilizzato nei linguaggi orientati agli oggetti. Per EGL, un'interfaccia è un piano a cui deve attenersi un servizio. In particolare, un'interfaccia contiene una o più funzioni prototipo, o riepiloghi di funzioni. Questi prototipi non sono funzioni utilizzabili, ma vengono utilizzati per predisporre i piani per le funzioni reali.
Ad esempio, si desidera scrivere un'applicazione che esegua operazioni matematiche come una calcolatrice. È possibile iniziare elencando tutte le operazioni matematiche necessarie per l'applicazione (quali addizione, sottrazione e moltiplicazione), senza realmente scrivere il codice per eseguire queste operazioni. In questo caso, si assegna un nome a ciascuna operazione e si specificano i parametri di input e di output, ma non si scrive il codice di nessuna logica. In questo modo, vengono elencate le funzioni necessarie all'applicazione EGL in un'interfaccia. Questa interfaccia potrebbe iniziare come segue:
interface myCalculatorInterface

  //Function to add numbers together 
  function addNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

  //Function to subtract numbers
  function subtractNumbers(number1 decimal(10,2) in, 
    number2 decimal(10,2) in) returns (decimal(10,2));

end

A questo punto, quando si è pronti a iniziare la codifica del servizio, è possibile utilizzare questa interfaccia sia come punto di partenza che come test per verificare che il piano venga seguito come previsto.

Verrà richiesto raramente di scrivere un'interfaccia, ma in generale, l'uso delle interfacce per descrivere i propri servizi è un buon metodo di programmazione.
  • L'interfaccia consente di pianificare il servizio in tempo, ed EGL avvisa se il servizio si allontana dall'interfaccia.
  • Le interfacce forniscono un riepilogo sintetico dei dettagli dell'implementazione del servizio.
  • Le interfacce possono essere utilizzate come requisiti per lo sviluppo o per la conformità.
  1. Nella vista Esplora progetti, selezionare il progetto EGLService con il tasto destro del mouse.
  2. Fare clic su Nuovo > Altro.
  3. Nella finestra Nuovo, espandere EGL e fare clic su Interfaccia. Assicurarsi che venga utilizzata la voce Interfaccia in EGL e non la voce Interfaccia in Java.
  4. Fare clic su Avanti.
  5. Nella finestra Nuova parte Interfaccia EGL, assicurarsi che la cartella EGLSource del progetto sia visualizzata nel campo Cartella di origine. Questo campo dovrebbe contenere EGLService\EGLSource.
  6. Nel campo Package, immettere questo nome:
    interfaces
    EGL creerà questo nuovo package perché il progetto ancora non dispone di un package con questo nome.
  7. Nel campo Nome file sorgente EGL, immettere questo nome per la nuova interfaccia:
    HelloInterface
    La finestra Nuova parte Interfaccia EGL risulterà simile alla seguente immagine:
    La finestra Nuova parte Interfaccia EGL
  8. Fare clic su Fine. La nuova interfaccia viene creata e aperta nell'editor EGL. Questa interfaccia contiene già un prototipo di funzione di esempio:
    function functionName(parameterName string in) returns (int);
  9. Eliminare questo prototipo di funzione.
  10. Sostituire il prototipo di esempio con questo codice relativo al proprio prototipo di funzione:
    function SayHello(name string in, city string in) returns (string);
  11. Salvare e chiudere il file.
Di seguito sono riportati alcuni dettagli tecnici relativi al codice appena inserito:
  • Come spiegato precedentemente, non si tratta di un blocco completo di logica EGL. Questo prototipo di funzione, invece, descrive una funzione che sarà presente nel servizio. In questo caso, il prototipo descrive una funzione chiamata SayHello.
  • La funzione accetta due blocchi di input dal client, chiamati parametri:
    • Una variabile stringa come nome di una persona
    • Una variabile stringa come città
    La funzione utilizzerà questi parametri per raggruppare un blocco di output da restituire al client.
  • Il codice returns (string) indica questo valore di restituzione e il relativo tipo.

L'interfaccia è simile a quella riportata nell'immagine seguente:

Il codice della parte interfaccia EGL

Creazione del servizio

  1. Nella vista Esplora progetti, fare clic sul progetto con il tasto destro del mouse e scegliere Nuovo > Servizio.
  2. Nella finestra Nuova parte Servizio EGL, assicurarsi che la cartella EGLSource del progetto sia visualizzata nel campo Cartella di origine. Questo campo dovrebbe contenere EGLService\EGLSource.
  3. Nel campo Package, immettere questo nome:
    services
  4. Nel campo Nome file sorgente EGL, immettere questo nome per il nuovo servizio:
    HelloService
  5. Accanto a Implementa le interfacce, fare clic su Aggiungi.
  6. Immettere un asterisco * nel campo Scegli interfacce. L'interfaccia viene visualizzata nell'elenco Parti corrispondenti.
  7. Fare clic su HelloInterface nell'elenco Parti corrispondenti per selezionarlo.
  8. Fare clic su OK. A questo punto l'interfaccia viene visualizzata nell'elenco Implementa le interfacce.
  9. Selezionare la casella di spunta Crea come servizio Web. Selezionando questa casella di spunta vengono aggiunte informazioni di distribuzione al file descrittore di distribuzione. La finestra Nuova parte Servizio EGL risulterà simile alla seguente immagine:
    La finestra Nuova parte Servizio Service
  10. Fare clic su Fine. Il nuovo servizio viene creato e aperto nell'editor EGL. Il servizio contiene già una funzione di avvio basata sul prototipo nell'interfaccia.
  11. Rimuovere il commando // TODO Auto-generated function e sostituirlo con il seguente codice:
    ReturnString string;
    ReturnString = name::", welcome to "::city::"!";
    return (ReturnString);
    Questo codice crea una variabile stringa e le assegna un valore in base ai parametri, ad esempio "Jim, welcome to Chicago!" Il codice :: è un operatore di concatenazione, che unisce stringhe separate in una singola stringa. Il codice risulterà simile al seguente:
    Il codice della parte Servizio EGL
  12. Salvare e chiudere il file.
< Indietro | Avanti >