Les applications K2 utilisent des smartobjects qui regroupent des données métier de sources diverses et variées (SQL, SAP, Sharepoint, Système de fichiers etc.). Tous les smartobjects ont une structure et une utilisation identiques (Propriétés, Méthodes, Paramètres de méthode).
Chaque smartobject est lié à un service broker (a.k.a connecteur ou broker) qui fera le lien entre le(s) smartobject(s) lié(s) et la source de données.
Créer un service broker demande des connaissances en C# et sur les API K2, cet article ne va pas traiter de la création de ceux-ci. D’autant que la communauté des développeurs / utilisateurs de K2 possède déjà une longue liste de Services Broker en tout genre (en plus de ceux déjà installés par défaut dans K2) qui devrait répondre à la grande majorité des besoins.
Nous allons donc, dans la suite de ce billet, résumer les différentes étapes pour installer et utiliser un nouveau service broker.
L’installation d’un service broker doit se faire manuellement sur chaque environnement où il sera utilisé.
Déploiement du broker
Une fois le(s) fichier(s) (au moins une .dll) du service broker récupéré(s) il faut les copier dans un dossier spécifique sur le serveur.
- Placer le(s) fichier(s) DLL dans le dossier
ServiceBroker
du répertoire d’installation de K2 (par défautC:\Program Files (x86)\K2 blackpearl\ServiceBroker
)- Important, lors de la mise à jour d’un service broker, le fichier DLL à remplacer va être bloqué par le système d’exploitation (et donc non remplaçable). Il faut alors arrêter le service K2 blackpearl pour faire la manipulation.
- Utiliser l’outil SmartObject Service Tester, disponible dans le répertoire
bin
de K2 (par défaut :C:\Program Files (x86)\K2 blackpearl\Bin\SmartObject Service Tester.exe
) - Sélectionner
Register ServiceType
afin de pouvoir choisir le broker à installer, comme sur la copie d’écran ci-dessous :- Une fois la bonne DLL sélectionnée, il suffit de remplir les champs.
System Name
: vous pouvez le laisser tel quel ou le changer (du moment qu’il n’y a ni caractères spéciaux ni espace).Display Name
: le nom qui apparaîtra dans les outils de conception (caractères spéciaux autorisés).Description
: une description parlante de ce à quoi sert ce connecteur.Guid
: à laisser tel quel lors de l’installation originale. Conserver cet ID et le réutiliser lors du déploiement du broker sur vos autres environnements).
- Après avoir appuyé sur
Add
une nouvelle ligne apparaît dans leServiceObject Explorer
. Le Service Type a été créé (référencé au niveau du serveur K2) et donc le “connecteur” devient utilisable.
- Une fois la bonne DLL sélectionnée, il suffit de remplir les champs.
Instanciation du broker
A présent, nous allons enregistrer une instance pour ce connecteur. Pour certains connecteurs, il est possible d’enregistrer autant d’instances que souhaité (par exemple, sur le service broker SQL Server ou Oracle, on créera une instance par base à laquelle on souhaite se connecter).
- Donc sur ce Service Type : clic-droit >
Register ServiceInstance
Remplir les champs :
Authentication mode
: le compte d’exécution du broker (le compte qui va donc dialoguer avec la source de données). Le choix sera dépendant de la façon dont on souhaite se connecter à la source de données et des permissions y afférentes. Les choix possibles sont :Service Account
: le compte de service K2.Impersonate
: le compte de la personne qui fait appel au connecteur (l’utilisateur connecté à l’application ou le compte de service K2 lorsque l’appel est fait depuis une instance de workflow).SSO
: compte, mot de passe et provider configurables.Static
: permet de configurer en dur un compte et son mot de passe.OAuth
: utilisation du protocole OAuth.tous les modes d’authentification ne sont pas forcément implémentés dans les servicebrokers que vous téléchargerez sur K2 community.
Service Keys
: les paramètres de configuration utilisés par le service broker, ils seront différents d’un broker à un autre. C’est ce qui permettra de définir la chaîne de connexion à une base de données, l’URL d’un webservice, le nom d’un serveur etc.
- Cliquer ensuite sur
Next
(la configuration pourra être modifiée sans problème par la suite si besoin). - Renseigner le
System Name
etDisplay Name
dans le pop-up qui apparaît (mêmes contraintes que précédemment, il s’agit cette fois-ci du nom de l’instance du broker). Puis appuyer surAdd
. - Le Service Type (ici :
K2Field.WorkflowManagement.WorkflowManagement
) contient désormais une instance (ici :K2Field.WorkflowManagement
), qui contient lui-même l’ensemble des méthodes (ici : les 4 « xxx management ») gérées par le connecteur.
Exposer le broker via des smartobjects
Une fois le broker instancié, on va pouvoir créer des smartobjects qui l’utilise. Cela peut être fait depuis les outils de modélisation, mais pour les plus fainéants d’entre vous, il est également possible de demander au SmartObject Service Tester de nous créer ces smartobjects.
- Chacune des méthodes peut donc générer un Smartobject qui permettra d’utiliser la connexion à la source de données visée : clic-droit sur la méthode >
Create Smartobject
. Ensuite choisir nom et catégorie de stockage, puis le smartobject sera dès lors utilisable dans vos applications. - Vous pouvez également tester le(s) Smartobject(s) générés via le Smartobject Service Tester en dépliant la partie
SmartObject Explorer
où vous pourrez retrouver le smartobject que vous venez de créer. - Cette section permet également de connaitre le nom du Service Instance / Service Broker dont provient chaque Smartobject en dépliant l’arborescence des méthodes du Smartobject (certains smartobjects peuvent être paramétrés pour que leurs méthodes fassent appel à plusieurs brokers : ce qu’on appelle des smartobjects composites).
N’hésitez pas à utiliser les commentaires si vous avez des questions.
One thought to “Installer un Service Broker”