# Sistemi informativi/Architetture

Sistemi informativi
Copertina Tutti i moduli · Sviluppo
    CopertinaSistemi informativi/Copertina
* IntroduzioneSistemi informativi/Introduzione
* ArchitettureSistemi informativi/Architetture
* Comunicazione tra SISistemi informativi/Comunicazione tra SI
* Portafoglio applicativoSistemi informativi/Portafoglio applicativo
* Enterprise Resource PlanningSistemi informativi/Enterprise Resource Planning
* Business Process ManagementSistemi informativi/Business Process Management
* Workflow Management SystemSistemi informativi/Workflow Management System
* Workflow Management CoalitionSistemi informativi/Workflow Management Coalition
Modifica il sommario
Per architettura di un sistema informativo si intende l'insieme dei componenti software e hardware che costituiscono il sistema informatico su cui è basato il SI. Se il sistema informatico è distribuito, avrà la necessità di scambiare le proprie informazioni con un sistema informatico cooperante e, se dotato di intranet anche con parti interne ad esso. Sorge quindi il problema dello scambio delle informazioni. Per risolvere tale problema si possodo utilizzare due soluzioni:
* il web,
* l'interoperabilità di dati ed applicazioni
Ovviamente queste due soluzioni non sono esenti da problemi intrinsechi alle tecnologie su cui si basano. La separazione tra dati, logica applicativa e presentazione, oppure la sicurezza, la qualità del servizio offerto, la tolleranza ai guasti ne sono degli esempi.

## Sistema centralizzato

Un sistema si dice centralizzato se la sua architettura si compone di:
* un nodo centrale ed elaborativo nel quale vengono eseguite varia applicazioni
* un archivio centralizzato dal quale le applicazioni posso prelevare i dati
* uno o più terminali che verranno utilizzati dagli utenti per interfacciarsi con il SI
Un SI basato su un sistema informatico centralizzato è definito anche come SI ad accoppiamento forte

## Sistema distribuito

Un sistema si dice distribuito se è costituito da un insieme di nodi applicativi indipendenti che collaborano per ottenere obiettivi comuni attraverso un'infrastruttura di comunicazione hardware e software. In un SI distribuito ho quindi:
* più nodi applicativi che sono indipendenti tra loro e possono essere in punti geografici differenti
* ogni nodo applicativo prende i dati di supporto da archivi locali
* ogni nodo applicativo ha dei terminali utente per interfacciarsi con le persone che utilizzano il SI
Un SI basato su un sistema informatico distribuito è definito anche come SI ad accoppiamento debole

## Sistemi a oggetti distribuiti

È un modello particolarmente indicato per la gestione dei problemi legati alle architetture, alla gestione e alle tecnologie riguardanti i SI.

### Gli oggetti

I sistemi ad oggetti distribuiti(Distributed Object Computing) rispecchiano un modello basato sugli oggetti. Non è da confondere, anche se molto simile, con i modelli orientati agli oggetti perché mancano di alcune caratteristiche come l'ereditarietà. Il nome del modello suggerisce che l'elemento base è appunto l'oggetto. Un oggetto può rappresentare
* dati,
* funzioni,
specificando quindi lo stato e il comportamento dell'elemento, ma anche
* identità,
* istanziazioni di una classe
Un'applicazione viene modellizzata dal progettista attraverso degli oggetti. Ogni oggetto descrive un componente architetturale o un processo, ma non concetti del mondo reale, quindi sarà corretto un oggetto che specifica il processo di gestore ordini,non lo sarà uno che indica il singolo ordine.

### Le interfacce

Oltre agli oggetti fanno parte del modello anche le interfacce. Un'interfaccia è l'insieme dei servizi che un oggetto mette a disposizione di altri oggetti. Per fare una similitudine con Java, l'interfaccia è l'insieme dei metodi pubblici di una classe, questi metodi possono leggere o modificare attributi privati della classe stessa.

### Le connessioni

Gli oggetti inoltrano e ricevono richieste da e verso altri oggetti attraverso le connessioni. Questi messaggi possono essere di pull, per richiedere servizi, o di push, per offrire il servizio richiesto. Possono essere utilizzate due tipologie di connessioni
* La connessione sincrona è per definizione una connessione bloccante. Si basa sul meccanismo di request/reply.
* La connessione asincrona non blocca gli oggetti