ITRM20100175A1 - MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES - Google Patents

MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES Download PDF

Info

Publication number
ITRM20100175A1
ITRM20100175A1 IT000175A ITRM20100175A ITRM20100175A1 IT RM20100175 A1 ITRM20100175 A1 IT RM20100175A1 IT 000175 A IT000175 A IT 000175A IT RM20100175 A ITRM20100175 A IT RM20100175A IT RM20100175 A1 ITRM20100175 A1 IT RM20100175A1
Authority
IT
Italy
Prior art keywords
data
client
objects
server
page
Prior art date
Application number
IT000175A
Other languages
Italian (it)
Inventor
Andrea Buratti
Original Assignee
Andrea Buratti
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Andrea Buratti filed Critical Andrea Buratti
Priority to IT000175A priority Critical patent/ITRM20100175A1/en
Priority to PCT/IT2011/000109 priority patent/WO2011128924A1/en
Publication of ITRM20100175A1 publication Critical patent/ITRM20100175A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Description

DESCRIZIONE dell'invenzione avente per TITOLO: DESCRIPTION of the invention having as TITLE:

“Applicazioni Web Dinamiche Modulari e Persistenti con Interfacce Complesse", "Modular and Persistent Dynamic Web Applications with Complex Interfaces",

Descrizione Description

Il sistema delle Applicazioni Web Dinamiche Modulari e Persistenti con Interfacce Complesse si basa su un concetto di post-renderizzazione delle pagine web, che vengono scritte inizialmente in formato HTML\XHTML e fogli di stile e successivamente, grazie ad una configurazione parallela tramite file XML, si ottiene il risultato finale (figura 1 e 2). The system of Modular and Persistent Dynamic Web Applications with Complex Interfaces is based on a concept of post-rendering of web pages, which are initially written in HTML \ XHTML format and style sheets and subsequently, thanks to a parallel configuration via XML files, the final result is obtained (figures 1 and 2).

Il file XML contiene al suo interno una struttura divisa in 4 aree logiche (figura 3) The XML file contains a structure divided into 4 logical areas (figure 3)

1. onLoad: In questa sezione vengono indicati tutti i campi che dovranno avere un comportamento particolare, che può andare da una formattazione, alla definizione di un campo obbligatorio, ad una renderizzazione di un oggetto complesso in una area indicata (figura 4). All'interno degli oggetti complessi (Es griglie, repeater, treeview od altri) à ̈ possibile indicare le rispettive formattazioni e campi obbligatori, oltre che regole di validità per ciascun gruppo di dati all'interno di essi (fig. 5,6,7). 1. onLoad: This section indicates all the fields that must have a particular behavior, which can range from formatting, to the definition of a mandatory field, to a rendering of a complex object in an indicated area (figure 4). Within complex objects (e.g. grids, repeaters, tree views or others) it is possible to indicate the respective formatting and mandatory fields, as well as validity rules for each group of data within them (fig. 5,6,7 ).

2. JSonComunicationArea: In questa sezione vengono definite tutte le aree di comunicazioni da, e verso il server (Listato 2 e figura 9). 2. JSonComunicationArea: This section defines all the communication areas to and from the server (Listing 2 and Figure 9).

3. Actions: In questa sezione vengono definite le varie azioni che dovranno essere intraprese per il dialogo con il server. Saranno indicate le aree da controllare ed inviare, i nomi delle variabili con le quali dette aree viaggeranno verso il server, che tipo di dati transiteranno e cosa dovrà accadere al ritorno (Listato 2 e figura 9). 3. Actions: This section defines the various actions that must be taken for the dialogue with the server. The areas to be checked and sent will be indicated, the names of the variables with which these areas will travel to the server, what type of data will transit and what should happen upon return (Listing 2 and Figure 9).

4. UserlnterfaceAction: In questa sezione vengono definite delle azione che dovranno scaturire a seguito di interazioni utente, ad esempio abilitazione/disabilitazione campi. 4. UserlnterfaceAction: This section defines the actions that must arise as a result of user interactions, for example enabling / disabling fields.

L'ABUCore, à ̈ il framework lato Client, scritto in puro JavaScript, che al caricamento di una pagina ne analizza il file di configurazione, include ed attende il caricamento delle sole librerìe richieste e genera tutto il codice necessario per la renderizzazione, il controllo ed il funzionamento della pagina (figura 4), trasformando una semplice pagina HTML/XHTML in un Ricco Client Web Dinamico (figura 5). In pratica l'ABUCore trasforma i tag XML e le rispettive proprietà in puro sorgente JavaScript. Una volta realizzata una pagina Client complessa, che può contenere simultanee gestioni al proprio interno, proprio come in una vera applicazione gestionale desktop, i dati che transiteranno tra il Client ed il server hanno la caratteristica di viaggiare in maniera compatta e modulare . Sarà un framework presente sul server ad occuparsi dello smistamento delle informazioni provenienti dal Client, e aiutare alla creazione delle strutture provenienti da esso e da inviare al Client. Nella versione· attuale si occupa anche della creazione delle query, che-scritte in un formato parametrico speciale sono create dinamicamente ed automaticamente in base ai dati inviati. The ABUCore, is the Client-side framework, written in pure JavaScript, which, when a page loads, analyzes the configuration file, includes and waits for the loading of only the required libraries and generates all the code necessary for rendering. the control and operation of the page (figure 4), transforming a simple HTML / XHTML page into a Rich Dynamic Web Client (figure 5). In practice, ABUCore transforms XML tags and their respective properties into pure JavaScript source. Once a complex Client page has been created, which can contain simultaneous internal managements, just like in a real desktop management application, the data that will pass between the Client and the server have the characteristic of traveling in a compact and modular way. A framework present on the server will take care of sorting the information coming from the Client, and help in the creation of the structures coming from it and to be sent to the Client. In the current version it also deals with the creation of queries, which - written in a special parametric format - are dynamically and automatically created based on the data sent.

Per trasformare una Applicazione Web Dinamica con Ricca Interfaccia Grafica in una Applicazione Web Dinamica, a Richiesta Modulare, Persistente e con Ricca Interfaccia Grafica à ̈ sufficiente dotare la pagina principale del sito di un menù o qualunque tipo di componente che consenta una navigazione tra queste(figura 11) e le inglobi in contenitore- che le conservi come porzioni di applicativo (figure 10 e 11). To transform a Dynamic Web Application with Rich Graphic Interface into a Dynamic Web Application, on Modular Request, Persistent and with Rich Graphic Interface, it is sufficient to equip the main page of the site with a menu or any type of component that allows navigation between these ( figure 11) and enclose them in a container - keep them as application portions (figures 10 and 11).

Il framework Client attualmente consente la creazione dei seguenti componenti avanzati (che verranno sicuramente aggiunti, insieme a routine specializzate per la stampa): Checklmage, Edit Combo, Dynamic Edit Combo, Dynamic Combo Repeater, MultiCheck, MultiRadio, Grids, Repeater, TreeView, Calendar, Agenda, Windows, XPStartMenu, Tabs, TabMenu, Docking Menu. Gli oggetti sopra elencati sono quasi tutti fomiti di data binding e mapping dei campi per le funzioni di import/export dei dati. Sono inoltre dotati di una tecnologia particolare che consente il controllo incrociato per la validazione dei vari campi di input in modalità editabile (fig. 5, 6, 7, 8), e l'accesso ai vari campi viene eseguito indistintamente indicando semplicemente il nome del campo assegnato nel file di configurazione XML. Altra caratteristica dei componenti avanzati à ̈ la conoscenza del loro stato (modalità di scrittura/ normale), delle variazioni interne dei dati (inserimento/modifica/eliminazione di un dato) con possibilità di annullare le modifiche apportate. Hanno una validazione interna, estendibile anche con regole utente, che consente all'ABUCore di eseguire le routine di validità per aree ed evitare l'invio di dati incongruenti. Contiene inoltre delle classi interne che servono all'invio e ricezione dati, assegnazione, formattazione input sui campi tramite maschere, classi per il controllo di campi richiesti, con possibilità di definire classi di obbligatorietà, aggiunta funzioni e prototipi. Sono presenti classi per il mapping dei dati con i campi delle JSON Aree. The Client framework currently allows for the creation of the following advanced components (which will surely be added, along with specialized print routines): Checklmage, Edit Combo, Dynamic Edit Combo, Dynamic Combo Repeater, MultiCheck, MultiRadio, Grids, Repeater, TreeView, Calendar , Agenda, Windows, XPStartMenu, Tabs, TabMenu, Docking Menu. The objects listed above are almost all provided for data binding and field mapping for the data import / export functions. They are also equipped with a particular technology that allows cross-checking for the validation of the various input fields in editable mode (fig. 5, 6, 7, 8), and access to the various fields is performed indiscriminately by simply indicating the name of the field assigned in the XML configuration file. Another feature of the advanced components is the knowledge of their status (writing / normal mode), of the internal variations of the data (insertion / modification / deletion of a datum) with the possibility of canceling the modifications made. They have an internal validation, which can also be extended with user rules, which allows the ABUCore to execute the validity routines for areas and avoid sending incongruent data. It also contains internal classes that are used to send and receive data, assignment, input formatting on fields through masks, classes for checking required fields, with the possibility of defining mandatory classes, adding functions and prototypes. There are classes for mapping data with JSON Areas fields.

Il framework server à ̈ molto più semplice in quanto si dota di alcune classi che si occupano dello smistamento/raggruppamento delle informazioni(Listato 5,6), oltre-che all'assegnazione dei dati alle_varie query (Listato 6), che essendo scritte in un formato proprietario e parametrico (Listato 7), consentono la scrittura automatica delle stesse, senza alcun intervento di analisi da parte dell'utente per i dati presenti o mancanti. I dati provenienti dal client viaggiano in maniera compatta e sotto forma di classi in formato JSON (Listato 8). Il server si occuperà della creazione dell'oggetto proveniente dal client, il quale potrà contenere una moltitudine di altri oggetti, e smisterà le varie informazioni alle varie classi server specializzate nel trattamento dei dati, che le smisteranno a loro volta ad altre classi basilari, fina ad ottenere la completa elaborazione massiva dei dati. Nel caso in cui una sola elaborazione- non venga eseguita saranno annullate tutte le altre, ma questa funzionalità à ̈ strettamente legata alla base dati. Il framework server si occuperà deN'impacchettamento dei dati sempre in maniera modulare, che dovranno viaggiare diretti verso il client (Listato 5,6). The server framework is much simpler as it is equipped with some classes that deal with the sorting / grouping of information (Listing 5,6), as well as assigning data to the various queries (Listing 6), which being written in a proprietary and parametric format (Listing 7), allow the automatic writing of the same, without any analysis by the user for present or missing data. The data coming from the client travels compactly and in the form of classes in JSON format (Listing 8). The server will take care of the creation of the object coming from the client, which may contain a multitude of other objects, and will dispatch the various information to the various server classes specialized in data processing, which will in turn sort them to other basic classes. to obtain the complete massive processing of the data. In the event that a single processing is not carried out, all the others will be canceled, but this functionality is closely linked to the database. The server framework will take care of the packaging of the data always in a modular way, which will have to travel directly to the client (Listing 5,6).

Esempio Semplice pagina HTML (Listato 1) Simple HTML Page Example (Listing 1)

<IDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><HTML><HEADxlink rel="stylesheet" type="text/css" href="../styles/style.css"xscript type="text/javascript" src="ABUCore.js"x/scriptxscript type="text/javascript" language="javascript">var oABUCore = new ABUCoreTest.xml", "oABUCore"); function AnagraficalnsUpd() { if (document.getElementByld("id_anagrafica").value.trim().length == 0) { anagraficalnsert(); } else { anagraficaUpdate(); } } function confìrmDelete(){ var bRes = false; if (ìsDefined(<,>id_anagrafica'.toObj().value, ")) { var agree=confirm("Si desidera eliminare il record corrente ?"); if (agree) { bRes = true; } } return bRes; } </scriptx/HEAD> <BODY> <form name="frmAnagrafica" id="frmAnagrafica" method="post" action=""> <div id="XPTabAnagrafica"> <div dass="ABUTab"> <div id="anagrafìcaBase"> <div id='divABUToolBar' style="text-align:center; widht: 100%; height: Opx; border:0px solid;"x/div> <INPUT name="id_anagrafica" id="id_anagrafìca" class="hide"> <INPUT name="id_utenti" id="id_utenti" class="hide"> <INPUT name="id_tipologia_anagrafìca" id="id_tipologia_anagrafica" class="hide" value=""> <fieldset class="in" title="Dati Generali Persona Fisica"> <legend id=divFisGiur> Dati Generali </legend> <label for="cognome"><strong>* </strong>Cognome: <input id="cognome_rag_soc" name="cognome_rag_soc" class="medium"x/label> <label for="nome"><strong>* </strong>Nome: <input id="nome" name="nome" class="medium"></label><br/xlabel for="radSesso">Maschio <INPUT id=sesso name=sesso type=radio class- 'small" value='M'x/label> <label for="radSesso">Femmina : <INPUT id=sesso name=sesso type=radio class="small" value='F'x/label> <label for="data_nascita">Data di Nascita<input type="text" id=†data_nascita" class="normal" value=""x/label> <label for="partita_iva">Partita IVA<input type="text" id="partita_iva" class="normal" value=""x/label> <label for="codice_fiscale">Codice Fiscale<input type="text"-id="codice_fiscale" class="normal" style="disabled" value=""x/label> _</fieldset> <fieldset class="in" title="Recapiti Telefonici"> <legend>Recapiti Telefonici</legend> <table id="tblTelefoni"> </table> </fieldset> <fìeldset class="in" title- 'lndirizzo Principale"> <legend>lndirizzo Principale</legend> <label for="indirizzo" class="req"xstrong>* </strong>indirizzo: <input id="indirizzo" name="indirizzo" class="medium"x/label> <label for="localita">Località: <input id="localita" name="localita" class="mediumnormal"x/label> <label for="cap">Cap: <input id="cap" name="cap" class="small"x/label> <br/> <label for="id_nazioni">id_nazioni: <SELECT id=id_nazioni name=id_nazioni class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> <label for="id_provincia">id_provincia: <SELECT id=id_provincia name=id_provincia class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> <label for="id_comuni">id_comuni: <SELECT id=id_comunl· name=id_comuni class="mediumnormal"> <OPTION selectedx/OPTION> </SELECT> </label> </fìeldset> </div> </div> <div class="ABUTab"> <div id="divRicerca"> <table id="tblRicerca"> </table> </div> </div> </div> </form> </BODYx/HTML> <IDOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEADxlink rel = "stylesheet" type = "text / css" href = "../ styles / style.css" xscript type = "text / javascript" src = "ABUCore.js" x / scriptxscript type = "text / javascript" language = "javascript"> var oABUCore = new ABUCoreTest.xml "," oABUCore "); function AnagraficalnsUpd () {if (document.getElementByld (" id_anagrafica "). value.trim (). length == 0) {anagraficalnsert ();} else {anagraficalUpdate () ;}} function confìrmDelete () {var bRes = false; if (ìsDefined (<,> registry_id'.toObj (). value, ")) {var agree = confirm (" Do you want to delete the current record? "); if (agree) {bRes = true; }} return bRes; } </ scriptx / HEAD> <BODY> <form name = "frmAnagrafica" id = "frmAnagrafica" method = "post" action = ""> <div id = "XPTabAnagrafica"> <div dass = "ABUTab"> <div id = "anagrafìcaBase"> <div id = 'divABUToolBar' style = "text-align: center; widht: 100%; height: Opx; border: 0px solid;" x / div> <INPUT name = "id_anagrafica" id = "id_anagrafìca" class = "hide"> <INPUT name = "id_user" id = "id_user" class = "hide"> <INPUT name = "id_tipologia_anagrafìca" id = "id_tipologia_anagrafica" class = "hide" value = ""> <fieldset class = "in" title = "General Data Individual"> <legend id = divFisGiur> General Data </legend> <label for = "surname"> <strong> * </strong> Surname : <input id = "surname_rag_soc" name = "surname_rag_soc" class = "medium" x / label> <label for = "name"> <strong> * </strong> Name: <input id = "name" name = " name "class =" medium "> </label> <br/xlabel for="radSex"> Male <INPUT id = gender name = gender type = radio class- 'small" value =' M'x / label> <label for = "radSesso"> Female: <INPUT id = sex name = sex type = radio class = "small" value = 'F'x / label> <label for = "date_birth"> Date of Birth <input type = "text" id = â € date_birth "class =" normal "value =" "x / label> <label for =" VAT number "> VAT number <input type = "text" id = "VAT number" class = "normal" value = "" x / label> <label for = "Codice_fiscale"> Codice Fiscale <input type = "text" -id = "Codice_fiscale" class = "normal" style = "disabled" value = "" x / label> _ </fieldset> <fieldset class = "in" title = "Telephone numbers"> <legend> Telephone numbers </legend> <table id = "tblTelefoni "> </table> </fieldset> <fìeldset class =" in "title- 'Main Address"> <legend> Main Address </legend> <label for = "address" class = "req" xstrong> * </strong> address: <input id = "address" name = "address" class = "medium" x / label> <label for = "localita"> LocalitÃ: <input id = "localita" name = "localita" class = "mediumnormal" x / label> <label for = "cap"> Cap: <input id = "cap" name = "cap" class = "small" x / label> <br/> <label for = "id_nazioni" > id_nation: <SELECT id = id_nation name = id_nation class = "mediumnormal"> <OPTION if lectedx / OPTION> </SELECT> </label> <label for = "id_provincia"> id_provincia: <SELECT id = id_provincia name = id_provincia class = "mediumnormal"> <OPTION selectedx / OPTION> </SELECT> </label> <label for = "id_comuni"> id_comuni: <SELECT id = id_comunl · name = id_comuni class = "mediumnormal"> <OPTION selectedx / OPTION> </SELECT> </label> </ fìeldset> </div> < / div> <div class = "ABUTab"> <div id = "divRicerca"> <table id = "tblRicerca"> </table> </div> </div> </div> </form> </ BODYx / HTML>

Esempio file di configurazione pagina di sopra (Listato 2) <ABUConfiguration> <JSonComunicationArea> <JSonArea tagld="AreaAnagraficaBase" form="frmAnagrafica"> <tag tagld="id_anagrafica" fieldld=""x/tagxtag tagld="id_utenti" fieldld=""x/tag> <tag tagld="id_tipologia_anagrafica" fieldld=""x/tagxtag tagld="cognome_rag_soc" fieldld=""x/tag> <tag tagld="nome" fieldld=""x/tagxtag tagld="sesso" fieldld=""x/tag> <tag tagld="data_nascita" fieldld=""x/tag><tag tagld="codice_fiscale" fieldld=""x/tag> <tag tagld="partita_iva" fieldld=""x/tagxtag tagld="indirizzo" fieldld=""x/tag> <tag tagld="localita" fieldld=""x/tagxtag tagld="cap" fieldld=""x/tag> <tag tagld="id_nazioni" fieldld=""x/tagxtag tagld="id_provincia" fieldld=""x/tag> <tag tagld="id_comuni" fieldld=""x/tagxgrid tagld="tblTelefoni" fieldld="telefoni"x/grid> </JSonArea> <JSonArea tagld="AreaAnagraficaSearch"xgrid tagld="tblRicerca" fieldld="ricerca"x/gridx/JSonArea> </JSonComunicationArea> <onLoad> <tag tagld="cognome_rag_soc" fieldld=""x/tagxtag tagld="nome" fieldld=<,,>"x/tagxtag ~tagld="sesso" fieldld=<,>'"x/tagxtag tagld="sesso" fieldld=""x/tag> <tag tagld="data_nascita" fieldld=""x/tagxtag tagld="partita_iva" fieldld=""x/tag> <tag tagld="codice_fiscale" fieldld=""x/tagxtag tagld="indirizzo" fieldld=""x/tag> <tag tagìd="localita" fieldld=""x/tagxtag tagld="{cap" fieldld=""x/tag> <tag tagld="id_nazioni" fieldld=""-onchange="if (this.selectedlndex!=-1) {changeNazione(this.options[this.selectedlndex].value)}" inizialize="112"x/tagxtag tagld="id_provincia" fieldld="" onchange="if (this.selectedlndex!=-l) {changeProvincia(this.options[this.selectedlndex].value)}" inizialize="58"x/tag> <tag tagld="id_comuni" fieldld=""x/tag> <tabs tagld="XPTabAnagrafica" varObjName="tabAnagrafica" width="790" height="550" activetab="0"> <field tagld="dettaglio" objHtmlld="" title="Dettaglio" canclose="false"x/field> <field tagld="ricerca" objHtmlld="" title="Ricerca" canclose="false"x/field> </tabsxgrid tagld="tblTelefoni" fieldld="" varObjName="grdTelefoni" objHtmlld="" width="765" height="100"; editable="true" created="true" deleted="true" paging="false"> <field tagld="id_telefoni" fieldld="" visible="false" sort=""x/field> <field tagld=†descrizione" fieldld="" visible="true" sort="S" mask="A(25)" leaveMask- 'false" req="true"x/field> <field tagld- 'telefono" visible="true" mask="(+99)999/999999" leaveMask="false" req="true"x/field> </grid> <grid tagld="tblRicerca" fieldld="" varObjName="grdTelefoni" tableld="tblRicerca" width="765" 'height="550"> <field tagld="id_anagrafica" fieldld="" objHtmlld="" visible="false" sort=""x/field> <field tagld="soggetto" fieldld="" objHtmlld="" visible="true" sort="S" format=""label style='cursor:pointer;color:#0000FF;' onclick=<,>anagraficaRead(%id_anagrafica%)<,>"%soggetto%"/label""x/field> <field tagld="indirizzo" fieldld="" objHtmlld="" visible="true" sort="S"x/field> <field tagld="recapito" fieldld="" objHtmlld="" visible="true" sort=""x/field> </gridxtoolbar tagld="divABUToolBar" varObjName="toolBar" left="240" top="0"> <field_ tagld="butNuovo" image="nuovo.ico" hint=" Nuovo" event- oABUCore.clearJSonArea("AreaAnagraficaBase");' enabled="true" enabledMask="lllll"x/field> <field tagld="butCerca" ìmage="cerca.ico" hint="Cerca" event="anagraficaSearch" enabled="true" enabledMask="00100"x/field> <field tagld="butElimina" -- image="Elimina.ico" hint="Elimina" event="anagraficaDelete" enabled="true"-- enabledMask="00010"></field> <field tagld="butArmulla" image- 'Annulla.ico" hint="Annulla" eventi"" enabled="true" enabledMask="llill"x/field> </toolbar> </onLoad> <Actions> <action tagld="anagrafjcalnsert" url="Motori/anagraficalns.php" ctrlValidation="AreaAnagraficaBase" ' refreshWhenDone="" onAjaxResponse=""-onAfterAction="anagraficalnsUpd_onAfterAction()"> <send name="frmAnagrafica" value="AreaAnagraficaBase" x/send> </action> <action,tagld="anagraficaUpdate" url="Motori/anagraficaUpd.php" ctrlValidation="AreaAnagraficaBase" refreshWhenDone="" onAjaxResponse="" onAfterAction="anagraficalnsUpd_onAfterAction()"> <send name="frmAnagrafica" value="AreaAnagraficaBase" x/send> </aetion> <action tagld="changeNazione(id_nazioni)" ctrlValidation="id_nazioni=((isDefined(id_nazioni,<,,>))\x26\x26(id_nazioni>=0)?id_nazioni:-l)" onBeforeAction="'id_provincia'.toObj().innerHTML=";<,>id_comuni<,>.toObj().innerHTML=";" url="Motori/getComuni.php" _ refreshWhenDone="id_provincia" resultTransform="" onAjaxResponse="result=result.split('\n');" onAfterAction=""> <send name="id_nazioni" value="id_nazioni" x/send> </action> </Actions> <UserlnterfaceActionxaction tagld="radFisGiur"> <when ctrlValidation="F"> <tag tagld="Dt_Gen_PF" visible="true" v="l"x/tag> <tag tagld="Dt_Gen_PG" visible="false" v="2"x/tag> </when> <when ctrlValidation="G"> <tag tagld="Dt_Gen_PF" visible="false" v="3"x/tag> <tag tagld="Dt_Gen_PG" visible="true" v="4"x/tag> </when> </action> </UserlnterfaceActionx/ABUConfiguration> Example configuration file above page (Listing 2) <ABUConfiguration> <JSonComunicationArea> <JSonArea tagld = "AreaAnagraficaBase" form = "frmAnagrafica"> <tag tagld = "id_anagrafica" fieldld = "" x / tagxtag tagld = "user_id" fieldld = "" x / tag> <tag tagld = "id_type_anagrafica" fieldld = "" x / tagxtag tagld = "surname_rag_soc" fieldld = "" x / tag> <tag tagld = "name" fieldld = "" x / tagxtag tagld = "sex" fieldld = "" x / tag> <tag tagld = "date_birth" fieldld = "" x / tag> <tag tagld = "code_fiscale" fieldld = "" x / tag> <tag tagld = "batch" fieldld = "" x / tagxtag tagld = "address" fieldld = "" x / tag> <tag tagld = "location" fieldld = "" x / tagxtag tagld = "cap" fieldld = "" x / tag> <tag tagld = " id_nazioni "fieldld =" "x / tagxtag tagld =" id_provincia "fieldld =" "x / tag> <tag tagld =" id_comuni "fieldld =" "x / tagxgrid tagld =" tblTelefoni "fieldld =" telephones "x / grid> </JSonArea> <JSonArea tagld = "AreaAnagraficaSearch" xgrid tagld = "tblRicerca" fieldld = "search" x / gridx / JSonArea> </JSonComunicationArea> <onLoad> <tag tagld = "surname_rag_soc" fieldld = " "x / tagxtag tagld =" name "fieldld = <,,>" x / tagxtag ~ tagld = "sex" fieldld = <,> '"x / tagxtag tagld =" sex "fieldld =" "x / tag> <tag tagld = "birth_date" fieldld = "" x / tagxtag tagld = "game_iva" fieldld = "" x / tag> <tag tagld = "code_fiscal" fieldld = "" x / tagxtag tagld = "address" fieldld = "" x / tag> <tag tagìd = "localita" fieldld = "" x / tagxtag tagld = "{cap" fieldld = "" x / tag> <tag tagld = "id_nation" fieldld = "" - onchange = "if (this .selectedlndex! = - 1) {changeNazione (this.options [this.selectedlndex] .value)} "initialize =" 112 "x / tagxtag tagld =" id_provincia "fieldld =" "onchange =" if (this.selectedlndex! = -l) {changeProvincia (this.options [this.selectedlndex] .value)} "initialize =" 58 "x / tag> <tag tagld =" id_comuni "fieldld =" "x / tag> <tabs tagld =" XPTabAnagrafica " varObjName = "tabAnagrafica" width = "790" height = "550" activetab = "0"> <field tagld = "detail" objHtmlld = "" title = "Detail" canclose = "false" x / field> <field tagld = "search" objHtmlld = "" title = "Search" canclose = "false" x / field> </ tabsxgrid tagld = "tblPhone" fieldld = "" varObjName = "grdTelefoni" objHtmlld = "" width = "765" height = "100"; editable = "true" created = "true" deleted = "true" paging = "false"> <field tagld = "phone_id" fieldld = "" visible = "false" sort = "" x / field> <field tagld = ⠀ description "fieldld =" "visible =" true "sort =" S "mask =" A (25) "leaveMask- 'false" req = "true" x / field> <field tagld-' phone "visible =" true "mask =" (+ 99) 999/999999 "leaveMask =" false "req =" true "x / field> </grid> <grid tagld =" tblRicerca "fieldld =" "varObjName =" grdTelefoni "tableld =" tblSearch "width =" 765 "'height =" 550 "> <field tagld =" identity_id "fieldld =" "objHtmlld =" "visible =" false "sort =" "x / field> <field tagld =" subject "fieldld = "" objHtmlld = "" visible = "true" sort = "S" format = "" label style = 'cursor: pointer; color: # 0000FF;' onclick = <,> anagraficaRead (% id_anagrafica%) <,> "% subject%" / label "" x / field> <field tagld = "address" fieldld = "" objHtmlld = "" visible = "true" sort = " S "x / field> <field tagld =" delivery "fieldld =" "objHtmlld =" "visible =" true "sort =" "x / field> </ gridxtoolbar tagld =" divABUToolBar "varObjName =" toolBar "left =" 240 "top =" 0 "> <field_ tagld =" butNuovo "image =" new.ico "hint =" New "event- oABUCore.clearJSonArea (" AreaAnagraficaBase "); ' enabled = "true" enabledMask = "lllll" x / field> <field tagld = "butSearch" ìmage = "search.ico" hint = "Search" event = "anagraficaSearch" enabled = "true" enabledMask = "00100" x / field> <field tagld = "butElimina" - image = "Delete.ico" hint = "Delete" event = "anagraficaDelete" enabled = "true" - enabledMask = "00010"> </field> <field tagld = "butArmulla" image- 'Cancel.ico "hint =" Cancel "events" "enabled =" true "enabledMask =" llill "x / field> </toolbar> </onLoad> <Actions> <action tagld =" anagrafjcalnsert "url =" Motori / anagraficalns.php "ctrlValidation =" AreaAnagraficaBase "'refreshWhenDone =" "onAjaxResponse =" "- onAfterAction =" anagraficalnsUpd_onAfterAction () "> <send name =" frmAnagrafica "value =" x AreaAnagraficaB / action> <action, tagld = "anagraficaUpdate" url = "Motori / anagraficaUpd.php" ctrlValidation = "AreaAnagraficaBase" refreshWhenDone = "" onAjaxResponse = "" onAfterAction = "anagraficalnsUpd_onAfterAction value =" name frank = "sendfica name =" "AreaAnagraficaBase" x / send> </aetion> <action tagld = "changeNazione (id_n actions) "ctrlValidation =" id_nation = ((isDefined (id_nation, <,,>)) \ x26 \ x26 (id_nation> = 0)? id_nation: -l) "onBeforeAction =" 'id_provincia'.toObj (). innerHTML = "; <,> common_id <,>. toObj (). innerHTML ="; " url = "Motori / getComuni.php" _ refreshWhenDone = "id_provincia" resultTransform = "" onAjaxResponse = "result = result.split ('\ n');" onAfterAction = ""> <send name = "id_nazioni" value = "id_nazioni" x / send> </action> </Actions> <UserlnterfaceActionxaction tagld = "radFisGiur"> <when ctrlValidation = "F"> <tag tagld = " Dt_Gen_PF "visible =" true "v =" l "x / tag> <tag tagld =" Dt_Gen_PG "visible =" false "v =" 2 "x / tag> </when> <when ctrlValidation =" G "> < tag tagld = "Dt_Gen_PF" visible = "false" v = "3" x / tag> <tag tagld = "Dt_Gen_PG" visible = "true" v = "4" x / tag> </when> </action> < / UserlnterfaceActionx / ABUConfiguration>

Esempio script pagina di menu (Listato 3) Menu Page Script Example (Listing 3)

ciDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"xHTMLxHEADxscript type="text/javascript" src="../javascript/ABUCore.js"x/scriptxscript type="text/javascript" language="javascript"> var oABUCore = new ABUCore("index.xml", "oABUCore"); oABUCore.path = '../javascript/';</scriptx/HEADxBODYxDIV id=pageContentx/DIVx/BODYx/HTML> ciDOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 // EN" "http://www.w3.org/TR/html4/strict.dtd"xHTMLxHEADxscript type =" text / javascript "src =" ../ javascript / ABUCore.js "x / scriptxscript type =" text / javascript "language =" javascript "> var oABUCore = new ABUCore (" index.xml "," oABUCore "); oABUCore.path = '../javascript/';</scriptx/HEADxBODYxDIV id = pageContentx / DIVx / BODYx / HTML>

Esempio script configurazione pagina di menu (Listato 4) Menu Page Configuration Script Example (Listing 4)

<?xml version="1.0" encoding="ISO-8859-l"?xABUConfiguration> <onLoad> <window tagld="wAnagBanca" varObjName="wAnagBanca" title="Anagrafìca Istituti di Credito", ...x/window> <window tagld="wAnagMutuatari" varObjName="wAnagMutuatari" title="Anagrafica ' Mutuatari" x/window> <window tagld="wAnagClienti"-varObjName="wAnagClienti" title="Anagrafica Clienti" ...x/window> <window tagld="wAnaglmmobili" varObjName="wAnaglmmobili" title- 'Anagrafica Immobili" ...x/window> <startMenu tagld="startMenu" varObjName="startMenu" container='"' ...> <field tagld="ml0" idMenu="10" idParentMenu="0" caption="Anagrafiche" image- 'globe.ico" ...x/field> <field tagld="ml0" idMenu="20" idPar.entMenu="10" caption="Clienti" image="handl.ico" ...x/field> <field tagld="ml0" idMenu="21" idParentMenu="10" caption="lstituti di credito" ...x/field> <field tagld="ml0" idMenu="22" idParentMenu="10" caption="Mutuatari" ...x/field> <field tagld="mlO" idMenu="23" idParentMenu="10" caption="lmmobili" ...x/field> </startMenu> <dockMenu tagld="dockMenu" varObjName="dockMenu" container="" position="center" ...x/dockMenu> </onLoadx/ABUConfìguration> — <? xml version = "1.0" encoding = "ISO-8859-l"? xABUConfiguration> <onLoad> <window tagld = "wAnagBanca" varObjName = "wAnagBanca" title = "Anagrafìca Credit Institutions", ... x / window> <window tagld = "wAnagMutuatari" varObjName = "wAnagMutuatari" title = "Borrowers' registry" x / window> <window tagld = "wAnagClienti" -varObjName = "wAnagClienti" title = "Customer registry" ... x / window> <window tagld = "wAnaglmmobili" varObjName = "wAnaglmmobili" title- 'Real Estate Registry "... x / window> <startMenu tagld =" startMenu "varObjName =" startMenu "container ='" '...> <field tagld = "ml0" idMenu = "10" idParentMenu = "0" caption = "Personal data" image- 'globe.ico "... x / field> <field tagld =" ml0 "idMenu =" 20 "idPar.entMenu = "10" caption = "Customers" image = "handl.ico" ... x / field> <field tagld = "ml0" idMenu = "21" idParentMenu = "10" caption = "Lenders" ... x / field> <field tagld = "ml0" idMenu = "22" idParentMenu = "10" caption = "Borrowers" ... x / field> <field tagld = "mlO" idMenu = "23" idParentMenu = "10" caption = "furniture" ... x / field> </ startMe nu> <dockMenu tagld = "dockMenu" varObjName = "dockMenu" container = "" position = "center" ... x / dockMenu> </ onLoadx / ABUConfìguration> ⠀ "

Esempio script lato server (Listato 5) Server-side script example (Listing 5)

<? <?

if ( !isset($_POST["id_anagrafìca"])) { return false; } if (! isset ($ _ POST ["id_anagrafìca"])) {return false; }

require_once ('includeAll.php'); require_once ('includeAll.php');

require_once 'openConnection.php'; require_once 'openConnection.php';

$Result = $ Result =

$idAnagrafica = $_POST["id_anagrafica"]; $ idAnagrafica = $ _POST ["id_anagrafica"];

$json = new Services_JSON(); $ json = new Services_JSON ();

$arr_rsMututatari = cABUADO::ReadLine(Mutuatari::GetFromlD($idAnagrafica), MYSQL_ASSOC); $ arr_rsMututatari = cABUADO :: ReadLine (Borrowers :: GetFromlD ($ idAnagrafica), MYSQL_ASSOC);

Sjson->addFields($arr_rsMututatari); Sjson-> addFields ($ arr_rsMutatari);

$arr_rsAnagBaseMututatari = cABUADO::ReadLine(Anagrafìca::GetFromlD($idAnagrafica), MYSQL_ASSOC); $ arr_rsAnagBaseMututatari = cABUADO :: ReadLine (Anagrafìca :: GetFromlD ($ idAnagrafica), MYSQL_ASSOC);

Sjson->addFields($arr_rsAnagBaseMututatari, "anagrafìcaBaseMutuatario"); Sjson-> addFields ($ arr_rsAnagBaseMututatari, "anagrafìcaBaseMutuatario");

$rsTelAnagBaseMututatari = cABUADO::RecordsetToArray(Anagrafìca::getTelefoni($idAnagrafìca), SResult); $ rsTelAnagBaseMututatari = cABUADO :: RecordsetToArray (Anagrafìca :: getTelefoni ($ idAnagrafìca), SResult);

$json->addSubSectionFields($rsTelAnagBaseMututatari, "telefoni", "anagrafìcaBaseMutuatario"); $ json-> addSubSectionFields ($ rsTelAnagBaseMututatari, "phones", "anagrafìcaBaseMutuatario");

$rsConiuge = cABUADO::ReadLine(Mutuatari::GetConiugeFromlDMutuatario($idAnagrafìca), MYSQL_ASSOC); $json->addFields($rsConiuge, "anagraficaConiugeMutuatario"); $ rsConiuge = cABUADO :: ReadLine (Borrowers :: GetConiugeFromlDMutuatario ($ idAnagrafìca), MYSQL_ASSOC); $ json-> addFields ($ rsCospouse, "anagraficaConsugeMutuatario");

$rsTelConiugeMututatari . . = cABUADO::RecordsetToArray(Mutuatari::GetTelefonÌConiugeFromlDMutuatario($idAnagrafìca), $Result); $ rsTelColugeMututatari. . = cABUADO :: RecordsetToArray (Borrowers :: GetTelefonÌConiugeFromlDMutuatario ($ idAnagrafìca), $ Result);

$json->addSubSectionFields($rsTelConiugeMututatari, "telefoni", "anagraficaConiugeMutuatario"); $ json-> addSubSectionFields ($ rsTelConiugeMututatari, "telephones", "anagraficaConiugeMutuatario");

$rsProfessioni = cABUADO::RecordsetToArray(Mutuatari::GetProfessioni($idAnagrafìca), SResult); $ rsProfessioni = cABUADO :: RecordsetToArray (Borrowers :: GetProfessioni ($ idAnagrafìca), SResult);

$json->addFields($rsProfessioni, "professioni");<»>SrsAltriRedditi = cABUADO::RecordsetToArray(Mutuatari::GetAltriRedditi($idAnagrafica), SResult); - -Sjson->addFields($rsAltriRedditi, "altriRedditi"); $ json-> addFields ($ rsProfessioni, "professioni"); <»> SrsAltriRedditi = cABUADO :: RecordsetToArray (Borrowers :: GetAltriRedditi ($ idAnagrafica), SResult); - -Sjson-> addFields ($ rsAltriRedditi, "otherRedits");

SrsSpese = cABUADO::RecordsetToArray(Mutuatari::GetSpese($idAnagrafìca), SResult); SrsSpese = cABUADO :: RecordsetToArray (Borrowers :: GetSpese ($ idAnagrafìca), SResult);

Sjson->addFields($rsSpese, "spese"); Sjson-> addFields ($ rsSpese, "expenses");

SrsAltrilmpegniFinanziari = cABUADO::RecordsetToArray(Mutuatari::GetAltrilmpegniFinanziari($idAnagrafica), SResult); - - — SrsAltrilmpegniFinanziari = cABUADO :: RecordsetToArray (Borrowers :: GetAltrilmpegniFinanziari ($ idAnagrafica), SResult); - - ⠀ "

$json->addFields($rsAltrilmpegniFinanziari, "altrilmpegniFinanziari"); $ json-> addFields ($ rsOtherFinancial Commitments, "otherFinancial Commitments");

SrsSoluzioniAssicurativeComplementari = cABUADO::RecordsetToArray(Mutuatari::GetSoluzioniAssicurativeComplementari($idAnagrafìca), SResult); SrsSoluzioniAssicurativeComplementari = cABUADO :: RecordsetToArray (Borrowers :: GetSoluzioniAssicurativeComplementari ($ idAnagrafìca), SResult);

Sjson->addFields($rsSoluzioniAssicurativeComplementari, "soluzioniAssicurativeComplementari"); Sjson-> addFields ($ rsSoluzioniAssicurativeComplementari, "solutionsAssicurativeComplementari");

SJSonAnag = $json->finalize(); SJSonAnag = $ json-> finalize ();

echo(SJSonAnag); echo (SJSonAnag);

require_once 'closeConnection.php';?> require_once 'closeConnection.php';?>

Esempio classe lato server elaborazione dati (Listato 6) Data Processing Server-Side Class Example (Listing 6)

class ProdottiFinanziari { class Financial Products {

function _SetProdottiFinanziariParam(&$JSon, &$SQL, $Finalize=true){ function _SetProductsFinancialParam (& $ JSon, & $ SQL, $ Finalize = true) {

cABUPrepareSQL::SetSQL($SQL, $Finalize); cABUPrepareSQL::AddParam('@ID_PRODOTTI_FINANZIARI@',$JSon->id _prodotti_finanziari, cABUPrepareSQL::AddParam('@NOME_PRODOTTO@',$JSon->nome_prodotto, cABUPrepareSQL :: SetSQL ($ SQL, $ Finalize); cABUPrepareSQL :: AddParam ('@ ID_FINANCIAL_PRODUCTS @', $ JSon-> id _financial_products, cABUPrepareSQL :: AddParam ('@ PRODUCT_NAME @', $ JSon-> product_name,

cABUPrepareSQL-AddParam('@ID_TIPOLOGIA_MUTUO@',$' JSon-> tipologia_mutuo,.cABUPrepareSQL::AddParam(<,>@ID_INDICIZZAZIONE@',SJSon->id_indicizzazione, -cABUPrepareSQL::AddParam('@TAN@'J$JSon->tan, cABUPrepareSQL-AddParam ('@ MUTUAL_TYPE_ID @', $ 'JSon-> mortgage_type, .cABUPrepareSQL :: AddParam (<,> @ INDEX_ID @', SJSon-> index_id, -cABUPrepareSQL '$ :: AddParam @' -> tan,

cABUPrepareSQL::AddParam('@TAEG@',$JSon->taeg, cABUPrepareSQL::AddParam(<,>@PERC_SPESE_ISTRUTTORIA@',$JSon->perc_spese_istruttorìa, "0"); cABUPrepareSQL::AddParam('@MAX_SPESEJSTRUTTORIA@<,>,$JSon->max_spese_istruttoria, "0"); cABUPrepareSQL::AddParam('@PERC_FINANZIABILE@',$JSon->perc_finanziabile, "0"); cABUPrepareSQL::AddParam{'(S<)>MIN_FINANZIABILE@',SJSon->min_finanziabile, "0"); cABUPrepareSQL::AddParam('@MAX_FINANZIABILE(5<)>',$JSon->max_finanziabile, "0"); cABUPrepareSQL::AddParam('@DURATA_MIN@',$JSon->durata_min, "0"); cABUPrepareSQL::AddParam('@DURATA_MAX@',$JSon->durata_max, "0"); cABUPrepareSQL::AddParam('(S<)>SPESE_PERIZIA@<l>,$JSon->spese_pà ̈rizia, "0"); cABUPrepareSQL::AddParam('@SPESE_INIZIALI(S<)>',$JSon->speseJniziali, "0"); cABUPrepareSQL::AddParam('@PENALE_RIMBORSO_ANTICIPATO@',$JSon->penale_rimborso_anticipato, "0†); cABUPrepareSQL-AddParaml^DESCRIZIONE^ALCOLO^TASSOlffl'^JSon^descrizione^alcoloJasso, cABUPrepareSQL::AddParam('@COPERTURE_ASSICURATIVE@',$JSon->coperture_assicurativeJcABUPrepareSQL::AddParam('@GARANZIE_RICHIESTE@',$JSon->garanzie_richieste, cABUPrepareSQL::AddParam('@ISTANTE_EROGAZIONE@',$JSon->istante_erogazione, cABUPrepareSQL::AddParam('@NOTE@',$JSon->note, cABUPrepareSQL::AddParam('@DATAJNIZIO_VALIDITA@<,>,$JSon->data_inizio_validita, cABUPrepareSQL::AddParam('@DATA_FINE_VALIDITA@',$JSon->data_fine_validita, cABUPrepareSQL :: AddParam ('@ TAEG @', $ JSon-> taeg, cABUPrepareSQL :: AddParam (<,> @ PERC_SPESE_ISTRUTTORIA @ ', $ JSon-> perc_spese_istruttorìa, "0"); cABUPrepareSQL :: AddParam (' @ MAX_SPESEJSTRUTTORIA @ <,>, $ JSon-> max_spese_istruttoria, "0"); cABUPrepareSQL :: AddParam ('@ PERC_FINANZIABILE @', $ JSon-> payable_perc, "0"); cABUPrepareSQL :: AddParam {'(S <> MIN_FINANCIABLE @ ', SJSon-> min_financeable, "0"); cABUPrepareSQL :: AddParam ('@ MAX_FINANCIABLE (5 <)>', $ JSon-> max_financeable, "0"); cABUPrepareSQL :: AddParam ('@ MIN_DURATION @', $ JSon-> min_time, "0"); cABUPrepareSQL :: AddParam ('@ MAX_DURATION @', $ JSon-> max_time, "0"); cABUPrepareSQL :: AddParam ('(S <)> EXPERT_EXPENSES @ <l>, $ JSon- >pà ̈rizia_expenses, "0"); cABUPrepareSQL :: AddParam ('@ START_EXPENSES (S <)>', $ JSon-> initial_expenses, "0"); cABUPrepareSQL :: AddParam ('@ PENALE_RIMBORSO_ANTICIPATO @', $ JSon-> penalty_reimborso_anticipato, "0â €); cABUPrepareSQL-AddParaml ^ DESCRIPTION ^ ALCOHOL ^ RATElffl '^ JSon ^ description ^ alcUPoloJERTA $ JSon-> Insurance_RequestsJcABUPrepareSQL :: AddParam ('@ GUARANTEES_RICHIESTE @', $ JSon-> Guarantees_Requests, cABUPrepareSQL :: AddParam ('@ INSTANT_DISPENSION @', $ JSon-> instant_delivery, cABUPrepare ($ AddPrepareSQL JSon-> note, cABUPrepareSQL :: AddParam ('@ DATAJNIZIO_VALIDITA @ <,>, $ JSon-> start_valid_date, cABUPrepareSQL :: AddParam (' @ END_DATE_VALIDITA @ ', $ JSon-> valid_date_fine,

cABUPrepareSQL::AddParam('@DELETED@',@$JSon->deleted, cABUPrepareSQL :: AddParam ('@ DELETED @', @ $ JSon-> deleted,

$SQL = cABUPrepareSQL::Finalize(); } $ SQL = cABUPrepareSQL :: Finalize (); }

function lnsert(&$JSon) { function lnsert (& $ JSon) {

global $ProdottiFinanziarilns, $ObjUser; global $ FinancialProductsilns, $ ObjUser;

$SQL = $ProdottiFinanziarilns; $ SQL = $ FinancialProductsilns;

SetSessionParam($SQL, false); SetSessionParam ($ SQL, false);

ProdottiFinanziari::_SetProdottiFinanziariParam($JSon,$SQL, true); FinancialProducts :: _ SetFinancialProductsParam ($ JSon, $ SQL, true);

return $SQL; } return $ SQL; }

} -Esempio query lato server (Listato 7) } - Server-side query example (Listing 7)

$ProdottiFinanziarilns = "INSERT INTO tb_prodotti_finanziari (id_societa, id_prodotti_finanziari, id_anagrafica, nome_prodotto, id_tipologia_mutuo, idjndicizzazione, tan, taeg, perc_spese_istruttoria, max_speseJstruttoria, perc_finanziabile, min_finanziabile, max_finanziabile, durata_min, durata_max, spese_perizia, spesejniziali, penale_rimborso_anticipato, descrizione_calcolo_tasso, coperture_assicurative, garanziejrichieste, istante_erogazione, note, data_inizio_validita, data_fine_validita) VALUES ('@ID_SOCIETA@', @ID_PRODOTTI_FINANZIARI@, <5>ID_ANAGRAFICA@, '@NOME_PRODOTTO@', @ID_TIPOLOGIA_MUTUO@, @IDJNDICIZZAZIONE@, @TAN@, @TAEG@, @PERC_SPESE_ISTRUTTORIA@, @MAX_SPESE_ISTRUTTORIA@, @PERC_FINANZIABILE@, @MIN_FINANZIABILE@, @MAX_FINANZIABILE@, @DURATA_MIN@, @DURATA_MAX<'>@, @SPESE_PERIZIA<5>, @SPESEJ^INZIALI@^'@PENALE_RIMBORSO_ANTICIPATO@',<,>@DESCRIZIONE_CALCOLO_TASSO@<,>, '@COPERTURE_ASSICURATIVE@', '@GARANZIE_RICHIESTE<5>', '@ISTANTE_EROGAZIONE@', '@ΠΟΤΕ@', STR_TO_DATE('@DATAJNIZIO_VALIDITA@', '%d/%m/%Y'), STR_TO_DATE('@DATA_FINE_VALIDITA@', '%d/%m/%Y'))"; $ProdottiFinanziarilns = "INSERT INTO tb_prodotti_finanziari (id_societa, id_prodotti_finanziari, id_anagrafica, nome_prodotto, id_tipologia_mutuo, idjndicizzazione, tan, taeg, perc_spese_istruttoria, max_speseJstruttoria, perc_finanziabile, min_finanziabile, max_finanziabile, durata_min, durata_max, spese_perizia, spesejniziali, penale_rimborso_anticipato, descrizione_calcolo_tasso, coperture_assicurative, garanziejrichieste, instante_erogazione, notes, validity_start_date, validity_date_date) VALUES ('@ ID_SOCIETA @', @ ID_PRODOTTI_FINANZIARI @, <5> ID_ANAGRAFICA @, '@ NOME_PRODOTTO @', @ ID_TIPOLOGIA_MUTUO_, @DISTIPOLOGIA_MUTUO_ @, @ ID_TIPOLOGIA_MUTUO_, @CUTTANTIPOLOGIA_MUTUO @, @ ID_TIPOLOGY_MUTUO_, @JU @, @ MAX_SPESE_ISTRUTTORIA @, @ PERC_FINANZIABILE @, @ MIN_FINANZIABILE @, @ MAX_FINANZIABILE @, @ DURATA_MIN @, @DURATA_MAX <'> @, @ EXPENSES <5>, @ EXPENSESJ ^ INZIALI @ ^' @ PENALTY @DESCRIPTION_RATE_CALCULATION @ <,>, '@ INSURANCE_COVER @', '@REQUIRED_GARANZIE <5>', '@ INSTANT_DRAWING @', '@ ΠΟΤΠ• @', STR_TO_DATE ('@ DATA JNIZIO_VALIDITA @ ','% d /% m /% Y '), STR_TO_DATE (' @ DATA_FINE_VALIDITA @ ','% d /% m /% Y ')) ";

$SearchProdottiFinanziari4Finanziamenti = "SELECT DISTINCT PF.id_societa, PF.id_prodotti_finanziari, PF.id_anagrafica, PF.nome _prodotto, PF.id_tipologia_mutuo, PF.idJndicizzazione, /*PFA.id_attivita, PFD.id_durata, PFF.id_finalita, PFP.id_periodicita,*/ PF.tan, PF.taeg, PF.perc_spese_istruttoria, PF.max_spese_istruttoria, PF.perc_finanziabile, PF.max_finanziabile, PF.spese_perizia, PF.speseJniziali, PF.penale_rimborso_anticipato, PF.descrizione_calcolo_tasso, PF.coperture_assicurative, PF.garanzie_richieste, PF.istante_erogazione, PF.note, NULLIF(DATE_FORMAT(PF.data_inizio_validita, '%d/%m/%Y'),'00/00/0000') data _inizio_validita, NULLIF(DATE_FORMAT(PF.data_fine_validita, '%d/%m/%Y'),'00/00/0000') data_fìne_validita $ SearchProdottiFinanziari4Finanziamenti = "SELECT DISTINCT PF.id_company, PF.id_financial_products, PF.id_anagrafica, PF.name _product, PF.id_typology_mutual, PF.idJindication, /*PFA.financial_id_id, PF.Financial_id_id, PF. / PF.tan, PF.taeg, PF.perc_spese_istruttoria, PF.max_spese_istruttoria, PF.perc_financabile, PF.max_financabile, PF.expese_expertizia, PF.speseJnitiali, PF.penale_rimborso_anticipato, PF.description_Finance.Furchable .time_delivery, PF.note, NULLIF (DATE_FORMAT (PF.data_begin_validita, '% d /% m /% Y'), '00/00/0000') date_begin_valid, NULLIF (DATE_FORMAT (PF.data_fine_validita, '% d / % m /% Y '),' 00/00/0000 ') validity_date

FROM TBL_PRODOTTI_FINANZIARI AS PF INNER JOIN TBL_PRODOTTI_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA.id_societa) AND (PF.id_prodotti_finanziari = PFA.id_prodotti_finanziari)) TNNER JOIN TBL_PRODOTTI_FINANZIARI_DURATA AS PFD ON ((PF.id_societa = PFD.id_sociéta) AND (PF.id_prodotti_finanziari = PFD.id_prodotti_finanziari)) INNER JOIN TBL_PRODOTTI_FINANZIARI_FINALITA AS PFF ON ((PF.id_societa = PFF.id_societa) AND . (PF.id_prodotti_flnanziari - PFF.id _prodotti_fìnanziar+)) INNER JOIN TBL_PRODOTTI_FINANZIARI_PERIODICITA AS . PfP ON ((PF.id_societa = PFP.id_societa) AND (PF.id_prodotti_finanziari = PFP.id_prodotti_finanziarì)) WHERE PF.id_societa = '@ID_SOCIETA@' FROM TBL_PRODOTTI_FINANZIARI AS PF INNER JOIN TBL_PRODOTTI_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA.id_societa) AND (PF.id_prodotti_finanziari = PFA.id_Prodotti_FINANZIARI_ATTIVITA AS PFA ON ((PF.id_societa = PFA. (PF. PfP ON ((PF.id_societa = PFP.id_societa) AND (PF.id_prodotti_finanziari = PFP.id_prodotti_finanziarì)) WHERE PF.id_societa = '@ ID_SOCIETA @'

/*[AND (PF.max_finanziabile 3⁄4= @IMPORTO_RICHIESTO@) AND (PF.min_finanziabile <= @IMPORTO_RICHIESTO@)]*//*[AND (PF.perc_finanziabile >= @PERC_FINANZIABILE@)]*/ / * [AND (PF.max_financeable 3⁄4 = @ AMOUNT_REQUIRED @) AND (PF.min_financeable <= @ AMOUNT_REQUIRED @)] * // * [AND (PF.perc_financable> = @PERC_FINANZIABILE @)] * /

/*[AND (PFA.id_attivita = @ID_ATTIVITA@)]*//*[AND ((PF.durata_min >= @DURATA_MIN_FINANZIAMENTO@) AND (PF.durata_max <= @DURATA_MAX_FINANZIAMENTO@)) ]*/ /*[AND (PF.id_tipolpgia_mutuo = @ID_TIPOLOGIA_FINANZIAMENTO@)]*//*[AND (PFF.id_finalita = @ID_FINALITA@)]*/ /*[AND (PFP.id jaeriodicita = @ID_PERIODICITA@)]*/"; / * [AND (PFA. (PF.id_tipolpgia_mutuo = @ID_TIPOLOGIA_FINANZIAMENTO @)] * // * [AND (PFF.id_finalita = @ID_FINALITA @)] * / / * [AND (PFP.id jaeriodicita = @ID_PERIODICITA @)] * / ";

Esempio transito dati tra Client e server (Listato 8) Example of data transit between client and server (Listing 8)

{ {

"intestera_mutuo": false, "id_stato_civile": "1", "quota_proprieta": "50", "anni_in_italia": "36", "intestera_mutuo": false, "id_civile_stato": "1", "quota_proprieta": "50", "anni_in_italia": "36",

"AltriRedditi": [ "Other Income": [

{"sts": "new", "datajnizio": "01V01V1995", "reddito": "500", "data_fine": "01V01V2009", "id_tipologia_periodicita": "l'<!>, "descrizione": "Affitto Casa","id_altri_;redditi": {"sts": "new", "datajnizio": "01V01V1995", "income": "500", "end_date": "01V01V2009", "period_type_id": "the <!>," description ":" Rent House "," id_other_; income ":

"Professioni": [ { "Professions": [{

"socio_cariche_societarie_presso": "Sociol","sts": "new","numero_mensilita“: "14","reddito_annuale": "25000", "da_anni": "8", "società": "Theorematica", "id_tipologia_attivita": "2","id_professioni": "undefined", "socio_cariche_societarie_presso": "Sociol", "sts": "new", "monthly_numberâ € œ:" 14 "," annual_income ":" 25000 "," da_anni ":" 8 "," company ":" Theorematica "," id_tipologia_attivita ":" 2 "," id_professioni ":" undefined ",

"forma_giuridica_impresa": "3", "data_ultima_assunz_iscriz_albo": "","partita_iva_societa": "pivaSocl", . "juridical_formation_company": "3", "last_date_assunz_iscriz_albo": "", "company_iva_game": "pivaSocl",.

"id_tipo_contratto": "2", "data_prima_assunz_iscriz_albo": "01\/01\/2000","id_anagrafica": "undefined", "reddito_mensile": "1300", "codice_fiscale_societa": "cfìscsocl", "id_tipologia_professione": "1", "descrizione": "Società di Servizi informatici" "id_contratto_type": "2", "first_date_assunz_iscriz_albo": "01 \ / 01 \ / 2000", "id_anagrafica": "undefined", "monthly_income": "1300", "company_fiscal_code": "cfìscsocl", "professional_type_id ":" 1 "," description ":" IT Services Company "

},{ "socio_cariche_societarie_presso": "Socio2", "sts": "new", "numero_mensilita": "13", }, {"socio_cariche_societarie_presso": "Socio2", "sts": "new", "num_mensilita": "13",

"reddito_annuale": "23000000", "da_anni": "3", "società": "ISIS","id_tipologia_attivita": "2", "id_professioni": "undefined", "forma_giuridica_impresa": "2", "data_ultima_assunz_iscriz_albo": "01VÃ’ÃŒV2000", "partita_iva_societa": "PIVASoc2", "id_tipo_contratto": "3", "data_prima_assunz_iscriz_albo": "01V01V1997", "id_anagrafìca": "undefined", "reddito_mensile": "1700000", "codice_fiscale_società": "CfiscSoc2", "id_tipologia_professione": "1", "descrizione": "Società di Servizi informatici" "annual_income": "23000000", "da_anni": "3", "company": "ISIS", "id_typology_activity": "2", "id_professioni": "undefined", "juridical_formation": "2", "last_date_assunz_iscriz_albo ":" 01VÃ'ÃŒV2000 "," lotto_iva_societa ":" PIVASoc2 "," id_type_contratto ":" 3 "," data_prima_assunz_iscriz_albo ":" 01V01V1997 "," id_anagrafìca ":" undefined "," income_m00ensile "," "Codice_fiscale_societÃ": "CfiscSoc2", "id_tipologia_professione": "1", "description": "IT Services Company"

},{ }, {

"socio_cariche_societarie_presso": "Socio3"T"sts": "new","numero_mensilita†: "12", "socio_cariche_societarie_presso": "Socio3" T "sts": "new", "number_mensilita⠀:" 12 ",

"reddito_annuale": "14000000", "da_annì": "2", "società": "Hermes Multimedia","ìd_tipologia_attivita": "3", "ìd_professioni": "undefmed", "forma_giuridica_impresa": "1", "data_ultima_assunz_iscriz_albo": "01V01V1997", "partita_iva_societa": "PlvaSoc3", "id_tipo_contratto": "1", "data_prima_assunz_iscriz_albo": "01V01V1995", "id_anagrafica": "undefined", "reddito_mensile": "14000", "codice_fìscale_societa": "CFisc3", "id_tipologia_professione": "9", "annual_income": "14000000", "da_annì": "2", "company": "Hermes Multimedia", "ìd_tipologia_attivita": "3", "ìd_professioni": "undefmed", "juridical_formation": "1", "last_date_assunz_iscriz_albo": "01V01V1997", "company_vehicle_game": "PlvaSoc3", "id_contract_type": "1", "first_assunz_date_write_albo": "01V01V1997", "unfinished_date": " "," code_fìscale_societa ":" CFisc3 "," id_typology_profession ":" 9 ",

"descrizione": "Società di Servizi informatici Multimediali" "description": "Multimedia IT Services Company"

1, -"anno_ matrimonio": "2004", "pensioni_rendite": "7", "provenienza": "Ro", "fìgli_a_carico": "2", "id_comuni_res": "4448", "id_comuni_dom": "4422", "occupera_ ": true, "id _provincia_res": "58", "id_provincia_dom": "58", 1, - "marriage_year": "2004", "pensions_rendite": "7", "provenance": "Ro", "fìgli_a_load": "2", "id_comuni_res": "4448", "id_comuni_dom": "4422", "occupera_": true, "id _provincia_res": "58", "id_provincia_dom": "58",

"Spese": [ { "sts": "new","dataJnizio": "01V01V2002", "id_spese": "data_fine": "01V01V2012", "id_tipologia_periodicita": "5", "descrizione": "Assicurazione Auto", "costo": "600" }], "Expenses": [{"sts": "new", "dataJnizio": "01V01V2002", "id_spese": "data_fine": "01V01V2012", "id_tipologia_periodicita": "5", "description": "Auto Insurance" , "cost": "600"}],

"intestatariojmmobile": "Mastinu Rita", "id_nazioni_res": "112", "id_nazioni_dom": "112"/cap_:.res": "00040", "cap_dom": "00183", "intestera_ ": true} "intestatariojmmobile": "Mastinu Rita", "id_nazioni_res": "112", "id_nazioni_dom": "112" / cap _ :. res ":" 00040 "," cap_dom ":" 00183 "," intestera_ ": true}

Claims (16)

RIVENDICAZIONI : 1. Procedimento per la realizzazione di una tecnologia che partendo dall'utilizzo di un browser e senza l'ausilio di componenti aggiuntivi consente la realizzazione di applicativi web dinamici, multigestionali, modulari e persistenti, dotati di interfacce complesse e caratterizzati da una drastica riduzione della quantità di dati e di pagine web scambiati tra un server remoto ed un Client, costituito dai seguenti elementi: • Pagina Web multi-gestionale (scritta o generata in qualunque formato e/o linguaggio, il cui risultato finale sia una pagina HTML) costruita in maniera molto elementare e contenente la definizione di gestioni multiple al suo interno relative ad un completo flusso procedurale complesso; • Componenti dinamici complessi/avanzati/intelligenti; • Tecniche di Data Binding; • Strutture dati complesse con formati JSON, XML o quant'altro; • Configurazione parallela associata alla pagina Web, scritta o generata in qualunque formato che possa essere interpretato da un opportuno Core Client (XML, JSON etc); • Core Client, che interpreta il file di configurazione associato alla pagina web per generare dallo scheletro applicativo, la pagina web dinamica multifunzionale con interfacce complesse; • Tecniche lato Client di post -generazione e post-renderizzazione delle pagina web non solo in fase di inizializzazione, ma sia durante l'interazione con l'utente che a seguito di richieste di un oggetto chiamante (es: durante l'importazione dei dati); • Chiamate AJAX sincrone ed asincrone; • Dialogo con il server per mole di dati eterogenei; • Core Server per il dialogo con le pagine-web multi gestionali e lo smistamento/raggruppamento delle stesse da/verso le relative classi specifiche specializzate; Caratterizzato dal fatto che: • La pagina à ̈ realizzata, in termini di grafica, programmazione e chiamate al server, direttamente in locale sul client tramite il file XML e le tecniche di post-generazione, post-renderizzazione e post-esecuzione da parte del Core Client; • Una volta predisposta all'utilizzo, l'utente opera in piena autonomia e libertà al completamento del processo di input; • Durante detto processo vengono eseguiti diversi controlli di validazione parziali e di congruità (anche tramite chiamate AJAX sincrone/asincrone a servizi o pagine web aggiuntive) sui dati inseriti; • Durante il processo di input e direttamente sul Client stesso, a seguito di azioni utente o di richiesta dati provenienti dall'esterno, possono essere ulteriormente richiamate le tecniche di generazione automatica, per la creazione dinamica di parti di applicativo web mancanti; • Al termine del processo di acquisizione si provvede alla validazione globale {anche tramite chiamate AJAX sincrone/asincrone a servizi o pagine web aggiuntive) ed all'invio al server della totalità dei dati inseriti; Il dialogo avviene sotto forma di mole eterogenea di dati; • Il server allo smistamento, trattamento ed elaborazione della mole eterogenea dei dati; · La pagina à ̈ predisposta a successivi utilizzi mediante 1'inizializzazione in locale sul client degli oggetti sia visibili che non, sia semplici che complessi/avanzati/intelligenti; • La pagina principale à ̈ dotata di un componente che ingloba e conserva le varie pagine web, comportandosi da contenitore (come un piccolo browser es: iframe), che collegato ad azioni di visualizzazione/scomparsa di elementi/componenti/azioni od altro permette di ottenere la realizzazione di Applicativi Web Dinamici con Ricche Interfaccia Grafiche e Persistenza dei Dati e delle Pagine le quali saranno richiamabili dietro richiesta dell'utente; · Le pagine richiamate di volta in volta durante l'utilizzo dell'applicativo web, avranno un unico caricamento per tutto il ciclo di vita dell'intera sessione della pagina web principale, saranno sempre immediatamente disponibili ed operative direttamente sul client, senza alcun passaggio di attivazione dal server; Con il procedimento, secondo il trovato si ottiene: • Una riduzione del peso della pagine web che può arrivare ben oltre 50% delle pagine attuali; • Un ridotto traffico di rete, grazie al dialogo con il server per mole di dati eterogenee, con un rapporto di riduzione dei dati scambiati da 1:60 fino ad oltre 1:200; • Elaborazioni server ridotte al minimo e paragonabili ad un 10% rispetto alle tecniche attuali; • Ridottissimo traffico di rete per la richiesta delle varie porzioni di applicativo che verranno caricate solo una volta per tutto il ciclo di vita dell'intero applicativo web; • Tecniche di realizzazione, sviluppo ed analisi per applicativi web notevolmente ridotti e simili a quelli per la realizzazione di soluzioni desktop o client-server; • E' possibile passare real-time e senza alcuna perdita di informazioni da una porzione di applicativo web ad un'altra, con notevoli vantaggi per 1'utilizzatore finale. CLAIMS: 1. Procedure for the realization of a technology that, starting from the use of a browser and without the aid of additional components, allows the creation of dynamic, multi-management, modular and persistent web applications, equipped with complex interfaces and characterized by a drastic reduction of quantity of data and web pages exchanged between a remote server and a Client, consisting of the following elements: â € ¢ Multi-management Web page (written or generated in any format and / or language, the final result of which is an HTML page) built in a very elementary way and containing the definition of multiple managements within it relating to a complete procedural flow complex; â € ¢ Complex / advanced / intelligent dynamic components; â € ¢ Data Binding Techniques; â € ¢ Complex data structures with JSON, XML or whatever formats; â € ¢ Parallel configuration associated with the Web page, written or generated in any format that can be interpreted by an appropriate Core Client (XML, JSON etc); â € ¢ Core Client, which interprets the configuration file associated with the web page to generate the multifunctional dynamic web page with complex interfaces from the application skeleton; â € ¢ Client-side techniques for post-generation and post-rendering of web pages not only in the initialization phase, but both during the interaction with the user and following requests for a calling object (e.g. during import some data); â € ¢ Synchronous and asynchronous AJAX calls; â € ¢ Dialogue with the server for heterogeneous amounts of data; â € ¢ Core Server for the dialogue with the multi-management web pages and the sorting / grouping of the same from / to the relative specific specialized classes; Characterized by the fact that: â € ¢ The page is created, in terms of graphics, programming and calls to the server, directly locally on the client through the XML file and the post-generation, post-rendering and post-execution techniques by the Core Client; â € ¢ Once prepared for use, the user operates in full autonomy and freedom upon completion of the input process; â € ¢ During this process, various partial validation and congruity checks are performed (also through synchronous / asynchronous AJAX calls to additional services or web pages) on the data entered; â € ¢ During the input process and directly on the Client itself, following user actions or requests for data coming from outside, the automatic generation techniques can be further recalled, for the dynamic creation of missing web application parts; â € ¢ At the end of the acquisition process, global validation is performed (also through synchronous / asynchronous AJAX calls to additional services or web pages) and the entire data entered is sent to the server; The dialogue takes place in the form of a heterogeneous amount of data; â € ¢ The server for sorting, handling and processing the heterogeneous amount of data; · The page is set up for subsequent use by means of local initialization on the client of both visible and invisible objects, both simple and complex / advanced / intelligent; â € ¢ The main page is equipped with a component that incorporates and stores the various web pages, acting as a container (like a small browser eg: iframe), which connected to display / disappearance of elements / components / actions or other it allows to obtain the creation of Dynamic Web Applications with Rich Graphic Interfaces and Persistence of Data and Pages which can be recalled upon request by the user; The pages recalled from time to time during the use of the web application, will have a single loading for the entire life cycle of the entire session of the main web page, will always be immediately available and operational directly on the client, without any passage of activation from the server; With the method, according to the invention, it is possible to obtain: â € ¢ A reduction in the weight of the web pages that can reach well over 50% of current pages; â € ¢ Reduced network traffic, thanks to the dialogue with the server for heterogeneous amounts of data, with a reduction ratio of exchanged data from 1:60 to over 1: 200; â € ¢ Server processing reduced to a minimum and comparable to 10% compared to current techniques; â € ¢ Very low network traffic for the request of the various portions of the application that will be loaded only once for the entire life cycle of the entire web application; â € ¢ Implementation, development and analysis techniques for web applications that are considerably reduced and similar to those for creating desktop or client-server solutions; â € ¢ It is possible to pass real-time and without any loss of information from one portion of the web application to another, with considerable advantages for the end user. 2. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che la Pagina Web Multi Funzionale dovrà essere scritta e disegnata con il principio di contenere più gestioni simultanee al suo interno, relative all'acquisizione di un completo flusso procedurale complesso e che normalmente viene suddiviso in diverse pagine web con gestioni separate; Per la realizzazione di questo occorre eseguire una: · Suddivisione della pagina in aree gestionali/funzionali contraddistinte da un identificativo; All'interno delle stesse verranno inseriti: i . tag elementari contraddistinti da un identificativo e dalla relativa classe di stili; ii. tag elementari contraddistinti da un identificativo che a seguito di dichiarazioni nel file XML avranno caratteristiche di "Oggetti/Componenti Complessi/Avanzati/Intelligenti" ; iii. Aree vuote (identificate con tag contenitori) contraddistinti da un identificativo con funzioni di: 1. Aree per la creazione gli "Oggetti/Componenti Complessi/Avanzati/Intelligenti" ; 2. Aree Logiche Funzionali (con funzioni di aggregazione logica), contenenti quindi gli elementi dei punti i,ii,iii; iv. Aree piene (identificate con tag contenitori) contraddistinte da un identificativo e contenenti gli elementi dei punti i,ii,iii utilizzate da "Oggetti/Componenti Complessi/Avanzati/Intelligenti" ; • Data la modalità editabile di numerosi controlli/oggetti complessi, avanzati, intelligenti à ̈ necessario definire gli oggetti fonti di input (sia elementi che aree piene di elementi) all'esterno dei tag contenitori degli oggetti complessi/avanzati/intelligenti (es: combo precaricate esterne alle griglie); • Potranno essere presenti porzioni di codice: i. client (javascript od altro) necessarie e specifiche per un dato sviluppo o controlli; 11 lato server, per generare immediatamente elementi precaricati (ad esempio combo box sorgenti di dati od altro) onde evitare l'inoltro immediato di chiamate al server per il loro caricamento; • Si dovrà indicare un file di configurazione preferibilmente esterno ed in standard XML (o in altri formati di dato) ad essa associato; • Si dovrà includere l'interprete Core Client (ABUCore). 2. Process according to claim 1, characterized by the fact that the Multi-Functional Web Page must be written and designed with the principle of containing several simultaneous managements within it, relating to the acquisition of a complete complex procedural flow and which is normally divided into several web pages with separate management; To achieve this, it is necessary to perform a: · Subdivision of the page into management / functional areas marked by an identifier; Within the same will be inserted: i. elementary tags distinguished by an identifier and the related class of styles; ii. elementary tags marked with an identifier which, following declarations in the XML file, will have the characteristics of "Complex / Advanced / Intelligent Objects / Components"; iii. Empty areas (identified with container tags) marked by an identifier with the following functions: 1. Areas for creating the "Complex / Advanced / Intelligent Objects / Components"; 2. Functional Logic Areas (with logic aggregation functions), therefore containing the elements of points i, ii, iii; iv. Full areas (identified with container tags) identified by an identifier and containing the elements of points i, ii, iii used by "Objects / Components Complex / Advanced / Intelligent "; â € ¢ Given the editable mode of numerous complex, advanced, intelligent controls / objects, it is necessary to define the input source objects (both elements and areas full of elements) outside the container tags of complex / advanced / intelligent objects (eg : pre-loaded combos external to the grids); â € ¢ Portions of code may be present: i. client (javascript or other) necessary and specific for a given development or controls; 11 on the server side, to immediately generate preloaded elements (for example data source combo boxes or other) in order to avoid the immediate forwarding of calls to the server for their loading; â € ¢ A configuration file, preferably external and in XML standard (or in other data formats) associated with it, must be indicated; â € ¢ You will need to include the Core Client (ABUCore) interpreter. 3. Procedimento secondo la rivendicazione 1 caratterizzato dal fatto che il trovato à ̈ caratterizzato dall 'utilizzo di componenti dinamici avanzati/complessi/intelligenti ·. • si tratta di componenti: i. esistenti, ma con funzionalità limitate; ii. non esistenti normalmente e frutto di programmazione client (javascript) e che possono essere: 1. visuali; 2. non visuali; questi devono essere dotati di alcune caratteristiche comuni configurabili e richiamabili da parte del Core Client; • Conoscere la loro tipologia, ed il loro identificativo; • Essere a conoscenza dell 'identificativo del Core Client per successive interazioni; • Esporre proprietà, metodi,-• Esporre eventi per dare la possibilità di scrivere del codice da eseguire a seguito di azioni utenti sull'oggetto, come ad esempio una conferma dei dati inseriti,-• Esporre il loro stato (normale o editabili); • Esporre il loro cambiamento; • Sapere importare ed esportare i dati secondo i formati stabiliti (data binding client); • Saper eseguire un mappaggio dei dati, ovvero i nomi dei dati da importare/esportare possono essere diversi da quelli da utilizzare (data binding client); • Essere a conoscenza dei cambiamenti avvenuti sui dati a loro assegnati (nuovo/modificato/eliminato) ; • Saper applicare tecniche di validazione; • Funzionalità specifiche caratteristiche di ogni oggetto. 3. Process according to claim 1 characterized in that the invention is characterized by the use of advanced / complex / intelligent dynamic components. â € ¢ these are components: the. existing, but with limited functionality; ii. do not normally exist and are the result of client programming (javascript) and which can be: 1. visuals; 2. not visual; these must have some common features that can be configured and recalled by the Core Client; â € ¢ Know their type, and their identification; â € ¢ Be aware of the Core Client identification for subsequent interactions; â € ¢ Expose properties, methods, -â € ¢ Expose events to give the possibility to write code to be executed following user actions on the object, such as a confirmation of the data entered, -â € ¢ Expose their status (normal or editable); â € ¢ Expose their change; â € ¢ Knowing how to import and export data according to established formats (data binding client); â € ¢ Knowing how to perform a data mapping, ie the names of the data to be imported / exported may be different from those to be used (data binding client); â € ¢ Be aware of the changes that have occurred on the data assigned to them (new / modified / deleted); â € ¢ Knowing how to apply validation techniques; â € ¢ Specific features characteristic of each object. 4. Procedimento secondo la rivendicazione 1 caratterizzato dal fatto che il trovato utilizza una configurazione parallela associata ad ogni pagina web multi-funzionale, scritto o generato in qualunque formato che possa essere interpretato da un opportuno Core Client (XML, JSON etc); detta configurazione contiene al suo interno una struttura divisa in almeno 4 aree logiche: • Aree di colloquio: In questa sezione vengono definite tutte le aree di colloquio che serviranno per comunicare con il server; ogni area ha un suo identificativo e i campi e gli oggetti che vi sono indicati all'interno con il proprio nome o con un alias mappano i rispettivi oggetti presenti sulla pagina; Queste aree rappresentano la mole di dati eterogenea che sarà scambiata con il server; • Aree di inizializzazione: In questa sezione sono definiti: i. i campi: che avranno un comportamento particolare, che può andare da una maschera di input, ad un'inizializzazione di valori, alla definizione di un campo obbligatorio, alla specializzazione di un campo (es: campo data, codice fiscale, partita IVA, etc.), con relativi controlli ampliabili da parte degli utenti; ii. le aree : in cui saranno renderizzati gli oggetti complessi/avanzati/intelligenti sia visuali che non; in questo caso oltre alla specifica definizioni e comportamento dell'oggetto stesso (diversa da oggetto ad oggetto) saranno indicati i campi o le aree in esso contenuti ed i loro comportamenti come specificato nel punto sopra(i); • Azioni: In questa sezione sono definite in maniera schematica tutte le caratteristiche delle chiamate sincrone/asincrone per il dialogo con il server, sono indicate le aree da controllare ed inviare e quelle da aggiornare (tramite riferimenti diretti alle sezioni dell' "Area di Colloquio"), i nomi delle variabili con le quali dette aree viaggiano da e verso il server, e le azioni da intraprendere prima ed al termine della ricezione dati e della chiamata; • Azioni su Interfaccia Utente: In questa sezione sono definite le azioni visuali che scaturiscono a seguito di azioni utente, come ad esempio abilitare, visualizzare, nascondere, etc. determinati campi od aree della sezione a). 4. Process according to claim 1 characterized in that the invention uses a parallel configuration associated with each multi-functional web page, written or generated in any format that can be interpreted by a suitable Core Client (XML, JSON etc); said configuration contains within it a structure divided into at least 4 logical areas: â € ¢ Interview areas: This section defines all the interview areas that will be used to communicate with the server; each area has its own identifier and the fields and objects that are indicated in it with their name or with an alias map the respective objects on the page; These areas represent the heterogeneous amount of data that will be exchanged with the server; â € ¢ Initialization areas: This section defines: the. the fields: which will have a particular behavior, which can range from an input mask, to an initialization of values, to the definition of a mandatory field, to the specialization of a field (eg: date field, tax code, VAT number, etc. .), with related controls that can be expanded by users; ii. the areas: in which both visual and non-visual complex / advanced / intelligent objects will be rendered; in this case, in addition to the specific definitions and behavior of the object itself (different from object to object), the fields or areas contained therein and their behavior as specified in the above point (i) will be indicated; â € ¢ Actions: This section schematically defines all the characteristics of the synchronous / asynchronous calls for dialogue with the server, the areas to be controlled and sent and those to be updated (through direct references to the sections of the "Area of Conversation "), the names of the variables with which said areas travel to and from the server, and the actions to be taken before and at the end of data reception and of the call; â € ¢ Actions on User Interface: This section defines the visual actions that arise as a result of user actions, such as enabling, showing, hiding, etc. certain fields or areas of section a). 5. Procedimento secondo la rivendicazione 1, caratterizzato dall'utilizzo di tecniche dinamiche di post -generazione e post-renderizzazione ; si tratta di generazione automatica di: • Tag html; • Stili e classi di stile; • Codice Client (JavaScript) ; • Chiamate AJAX sincrone/asincrone; • Di tutto ciò che necessiti (validazione, formattazioni, controlli avanzati etc.); per la realizzazione su Client in maniera dinamica di porzioni di pagine con funzionalità di porzioni di applicativo, ovvero con tutte le funzionalità previste,-Questo tecniche vengono applicate direttamente sul Client dal parte del Core Client e possono verificarsi: • al termine del caricamento della pagina, allo scaturire dell'evento onLoad della pagina; • durante l'utilizzo di una pagina, a seguito di azioni utente (attivazione modalità editatile) ; • a seguito di importazione di dati e quindi dietro richiesta degli oggetti avanzati /complessi/intelligenti . 5. Process according to claim 1, characterized by the use of dynamic post-generation and post-rendering techniques; it involves automatic generation of: â € ¢ HTML tags; â € ¢ Styles and style classes; â € ¢ Client Code (JavaScript); â € ¢ Synchronous / asynchronous AJAX calls; â € ¢ Everything you need (validation, formatting, advanced controls etc.); for the dynamic realization on Client of portions of pages with functionalities of portions of application, or with all the expected features, -These techniques are applied directly on the Client by the Core Client and can occur: â € ¢ at the end of the loading of the page, when the onLoad event of the page occurs; â € ¢ while using a page, following user actions (editable mode activation); â € ¢ following data import and therefore upon request of advanced / complex / intelligent objects. 6. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che il Core Client, o ABUcore, à ̈ un analizzatore del file XML che genera tutto il codice necessario alla realizzazione dell'applicativo web; la generazione del codice, verrà eseguita all'interno del browser, direttamente sul client al termine del caricamento della pagina base (postgenerazione) , e verrà eseguito in tempo reale ottenendo un ridisegno completo della stessa (postrenderizzazione della pagina); Il Core Client, che non à ̈ un contenitore applicativo, svolge almeno le seguenti operazioni : a. Caricamento librerie di funzionalità basilari, generiche ed avanzate, comprese estensioni di funzionalità degli oggetti standard e classi per il controllo sui dati (ad es: validazione, maschere, controllo cambiamento aree di dati) ed altro; b. Lettura del file di configurazione associato alla pagina e sua memorizzazione; c. Analisi del file di configurazione ed inclusione automatica di tutte le librerie necessarie per la generazione dell'applicativo web (evitando di caricare librerie che non sono richieste) ed attesa e controllo dell'avvenuto caricamento; d. Lettura della sezione "Area di Inizializzazione" con: i. Generazione del codice di inizializzazione, formattazione e validazione etc. relativo ad oggetti standard, escludendo tutti quelli che sono inclusi all'interno di oggetti ripetitori; ii. Generazione del codice sorgente per i controlli di compilazione dei campi richiesti ed obbligatori relativo ad aree, oggetti e all'intero applicativo secondo modalità particolari: un campo marcato come richiesto appartiene ad un gruppo di campi che sono marcati come tali e che debbono essere tutti compilati da parte dell'utente; quelli obbligatori, se compilato uno debbono essere compilati in gruppo; iii. Generazione del codice sorgente per la creazione di oggetti/componenti complessi, avanzati ed intelligenti, escludendo tutti quelli inclusi all'interno di oggetti ripetitori; iv. per ogni oggetto contenuto in altri oggetti, verrà generato il rispettivo codice come ai punti i.ii.iii.; e. Lettura della sezione "Area di Colloquio" e generazione del codice sorgente per la creazione delle strutture di dialogo da/verso l'esterno (realizzazione della struttura dati complessa che costituirà la mole eterogenea di dati); f. Lettura della sezione "Azioni" e generazione del codice sorgente relativo alle chiamate AJAX sincrone/asincrone, ai dati da inviare e ricevere, alle aree che saranno interessate ad un aggiornamento, oltre che a controlli preventivi sui dati da inviare, trasformando i dati dal formato testo ad un formato oggetto e viceversa: serializzazione e deserializzazione,-g. Lettura della sezione "Area Azioni su Interfaccia Utente" e generazione del relativo codice sorgente; h. Generazione di codice sorgente per gli oggetti di tipo ripetitivo: in maniera preventiva o su richiesta dell'oggetto chiamante(a seguito di azioni utente, di importazione dati etc.), gli oggetti ripetitivi interrogheranno nuovamente il Core Client per procedere alla generazione dei punti sopra c),d),e),f),g). 6. Process according to claim 1, characterized by the fact that the Core Client, or ABUcore, is an XML file analyzer that generates all the code necessary for the creation of the web application; the code generation will be performed within the browser, directly on the client at the end of the loading of the basic page (post-generation), and will be performed in real time, obtaining a complete redesign of the same (post-rendering of the page); The Core Client, which is not an application container, performs at least the following operations: to. Loading basic, generic and advanced functionality libraries, including functionality extensions of standard objects and classes for controlling data (eg: validation, masks, control of data area changes) and more; b. Reading of the configuration file associated with the page and its storage; c. Analysis of the configuration file and automatic inclusion of all the libraries necessary for the generation of the web application (avoiding loading libraries that are not required) and waiting and checking that the upload has been completed; d. Reading of the "Initialization Area" section with: the. Generation of the initialization, formatting and validation code etc. relative to standard objects, excluding all those that are included within repeating objects; ii. Generation of the source code for the compilation checks of the required and mandatory fields relating to areas, objects and the entire application according to particular methods: a field marked as required belongs to a group of fields that are marked as such and must all be filled in by the user; the mandatory ones, if filled in one must be filled in in groups; iii. Generation of source code for the creation of complex, advanced and intelligent objects / components, excluding all those included within repeating objects; iv. for each object contained in other objects, the respective code will be generated as in points i.ii.iii .; And. Reading of the "Interview Area" section and generation of the source code for the creation of the dialogue structures from / to the outside (creation of the complex data structure that will constitute the heterogeneous amount of data); f. Reading of the "Actions" section and generation of the source code relating to synchronous / asynchronous AJAX calls, to the data to be sent and received, to the areas that will be interested in an update, as well as to preventive checks on the data to be sent, transforming the data from the format text to an object format and vice versa: serialization and deserialization, -g. Reading of the "User Interface Actions Area" section and generation of the relative source code; h. Generation of source code for repetitive objects: in a preventive manner or upon request of the calling object (following user actions, data import, etc.), the repetitive objects will query the Core Client again to proceed with the generation of the above points c), d), e), f), g). 7. Procedimento secondo la rivendicazione 4, caratterizzato dal fatto che il Core Client prevede la possibilità di definire semplicemente un'area HTML con un identificativo ed indicare nel file di configurazione la struttura dell'oggetto complesso da crearvi all'interno; nella definizione degli oggetti complessi come ad esempio griglie, repeater, treeview, etc., essendo possibile indicare gli oggetti di input che dovranno essere utilizzati durante le fasi di inserimento/modifica/visualizzazione dei dati, oltre che le rispettive formattazioni, campi obbligatori e regole di validità, inizializzazione ed altro. 7. Process according to claim 4, characterized by the fact that the Core Client provides the possibility of simply defining an HTML area with an identifier and indicating in the configuration file the structure of the complex object to be created inside it; in the definition of complex objects such as grids, repeaters, tree views, etc., it being possible to indicate the input objects that must be used during the data entry / modification / display phases, as well as the respective formatting, mandatory fields and rules validity, initialization and more. 8. Procedimento secondo la rivendicazione 7, caratterizzato dal fatto che prevede la possibilità di inserire non solo oggetti avanzati, ma anche aree che a loro volta devono essere renderizzate con oggetti avanzati, formattazioni, chiamate al server etc., e sempre in maniera dinamica e sul Client. 8. Process according to claim 7, characterized by the fact that it provides for the possibility of inserting not only advanced objects, but also areas which in turn must be rendered with advanced objects, formatting, calls to the server etc., and always in a dynamic and on the Client. 9. Procedimento secondo la rivendicazione 1 caratterizzato dall'uso di chiamate AJAX sincrone/asincrone; Applicando questa tecnologia à ̈ possibile (in maniera totalmente trasparente per l'utente) inoltrare dialoghi con il server, e applicare le tecniche della rivendicazione 5. 9. Process according to claim 1 characterized by the use of synchronous / asynchronous AJAX calls; By applying this technology it is possible (in a totally transparent way for the user) to forward dialogues with the server, and to apply the techniques of claim 5. 10. Procedimento secondo la rivendicazione 1 caratterizzato dal dialogo con il server per mole di dati eterogenei; per mole di dati eterogenea si intende l'unione di un'insieme di informazioni semplici ( "coppie": "valori") il cui risultato siano delle strutture complesse; E' possibile realizzarle: • Tramite le aree dichiarate e definite nella sezione "Aree di Colloquio"; • Tramite l'esportazione delle strutture definite all'interno degli oggetti /componenti avanzati/complessi/intelligenti . 10. Method according to claim 1 characterized by the dialogue with the server for heterogeneous data volumes; by mass of heterogeneous data we mean the union of a set of simple information ("pairs": "values") whose result is complex structures; It is possible to make them: â € ¢ Through the areas declared and defined in the "Interview Areas" section; â € ¢ By exporting the structures defined within the advanced / complex / intelligent objects / components. 11. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che partendo da una pura pagina scritta in HTML banale, che può essere generato anche con un php, asp, .net, java, etc. e da un file di configurazione preferibilmente esterno - scritto in XML collegato al Core, quest'ultimo si occupa dell'analisi e della generazione del codice necessario alla creazione dell'applicativo web. 11. Process according to claim 1, characterized in that starting from a pure page written in trivial HTML, which can also be generated with a php, asp, .net, java, etc. and from a preferably external configuration file - written in XML connected to the Core, the latter takes care of the analysis and generation of the code necessary to create the web application. 12. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che prevede la predisposizione di un Core Server per: • provvedere alla serializzazione/deserializzazione dei dati scambiati, ovvero alla trasformazione dal formato inviato come testo al formato oggetto e viceversa; • provvedere allo smistamento e al raggruppamento della mole di dati eterogenea da e verso le diverse classi specifiche, applicando le azioni impresse sui dati da parte del Client; · provvedere anche alla generazione automatica delle query ed alla loro fusione con i dati per avere azioni su base dati solo a seguito di azioni utente; in alternativa alla generazione delle query essendo anche possibile smistare i dati interfacciandosi ad altri sistemi in base alle varie tecnologie RDBMS. 12. Process according to claim 1, characterized in that it provides for the provision of a Core Server for: â € ¢ provide for the serialization / deserialization of the exchanged data, or the transformation from the format sent as text to the object format and vice versa; â € ¢ arrange for the sorting and grouping of the heterogeneous amount of data to and from the various specific classes, applying the actions impressed on the data by the Client; · Also provide for the automatic generation of queries and their fusion with data to have actions on the data base only following user actions; as an alternative to the generation of queries, it is also possible to sort the data by interfacing with other systems based on the various RDBMS technologies. 13. Procedimento secondo la rivendicazione 12, caratterizzato dal fatto che detto Core Server effettua lo smistamento delle informazioni provenienti dal client, della loro assegnazione a strutture idonee per l'elaborazione da trattare, e del ricompattamento delle strutture provenienti da rinviare al client. 13. Process according to claim 12, characterized by the fact that said Core Server carries out the sorting of the information coming from the client, their assignment to suitable structures for the processing to be handled, and the re-compaction of the structures coming back to the client. 14. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che detto Core Client à ̈ scritto in puro JavaScript e che al caricamento di una pagina web ne analizza il file di configurazione, includendo ed attendendo il caricamento delle sole librerie richieste, generando poi tutto il codice necessario per la renderizzazione degli oggetti complessi, il controllo ed il funzionamento della pagina, oltre che tutte le chiamate sincrone ed asincrone con le relative strutture, trasformando una semplice pagina HTML/XHTML in un Ricco Client Web Dinamico (Rich Dynamic Web Client). 14. Process according to claim 1, characterized by the fact that said Core Client is written in pure JavaScript and that when a web page is loaded it analyzes the configuration file, including and waiting for the loading of only the requested libraries, then generating all the code necessary for the rendering of complex objects, the control and operation of the page, as well as all the synchronous and asynchronous calls with the relative structures, transforming a simple HTML / XHTML page into a Rich Dynamic Web Client. 15. Procedimento secondo la rivendicazione 1, caratterizzato dal fatto che per trasformare una Applicazione Web Dinamica con Ricca Interfaccia Grafica di tipo noto in una Applicazione Web Dinamica a Richiesta Modulare, Persistente e con Ricca Interfaccia Grafica, prevede di dotare la pagina principale di un sito web di un componente che inglobi e conservi le varie pagine web, comportandosi come un piccolo browser, ad esempio un iframe; la persistenza delle porzioni desiderate di applicativo à ̈ ottenuta collegandone la visualizzazione o la scomparsa a qualunque oggetto/azione web della pagina principale. 15. Process according to claim 1, characterized by the fact that in order to transform a Dynamic Web Application with a Rich Graphic Interface of a known type into a Dynamic Web Application with Modular, Persistent Request and with a Rich Graphic Interface, provides for providing the main page of a site web of a component that incorporates and stores the various web pages, behaving like a small browser, for example an iframe; the persistence of the desired portions of the application is obtained by connecting their display or disappearance to any object / web action of the main page. 16. Procedimento secondo la rivendicazione 12, caratterizzato dal fatto che detto Core Server à ̈ molto più semplice del Core Client in quanto à ̈ dotato di alcune classi che si occupano dello smistamento/raggruppamento dei dati, oltre che all'assegnazione di questi alle varie query, che essendo scritte in un formato proprietario e parametrico, consentono la scrittura automatica delle stesse, senza alcun intervento di analisi da parte dell'utente per i dati presenti o mancanti.16. Process according to claim 12, characterized by the fact that said Core Server is much simpler than the Core Client as it is equipped with some classes that deal with the sorting / grouping of data, as well as the assignment of these to the various queries, which being written in a proprietary and parametric format, allow the automatic writing of the same, without any analysis by the user for the data present or missing.
IT000175A 2010-04-13 2010-04-13 MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES ITRM20100175A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT000175A ITRM20100175A1 (en) 2010-04-13 2010-04-13 MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES
PCT/IT2011/000109 WO2011128924A1 (en) 2010-04-13 2011-04-12 Method for the creation of modular and persistent dynamic web applications with complex interfaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000175A ITRM20100175A1 (en) 2010-04-13 2010-04-13 MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES

Publications (1)

Publication Number Publication Date
ITRM20100175A1 true ITRM20100175A1 (en) 2011-10-14

Family

ID=43735282

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000175A ITRM20100175A1 (en) 2010-04-13 2010-04-13 MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES

Country Status (2)

Country Link
IT (1) ITRM20100175A1 (en)
WO (1) WO2011128924A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014116542A1 (en) 2013-01-22 2014-07-31 Tealium Inc. Activation of dormant features in native applications
US9537964B2 (en) 2015-03-11 2017-01-03 Tealium Inc. System and method for separating content site visitor profiles
US8805946B1 (en) 2013-08-30 2014-08-12 Tealium Inc. System and method for combining content site visitor profiles
US11695845B2 (en) 2013-08-30 2023-07-04 Tealium Inc. System and method for separating content site visitor profiles
US20150066587A1 (en) 2013-08-30 2015-03-05 Tealium Inc. Content site visitor processing system
US9081789B2 (en) 2013-10-28 2015-07-14 Tealium Inc. System for prefetching digital tags
US8990298B1 (en) 2013-11-05 2015-03-24 Tealium Inc. Universal visitor identification system
US9288256B2 (en) 2014-04-11 2016-03-15 Ensighten, Inc. URL prefetching

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2098964A1 (en) * 2005-03-03 2009-09-09 Research In Motion Limited System and method for conversion of WEB services' applications into component based applications for mobile devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Also Published As

Publication number Publication date
WO2011128924A1 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
ITRM20100175A1 (en) MODULAR DYNAMIC WEB APPLICATIONS PERSISTENT WITH COMPLEX INTERFACES
CN104484216B (en) Service interface document and on-line testing instrument generation method, device
Rodríguez et al. Semi-formal transformation of secure business processes into analysis class and use case models: An MDA approach
CA2790985C (en) Software application development tool
Meliá et al. The WebSA approach: Applying model driven engineering to web applications
CN102096588A (en) Control-containing page establishing method
Zimmermann et al. Towards an integrated service-oriented reference enterprise architecture
CN102609255A (en) Generation method for Spring IOC (Inversion of Control) configuration file
Engel et al. A Concerted Model-driven and Pattern-based Framework for Developing User Interfaces of Interactive Ubiquitous Applications.
Steen et al. ODP enterprise viewpoint specification
Vuorimaa et al. Leveraging declarative languages in web application development
Durai et al. A novel approach with an extensive case study and experiment for automatic code generation from the XMI schema Of UML models
Moreno et al. Towards interoperable Web engineering methods
Sabraoui et al. A MDA-based model-driven approach to generate GUI for mobile applications
Li et al. Breeze/adl: Graph grammar support for an xml-based software architecture description language
Mikkonen et al. On the role of architectural style in model driven development
Soliev et al. Leveraging Python for Enhanced Excel Functionality: A Practical Exploration
CN103902248A (en) Intelligent WeChat bank system based on natural language automatic scheduler and intelligent scheduling method for computer system through natural language
Kontopoulos et al. Semantically-enhanced authoring of defeasible logic rule bases in the semantic web
Kantner Specification and implementation of a deep ocl dialect
Jardim-Gonçalves et al. Ontology-based framework for enhanced interoperability in networked industrial environments
Elstermann et al. Mapping execution and model semantics for subject-oriented process models
Durán et al. Writing ODP enterprise specifications in maude a case study
Tran Introduction to web sevices with Java
Lamharhar et al. An e-government knowledge model:‘e-customs’ case study