05 - Web Services05a - Varie Web Service con IBM i

IBM i e Web Services – Trucchi e Faq (IT)

You can find an English version of this post here!

Introduzione

Ecco un’altra collection di FAQ (Domande frequenti) sui Web Service e IBM i (ex AS400)… sono domande che ci vengono poste dalla Community IBM i italiana oppure prese direttamente dai forum di settore. Non vuole essere una guida completa per chi si affaccia per la prima volta al mondo dei Web Service in ambiente IBM i per pubblicare e/o consumare servizi, per questo abbiamo dei corsi appositi che facciamo in aula (se si raggiunge un numero sufficiente) oppure direttamente in azienda, vedi in tal caso l’apposita area di Faq400.com ( https://www.faq400.com/corsi-e-workshop/ ).

iWS-FAQ001: Posso pubblicare un Web Service senza la GUI di IWS?

L’interfaccia GUI di IWS semplifica moltissimo la pubblicazione di programmi e service program come Web Service, ma è un processo “lungo” e ripetitivo … se dobbiamo pubblicare pochi web service è ottimo ma se il numero diventa importante o dobbiamo automatizzare la pubblicazione per la distribuizione di un sooftware o altro, meglio ricorrere agli script

Gli script che riguardano i Web Services sono in questa cartella dell’IFS: /QIBM/ProdData/OS/WebServices/V1/server/bin

Per pubblicare un nuovo webservice avendo già il nostro programma o service program RPG/Cobol o, in generale, ILE possiamo fare:

STRQSH
cd /QIBM/ProdData/OS/WebServices/V1/server/bin
installWebService.sh -server 'server-name' -programObject 'program-object'
[-service 'service-name'] [-pcml 'pcml-file'] [-userid 'userid']
[-libraryList 'library-list'] [-libraryListPosition '*FIRST|*LAST']
[-disableNillableWSDLElements] [-disableOptionalWSDLElements]
[-addUnderscoreToWSDLElementNames] [-libraryListPosition '*FIRST|*LAST'] [-printErrorDetails] [-help]  

 Where:
server is the name of the Web services server in which the service will be installed.
programObject is the integrated file system path to the ILE program or
service program. For example, '/QSYS.LIB/MYLIB.LIB/MYPGM.[SRVPGM or PGM]'
service is the name of Web service to be installed. This parameter is
optional. If not specified, the program object name will be used.
pcml is a path to the PCML file. This parameter is optional. If not
specified, the program object must contain the PCML data.
userid is the user profile the Web service will be modified to run under. This parameter is optional. If not specified, the Web service will run
under the Web services server user profile. Note: The Web service server's
user profile needs to have *USE authority to the user profile specified on
this parameter. A value of *SERVER will ensure the Web service runs under the
same user profile as the Web services server.
libraryList is a list of libraries, that will be added to the library
list prior to invoking the Web service. Each library in the list must
be delimited by a colon. This parameter is optional.
libraryListPosition is the position in the user portion of the job
library list where the list of libraries specified in -libraryList will be
placed. A value of *FIRST inserts the libraries at the beginning of
the user portion of the library list. A value of *LAST inserts the libraries
at the end of the user portion of the library list. This parameter is
optional. If not specified the default value of *LAST is used.
disableNillableWSDLElements will define elements in generated WSDL as
not nillable. If not specified, elements are defined as nillable.
This parameter is ignored for version 1.3 of Web services engine.
disableOptionalWSDLElements will define elements in generated WSDL as
not optional. If not specified, elements are defined as optional.
This parameter is ignored for version 1.3 of Web services engine.
addUnderscoreToWSDLElementNames will generate WSDL element names
that start with the underscore (_) character, as was always done in
version 1.3 of the Web services engine. If not specified, element names
in WSDL will not start with the underscore character.
This parameter is ignored for version 1.3 of Web services engine.
printErrorDetails will show additional error information, such as stack
traces and error codes, if the command fails. This parameter is optional.
help displays the command syntax. This parameter is optional. 

iWS-FAQ-002: Come salvo e migro dei Web Service su un’altra partizione IBM i?

Quando dobbiamo migrare dei web service verso una nuova partizione IBM i (ad esempio cambio macchina o passaggio da Sviluppo a Produzione o tra due macchine in Clustering) dobbiamo conoscere un po’ meglio IWS:

I servizi che vediamo pubblicati dalla pagina http://myibmi:2001/HTTPAdmin risiedono in effetti nell’IFS in cartelle generalmente /www/nomedelserver … ad esempio /www/wservice. C’è inoltre una tabella di sistema che contiene un membro per ogni server delle applicazioni esistente

Salvare in un file la configurazione del webservice:

-- QSH and script directory
STRQSH
cd /QIBM/ProdData/OS/WebServices/V1/server/bin 
 
-- Save web service server
saveWebServicesServer.sh -server MyServer  -saveFile /qsys.lib/mylib.lib/mysavf.file 
--- Save some webservices
saveWebServices.sh -server MyServer -serviceList WS2:WS1  -saveFile /qsys.lib/mylib.lib/mysavf.file 

--- Trasfer your save file to another IBM i partition

-- Restore your web service server
restoreWebServicesServer.sh  -fromServerDirectory server-directory  -saveFile save-file  [ -printErrorDetails ] [ -help ] 

--- Restore some web services
restoreWebServices.sh -server MyServer2 -serviceList WS2:WS1  -fromServerDirectory /www/MyServer  -saveFile /qsys.lib/mylib.lib/mysavf.file 

Seguono alcuni link di approfondimento sul tema:

iWS-FAQ-003: Recuperare le proprietà di un Web Service

Questo script estra le proprietà di un Web Service in un file in formato XML (PCML) … potrebbe risultare utile per installare nuovi web service su una seconda partizione partendo dalle proprietà estrette:

 getConfigurationFile.sh  -server WSERVICE -locationDirectory /tmp  -serviceList ConvertTemp 

installwebservice.sh     -server WSTEST   -propertiesFile    /tmp/ConvertTemp.properties 

Vedi guida su DeveloperWorks: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/dW%20IBM%20Integrated%20Web%20Services%20for%20i/page/Script%20to%20generate%20property%20file%20for%20a%20service

--- Roberto De Pedrini Faq400.com
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: