View
214
Download
0
Category
Preview:
Citation preview
7/28/2019 CoursWindev-id5192
1/6
Prsentation
Qu'est-ce qu'un service ?
Un service est une forme spcifique d'application destine tre excute sans intervention de
l'utilisateur.Un service peut tre configur pour dmarrer automatiquement en mme temps que le systme
d'exploitation et pour fonctionner en tche de fond.
Les services sont galement appels daemons.
Dans quels cas utiliser un service ?
Un service doit tre utilis pour permettre une application de rpondre tout moment une sollicitation
externe (lecture sur une socket par exemple).
Si le service doit se contenter d'excuter une tche de faon rpte, il est prfrable de faire une
application standard et de lancer cette application dans une tche planifie.
Diffrences entre un service et une application
Un service tourne toujours sous l'identit du mme utilisateur (configur lors de son installation)
quel que soit l'utilisateur connect la machine.
Un service ne peut pas avoir d'interaction directe avec l'utilisateur connect. L'ouverture d'une
fentre avecOuvreest possible (par exemple pour crer un traitement graphique sur des
images), mais sa fermeture doit tre systmatique une fois le traitement effectu. De faon
gnrale, il ne doit pas y avoir d'appel de fonction bloquante (Info,Dialogue,Saisie...).
Un service qui utilise une base de donnes HyperFileSQL et plus gnralement les fonctions H*
pour l'accs une base de donnes doit grer les conflits (doublons, intgrit, modification, ...)
grce la fonctionHSurErreur. Dans le cas contraire, le service pourra tre bloqu en cas de
conflit.
Un service peut fonctionner sous l'identit du systme d'exploitation lui-mme.
Un service n'est pas soumis l'UAC ou la virtualisation ( partir de Windows Vista).
Cration d'un service avec WinDev
Cration d'un service
WinDev permet de crer un service :
soit partir d'un nouveau projet.
soit partir d'un projet existant.
Pour crer un service partir d'un nouveau projet : Cliquez sur parmi les boutons d'accs rapide. Dans la roue qui s'affiche, cliquez sur "Projet".
http://doc.pcsoft.fr/fr-FR/?3038035&name=ouvre_fonctionhttp://doc.pcsoft.fr/fr-FR/?3038035&name=ouvre_fonctionhttp://doc.pcsoft.fr/fr-FR/?3038035&name=ouvre_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021011&name=info_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021011&name=info_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021011&name=info_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021015&name=dialogue_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021015&name=dialogue_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021015&name=dialogue_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021016&name=saisie_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021016&name=saisie_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021016&name=saisie_fonctionhttp://doc.pcsoft.fr/fr-FR/?3044017&name=hsurerreur_fonctionhttp://doc.pcsoft.fr/fr-FR/?3044017&name=hsurerreur_fonctionhttp://doc.pcsoft.fr/fr-FR/?3044017&name=hsurerreur_fonctionhttp://doc.pcsoft.fr/fr-FR/?3044017&name=hsurerreur_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021016&name=saisie_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021015&name=dialogue_fonctionhttp://doc.pcsoft.fr/fr-FR/?3021011&name=info_fonctionhttp://doc.pcsoft.fr/fr-FR/?3038035&name=ouvre_fonction7/28/2019 CoursWindev-id5192
2/6
L'assistant de cration de projet se lance.
Dans un des premiers crans de l'assistant, vous pouvez choisir le type de gnration de votre projet. Il
suffit de slectionner "Service Windows" puis la plate-forme d'excution (Windows ou Linux) et de suivre
l'assistant.
Par dfaut, le projet permettra de gnrer des services Windows 32 bits.
Pour crer un service partir d'un projet existant, il suffit d'ajouter une nouvelle configuration de
projet : sous le volet "Projet", dans le groupe "Configuration de projet", droulez "Nouvelle configuration".
Il est possible de crer :
une configuration de projet de type "Service" (32 bits).
une configuration de projet de type "Service 64 bits".
une configuration de projet de type "Daemon Linux".
Pour plus de dtails, consultezConfiguration de projet.
Dveloppement d'un service
Programmation d'un service
Le projet cr dispose de deux traitements supplmentaires pour grer le service :
Traitement Effet
Excution du
service (appel en
boucle)
Ce traitement est le traitement principal du service. Il est appel en
boucle quand le service est dmarr (automatiquement au boot ou
par un appel la fonctionServiceDmarre).
Dans la majorit des cas, ce traitement va se mettre en attente d'une
sollicitation extrieure (par exemple en crant une socket et en
appelant ensuite la fonctionSocketAttendConnexion) puis dclencher
des actions en rponse cette sollicitation.
Dans le cas des services qui excutent des actions en continue, il
convient d'appeler la fonctionServiceTemporise chaque passage
dans ce traitement afin de ne pas consommer toutes les ressources
processeur de la machine.
Note : Lorsque du code doit tre partag entre un service et une
application (par exemple une classe), il est possible de connatre le
mode d'excution grce la fonctionEnModeService.
Arrt du service Ce traitement est appel automatiquement lorsque le service reoit
une demande d'arrt (par un appel la fonctionServiceArrteou lors
de l'arrt de la machine).
Ce traitement est appel dans un thread diffrent du traitement
"Excution du service".
http://doc.pcsoft.fr/fr-FR/?9000030&name=configuration_projethttp://doc.pcsoft.fr/fr-FR/?9000030&name=configuration_projethttp://doc.pcsoft.fr/fr-FR/?9000030&name=configuration_projethttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?3070006&name=socketattendconnexion_fonctionhttp://doc.pcsoft.fr/fr-FR/?3070006&name=socketattendconnexion_fonctionhttp://doc.pcsoft.fr/fr-FR/?3070006&name=socketattendconnexion_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018712&name=servicetemporise_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018712&name=servicetemporise_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018712&name=servicetemporise_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018710&name=enmodeservice_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018710&name=enmodeservice_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018710&name=enmodeservice_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017111&name=servicearrete_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017111&name=servicearrete_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017111&name=servicearrete_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017111&name=servicearrete_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018710&name=enmodeservice_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000018712&name=servicetemporise_fonctionhttp://doc.pcsoft.fr/fr-FR/?3070006&name=socketattendconnexion_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?9000030&name=configuration_projet7/28/2019 CoursWindev-id5192
3/6
Si le traitement principal est bloqu en attente sur une ressource (par
exemple une socket), il appartient au traitement "Arrt du * service" de
dtruire la ressource pour dbloquer le traitement principal.
Note : A partir du dbut du processus d'arrt du service, le traitement
"Excution du service" n'est plus appel en boucle.
Remarque : Pour diter les traitements spcifiques d'un service : sous le volet "Accueil", dans le groupe
"Gnral", droulez et slectionnez "Code du projet".
Gnration d'un service
Trois modes de gnration d'un service sont disponibles :
Gnrer le service Windows (32 bits).
Gnrer le service Windows (64 bits).
Gnrer le deamon Linux.
Ces options sont disponibles dans le menu de gnration de l'application.
Un assistant de gnration vous guide dans la gnration du service.
Remarque : Si la gnration propose ne correspond pas la configuration de projet en cours, WinDev
propose automatiquement de crer une nouvelle configuration de projet correspondant la gnration
voulue.
7/28/2019 CoursWindev-id5192
4/6
L'assistant de gnration :
du service Windows 32 bits ou 64 bits correspond l'assistant de cration de l'excutable. Pour
plus de dtails, consultezCration de l'excutable.
du service Linux correspond l'assistant de cration de l'excutable Linux. Pour plus de dtails,
consultezCration de l'excutable Linux.
Le tlchargement automatique du Framework WinDev n'est pas disponible pour les services.
Cration de l'installation d'un service Windows 32 ou 64 bits
Pour crer l'installation d'un service Windows 32 ou 64 bits :
1. Droulez l'icne de gnration parmi les boutons d'accs rapide et slectionnez l'option "Crer la
procdure d'installation du service".
Remarque : si la configuration en cours ne correspond pas la configuration du service, cette option est
disponible dans le menu "Autres gnrations".
2. La premire partie de l'assistant vous guide dans la gnration du service (voir paragraphe
prcdent). Si la configuration en cours est un service 32 bits, la gnration est ralise en 32 bits. Si la
configuration en cours est un service 64 bits, la gnration est ralise en 64 bits.
3. Choisissez le mode d'installation :
Installation autonome : cette installation peut tre excute directement sur le poste o le
service doit tre install.
Installation en Push : cette installation permet de dployer le service distance sur denombreux postes connects en rseau.
4. Indiquez le rpertoire o sera install par dfaut le service. Passez au plan suivant.
5. Choisissez les fichiers installer ainsi que le mode d'installation du framework.
6. Dans l'cran "Description du service", prcisez :
Le nom du service ( utiliser en programmation dans les
fonctionsServiceDmarreouServiceInfopar exemple).
Le nom complet du service (affich dans la colonne "Nom" du gestionnaire de services).
La description du service (affich dans la colonne "Description" du gestionnaire de services).
Passez au plan suivant.
7. Choisissez les paramtres de dmarrage du service:
Automatique (par dfaut)
Manuel
Dsactiv
Remarque : Il est possible de dmarrer le service en mode diffr. Cette fonctionnalit est disponible
http://doc.pcsoft.fr/fr-FR/?2025002&name=creation_executablehttp://doc.pcsoft.fr/fr-FR/?2025002&name=creation_executablehttp://doc.pcsoft.fr/fr-FR/?2025002&name=creation_executablehttp://doc.pcsoft.fr/fr-FR/?9000114&name=creer_une_application_windev_pour_linuxhttp://doc.pcsoft.fr/fr-FR/?9000114&name=creer_une_application_windev_pour_linuxhttp://doc.pcsoft.fr/fr-FR/?9000114&name=creer_une_application_windev_pour_linuxhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017103&name=serviceinfo_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017103&name=serviceinfo_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017103&name=serviceinfo_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017103&name=serviceinfo_fonctionhttp://doc.pcsoft.fr/fr-FR/?1000017110&name=servicedemarre_fonctionhttp://doc.pcsoft.fr/fr-FR/?9000114&name=creer_une_application_windev_pour_linuxhttp://doc.pcsoft.fr/fr-FR/?2025002&name=creation_executable7/28/2019 CoursWindev-id5192
5/6
uniquement partir de Windows Vista.
8. Slectionnez le mode de gestion d'erreur en cas d'chec de dmarrage du service :
Ignorer les erreurs.
Inscrire les erreurs dans le journal d'vnements.
Inscrire les erreurs dans le journal d'vnements et redmarrer la machine avec la dernire
configuration valide.
Inscrire les erreurs dans le journal d'vnements et redmarrer la machine.
9. Indiquez les paramtres de la ligne de commande donner lors du dmarrage du service. Passez au
plan suivant.
10. Indiquez les paramtres de gestion des erreurs du service.
Plusieurs dfaillances successives peuvent tre dtectes. Pour chacune d'entre elles, slectionnez le
mode de gestion des erreurs parmi les possibilits suivantes :
Ne rien faire.
Redmarrer le service (par dfaut).
Redmarrer la machine.
Excuter un programme.
Passez au plan suivant.
11. Indiquez le compte utilisateur sous lequel le service devra s'excuter:
Compte systme local (par dfaut).
Compte service local.
Compte service rseau.
Compte utilisateur slectionn parmi des comptes existants.
Remarque : Lorsque le service s'excute avec le compte systme local (par dfaut), ce service n'a pas
accs au rseau. Si les traitements du service doivent accder au rseau, il faut ncessairement
indiquer pour son excution le compte service rseau ou un utilisateur du domaine.
Passez au plan suivant.
12. Choisissez les paramtres de gestion de l'accs aux bases de donnes.
13. Choisissez les modules complmentaires : licence, lisez-moi, outils optionnels, dsinstallateur.
14. Selon le mode d'installation choisi (autonome ou push), indiquez les options demandes.
L'assistant va ensuite gnrer l'installation du service.
Services crs avec les versions antrieures WinDev 15
7/28/2019 CoursWindev-id5192
6/6
Services crs avec l'exemple "WD Service NT"
Si vous aviez utilis l'exemple "WDService NT" pour crer un service avec une version antrieure
WinDev 15, vous pouvez le convertir en un service WinDev de la faon suivante :
1. Ouvrez le projet dans WinDev (version 15 ou suprieure).
2. Crez une nouvelle configuration de type "Service Windows".
3. Dans le traitement "Initialisation" du projet, appelez la procdure "InitService" de votre projet.
4. Dans le traitement "Excution du service", appelez la procdure "Service" de votre projet.
5. Dans le traitement "Arrt du service", appelez la procdure "FinService" de votre projet.
Recommended