El Filtering Engine for Large Conceptual Schemas és una eina de prototip que ajuda els usuaris a extreure fàcilment d’aquests esquemes el coneixement més rellevant per a un propòsit concret.
El nostre motor conté un nucli que és responsable de mantenir i accedir a les característiques d’un gran esquema conceptual. A més, el nucli està sota control de les sol·licituds de filtratge que consulten l'esquema per tal de servir les necessitats d'informació de l'usuari. La conjunció de les sol·licituds de filtratge d'informació específica i el nucli del motor s'implementa com a servei web. Aquesta decisió arquitectònica permet una fàcil interacció amb els clients web i augmenta la independència de la tecnologia i, per tant, la usabilitat del sistema global.
El prototip del Filtering Engine for Large Conceptual Schemas pot ser executat a Eclipse IDE amb l'Eclipse Web Tool Platform (WTP) en ell. Per això, per testejar el servei, necessitem configurar WTP amb Tomcat i Axis. Vegem els pasos que es requereixen per utilitzar aquest servei localment.
Descripció general de ETP de l'eclipsi
Eclipse WTP dona les eines per desenvolupar aplicacions standard Java web i aplicacions Java EE. Els artefactes web típics en un entorn Java són pàgines HTML, fitxers XML, serveis web, servlets i JSP. WTP Eclipse simplifica la creació d'aquests artefactes web i proporciona entorns d'execució en què poden desplegar, iniciar i depurar aquests artefactes.
Eclipse WTP suporta tots els contenidors web més grans, p.ex. Jetty i Apache Tomcat, així com el servidor d'aplicacions major Java EE. Aquest tutorial utilitza Apache Tomcat com a contenidor web.
Projectes Web Dinàmics (Dynamic Web Projects)
A Eclipse WTP crees "Dynamic Web Projects". Aquests projectes ens faciliten les funcionalitats necessàries per execurar, debugar i desplegar una aplicació de Java web. Per tant, per al desenvolupament d'aplicacions web Java que creeu "Dynamic Web Projects"
Tomcat Installation
Instal·lació del WTP
Utilitzeu el gestor d’actualitzacions d’Eclipse (selecciona Help -> Install New Software) per instal·lar Eclipse WTP. Instal·leu tots els paquets des de "Web, XML i Java EE Development" excepte "PHP Development" i "Eclipse RAP". Seguiu les directrius de l’assistent i reinicieu Eclipse.
Configuració del WTP
Selecciona Windows -> Preferences -> Server -> Runtime Environments. Per configurar WTP per utilitzar Tomcat Press Add.
Selecciona la teva versió de Tomcat.
Selecciona el directori d'instal·lació Tomcat on està la teva versió de Tomcat i pulsi en continuar.
Premeu Finalitza i després OK. Ja esteu a punt per utilitzar Tomcat amb WTP.
Servidor
Durant el desenvolupament crearà el vostre servidor. Podeu gestionar el vostre servidor mitjançant la vista del servidor. Per veure si les dades s’han persistit, atureu i reinicieu el servidor. Podeu fer-ho a través delWindows -> Show View -> Servers -> Servers
A continuació es mostra on podeu iniciar, aturar i reiniciar el servidor.
Ara ja està llest per anar!
Apache Axis2 és un framework popular de serveis web de codi obert. Axis2 utilitza l'anàlisi XML basat en Stax i utilitza internament el model d'objecte Axiom per representar el missatge XML. A partir d’aquest objecte, el model Axis2 proporciona un adaptador que compleix Jax-WS. Detallem aquí com instal·lar-lo i com configurar l’eix 2 a Eclipse.
Instal·lació d'Axis 2
Aquest capítol requereix un temps d'execució d'Axis2, el lloc de descàrrega general és aquí.
Extraieu la cremallera de l’eix 2 i marqueu ETP amb Eclipse, com es mostra a continuació.
Actualment Axis 2 1.5 no està suportat. Assegureu-vos de descarregar Axis 1.4.1 que el pots trobar com Axis 2 1.4.1. Download.
Extraieu la cremallera de l’eix 2 i marqueu ETP amb Eclipse, com es mostra a continuació.
Clica OK. Selecciona Window -> Preference i posa Axis2 as the default engine.
Ara ja està llest per anar!
Baixeu el projecte del servei de filtratge here.
Ves a File->Import->General->Existing Projects al Workspace
Clica Next i Select archive file. Selecciona la descàrrega zip i clica en finalitzar.
Ara teniu el projecte amb el servei de filtratge dins.
Ara ja esteu preparats per iniciar el servei web per al projecte importat. A Eclipse, feu clic amb el botó dret sobre "Filtering.java" (dins del paquet src / edu.upc.gemece.filtering) i seleccioneu Serveis web -> Crea servei web.
Assegureu-vos que el temps d'execució del servei web seleccionat és Apache Axis2. En cas contrari, feu clic a l’enllaç Temps d’execució del servei web: Apache Axis2 i seleccioneu Axis2.
Pulsa següent.
Feu clic a "Següent". Si el vostre servidor no s'està executant, veureu aquest diàleg. Feu clic a "Inici del servidor", espereu uns segons i feu clic a "Següent".
Si no es produeix cap error, feu clic a "Finalitza". Felicitats! Heu iniciat el servei web de filtratge. Això va ser fàcil!
Un cop que el servei estigui a punt per ser consumit, hem de descarregar el Filtering Client i descomprimiu-lo en un servidor web compatible amb PHP (per exemple, un servidor Apache local amb PHP). A continuació, a la carpeta de filtre trobareu el fitxer start.php. Executeu-ho escrivint "php start.php" en una consola o visitant el fitxer start.php a través del navegador web. Si tot funciona bé, el servei i el client ja estan a punt per ser utilitzats. Obriu el fitxer index.html dins del directori del client que ja teniu descomprimit i continueu amb les instruccions d’ús que es poden trobar aquí per començar a filtrar un esquema gran.
Recordatori: primer, seguiu les instruccions d'aquí here preparar el medi ambient.
El prototip del motor de filtrat per a grans esquemes conceptuals inclou la implementació de les sol·licituds de filtratge del catàleg de filtratge introduït a Ch. 6 d’aquesta tesi ( this thesis ) seguint una arquitectura orientada als serveis web. El nostre prototip proporciona funcionalitat per extreure una part del coneixement de l’esquema conceptual de Magento.
Magento és una plataforma de comerç electrònic de codi obert complet i dirigida a dissenyadors de llocs web, desenvolupadors i propietaris de negocis que busquen una solució completa de llocs web de comerç electrònic. El sistema Magento proporciona escalabilitat, flexibilitat i característiques per al creixement empresarial. La subsistema estructural de Magento conté 218 tipus d'entitat i 983 atributs. D'altra banda, la subschema conductual conté 187 tipus d'esdeveniments i 69 pre i postcondicions que especifiquen l'efecte dels esdeveniments. A més, l'esquema conceptual connecta els seus elements a través d'un conjunt de 319 tipus de relació i 165 relacions de generalització, i inclou 386 restriccions d'integritat, 185 regles de derivació, 15 tipus de dades i 46 tipus d'enumeració.
Aquest esquema es precarrega al servei de gestor d’esquemes del prototip. La següent captura de pantalla mostra l’esquema conceptual de Magento:
F1 - Sol·licitud de filtrat de tipus d'entitat i relacions
F2 - Sol·licitud de filtratge de les regles de l'esquema
F3 - Sol·licitud de filtrat de tipus d'esdeveniments
F4 - Sol·licitud de filtrat d’un esquema conceptual
F5 - Sol·licitud de filtratge per al comportament del context dels tipus d'entitat
F6 - Sol·licitud de filtratge de tipus contextualitzats
La primera sol·licitud de filtratge se centra en un conjunt (un o més) tipus d'entitats i relacions d'un gran esquema conceptual i retorna l'esquema filtrat corresponent amb el coneixement d'interès per a l'usuari.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure els tipus d’entitats i relacions en el focus establert a través de tres components diferents.
En primer lloc, construïm un núvol de paraules amb els 25 tipus d'entitats més rellevants de Magento, on es representen els més rellevants en una mida de font més gran. Aquest format és útil per percebre ràpidament els tipus d’entitats més destacats per usuaris sense experiència. Si seleccioneu un nom de tipus d'entitat únic dins del núvol de paraules, inclou aquest tipus d'entitat al conjunt de focus.
Alternativament, la interfície conté una barra de cerca, que proporciona una funcionalitat d’autocompletat que ajuda a descobrir els noms de l’entitat existent i els tipus de relació de Magento. Els noms dels tipus d’entitat i de relació seleccionats es mostren a la barra de cerca.
A més d’ella, incloem una llista alfabètica per explorar tots els tipus d’entitats i relacions de Magento. L’usuari selecciona una sola lletra de l’alfabet anglès de la llista i obté una enumeració d’aquests tipus d’entitats i relacions el nom del qual comença amb aquesta lletra. L’usuari pot seleccionar els tipus d’interès d’entitat o de relació, que s’inclouen a la barra de cerca. Tingueu en compte que hem precedit cada element de la llista alfabètica amb una icona que mostra el tipus d’element d’esquema (tipus d’entitat, tipus de relació o classe d’associació).
L’usuari també pot seleccionar la mida final de l’esquema filtrat per tal d’indicar la quantitat de coneixements que vol obtenir com a resultat. Com a exemple, les captures de pantalla següents mostren el prototip de filtratge quan l’usuari selecciona la classe d’associació ActivityInfoOfCustomerInStoreView com a focus de l’entrada definit. Mitjançant l’ús del nostre prototip, l’usuari descobreix que aquesta classe d’associació és una associació binària, els apartats del qual són Client i StoreView. A més, obté els noms de rol (customerWithInfoAbout i storeViewWithInfoAbout) que poden permetre-li construir navegacions OCL addicionals, les multiplicitats (0 .. * en tots dos costats), els atributs de cada element i una invariant referencial-completa en el context de StoreView.
La segona sol·licitud de filtratge se centra en un conjunt d'esquemes (un o més) a partir d'un gran esquema conceptual i retorna l'esquema filtrat corresponent amb el coneixement d'interès per a l'usuari.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure les regles d’esquema al focus establert a través de tres components diferents.
En primer lloc, construïm un núvol de paraules amb els 25 tipus d'entitats més rellevants de Magento, on es representen els més rellevants en una mida de font més gran. Aquest format és útil per percebre ràpidament els tipus d’entitats més destacats per usuaris sense experiència. Si seleccioneu un nom de tipus d'entitat únic dins del núvol de paraules, s'inclouen totes les regles d'esquema definides en el context d'aquest tipus d'entitat al conjunt de focus.
Alternativament, la interfície conté una barra de cerca, que proporciona una funcionalitat d’autocompletar que ajuda a descobrir els noms de l’entitat existent i els tipus d’esdeveniments de Magento. Els noms de l’entitat i dels tipus d’esdeveniments seleccionats es mostren a la barra de cerca i totes les seves regles d’esquema s’inclouen al conjunt de focus.
A més d’ella, incloem una llista alfabètica per explorar tots els tipus d’entitat, esdeveniment i relació de Magento que defineixen les regles d’esquema. L’usuari selecciona una sola lletra de l’alfabet anglès de la llista i obté una enumeració d’aquests tipus d’entitats i relacions el nom del qual comença amb aquesta lletra. Tingueu en compte que hem precedit cada element de la llista alfabètica amb una icona que mostra el tipus d’element d’esquema (tipus d’entitat, tipus d’esdeveniment, tipus de relació o classe d’associació).
L’usuari també pot seleccionar la mida final de l’esquema filtrat per tal d’indicar la quantitat de coneixement que vol obtenir com a resultat, o bé, definir l’abast de la sol·licitud a local per tal d’aconseguir només aquells elements referenciats per les regles del focus. Com a exemple, les captures de pantalla següents mostren el prototip de filtratge quan l’usuari selecciona la operació createInvoice de la condició posterior de la operació theeffect () del tipus d'esdeveniment AddInvoice. Mitjançant l’ús del nostre prototip, l’usuari descobreix els elements referenciats per aquesta regla d’esquema tenint en compte que l’abast s’ha establert com a local. Concretament, l’usuari pot descobrir que la post-condició descriu el comportament per generar una nova instància de factura, inclosa la manera de configurar els valors dels atributs de la nova factura i com relacionar-la amb noves instàncies de factura que coincideixin amb la instàncies de OrderLine de l'ordre actual d'aquest esdeveniment.
La tercera sol·licitud de filtratge se centra en un conjunt (un o més) tipus d'esdeveniments d'un esquema gran i retorna l'esquema filtrat corresponent amb el coneixement d'interès per a l'usuari.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure tipus d’esdeveniments en el focus establert a través de tres components diferents.
En primer lloc, construïm un núvol de paraules amb els 25 tipus d'esdeveniments més rellevants de Magento, on es mostren els més rellevants en una mida de font més gran. Aquest format és útil per percebre ràpidament els tipus d'esdeveniments més destacats per usuaris sense experiència. Si seleccioneu un nom de tipus d'esdeveniment únic dins del núvol de paraules, s'inclouen aquest tipus d'esdeveniments al conjunt de focus.
Alternativament, la interfície conté una barra de cerca, que proporciona una funcionalitat d’autocompletar que ajuda a descobrir els noms dels tipus d'esdeveniments existents de Magento. Els noms dels tipus d’events seleccionats es mostren a la barra de cerca.
A més, inclouem una llista alfabètica per explorar tots els tipus d'esdeveniments de Magento. L’usuari selecciona una sola lletra de l’alfabet anglès de la llista i després obté una enumeració dels tipus d'esdeveniments el nom del qual comença amb aquesta lletra. L’usuari pot seleccionar els tipus d’esdeveniments d’interès que s’inclouen a la barra de cerca.
L’usuari també pot seleccionar la mida final de l’esquema filtrat per tal d’indicar la quantitat de coneixements que vol obtenir com a resultat. Com a exemple, les captures de pantalla següents mostren el prototip de filtratge quan l’usuari selecciona el tipus d’esdeveniment AddProductToWishlist com a conjunt de focus d’entrada. Mitjançant l’ús del nostre prototip, l’usuari descobreix que aquest tipus d’esdeveniment és un descendent dels tipus d'esdeveniments abstractes ExistingProductEvent i ExistingCustomerEvent, que indica que AddProductToWishlist és un tipus d'esdeveniment que tracta de productes i clients. De fet, l’esquema filtrat mostra que EexistingProductEvent està associat a una instància del tipus d’entitat Product, i allà hi ha; A més, l’usuari obté un invariante complet referencial que estableix que cada instància de producte s’identifica pel valor de l’atribut sku.
La quarta sol·licitud de filtratge se centra en un petit esquema obtingut mitjançant l’aplicació de qualsevol altra sol·licitud de filtratge del catàleg. Aquest petit esquema és un esquema conceptual filtrat que l’usuari vol estendre per obtenir coneixements addicionals de l’esquema gran original amb relació superior als elements d’esquema continguts en l’esquema filtrat.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure elements des d’un esquema filtrat al focus centrat a través de dos components diferents.
En primer lloc, oferim als usuaris una visualització gràfica interactiva de l’esquema conceptual filtrat mitjançant una biblioteca HTML5 / Javascript. Els usuaris poden interactuar directament amb l’esquema filtrat canviant la posició dels elements (arrossegar i deixar anar). A més, els usuaris poden seleccionar un conjunt d’elements d’esquema (un o més) de l’esquema filtrat i incloure-los al conjunt de focus per a l’aplicació de la quarta sol·licitud de filtratge.
Alternativament, l’usuari pot escriure el nom de l’entitat o els tipus d’events desitjats a la barra de cerca, que proporciona una funcionalitat d’autocompletar. Per tant, l'usuari pot afinar el conjunt de focus per tal de combinar la selecció d'elements de l'esquema filtrat amb la selecció d'elements addicionals del gran esquema segons necessitats d'informació específiques.
Un cop completat el conjunt de focus, l'usuari fa clic al botó Explora per iniciar la nova sol·licitud de filtratge i obté l'esquema filtrat corresponent. A les captures de pantalla següents, la interfície mostra un esquema filtrat on es va centrar en el tipus d’entitat Reemborsament. L’esquema presenta un reemborsament com a descendent de l’entitat abstracta tipus Commentable, associada a instàncies de RefundLine, i que una devolució pertany a l’ordre a la qual està relacionada, que també és descendent deCommentable. A més, l’esquema filtrat mostra tres invariants.
D'altra banda, l’entrada de l’exemple conté l’esquema que inclou els quatre tipus d’entitats del pas anterior. El resultat inclou els mateixos elements que a l’esquema d’entrada (marcat amb un color més fosc) i dos tipus d’entitats addicionals d’alta importància: Web i StoreView. A més, aquest esquema conté dos invariants addicionals referencial per complet.
Per tant, la interacció entre l'usuari i el nostre prototip proposat resulta en un procés iteratiu que s'ha d'aplicar tantes vegades com sigui necessari. El procés finalitza quan l'usuari creu que ha obtingut coneixements suficients del gran esquema per cobrir les necessitats d'informació específiques o vol aplicar una sol·licitud de filtratge diferent.
La cinquena sol·licitud de filtratge se centra en un conjunt (un o més) tipus d’entitats d’un esquema gran i retorna l’esquema filtrat corresponent amb els tipus d’esdeveniments interessants per a l'usuari.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure els tipus d’entitats en el focus establert a través de tres components diferents.
En primer lloc, construïm un núvol de paraules amb els 25 tipus d'entitats més rellevants de Magento, on es representen els més rellevants en una mida de font més gran. Aquest format és útil per percebre ràpidament els tipus d’entitats més destacats per usuaris sense experiència. Si seleccioneu un nom de tipus d'entitat únic dins del núvol de paraules, inclou aquest tipus d'entitat al conjunt de focus.
Alternativament, la interfície conté una barra de cerca, que proporciona una funcionalitat d’autocompletar que ajuda a descobrir els noms dels tipus d’entitats existents de Magento. Els noms dels tipus d’entitat seleccionats es mostren a la barra de cerca.
A més d’ella, incloem una llista alfabètica per explorar tots els tipus d’entitats de Magento. L’usuari selecciona una sola lletra de l’alfabet anglès de la llista i després obté una enumeració dels tipus d’entitats el nom del qual comença amb aquesta lletra. L’usuari pot seleccionar els tipus d’entitat d’interès que s’inclouen a la barra de cerca.
L’usuari també pot seleccionar la mida final de l’esquema filtrat per tal d’indicar la quantitat de coneixements que vol obtenir com a resultat. Com a exemple, les següents captures de pantalla mostren el prototip de filtratge quan l’usuari selecciona el tipus d’entitat Adreça com el focus d’entrada definit. Mitjançant l’ús del nostre prototip, l’usuari descobreix el conjunt de tipus d’esdeveniments relacionats amb aquest tipus d’entitat.
Per tant, observem en l'esquema filtrat resultant que els tipus d'esdeveniments DeleteCustomerAddress i EditCustomerAddress fan ús del tipus d'entitat Address per a la seva especificació. A més, el tipus d’esdeveniment OrderConfirmation està relacionat amb dues instàncies d’adreça per als rols de facturació i lliurament, la qual cosa indica que en Magento les comandes de productes requereixen una adreça de facturació i una adreça de lliurament.
La sisena sol·licitud de filtratge se centra en un conjunt (un o més) tipus d'entitat i d'esdeveniments d'un gran esquema conceptual i retorna l'esquema filtrat corresponent amb el coneixement d'interès per a l'usuari en aplicar una funció de contextualització.
A la nostra implementació oferim als usuaris una interfície basada en web per facilitar la construcció del conjunt de focus. L’usuari és capaç d’incloure els tipus d’entitats i relacions en el focus establert a través de tres components diferents.
Primer de tot, construïm un núvol de paraules amb les entitats i els tipus d'esdeveniments més rellevants dels 25, on es representen els més rellevants en una mida de font més gran. Aquest format és útil per percebre ràpidament l’entitat i els tipus d’esdeveniments més destacats per usuaris sense experiència. Si seleccioneu una sola entitat o nom de tipus d’esdeveniment dins del núvol de paraules, inclou aquest tipus d’entitat o esdeveniment al conjunt de focus.
Alternativament, la interfície conté una barra de cerca, que proporciona una funcionalitat d’autocompletar que ajuda a descobrir els noms de l’entitat existent i els tipus d’esdeveniments de Magento. Els noms de l’entitat i dels tipus d'esdeveniments seleccionats es mostren a la barra de cerca.
A més d’ella, incloem una llista alfabètica per explorar tots els tipus d’entitats i esdeveniments de Magento. L’usuari selecciona una sola lletra de l’alfabet anglès de la llista i obté una enumeració d’aquests tipus d’entitats i esdeveniments el nom del qual comença amb aquesta lletra. Cada element de la llista mostra també els seus atributs i participacions en les relacions. L’usuari pot seleccionar els tipus d’entitat o esdeveniment d’interès, que després s’inclouen a la barra de cerca i, a més, canviaran les multiplicitats (algunes d’elles) dels seus atributs o participacions en les relacions, o fins i tot seleccionen valors per defecte per a aquells atributs el tipus és enumeració. Tingueu en compte que hem precedit cada element de la llista alfabètica amb una icona que mostra el tipus d’element d’esquema (tipus d’entitat, tipus d’esdeveniment, participació en el tipus de relació o atribut propietat). Si canvieu les multiplicitats de la selecció de valors predeterminats, l'usuari aplica una funció de contextualització.
L’usuari també pot seleccionar la mida final de l’esquema filtrat per tal d’indicar la quantitat de coneixements que vol obtenir com a resultat. Com a exemple, les captures de pantalla següents mostren el prototip de filtratge quan l’usuari selecciona el tipus d’entitat BundleProduct com el focus d’entrada definit i selecciona un valor per defecte per al seu atribut de propietat priceMethod. Mitjançant l’ús del nostre prototip, l’usuari descobreix que aquest tipus d’entitat descendeix del tipus d’entitat Producte i que està relacionat amb els tipus d’entitats del lloc web i SCItemOfBundleProduct. Tingueu en compte que l’atribut priceMethod of BundleProduct mostra el seu valor per defecte com Static.
Per a qualsevol pregunta o suggeriment, no dubteu a posar-vos en contacte amb nosaltres enviant un correu electrònic a avillegas@essi.upc.edu
A continuació, us proposem treballs futurs sobre l’evolució del motor de filtratge per a grans esquemes conceptuals: