Brevet FR2887354A1 — publié le 20061222

Procédé et système pour mettre en correspondance des requêtes d'exécution d'une tâche et des applications susceptibles de les satisfaire La présente invention concerne un procédé pour mettre en correspondance des requêtes d'exécution d'une tâche et des applications susceptibles de les satisfaire. Elle vise également un système mettant en oeuvre le procédé selon 10 l'invention. Le domaine de l'invention est celui des procédés et systèmes de traitement d'information. Dans de grands systèmes d'information équipant des sites industriels ou de grands établissements, par exemple des groupes hospitaliers ou des administrations, il existe de nombreuses situations dans lesquelles une même tâche peut ou doit être exécutée par une pluralité d'applications logicielles. Il en résulte un haut niveau de complexité qui ne peut généralement être maîtrisé avec les technologies logicielles actuelles. Les documents US 2002/0023175 et WO 98/55908 (Karlak) divulguent un procédé de traitement distribué, qui fait fonctionner de multiples applications via un système d'exploitation et met en oeuvre des agents de réalisation de tâche. Le document US 6,757,902 (Katz et al.) divulgue un système d'information agencé pour instancier automatiquement des tâches 25 désignées par un utilisateur. Le but de la présente invention est de proposer un procédé pour mettre en correspondance des requêtes d'exécution d'une tâche et des applications susceptibles de les satisfaire, qui puisse fournir aux administrateurs de systèmes d'information une solution concrète et performante au problème des systèmes multi-actions. Suivant l'invention, il est proposé un procédé de mise en correspondance de requêtes d'exécution de tâches et d'applications susceptibles de les satisfaire, implémenté dans un système d'information comprenant une pluralité d'ordinateurs reliés en réseau, comprenant une mise en oeuvre d'agents porteurs d'une tâche, chaque agent porteur d'une tâche étant agencé (i) pour rechercher sur lesdits ordinateurs des actions disponibles capables de réaliser tout ou partie de ladite tâche, et (ii) pour demander une allocation puis une exécution desdites actions disponibles à des agents prévus pour la réalisation desdites actions. Ces actions peuvent provenir de sources variées, par exemple de l'usage d'un logiciel en partie (tel que l'invocation de la fonction de calcul d'une moyenne avec MS Excel) ou en globalité. Il peut ainsi s'agir d'appels système (par exemple, une gestion de fichiers ou une demande d'impression), ou d'invocations directes d'une méthode dans un langage de programmation, à titre d'exemples non limitatifs. Le procédé selon l'invention peut en outre avantageusement comprendre une identification d'un ensemble d'actions disponibles pour exécuter des requêtes, à partir de logiciels installés sur un ordinateur ou sur d'autres ordinateurs accessibles à distance depuis ledit ordinateur. Le procédé selon l'invention comprend de préférence: - une description de chacune des actions disponibles sur chaque ordinateur, chaque description étant détenue par un agent, - en réponse à une demande d'exécution d'une tâche, une recherche par l'agent porteur de ladite tâche, des actions disponibles capables de réaliser tout ou partie de ladite tâche, - une demande par l'agent porteur de la tâche, d'allocation des actions disponibles ainsi recherchées, à des agents prévus pour la réalisation desdites actions, - une demande par l'agent porteur de la tâche, de réalisation effective des actions, aux agents de réalisation, -une récupération, par l'agent porteur de la tâche, des résultats des différentes actions réalisées par les agents de réalisation, et - une composition, par l'agent porteur de la tâche, des résultats récupérés pour générer le résultat de la réalisation de la tâche dont il est porteur. Suivant un autre aspect de l'invention, il est proposé un système pour mettre en correspondance des requêtes d'exécution de tâches et des applications susceptibles de les satisfaire, mettant en oeuvre le procédé selon l'invention implémenté dans un système d'information comprenant une pluralité d'ordinateurs reliés en réseau, comprenant des agents porteurs d'une tâche, chaque agent porteur d'une tâche étant agencé (i) pour rechercher sur lesdits ordinateurs des actions disponibles capables de réaliser tout ou partie de ladite tâche, et (ii) pour demander une allocation puis une exécution desdites actions disponibles à des agents prévus pour la réalisation desdites actions. On entend ici par Agents des composants logiciels chargés de réaliser des fonctions spécifiques. On entend par Applications des programmes logiciels spécifiques dédiés à un ensemble de fonctionnalités. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés sur lesquels: - la figure 1 est un synoptique illustrant le contexte général dans lequel le procédé selon l'invention s'inscrit; et - la figure 2 illustre un exemple de mise en oeuvre du procédé selon l'invention. Le procédé de mise en correspondance selon l'invention s'inscrit dans une offre de réponse technique à une demande croissante dans le domaine de la résolution de problèmes complexes rencontrés dans les systèmes d'information. En référence à la figure 1, il y a initialement une définition (1) d'un problème à résoudre. A partir de données collectées auprès d'experts, des règles et des ontologies sont établies suivant des techniques conventionnelles ou bien spécifiques au problème à résoudre. Ces règles et ces ontologies sont mises en oeuvre pour réaliser des outils logiciels qui sont fournis (2) à des praticiens ou opérateurs sur leurs postes de travail, soit en mode résident, soit en mode distant. Ces outils logiciels mettent en oeuvre une pluralité d'applications logicielles, constituant ainsi un système multiactions, et c'est à ce stade qu'est mis en oeuvre le procédé de mise en correspondance selon l'invention. Par ailleurs, les prescriptions issues des règles et ontologies sont confrontées et comparées (3) à des observations effectuées sur différentes composantes du système d'information, de façon à réaliser une adéquation entre prescriptions et observations. On va maintenant décrire, en référence à la figure 2, un exemple de mise en oeuvre du procédé de mise en correspondance selon l'invention, pour résoudre le problème de la planification des interventions chirurgicales au sein d'un établissement de soin, clinique ou hôpital. Les différents intervenants du processus de planification, médecins, anesthésistes, surveillants de bloc, disposent tous d'un outil différent de gestion de planning pour leur activité propre. Ces différents logiciels sont installés et s'exécutent sur des ordinateurs différents, reliés entre eux par un réseau de communication. Pour optimiser le processus de la planification, on intègre chacun de ces logiciels en décrivant, sous forme d'un ensemble d'actions, les fonctionnalités qu'ils rendent. Ainsi, un logiciel de planification des consultations pour un médecin spécialiste fournit les actions suivantes: consultation d'un calendrier, pour connaître l'état d'une plage horaire donnée, libre ou réservée, - réservation d'une plage horaire pour un événement ou une tâche, - déplacement d'un événement prévu, et suppression d'un événement planifié. Un logiciel de gestion de données patient fournit par exemple, les actions suivantes: - consultation d'informations sur un patient, -ajout d'informations: données administratives ou médicales, - suppression d'information ou suppression de la fiche patient . 20 Ces actions sont décrites dans un langage donné. Lorsque l'un des intervenants, le plus fréquemment un médecin spécialiste, souhaite planifier une intervention chirurgicale, il le fait, comme à son habitude, avec son logiciel de gestion de planning, en précisant le patient concerné, le type d'intervention, et éventuellement une plage de date plus ou moins précise souhaitée pour l'intervention. Un agent A observe les événements dans ce logiciel de gestion de plannings. Lorsqu'il détecte ce nouvel événement, il s'approprie l'action de planifier l'intervention correspondante. Le type de l'intervention choisie permet à l'agent A d'identifier les 30 actions à réaliser pour planifier l'intervention: - prévoir une consultation avec un anesthésiste, - planifier sur ce même créneau l'intervention du médecin, - planifier sur ce même créneau la présence de l'anesthésiste, - fournir à chaque intervenant concerné les éléments du dossier médical 35 du patient pertinent pour son activité. L'agent A recherche alors les actions disponibles dans son réseau qui correspondent à cet ensemble d'actions identifiées. Les descriptions des actions associées aux logiciels disponibles sont stockées dans une ou plusieurs bases de données sur un ou plusieurs ordinateurs du réseau. L'agent A obtient la description des actions qui couvrent son ensemble d'actions à réaliser. Il cherche à présent à savoir si ces actions sont allouées , c'est-àdire s'il existe au moins un agent qui aurait déclaré être disponible pour réaliser une ou plusieurs d'entre elles. Ces déclarations sont stockées dans une ou plusieurs bases de données sur un ou plusieurs ordinateurs du réseau. Les actions nécessaires et non allouées sont affectées à des agents existants lorsque cela correspond à un regroupement cohérent d'actions sur un agent. Si cela n'est pas possible, de nouveaux agents sont créés auxquels les actions non encore allouées sont attribuées. Les actions élémentaires sont exécutées par ces différents agents: les plannings sont interrogés, les créneaux réservés lorsque cela est possible. Les conflits sont arbitrés par l'agent A. A la fin du processus, l'intervention est planifiée, et les différents créneaux sont réservés dans les différents logiciels de planning. Ainsi, en référence à la figure 2, si des ordinateurs 1-4 sont respectivement dédiés aux opérations de gestion de planning de consultation spécialiste (1), de gestion de planning de consultation anesthésiste (2), de gestion du planning du bloc opératoire (3), et de gestion de données patients (4), une première base de données B1 stocke les données traitées pour les trois premières opération, tandis qu'une seconde base de données B2 stocke les données patient . Ces deux bases de données sont respectivement gérées à partir de deux ordinateurs 6, 7 eux-mêmes accessibles à partir d'un ordinateur 8 lui- même connecté à un ordinateur 9 utilisé comme poste de travail par un utilisateur. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. En particulier, le procédé selon l'invention peut être mis en oeuvre dans bien d'autres situations que celle qui vient d'être décrite, notamment pour des sites administratifs ou industriels. Par ailleurs, le procédé selon l'invention peut être implémenté soit sous une forme logicielle centralisée ou partiellement centralisée, soit en mode distribué sur un ensemble de poste de travail d'un système d'information. - 7 - REVENDICATIONS 1. Procédé pour exécuter une tâche au sein d'un système d'information comprenant une pluralité d'ordinateurs reliés en réseau et sur lesquels des applications logicielles susceptibles de réaliser des actions sont installées, comprenant: - une recherche sur lesdits ordinateurs, par un agent porteur de ladite tâche, d'une pluralité d'actions disponibles capables de réaliser tout ou partie de ladite tâche, à chaque action étant associé un agent de réalisation de ladite action, et - une allocation desdites actions disponibles auxdits agents de réalisation. 2. Procédé selon la revendication 1, caractérisé en ce que les actions disponibles comprennent un appel système . 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comprend en outre une identification d'un ensemble d'actions disponibles pour exécuter des requêtes, à partir de logiciels installés sur un ordinateur ou sur d'autres ordinateurs accessibles à distance depuis ledit ordinateur. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une description de chacune des actions disponibles sur chaque ordinateur, chaque description étant détenue par un agent. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une récupération, par l'agent porteur de la tâche, des résultats des différentes actions réalisées par les agents de réalisation. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une composition, par l'agent porteur de la tâche, des résultats récupérés pour générer le résultat de la réalisation de la tâche dont il est porteur. 7. Système pour exécuter une tâche au sein d'un système d'information comprenant une pluralité d'ordinateurs reliés en réseau et sur lesquels des - 8 - applications logicielles susceptibles de réaliser des actions sont installées, mettant en oeuvre le procédé selon l'une quelconque des revendications précédentes, ce système comprenant: - un agent porteur de ladite tâche, agencé pour rechercher sur lesdits 5 ordinateurs, une pluralité d'actions disponibles capables de réaliser tout ou partie de ladite tâche, et - des moyens pour allouer chaque action disponible à une pluralité d'agents de réalisation d'une action parmi ladite pluralité d'actions. 8. Système selon la revendication 7, caractérisé en ce qu'il comprend en outre des moyens pour identifier un ensemble d'actions disponibles pour exécuter des requêtes, à partir de logiciels installés sur un ordinateur ou sur d'autres ordinateurs accessibles à distance depuis ledit ordinateur. 9. Système selon l'une des revendication 7 ou 8, caractérisé en ce qu'il comprend en outre des moyens pour décrire chacune des actions disponibles sur chaque ordinateur, chaque description étant détenue par un agent. 10. Système selon l'une quelconque des revendication 7 à 9, caractérisé en ce que chaque agent porteur d'une tâche est agencé pour rechercher, en réponse à une demande d'exécution d'une tâche, des actions disponibles capables de réaliser tout ou partie de ladite tâche. 11. Système selon l'une quelconque des revendications 7 à 10, caractérisé en ce que chaque agent porteur d'une tâche est agencé pour demander une réalisation effective des actions, aux agents de réalisation. 12. Système selon l'une quelconque des revendications 7 à 11, caractérisé 30 en ce que chaque agent porteur d'une tâche est agencé pour récupérer des résultats des différentes actions réalisées par les agents de réalisation. 13. Système selon la revendication 12, caractérisé en ce que chaque agent porteur d'une tâche est agencé pour composer des résultats récupérés pour 35 générer le résultat de la réalisation de la tâche dont il est porteur.