Competence Center

Soluzioni Innovative, all’avanguardia e pensate per migliorare ed rendere efficienti i processi aziendali del tuo Business.
Integrazioni con gestionali aziendali, applicazioni, software, soluzioni Front end e molto altro.
Di seguito troverai informazioni utili, soluzioni innovative e news su SharePoint, Liferay, vTiger e molto altro ancora.

I vantaggi di Umbraco CMS Enterprise

Tempo di lettura: 4 minuti, Autore: Leonardo Marcucci

Umbraco è una piattaforma CMS molto evoluta, che permette di gestire portali e siti web in ambito enterprise.

Rispetto ad altri competitor del settore, offre maggiori stabilità e performance, oltre a presentare delle avanzate capacità di personalizzazione ed adattamento alle esigenze specifiche del progetto da realizzare.

A differenza delle più note piattaforme CMS che sfruttano PHP (basti pensare a Drupal o WordPress), Umbraco è basato su .Net di Microsoft; è quindi possibile utilizzare un framework ben testato e conosciuto tra gli sviluppatori, ricco di funzionalità, corredato da tool ed IDE avanzati (vedi Visual Studio), che facilitano e rendono più veloce la stesura del codice, diminuendo drasticamente il time-to-market.

La possibilità di sviluppare rapidamente plugin o moduli per aumentare le funzioni del CMS e la presenza di un marketplace ufficiale nel quale condividerli (direttamente accessibile nell’interfaccia web di gestione) sono sicuramente alcuni tra i principali fattori di successo della piattaforma.

Inoltre Umbraco è un progetto open source, supportato da una comunità molto attiva e disponibile nei forum, ricco di tutorial e documentazione, che permette di effettuare sia installazioni “tradizionali” su server privati ma che è anche disponibile come SaaS attraverso Umbraco Cloud.

Tutte queste caratteristiche rendono Umbraco un prodotto di punta nel panorama Web CMS mondiale.

Best practices di sviluppo ed Umbraco

Gestione del ciclo di sviluppo

In molte piattaforme CMS è difficile riuscire a lavorare seguendo un approccio rigoroso nel ciclo di sviluppo (si pensi alla classica pipeline di rilascio sviluppo → test → produzione), dal momento che tutte le operazioni fatte dal backend del CMS (l’interfaccia web) vengono salvate direttamente sul database, senza possibilità di essere “versionate” ed applicate durante la promozione ad un altro ambiente

Da questo punto di vista, Umbraco è ottimo.

La piattaforma mette a disposizione il tool a pagamento Umbraco Courier per migrare i contenuti necessari da un ambiente all’altro, installando anche le eventuali dipendenze, direttamente da interfaccia web con un semplice click.

Qualora si stesse cercando una soluzione gratuita, nel marketplace della comunità è possibile trovare degli opportuni plugin (come Conveyor, uMirror o uSync) per tenere traccia su file system delle modifiche effettuate da backend, permettendo il loro versionamento sul repository assieme al codice sorgente.

Questo permette di lavorare con database isolati nei singoli ambienti e poi (in fase di merge delle modifiche o integrazioni) allineare la struttura dati con pochi click, direttamente da interfaccia web.

Alcuni tra questi plugin, ad es. uSync, sono così evoluti che oltre all’import manuale supportano l’installazione automatica in fase di avvio dell’applicazione, semplificando ulteriormente il processo lavorativo.

interfaccia import export umbraco

Esempio di interfaccia di import/export per cambiamenti da backend (uSync).

Si pensi ad esempio alla realizzazione di una sezione news. Lo sviluppatore in ambiente locale lavora con Umbraco, definendo document type e viste. Al momento del commit, il pacchetto di modifiche sarà auto-consistente ed andrà ad installarsi sui vari ambienti (test, produzione) senza bisogno di interventi manuali.

In pratica, ciò che si deve andare ad inserire ambiente per ambiente è solo il contenuto vero e proprio e non le parti di presentazione/modello.

Localizzazione dei contenuti

Un CMS ha tra le sue funzionalità più interessanti ed utilizzate, la possibilità di gestire siti multilingua ed Umbraco non fa eccezione.

L’approccio che la piattaforma propone è molto semplice: creare la struttura del sito per una lingua, replicarla tante volte quante sono le lingue da supportare (o adattare la struttura lingua per lingua qualora sia necessario), definire una rotta base diversa per ogni lingua (ad es. utilizzando il relativo codice a due lettere: ‘it’, ‘en’ e così via) ed infine utilizzare gli oggetti Dictionary per fornire le traduzioni di tutti gli elementi testuali che lo richiedono.

Una volta che l’architettura è stata creata, Umbraco rende estremamente intuitivo fornire/modificare i valori delle traduzioni, infatti è disponibile una sezione apposita nel backend facilmente utilizzabile anche dai non “addetti al settore” (vedi immagine sotto).

dictionary umbraco

Esempio di localizzazione dei contenuti con i Dictionary di Umbraco.

Se si ritiene eccessiva e/o non necessaria la duplicazione dell’albero dei contenuti per progetti di piccole dimensioni o in cui la struttura del sito si mantiene costante tra le diverse lingue, il marketplace offre estensioni molto interessanti, tra le quali spicca sicuramente Vorto, che permette di effettuare traduzioni/offrire contenuti localizzati 1:1 direttamente dal property editor del backend di Umbraco: in pratica, nel momento in cui vengono definite le proprietà di un documento, si possono contestualmente scegliere anche i diversi valori da attribuire in base alle lingue scelte.

Ovviamente è anche possibile utilizzare un approccio ibrido alla localizzazione, preferendo la semplicità di Vorto nella maggior parte delle pagine ma utilizzando la flessibilità del metodo standard dove necessario: fortunatamente Umbraco è così flessibile da permetterlo!

traduzione-vorto

Esempio di traduzione 1:1 per alcune proprietà del modello attraverso Vorto.

Frontend evoluto con AngularJS

AngularJs è un framework client-side molto popolare e potente per la creazione di SPA ed interfacce web evolute, sviluppato da un team interno a Google.

Umbraco si avvale di AngularJs per la parte UI del backend, ma purtroppo non permette di utilizzarlo direttamente nella parte frontend del sito, preferendo un approccio più classico client-server, o comunque demandando allo sviluppatore l’onere di integrarlo.

Per realizzare siti complessi è importante riuscire a sfruttare questa tecnologia anche sulla parte applicativa destinata agli utenti finali.

Dal momento che non esisteva un modulo per questo scopo, abbiamo progettato ed implementato un plugin, disponibile su Umbraco o GitHub, che permette di:

  • gestire le pagine utilizzando il consueto backend CMS, permettendo all’editor (inteso come utente editore) di essere autonomo nell’inserimento di contenuti;
  • definire, a livello di sviluppo, widget o viste parziali autocontenute che svolgono una determinata funzione (es. lista news). Tali elementi sono basati ovviamente su AngularJs;
  • inserire nelle pagine questi widget, facendo in modo che l’engine di AngularJs venga caricato automaticamente all’avvio della pagina, riconoscendo i componenti necessari e permettendo loro di lavorare in maniera sinergica.

Integrare il plugin è semplicissimo: basta accedere al backend di un’installazione Umbraco, navigare nella sezione Developer → Packages, ricercare “Umbraco Angularjs frontend” e premere il pulsante di installazione.

ricerca-plugin

Ricerca del plugin…

installazione-plugin

…ed installazione.

Il pacchetto in fase di installazione modifica la configurazione di Umbraco per permettere l’integrazione con AngularJs.

In particolare:
Crea il document type “Sintra – AngularJs Master”, dal quale dovranno ereditare tutti i document type che utilizzeranno AngularJs; è buona norma tenere questo come il document type root di tutti gli altri, anche considerando il fatto che esiste una proprietà per abilitare/disabilitare selettivamente l’inclusione di AngularJs qualora non servisse in determinate pagine.

Crea il template “AngularJsMaster”, che inietta nella pagina il file Javascript di AngularJs (incluso nel pacchetto del plugin) ed inizializza tutte le view AngularJs utilizzate nella pagina stessa, comprensive di componenti/direttive/servizi (per maggiori informazioni su questi termini vedere il paragrafo successivo e la documentazione di AngularJs).

Per quanto riguarda l’ereditarietà dei template, valgono le stesse considerazioni fatte per il document type nel punto 1.

Crea la macro “Sintra – NgViewMacro”, che permette all’utente finale di inserire attraverso l’editor standard di Umbraco una view AngularJs come contenuto di una pagina. La macro si occupa anche di registrare tutti i componenti/direttive/servizi utilizzate all’interno della view, così che tutto possa essere inizializzato con le API di AngularJs dal template del punto 2.

Dopo aver installato il plugin, sarà cura dello sviluppatore inserire il proprio codice relativo ad AngularJs nella cartella “~/Ng”, suddividendo i diversi file per tipologia nelle relative sottocartelle:

  • Views”: contiene le view principali, considerabili come entry point di una parte del frontend basata su AngularJs. Saranno proprio questi gli elementi a poter essere inseriti in pagina attraverso la macro “Sintra – NgViewMacro”.
  • Services”: contiene i servizi AngularJs, dove è mantenuta la business logic del frontend, riutilizzabili all’interno di molteplici view/componenti/direttive.
  • Components”: contiene componenti AngualrJs, con la relativa parte di logica e di markup, riutilizzabili all’interno delle view o di altri componenti.
  • Directives”: contiene direttive AngualrJs riutilizzabili all’interno delle view o di componenti.
  • Filters”: contiene filtri AngualrJs riutilizzabili all’interno delle view o di componenti.

Una volta che il codice AngularJs è pronto, l’utente potrà inserire autonomamente la macro “Sintra – NgViewMacro” opportunamente configurata dove ritiene più conveniente, fermo restando che il document type target erediti da “Sintra – AngularJs Master”.

A titolo di esempio, immaginando di avere una view “MyView” che al suo interno utilizza il servizio “MyService” ed il componente “MyComponent”, si potrà inserire una macro con i seguenti settaggi:

angularjs-pagina

Esempio di inserimento di un contenuto AngularJs in una pagina Umbraco (1/2).

inserimento-contenuti

Esempio di inserimento di un contenuto AngularJs in una pagina Umbraco (2/2).

La macro registrerà la view ed i relativi sotto-elementi specificati nel contesto della pagina, in fondo alla quale verrà generato del codice Javascript per l’inizializzazione di AngularJs e la registrazione dei suddetti elementi, sfruttando il template “AngularJs”.

Per maggiori dettagli sul plugin, le convenzioni utilizzate, le possibilità di configurazione ed esempi pratici dettagliati, potete fare riferimento al repo GitHub e relativo README.

Happy Umbracoing!

Riferimenti

Progetto su GitHub:
https://github.com/Sintraconsulting/umbraco-angularjs-frontend-plugin
Pagina del plugin nel marketplace:
https://our.umbraco.com/packages/developer-tools/umbraco-angularjs-frontend-plugin/

 

Sei uno sviluppatore e vuoi approfondire ancora di più questo argomento? Sicuramente può interessarti anche l’articolo di Alfonso Falcone

Umbraco vs WordPress: due CMS a confronto

Tempo di lettura: 3 minuti, Autore: Alfonso Falcone

Cos’è un CMS?

Negli ultimi anni un numero sempre crescente di aziende e liberi professionisti decide di utilizzare gli spazi offerti dal web per auto-promuovere la propria attività.

Sotto questo aspetto, sicuramente il fenomeno dei social network ha saputo dare delle risposte rapide e, in alcuni casi, anche molto efficaci.

Tuttavia avere un sito web resta la soluzione migliore per far conoscere la propria attività ed offrire, ad un potenziale pubblico o clientela, uno spazio con informazioni o funzioni esclusive, come ad esempio un e-commerce o un’area riservata con contenuti unici.

Fino a qualche anno fa, gestire in autonomia un sito web e l’inserimento dei contenuti al suo interno sarebbe stata impossibile per chiunque non avesse avuto una confidenza minima con i linguaggi di programmazione.

Dall’inizio degli anni 2000 assistiamo alla comparsa dei CMS (Content Management System), ovvero software che permettono di gestire, inserire e modificare i contenuti di testo, le immagini, i video e i documenti, oppure di modificare i temi grafici all’interno del proprio sito web attraverso schermate front-end intuitive e facili da usare.

Non tutti i CMS sono uguali

La varietà dei CMS che possiamo trovare online è piuttosto ampia e questo potrebbe generare confusione, portandoci a credere che la scelta di questo o quell’altro software non possa avere alcun peso per lo sviluppo futuro della piattaforma.

Deve essere quindi chiaro fin da subito che ogni CMS è un mondo a sé stante e che la loro tipologia può variare in base allo scopo per cui sono sono stati creati.

E’ quindi fondamentale che il cliente conosca le proprie esigenze in maniera accurata, per garantire al futuro team di sviluppo i criteri sui quali ponderare la scelta.

Per avere un’idea di quanto un CMS possa essere diverso da un altro software concorrente, ne metteremo a confronto due fra loro: WordPress e Umbraco.

Il primo, nato nel 2003 come piattaforma di blogging e noto anche agli sviluppatori alle prime armi, si è presentato come uno degli strumenti di lavoro più versatili ed efficaci, guadagnando così in breve tempo la fiducia degli addetti ai lavori, che hanno potuto offrire risultati ottimali alla più svariate tipologie di clienti in tempi brevi.

Il secondo, nato qualche anno prima, non ha goduto della stessa notorietà del suo concorrente, ma ha saputo guadagnarsi il favore di una grandissima fetta di sviluppatori e ad essere scelto per la realizzazione di siti e applicazioni web di aziende importanti come Microsoft, Sony, Wired, Warner Bros e Vogue.

WordPress e Umbraco: due tecnologie a confronto

Umbraco wordpress quale scegliere

Possiamo già da subito intuire come i due strumenti si presentano all’utenza per caratteristiche e scopi completamente differenti.

Dobbiamo creare un blog, un eCommerce, oppure un sito che li contenga entrambi?

Il nostro cliente ha bisogno di un’area riservata?

È fondamentale per uno studio di web design o un qualsiasi sviluppatore, capire quali sono le esigenze del cliente, comprendere quali sono gli strumenti che sappiano valorizzare il contenuto proposto e che gli possono quindi garantire dei risultati ottimali.

La domanda da farci quindi è: come orientarci nella scelta tra i vari CMS?

In questo articolo metteremo a confronto WordPress e Umbraco, due piattaforme molto diverse (PHP vs .net), orientate a consumer diversi.

Perché?

La scelta di queste due piattaforme, molto diverse a livello architetturale, permettono di sviluppare soluzioni comparative e dominandole entrambe riusciamo a coprire in maniere esaustiva le richieste del mercato.

Vediamo quindi come funzionano e in quali casi adottare l’uno o l’altro CMS.

Cos’è Umbraco?

Umbraco è una piattaforma CMS open source, pensata per la pubblicazione di contenuti su siti internet e intranet, principalmente scritto in C#.

La versione standard di Umbraco memorizza i dati su sistemi database relazionali e funziona esclusivamente su server Microsoft IIS con supporto Full Trust; la parte front-end è realizzata in ambiente .NET Framework con tecnologia ASP.NET, della quale sfrutta diverse funzionalità standard (ad esempio le master pages) e supporta Razor e XSLT.

Il punto focale di Umbraco CMS è proprio sui contenuti e grazie alla sua struttura si adatta molto bene nella realizzazione di siti web con contenuti strutturati.

I punti di forza sono la stabilità, la velocità nello sviluppo di funzionalità custom e la sicurezza.

Pro e Contro

Vantaggi

Umbraco è la scelta migliore per chi ha un server di hosting IIS o Azure e vuole creare un sito di grandi dimensioni, con funzionalità complesse, capace di avere un occhio di riguardo per la sicurezza online, come piattaforme di e-commerce collegate direttamente con il gestionale del cliente, siti con elementi interattivi in grafica 3d (ad esempio rendering di location e arredamenti) o con aree riservate per clienti e fornitori.

I vantaggi principali offerti da Umbraco troviamo:

  • ampi margini di customizzazione, che permettono agli sviluppatori e ai web designer di lavorare sul codice HTML del sito direttamente dal CMS;
  • una comunità di sviluppatori che, sostenendo il progetto nel corso degli anni, ha contribuito alla creazione di servizi di terze parti (packages) per garantire agli utenti l’integrazione di servizi web esterni e arricchire il proprio sito con maggiori funzionalità;
  • semplicità di gestione dei contenuti, attraverso un interfaccia semplice ed intuitivo, capace di offrire una visione chiara della struttura del sito anche all’utente finale che vorrà gestire in piena autonomia la creazione di nuove pagine e l’inserimento di testi e immagini.
  • Un sistema di caching che permette agli utenti una navigazione rapida all’interno del sito, anche su pagine non ancora visitate (fattore molto utile in un ottica SEO);
  • I costanti aggiornamenti consentono di avere in proprio possesso un sistema sempre aggiornato in termini di sicurezza e riservatezza dei dati.

Svantaggi

Purtroppo gli svantaggi che propone questo sistema sono diversi, e vanno tenuti fortemente in considerazione nella nostra scelta:

  • La gestione di funzioni complesse richiede l’ausilio di sviluppatori esperti per permettere al sistema di lavorare correttamente. Maggiore sarà la customizzazione, maggiori saranno gli sforzi in termini di manutenzione, comportando dunque una spesa su lungo termine.
  • Umbraco può essere installato solo su server Windows.
  • Alcuni packages non vengono aggiornati dalla community e potrebbero essere inadatti alla versione in uso oppure presentare dei bug.

Cos’è WordPress?

WordPress è una piattaforma CMS nata per il blogging che fa della semplicità d’uso il suo cavallo di battaglia.

Proprio per la facilità con cui si installa e si configura, oltre alla disponibilità di una versione free online, è largamente utilizzato e si è affermato come la soluzione CMS d’eccellenza per siti web di piccole e medie dimensioni.

Attraverso un marketplace molto ben fornito è possibile scaricare plugin che estendono le funzionalità di base e permettono, anche senza conoscenze di programmazione, di realizzare siti web con pochi sforzi.

Pro e Contro

Vantaggi

Dall’altra parte, WordPress si presenta come la soluzione più adatta per le aziende o i professionisti che vogliono concentrare la loro attività sulla condivisione dei contenuti, senza però rinunciare alla possibilità di creare una attività di e-commerce e ad una totale autonomia nella gestione del sito.

Tra i principali punti di forza che hanno permesso il successo di questa piattaforma possiamo trovare:

  • Facile da installare su tutti i server PhP e MySQL;
  • come per Umbraco, esiste una community in grado di fornire a tutti gli utenti un’ampia scelta tra temi grafici e plugin, completamente gratuiti;
  • tra i plugin installabili ne esistono moltissimi dedicati alla SEO. Questo fa sì che WordPress si confermi uno tra i sistemi più SEO-friendly in circolazione;
  • oltre ad essere facile da installare, è anche facile da usare: con WordPress potremo decidere l’aspetto della nostra pagina direttamente dal nostro gestionale, selezionando gli elementi di layout e la loro disposizione;
  • in termini di manutenzione lato codice, non richiede quasi mai competenze avanzate.

Svantaggi

Anche questo CMS, pur essendo il più diffuso a livello mondiale, non è esente da difetti, fra cui:

  • le numerose vulnerabilità sotto l’aspetto della sicurezza, spesso legate all’uso di determinati plugin;
  • limitazioni grafiche sui temi predefiniti che, essendo utilizzabili da tutti gli utenti WordPress, rischiano di risultare “riciclati”, rendendo così anonima l’identità del proprio brand.
  • l’eccesivo uso di plugin, che può comportare rallentamenti nel caricamento delle pagine e, di conseguenza, influire negativamente sull’indicizzazione del sito sui motori di ricerca.
  • le difficoltà nel gestire molte query tra diverse pagine, con conseguente rallentamento dell’intera struttura.

Quindi quale tecnologia scegliere tra Umbraco e WordPress?

Presa coscienza dei punti forti e deboli dei due CMS, abbiamo più chiaro quanto va tenuto in considerazione nella nostra scelta.

  • WordPress si conferma la scelta ideale per tutte le aziende di piccole o medie dimensioni che, presa coscienza della crescita dello shopping online, vogliono aumentare le loro entrate aprendo uno spazio di e-commerce in tempi brevi, oppure per tutte quelle figure professionali e/o attività che vogliono gestire in prima persona altri aspetti del sito web (ad esempio la SEO) attraverso l’uso di specifici plugin ed hanno necessità di proporre il loro contenuto online, principalmente scritto, come un blog o una testata giornalistica.
  • Diversamente, Umbraco offre maggiori possibilità per gli sviluppatori, e soprattutto per i web designer, di creare siti con stili unici, studiati per soddisfare specifiche esigenze di un cliente che, come caratteristiche principali, abbia la volontà di rendere il suo brand unico e riconoscibile, riservare all’utenza funzioni uniche all’interno del proprio sito e che ha la possibilità di sostenere una spesa a lungo termine su un team di sviluppo web che sappia mantenere il sito sempre aggiornato e che garantisca un alto margine di personalizzazione.

API Gateway per Aziende: Every company is a software company

Le aziende leader di oggi si stanno trasformando digitalmente, spostandosi gradualmente verso sistemi e soluzioni tecnologiche basate sui servizi.

La trasformazione è fortemente stimolata dai dispositivi connessi e dalla volontà dei consumatori di vivere esperienze del brand convincenti.

Tutto questo genera un’enorme e sempre crescente quantità di dati.

I servizi, le cosiddette API – Application Programming Interface, fungono da connettore digitale tra applicazioni e sistemi.

Questo consente alle aziende di ottenere il massimo dai dati creando esperienze convincenti per i propri interlocutori (clienti, fornitori, collaboratori).

API e “Pervasive UX”: Come si integrano le API con l’esperienza utente

La consapevolezza del digitale è ormai parte integrante delle scelte strategiche aziendali, ed è necessario disegnare la strategia digitale non sulla tecnologia ma attorno ai comportamenti umani.

Non è più sufficiente, per le agenzie digitali, immaginare e disegnare l’esperienza utente “dentro” allo schermo , ma è bensì opportuno seguire il cliente anche “fuori” dal mondo digitale.

Si parla quindi di esperienza utente “pervasiva” (Pervasive UX) tesa ad abbracciare tutto il ciclo di vita dell’utente, dentro e fuori dallo schermo; e non più solo di “customer eXperience”, ma anche di “employee eXperience”.

>> Ti consiglio, a tal proposito, di guardare il video The Future of Work and Employee Experience di Jacob Morgan Keynote. 

Il perimetro del vecchio “ufficio design” si allarga ed aumenta il proprio impatto come motore di crescita aziendale; il nuovo “web designer” deve essere anche psicologo, sociologo ed avere capacità di analisi dei processi.

Le tecnologie legate all’API economy si inseriscono in questo contesto senza forzare il processo umano, bensì consentendone la massima espressione ed apertura.

API economy: un Nuovo Modello di Business

api gateway

L’esposizione di API da parte delle aziende, verso i fornitori, i partner e la comunità degli sviluppatori, va a creare un modello di business nuovo denominato talvolta “Open API economy”.

I big player, come Facebook, Google, Amazon, etc.. hanno già impostato il loro modello di business, o almeno parte di esso, sulle API e lo standard OpenAPI, può andare ad accelerare questo processo.

Di seguito una semplice ipotesi di modello di business:

  • Accesso a dati e logiche di business fornito attraverso API pubbliche;
  • Gli sviluppatori esterni integrano le funzionalità API nelle loro applicazioni;
  • L’utilizzo delle API viene monetizzato con un modello “pay for use” (es. 0,1€ per ogni invocazione di un servizio)

In questo senso, le Open API diventano un prodotto e vanno a generare nuovi modelli di business intorno ad un ecosistema aziendale formato da fornitori, partner, comunità degli sviluppatori. Ad ognuno di questi interlocutori, possono essere esposti e forniti diversi livelli di accesso e/o funzionalità.
Si va in questo modo a valorizzare, ad esempio nel caso del pay per use, gli asset e le informazioni aziendali.

 

Come creare valore con le API: Alcuni Casi Studio

1. Amazon

Amazon ha iniziato la sua attività alla fine degli anni 90 come store online di libri estendendo poi progressivamente la sua attività a tutti, o quasi, i settori merceologici. Negli ultimi anni ha integrato il proprio modello di business andando a rivendere la propria infrastruttura sotto forma di risorse e servizi (API). E’ nato così il nuovo modello di business AWS – Amazon Web Services.

 

2. TIM Digital Store

Piattaforma Marketplace messa a punto da TIM, per la vendita di prodotti / servizi digitali, ma soprattutto per l’erogazione di servizi (API) sviluppati da terzi e rivenduti attraverso TIM Digital Store. Un esempio di azienda che rivende i propri servizi anche su Tim DS è Atoka.

 

3. Trenitalia

Proprio così! Anche Trenitalia mette a disposizione un set di API Rest attraverso le quali la comunità di sviluppatori può sviluppare delle soluzioni custom integrando i servizi esposti, come ad esempio l’APP “OrarioTreni ed altra APP simili. Da segnalare, l’iniziativa presente a questo link di documentazione delle API.

 

4. Nike+

api-nike+

Con Nike+, una piattaforma digitale “API-powered”, le API hanno cambiato il modello di business di Nike, supportando fitness, app corporate ed integrazione con i partner. Nike+ proietta l’azienda oltre lo spogliatoio, sui polsi, nel portafoglio e dentro una miriade di device portando il brand ed i prodotti dentro alle vite dei clienti.

 

5.TOMTOM SportsCloud

Quando un cliente TOMTOM si registra alla piattaforma, SportsCloud registra tutte le attività di corsa, nuoto, fitness, i dati sono memorizzati ed utilizzati per fornire servizi, incoraggiamenti, pianificazioni di attività ottimali, consigli di alimentazione, etc.. verso i clienti.
La piattaforma incoraggia lo sviluppo di applicazioni di terze parti che integrino e riutilizzino i dati raccolti all’interno delle proprie applicazioni.

 

6. Affirm

affirm-api
Consente di pagare, nel momento in cui si finalizza l’acquisto on-line, attraverso un prestito a 3, 6, o 12 mesi, esattamente come se si stesse pagando con PayPal.
L’applicazione riesce a calcolare i tassi d’interesse istantaneamente basandosi sulla social reputation e lo storico delle transazioni degli utenti, accorciando i tempi burocratici relativi al credit score statunitense (punteggio basato sulla responsabilità finanziaria), che spesso esclude ai Millennials la possibilità di ottenere un prestito o una carta di credito da un istituto finanziario tradizionale.
Affirm è gia “focalizzata” sull’integrazione eCommerce, ha realizzato un apposito plugin per la piattaforma Magento ed ha sviluppato un set di API documentate per permettere l’integrazione da parte di qualsiasi interlocutore.

 

Tutti questi esempi ci aiutano a capire che un set di API ed un relativo “Developer Portal” rappresentano l’elemento abilitante per qualsiasi iniziativa voglia essere portata avanti dal Business.

Costruire un progetto “Open” API: Gli asset informativi aziendali

Le fondamenta di un progetto aziendale “API” sono costituite dagli asset aziendali.

Nella prima fase dell’informatizzazione aziendale, l’unico asset software era il sistema ERP; ad esso, si sono aggiunti nel tempo una lunga serie di altri strumenti che collaborano tramite meccanismi di integrazione tra i quali: CRM, CMS, PIM, DAM, Piattaforme web, Storage di rete, Sistemi documentali, API Gateway.

Concentriamo l’attenzione sulle piattaforme di nuova concezione con particolare attenzione a PIM – Product Information Management, DAM – Digital Asset Management ed API Gateway – piattaforma di gestione ed esposizione delle API.
Attorno ad esse, è necessario introdurre, se non esistente, un sistema di autenticazione e profilazione centrale attraverso il quale fornire accesso ed autorizzazioni ai servizi esposti.

Gli asset aziendali PIM e DAM

PIM – Product Information Management, è un termine che indica i processi e le tecnologie per gestire centralmente le informazioni che descrivono i prodotti dal punto di vista del cliente.

Le soluzioni PIM permettono al marketing ed alle vendite di raggruppare ed organizzare in maniera coerente tutte le informazioni utili e declinarle con rapidità e precisione attraverso differenti canali distributivi: cataloghi stampati, siti internet, e-commerce, ERP.

In questo modo è possibile personalizzare e filtrare in automatico le informazioni relative a gamma di prodotti, prezzi e valute, descrizioni e traduzioni. Per Gestione Informazioni di Prodotto si intende la gestione “media-neutral” di tutte quelle informazioni sui prodotti e sull’azienda indirizzate verso diversi canali di pubblicazione.

Un PIM è sostanzialmente un gestore di dati non strutturati che permette l’aggiunta di attributi in maniera dinamica sull’entità prodotto.

La capacità di gestione di più entità rendono il PIM un DAM – Digital Asset Management.

Di conseguenza tale piattaforma diventa cruciale per la gestione di tutti le rappresentazioni digitali di entità aziendali che possono essere distribuiti tra i vari applicativi come eCommerce, B2B, ERP, Store Locator.

Un ottimo esempio di PIM e DAM è la piattaforma Open Source PIMCORE.

Gli Asset Aziendali API Gateway

L’ esposizione di API, richiede un middleware, denominato API Gateway, di governo delle API esposte con funzioni di:

  • Gateway (esposizione servizi): Autenticazione, Rate limiting, Validazione API, HTTP request logging
  • Analytics: Statistiche di utilizzo, Billing
  • Manager: Dev Portal, API management, Documentation, Partner Mgmt

Esistono moltissime piattaforme open source e/o commerciali, ecco alcuni esempi:

Di seguito uno schema architetturale ripreso dal tutorial di WSO2 :
api-manager-components

 

Considerazioni per un’Iniziativa “Open API” in Azienda

Ci chiediamo a questo punto quali siano i passi per guidare la trasformazione digitale ed introdurre le API in azienda; di seguito alcune considerazioni preliminari:

  • Quali dati o funzionalità applicative è possibile / opportuno esporre ai partner di business e di canale per rendere più facili le integrazioni di business?
  • Come si possono usare le open API per creare un vantaggio competitivo e produrre valore aggiunto per clienti, fornitori, partner?
  • Si dovrebbero modificare gli attuali accordi sottoscritti per l’utilizzo di dati e/o informazioni al fine di convertirli in “micro sottoscrizioni” verso API pubbliche pagate in modalità “pay per use”?
  • Come possono le open API aiutare gli sviluppatori esterni a portare innovazione di prodotto / servizio ed iniziative “fuori dagli schemi” all’interno dell’azienda?

Errori comuni da evitare

Una volta data una risposta alle domande sopra riportate, è importante tenere presente quali sono gli errori comuni da evitare in un progetto che prevede l’esposizione di API:

  • Scarsa identificazione delle API e confusione tra APIs e WebServices
  • Nessun progetto definito
  • Strategia aziendale non chiara
  • Scarso coinvolgimento del business e dei ruoli chiave
  • Scarsa comunicazione aziendale e/o nessuna KPI
  • Trattare il progetto API come un “progetto IT”

La lista precedente evidenzia, a mio parere in tutti i punti, quanto sia importante il coinvolgimento del management in ogni iniziativa di questo genere.

L’errore più comune è quello di pensare che l’IT da solo, possa portare avanti un progetto API e/o più in generale di trasformazione digitale senza il supporto del business e senza che questo non sia coerente con la strategia aziendale.

Dalla nostra esperienza, la difficoltà più grande è rappresentata dal cambio di approccio del management aziendale.

Concludendo ritengo che i top manager sono coloro che, una volta comprese le potenzialità legate all’esposizione delle API, possono facilmente immaginare e progettare nuovi modelli di business attorno ai dati e servizi esposti dalla propria azienda.

 

Fonti:

https://www.roguewave.com/products-services/akana/api-gateway

https://www.affirm.com/platforms/magento/

https://docs.affirm.com/Integrate_Affirm/Direct_API

 

Vuoi approfondire gli aspetti tecnici delle API gateway?

Leggi subito l’articolo di Daniele Fontani, CTO di Sintra Digital Business

 

API gateway: definizione, caratteristiche essenziali e un esempio pratico

Strumento indispensabile per moltissimi sviluppatori, le Application Programming Interface  sono la chiave d’accesso per realizzare architetture scalabili e manutenibili.  È il modo con cui ci  integriamo abitualmente  a applicazioni e piattaforme di vario tipo e con cui permettiamo a  terze parti di espandere le funzionalità dei nostri software.

Per molte aziende le api sono diventate un asset aziendale, con un valore tale da poter essere vendute.

Ad esempio, pensa a Google mappe. Integrare all’interno di un sito web la mappa di Google, e geolocalizzare la tua attività, è semplicissimo proprio grazie alle API, attraverso le quali lo sviluppatore può interagire con il programma.

In questo articolo, cercheremo di capire come valorizzare le nostre API e gestirle in maniera efficiente, utilizzando uno strumento aziendale: l’API Gateway.

La bella notizia è che questi concetti non servono solo ai grandi colossi, ma possono essere impiegati da tutte le realtà con ottimi risultati,  e portare valore nell’information tecnology.

Cos’è l’API gateway?

L’API gateway è lo strumento che ci permette d’intermediare i servizi ( o microservizi) ed esporli in maniera strutturata verso l’esterno.

Non c’è nulla di fantascientifico in un API-gateway: si tratta di applicazioni web molto sofisticate che agiscono da proxy rispetto alle interrogazioni dei client, monitorando e gestendo il traffico di chiamate.

I migliori prodotti sul mercato sono disponibili in versione Saas (software come servizio) o “on premise”, generalmente opensource.

Attraverso l’API-gateway è possibile esporre a terze parti le proprie API sviluppate internamente (magari solo una parte, o un accorpamento di più set diversi) gestendo in maniera efficiente l’autenticazione e monitorandone l’utilizzo.

Lo sviluppatore che desidera utilizzare le API può accedere ad un’area riservata per consultare la documentazione, oltre che a scaricare i contratti in formato Open API swagger o API blueprint.

Ciascuna chiamata è collegata ad un account e quindi possiamo misurare il numero di chiamate fatte, inserire dei limiti per evitare abusi oppure fatturare in base all’utilizzo.

L’API gateway all’interno dell’ IT

L’API gateway è importante anche nel caso in cui le API servono internamente all’IT. Infatti nella maggior parte delle situazioni, anche all’interno dell’IT abbiamo una moltitudine di servizi chiamati “punto-punto”.

Ogni servizio implementa il proprio sistema di logging e l’interazione è generalmente un sistema punto-punto. Ciascun applicativo interagisce con tutti gli altri, rendendo difficile il monitoraggio e la condivisione di documentazione.

Anche in questo contesto l’API gateway è una soluzione utile perché permette:

  • di centralizzare il punto di ingresso per le chiamate
  • di monitorare le risorse utilizzate
  • di gestire in maniera efficiente i log
  • di applicare politiche di throttling efficienti

Inoltre, in alcuni scenari fuori standard è un utile paracadute.

Ad esempio possiamo:

  • proteggere un servizio che è aperto a tutti
  • includere un sistema di tracing su un servizio che ne è sprovvisto
  • aggiungere campi fissi su alcune chiamate, astraendo l’utilizzo al chiamante

Quali sono le caratteristiche di un API-gateway?

Sistema di monitoring e analisi

L’API gateway deve essere in grado di registrare ogni singola chiamata, evidenziare ciò che è andato in errore.

Inoltre, le attività monitorate devono essere segmentate per applicativo o per insieme di applicativi. Infine, non necessaria, ma utile, la possibilità di evidenziare tramite grafici l’utilizzo delle risorse.

API Developer Portal

Uno degli obiettivi dell’API gateway è permettere ad ogni utilizzatore di essere indipendente ed autonomo nell’utilizzo delle API.

Questo non significa soltanto riuscire ad effettuare le chiamate ma soprattutto mettere a disposizione la documentazione e gli strumenti per capire come funzionano i servizi.

Deve essere possibile caricare i contratti swagger (Open API) o in altro formato ma soprattutto pubblicare la documentazione e le informazioni utili per gli sviluppatori.

DevOps Oriented

A prescindere dai vincoli tecnologici, il sistema scelto deve essere facile da rilasciare (deployment) e da gestire.

Ormai tutti gli applicativi installabili on-premise supportano Docker, il che li rende molto facili da gestire.

Tuttavia, in base alla propria esperienza e all’infrastruttura che si ha in azienda è importante sincerarsi che il prodotto scelto sia compatibile.

Quota e limiti sulle chiamate

Il sistema API gateway deve essere in grado di impostare limiti sulle chiamate (es. max 1000 richieste per ora per API key).

L’ideale sarebbe avere la possibilità di applicare tali limitazioni per user/ API key o per singolo endpoint.

Inoltre, nel caso in cui si voglia monetizzare o si pensi di volerlo fare in futuro, la possibilità di fatturare le chiamate.

Autenticazione

Questo è il punto più delicato di tutto il processo. La criticità nasce dal requisito che tutti i microservizi hanno necessità di conoscere l’identità del chiamante, così come l’API gateway. I micro servizi, infatti, devono sapere chi chiama in modo da profilare i dati di conseguenza (ad esempio per dare a Mario Rossi l’elenco dei suoi clienti).

Anche l’API gateway ha bisogno di sapere che una determinata API key è collegata ad uno specifico utente per conteggiarli le chiamate e far comparire all’interno del suo profilo utente le statistiche di utilizzo. Per questo occorre appoggiarsi ad un protocollo di autenticazione standard (es. jwt o oauh2) ed un identity server dedicato.

Il passo successivo è far svolgere all’identity server il ruolo di identity broker, che consente di propagare i token di accesso verso gli applicativi, tracciando le chiamate in maniera ottimale.

Questa configurazione non è fuori dagli schemi nella maggior parte dei casi, ma è importante che la soluzione scelta sia compatibile con questa configurazione, anche con un effort lato configurazione.

Mock API

In fase di sviluppo è importante avere una piattaforma che permetta di caricare file swagger (interfacce OpenAPI) o API blueprints per costruire servizi mock (un sistema per simulare le API).

Questo non è un requisito per l’utilizzo a regime, ma aiuta ogni qual volta dobbiamo creare applicativi nuovi. Possiamo, ad esempio, creare un utente “dev” su cui carichiamo i servizi fake. Così sblocchiamo il fornitore che può procedere con lo sviluppo dell’applicativo intanto che i nostri sviluppatori interni realizzano i servizi.

Notifiche ed eventi

Avere un sistema perfettamente funzionante ma isolato non è il massimo. Ci piacerebbe avere la possibilità di ricevere notifiche al verificarsi di determinati eventi.

Il modo in cui ci aspettiamo di avere questa feature è tramite webhook. Questo meccanismo, letteralmente uncino del web, ci permette di sviluppare un nostro applicativo e integrarci con i sistemi pre-esistenti.

Ad esempio possiamo inserire una riga di log sul nostro sistema ELK al verificarsi dell’errore o inserire un ticket su CRM quando un utilizzatore sfora la quota per operazioni commerciali.

Trasformazioni

Non è il motivo per cui va adottato un API-gateway, ma poter alterare richieste e risposte dei servizi per adattarle tra i vari formati è un vantaggio da tenere in considerazioni.

In ogni caso non aspettatevi di poter fare cose troppo elaborate, il caso d’uso tipico è inserire parametri costanti, aggiungere header, convertire i payload da json (JavaScript Object Notation) a xml.

Un esempio pratico

Dopo questa veloce panoramica sull’API gateway proviamo a mettere insieme un esempio pratico per valutare un caso d’uso reale.

Gli ingredienti della nostra ricetta:

  • API gateway: tyk
  • Identity server: redhat keycloak
  • App backend: Utilizziamo un cms headless, cockpit! Si tratta di un cms molto semplice che ci permette di mettere in luce diversi casi d’uso.
  • docker: utilizzato per far girare in locale tutti gli applicativi
Architettura Api gateway per l'esposizione di microservizi integrati tramite Oaut2

Architettura Api gateway per l’esposizione di microservizi integrati tramite Oaut2

Installazione e configurazione di tyck

Come API-gateway è stato scelto tyk che, oltre a soddisfare tutti i requisiti di cui abbiamo discusso, è facile da configurare oltre ad essere economico. E’ disponibile nella versione saas e onpremise, coprendo quindi la maggior parte dei casi d’uso che ci interessano.

Per l’installazione ho fatto riferimento al progetto di esempio opensource di tyk integrato dentro il nostro file yaml per Docker compose la dichiarazione delle immagini che compongono il gateway (dashboard, gateway, pump).

Per il setup ho utilizzato uno script bash che crea l’utente amministratore e apporta le configurazioni di base per riuscire ad accedere alla dashboard.

Docker-compose up

Accedendo alla url della dashboard http://localhost:5000 viene richiesta la licenza, che possiamo ottenere gratuitamente per fini non commerciali.

inserimento licenza su api gateway Tyck (gratuito per usi non commerciali)

inserimento licenza su api gateway Tyck (gratuito per usi non commerciali)

Dopo aver installato la chiave è necessario procedere alla configurazione, per evitare di salire a bordo macchina e lanciare gli script ho utilizzato uno script che utilizza le API e semplifica molto questa fase.

Sh setup.sh

Successivamente è possibile accedere con le credenziali scelte tramite script

Login su api-gateway Tyk

Login su api-gateway Tyk

Dashboard dell’api gateway tyk

Installazione e configurazione di keycloak

Per l’installazione di keycloak ho semplicemente utilizzato l’immagine doker rilasciata da redhat.

La configurazione di un client oatuh è banale e può essere effettuata replicando i seguenti passaggi, oppure importando la configurazione presente all’interno del codice sorgente del progetto github.

Keycloak, aggiunta di un nuovo client Oauth2

Keycloak, aggiunta di un nuovo client Oauth2

 

Keycloak, configurazione dei dati di autenticazione

Keycloak, configurazione dei dati di autenticazione

Keycloak, export configurazione del client Oauth2

Keycloak, export configurazione del client Oauth2

Installazione e configurazione di cockpit

Anche per cockpit abbiamo usato un’immagine docker già pronta. L’installazione è molto semplice e con pochi click riusciamo ad aggiungere l’entità “people”.

Cokpit,cms headless: Configurazione entità

Cokpit,cms headless: Configurazione entità

API gateway in azione

Il primo passo da fare è mappare gli endpoint che vogliamo esporre.

In questo esempio gli utenti finali utilizzano le API per effettuare le operazioni CRUD sulle entità presenti sul CMS. Per questo creiamo un API set, dichiarando esplicitamente quali metodi sono esposti.

E’ buona prassi segmentare gli endpoint esposti sulla base dell’applicativo, per riuscire ad individuare dove vanno a finire le richieste.

Mappiamo quindi /cockpit/ sul path complesso che viene utilizzato per le attività CRUD

http://cms:8080/api/collections/listCollections

In questo caso vogliamo semplificare il payload di cockpit che è strutturato in maniera troppo complessa per i nostri fini (il vero payload sta dentro un oggetto “data” che è completamente inutile”).

Configuriamo quindi la trasformazione del body della richiesta utilizzando le funzionalità di tyk:

Tyk, api gateway in azione: mappatura campi

Tyk, api gateway in azione: mappatura campi

Riferimenti

  • Il codice sorgente è disponibile su github.
  • Tyk.io : Api gateway disponibile in saas o premise.
  • Cockpit CMS: Cms Headless in PHP molto facile da installare e configurare.
  • Demo Tyk: demo rilasciata da Tyck per illustrare il funzionamento su docker, utilizzata come punto di partenza per questo progetto.

Hai bisogno di sviluppare un’API gateway per il tuo progetto digitale? Ti serve un supporto?

Event Planner and Scheduling di Sintra è ora App Ufficiale SharePoint!

E’ finalmente disponibile la Nuova App Sharepoint Event Planner and Scheduling interamente creata e sviluppata dal nostro Team Sharepoint. Scopri tute le sue funzionalità!

 

Event Planner and Scheduling Sharepoint AppIl nostro Team di Sviluppatori Specializzati SharePoint ha creato una nuova applicazione, Event Planner and Scheduling, per la programmazione e schedulazione degli eventi, approvata da Microsoft SharePoint ed attualmente presente sull’AppSource Ufficiale di SharePoint. Read more

User experience e mockup: un nuovo e importante progetto segna l’inizio della collaborazione con GE

Da oltre dieci anni contribuiamo al successo dei nostri clienti, realizzando siti internet, piattaforme web based e siti e-commerce di successo: la passione per il nostro lavoro, la professionalità che da sempre ci contraddistingue, così come la formazione continua delle nostre risorse, ci consentono ogni giorno di rispondere al meglio alle esigenze dei nostri clienti e alle nuove sfide poste dal mercato digitale.

Read more

Shinteck e Sintra Consulting presentano iOrderManager, la nuova app che fa muovere il business!

Da telefoni e dispositivi mobili particolarmente diffusi in ambito consumer, smartphone e tablet stanno conquistando anche il segmento business, rappresentando sempre più irrinunciabili strumenti di lavoro.
Più pratici dei moderni PC portatili, ma spesso altrettanto funzionali, estremamente efficaci per la fruizione di contenuti multimediali e per la navigazione in rete, i tablet dispongono di molte applicazioni che consentono alle persone di svolgere numerose attività lavorative anche in mobilità: dall’accesso a dati aziendali alla compilazione di documenti, dalla consultazione di cataloghi prodotti alla raccolta ed alla gestione degli ordini. Read more

Quando il business si fa “mobile”: il caso di Aboca Manager

Sebbene il mercato ICT tradizionale (PC e notebook) in Italia non goda di buona salute e cominci a conoscere qualche contrazione, il segmento “mobile” sembra non temere crisi e, con centinaia di milioni di dispostivi venduti, segna una crescita che si aggira attorno al 78,5% per i tablet ed al 30% per gli smartphone.

Diventati un vero ed irrinunciabile must have nel mondo consumer, tablet e smartphone stanno infatti progressivamente conquistando anche il mondo business: sono sempre di più  le imprese che scelgono di integrare questi nuovi dispositivi all’interno del loro tessuto aziendale trasformandoli in strumenti di lavoro, in molti casi migliori e più pratici da utilizzare dello stesso PC. Read more

Sintra Consulting al Top Management Forum 2011

Sintra Consulting ha sponsorizzato l’evento dell’anno Top Management Forum 2011. La manifestazione rappresenta un importante punto di riferimento del mondo del management.

L’evento, organizzato da Knowità, rappresenta un’occasione di incontro e confronto su scenari, strategie e strumenti, due giornate di approfondimento e di aggiornamento sulle ultime tendenze della cultura d’impresa e i suoi più recenti sviluppi, un appuntamento imperdibile per discutere sul futuro dell’Italia e dell’Europa. Read more