Sharepoint ECMS

SharePoint ECMS è concepito per essere una soluzione universale al maggior numero di problemi possibili; di conseguenza è molti strumenti in uno:

 

  • Un luogo dove condividere in modo efficiente documenti aziendali
  • Un CMS, per la gestione profilata e regolamentata dei contenuti
  • Un sistema per la gestione dei flussi informativi e documentali (workflow)
  • Un database facilissimo da gestire
  • Un prodotto specificamente pensato per le aziende
  • Una piattaforma collaborativa
  • Una potente piattaforma per lo sviluppo di web applications
  • Uno strumento versatile ed affidabile

 

Rispetto ai suoi antagonisti ha un vantaggio competitivo non indifferente dovuto alla totale integrazione con gli strumenti Microsoft Office, Active Directory e SQL Server, che spesso si trovano già in azienda. In particolare, il livello di integrazione con Office rende trasparente l’utilizzo del client rispetto al documentale, così che l’utente abbandona completamente il salvataggio dei file in locale, garantendo che nessuna modifica vada persa in seguito a problemi sul proprio pc (guasti, furti, etc.). La gestione di autorizzazioni e sicurezza è basata su active directory per cui per tutti gli utenti che utilizzano Windows come sistema operativo e Internet Explorer come browser il passaggio delle credenziali è automatico e trasparente: basta accedere ad un pc accreditato sul dominio per essere identificati e sottoposti alle policy di gestione dei permessi. In alternativa il sistema può loggarsi in Claim-Based authentication, che sostanzialmente permette di appoggiarsi ad un qualsiasi sistema di autenticazione esterno, che implementa un meccanismo conforme allo standard OAuth2. La parte CMS offre la possibilità di essere gestita tramite interfaccia web ed essere estesa tramite l’implementazione di “WebParts” che lo sviluppatore realizza e distribuisce sulla piattaforma.

Dal punto di vista architetturale Sharepoint rappresenta lo stato dell’arte, in quanto è costruito su un’architettura totalmente orientata ai servizi che permette il controllo completo anche dal di fuori della piattaforma, ma soprattutto astrae il concetto di “applicazione” rendendo trasparente il clustering. Infatti, rispetto alle alternative, nasce da un punto di vista ribaltato:la configurazione in clustering rappresenta lo standard, mente quella “standalone” è un caso particolare dove è presente un solo nodo. L’insieme dei server che compone l’installazione viene detto “Farm” e generalmente è costituito da un server database e almeno un server di frontend. Fatta eccezione per gli ambienti di test, la configurazione minima per la produzione è costituita da un db server e da un web server. I vari compiti sono distribuiti sui server, cosa che normalmente non è possibile fare, in quanto ciascun elemento del cluster serve indifferentemente le chiamate che arrivano. Questa feature permette di costruire le macchine della farm in base ai requisiti delle attività che sono chiamate a svolgere. Ad esempio è possibile inserire un nodo dedicato a convertire i documenti in formato pdf, che richiede elevati sforzi di cpu e che quindi sarà dimensionato adeguatamente, magari risparmiando su altre parti non critiche, come i dischi rigidi. Le funzionalità esposte dalla farm e che possono essere attribuite a ciascun nodo sono dette servizi e spesso tale concetto sottende un servizio Windows vero e proprio. Le farm possono essere collegate fra di loro, al fine di realizzare piattaforme geodelocalizzate, che risultino efficienti e condividano gli stessi dati. All’interno di ogni farm è presente un servizio (che è in carico ad una sola macchina), che si chiama central admin e permette di configurare la farm. A partire da questa è possibile realizzare l’intera gerarchia di entità che costituiscono il sito in sé per sé:

 

  • WebApplication: L’applicazione web che coincide con un sito IIS vero e proprio, ad esempio http://nomesito.com.
  • Site Collection: Rappresenta un contenitore di siti. Per ciascuna site collection è nominato un amministratore, che ha la possibilità di creare siti all’interno e di gestire i permessi degli utenti.
  • WebSite:Il sito web, che può contenere a sua volta altri siti secondari.
  • List/Library: All’interno del sito sono presenti liste o librerie, che sono semplicemente contenitori di Item o Documenti. La distinzione tra le due è che le List possono contenere al proprio interno solo elementi “immateriali”, ovvero qualunque tipo di contenuto costituito solo da dati. All’interno delle Library incece è possibile porre solo documenti; ciascun documento può avere associati un numero indefinito di proprietà (metadati).
  • Item/Document: Il singolo elemento contenuto all’interno della lista o della library. Le pagine che compongono il CMS sono semplicemente elementi di una determinata lista.

 

I permessi degli utenti sono ereditati in cascata all’interno della gerarchia sopra descritta; ad ogni livello possono essere agganciati workflow ed event receiver che permettono di realizzare e modellare la logica di business desiderata.

Per quanto riguarda la modalità di lavoro, si presentano più strade; tutte alla fine adottano sharepoint stesso per modificarlo, poiché l’intera struttura è concepita secondo un modello ad oggetti.

Sintetizzando è possibile operare tramite:

  • Interfaccia Web: è possibile create colonne dati, tipi di contenuto, librerie, comporre pagine web
  • Sharepoint Designer: tramite questa applicazione client è possibile fare le stesse operazioni dell’interfaccia web, ma in più è possibile definire workflow ed esplorare il contenuto del sito come se fosse un normalissimo file system
  • Sharepoint Console: è in realtà la console PowerShell, con precaricati i moduli sharepoint, che permette di automatizzare le operazioni sull’interfaccia e impostare in maniera esplicita tutto quello che non è esposto tramite interfaccia
  • WSP: è possibile inoltre creare dei pacchetti di funzionalità in maniera programmatica, mischiando parti dichiarative (XML in formato CAML) e parti programmatiche.

I PRO di Sharepoint

Si integra con gli strumenti più comuni in un intranet aziendale (Windows, Office, Active Directory)

  • È una piattaforma stabile e affidabile
  • Garantisce la scalabilità praticamente senza limiti, a patto di poter investire sull’hardware
  • È venduto da un’azienda che garantisce supporto e retrocompatibilità
  • User experience pensata e mirata al target a cui si propone
  • Supporto per gli sviluppi e best practice definite dal vendor

 

I CONTRO  di Sharepoint

  • Costi di licenza
  • Costi di installazione derivati (OS, DB server, client, etc..)
  • Strumento impegnativo dal punto di vista sistemistico
  • Presenta una curva di apprendimento lunga
  • Costi di consulenza elevati
  • Difficoltà ad avere un esperto a 360°, necessità di rivolgersi a più figure per i vari aspetti (UI, sistemistica, amministrazione, etc.)

La rivoluzione di office 365

Dalla mia esperienza, comparandolo con altri documentali opensource, Sharepoint usato come documentale e gestore di flussi approvativi è il miglior strumento sul mercato. Il limite principale del suo impiego è sostanzialmente il costo di licenza. La versione in cloud ha rimosso questo vincolo, visto che ha costi davvero irrisori proporzionati ai vantaggi che porta (parliamo di circa 10€ ad utente). La rivolzione è arrivata nella rimodellazione del listino prezzo avvenuta ormai qualche anno fa che ha incluso sharepoint all’interno del pacchettoo Office365 e quindi molte aziende se lo ritrovano “gratis” avendo già acquistato Office365 (ad esempio chi ha spostato Exchange online…). In questo caso possiamo vedere i costi di licenza e hosting come “già coperti” dagli altri centri di costo (Posta elettronica, Licenze office…) e quindi possiamo introdurre un documentale in azienda a costo zero, o meglio, al solo costo delle personalizzazioni necessarie.

danielefontani

Actually CTO in Sintra Consulting s.r.l, I'm senior developer and architect specialized on portals, intranets, and others business applications. Particularly interested in Agile developing and open source projects, I worked on some of this as project manager and developer. My experience include: Frameworks \Technlogies: .NET Framework (C# & VB), ASP.NET, Java, php, Spring Client languages: XML, HTML, CSS, JavaScript, Angular.js,Angular. jQuery Platforms: Sharepoint,Liferay, Drupal Databases: MSSQL, ORACLE, MYSQL, Postgres

Lascia un commento