e.Toscana Compliance 
Request for Comments: 
Del: 24/10/2007
Categoria: Applicativa
Destinatari: 

1. Introduzione
==========================

Il sistema Catasto Strade, che permette la visualizzazione grafica di elementi geografici,  soggetto a modifiche nel corso del tempo che impattano
gli elementi costitutivi del grafo. Queste modifiche devono essere propagate al geodatabase di ogni applicativo WEGE in modo che ogni singolo client abbia sempre la situazione allineata.
Il servizio in oggetto permette la "distribuzione" a tutti gli interessati dell'informazione della modifica applicata e il conseguente aggiornamento degli ambienti locali.

2. Obiettivo
============
Fornire uno strumento che a partire dall'elemento grafico costituente la modifica applicata, tramite la chiamata ad un unico servizio di 
cooperazione applicativa permetta la distribuzione della stessa modifica a tutti gli interessati.

3. Analisi:
===========

Un qualsiasi applicativo WEGE invia una segnalazione di modifica grafo costruendo il messaggio "AggiornamentoGrafo". L'architettura di 
Cooperazione Applicativa, opportunamente configurata, "distribuisce" una segnalazione dello stesso tipo verso l'applicativo WEGE installato
presso tutti i destinatari interessati alla modifica.

3.1 caso d'uso

La Provincia X, in seguito ad un lavoro pubblico che ha modificato il tracciato di una strada, aggiorna l'arco-nodo rispettando la topologia 
(connessione) e aggiornando i campi relativi (identificativi degli elementi, gestore,...). Fatto questo, in WG-Edit, viene fatta l'operazione di 
check-in (inserimento dei nuovi dati o di quelli aggiornati nel geodatabase centrale della AP), in cui i nuovi oggetti passano in stato "validato", 
poich non  necessaria nessuna approvazione.
L'operazione di checkin dell'arco-nodo scatena un'aggiornamento del grafo WEGE, il quale viene inserito nel geodatabase e comunicato via cooperazione 
applicativa ai sottoscrittori (SGRT, SVRT, AP e Gestore).

3.1.1 agenti coinvolti, ruoli e competenze

- 10 AP: Amministrazioni Provinciali della Regione Toscana; sono preposte alla gestione e manutenzione della rete delle strade provinciali e, in certi casi, anche di alcune strade regionali e/o statali
- 1 Gestore: la Provincia Capofila (Provincia di Firenze); ha le competenze delle semplici AP pi la supervisione del Sistema Regionale del Catasto delle Strade, il controllo delle banche dati e dei flussi informativi, la sovrintendenza di talune modifiche sulla banca dati
- 1 SVRT: Servizio Viabilit della Regione Toscana; ha il compito di raccogliere ed aggregare i dati relativi alla rete viaria di propriet (essenzialmente in consultazione)
- 1 SGRT: Servizio Geografico della Regione Toscana; ha la responsabilit di mantenere aggiornato e consistente il grafo stradale dell'intera rete viaria presente sul territorio regionale.

Maggiori dettagli relativamente ad interazioni tra agenti si possono reperire dal documento [3]

3.1.2 Formato del messaggio "AggiornamentoGrafo"
------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:csfi="http://provincia.fi.it/csfiML" xmlns:wege="http://provincia.fi.it/wegeML" targetNamespace="http://provincia.fi.it/wegeML" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="../common/Soggetto.xsd"/>
	<xs:import namespace="http://provincia.fi.it/csfiML" schemaLocation="../common/csfiML/Elemento.xsd"/>
	<xs:import namespace="http://provincia.fi.it/csfiML" schemaLocation="../common/csfiML/Giunzione.xsd"/>
	<xs:import namespace="http://provincia.fi.it/csfiML" schemaLocation="../common/csfiML/Tracciato.xsd"/>
	<xs:element name="AggiornamentoGrafo">
		<xs:annotation>
			<xs:documentation xml:lang="IT"> 
				Servizio per registrazione di una modifica su grafo regionale
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="wege:general"/>
				<xs:element ref="csfi:tracciato"/>
				<xs:element ref="wege:modifichegrafo"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="general">
		<xs:annotation>
			<xs:documentation>Definisce richiedente e destinatari</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="wege:soggettoRichiedente" minOccurs="0"/>
				<xs:element ref="wege:soggettoDestinatario" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="modifichegrafo">
		<xs:annotation>
			<xs:documentation>Definisce le modifiche da apportare al grafo</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="wege:nuovografo" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>	
	<xs:element name="nuovografo">
		<xs:annotation>
			<xs:documentation>Definisce i dati degli elementi del grafo da modificare</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="elemento" type="csfi:Elemento"/>
				<xs:element name="giunzione" type="csfi:Giunzione" minOccurs="2" maxOccurs="2"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>


3.1.3 Esempiio XML generico conforme allo schema "AggiornamentoGrafo"
---------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<wege:AggiornamentoGrafo xmlns:csfi="http://provincia.fi.it/csfiML" xmlns:wege="http://provincia.fi.it/wegeML">
	<wege:general>
		<wege:soggettoRichiedente>
			<wege:Soggetto>
				<wege:nome>String</wege:nome>
			</wege:Soggetto>
		</wege:soggettoRichiedente>
		<wege:soggettoDestinatario>
			<wege:Soggetto>
				<wege:nome>String</wege:nome>
			</wege:Soggetto>
		</wege:soggettoDestinatario>
	</wege:general>
	<csfi:tracciato>
		<csfi:punto>
			<csfi:idPunto>AA_P00000000</csfi:idPunto>
			<csfi:gpsCoord>
				<csfi:phi>
					<csfi:gradi>-180</csfi:gradi>
					<csfi:primi>0</csfi:primi>
					<csfi:secondi>0</csfi:secondi>
					<csfi:millesimi>0</csfi:millesimi>
				</csfi:phi>
				<csfi:lambda>
					<csfi:gradi>-180</csfi:gradi>
					<csfi:primi>0</csfi:primi>
					<csfi:secondi>0</csfi:secondi>
					<csfi:millesimi>0</csfi:millesimi>
				</csfi:lambda>
				<csfi:Q>-9999.999</csfi:Q>
			</csfi:gpsCoord>
			<csfi:planCoord>
				<csfi:X>-9999999.99</csfi:X>
				<csfi:Y>-9999999.99</csfi:Y>
				<csfi:Z>-9999999.99</csfi:Z>
			</csfi:planCoord>
			<csfi:pendTrasv>0</csfi:pendTrasv>
			<csfi:pendLong>0</csfi:pendLong>
			<csfi:tipoRilievo>VAR</csfi:tipoRilievo>
		</csfi:punto>
	</csfi:tracciato>
	<wege:modifichegrafo>
		<wege:nuovografo>
			<wege:elemento>
				<csfi:idElemento>AA_E00000000</csfi:idElemento>
				<csfi:codElementoRT>RT 000 000 00000 ES</csfi:codElementoRT>
				<csfi:codEstesaAmmRT>RT 000 000 00000 PA</csfi:codEstesaAmmRT>
				<csfi:nodoIni>AA_G00000000</csfi:nodoIni>
				<csfi:nodoFin>AA_G00000000</csfi:nodoFin>
				<csfi:tipologia>di tronco carreggiata</csfi:tipologia>
				<csfi:enteProprietario>00-000-000</csfi:enteProprietario>
				<csfi:enteGestore>00-000-000</csfi:enteGestore>
				<csfi:classificaTecFun>autostrada</csfi:classificaTecFun>
				<csfi:lunghMisurata>-9999999.99</csfi:lunghMisurata>
				<csfi:compElemStrada>true</csfi:compElemStrada>
				<csfi:direzioneMarcia>doppio Senso</csfi:direzioneMarcia>
				<csfi:sottopasso>true</csfi:sottopasso>
				<csfi:origine>RT</csfi:origine>
				<csfi:dataAttivazione>1967-08-13</csfi:dataAttivazione>
				<csfi:dataDismissione>1967-08-13</csfi:dataDismissione>
				<csfi:trattaRif>
					<csfi:idStradaNG>AA_AA000</csfi:idStradaNG>
					<csfi:idTrattaNG>T000</csfi:idTrattaNG>
				</csfi:trattaRif>
				<csfi:tracciatoRif>
					<csfi:puntoOdoRif>
						<csfi:puntoRif>AA_P00000000</csfi:puntoRif>
						<csfi:progOdo>-9999999.99</csfi:progOdo>
					</csfi:puntoOdoRif>
				</csfi:tracciatoRif>
			</wege:elemento>
			<wege:giunzione>
				<csfi:idGiunzione>AA_G00000000</csfi:idGiunzione>
				<csfi:codGiunzioneRT>RT 000 000 00000 GZ</csfi:codGiunzioneRT>
				<csfi:puntoRif>AA_P00000000</csfi:puntoRif>
				<csfi:intersezioneRif>
					<csfi:idStradaNG>AA_AA000</csfi:idStradaNG>
					<csfi:idIntersezioneNG>I000</csfi:idIntersezioneNG>
				</csfi:intersezioneRif>
				<csfi:tipologia>intersezione a raso/biforcazione</csfi:tipologia>
				<csfi:origine>RT</csfi:origine>
				<csfi:dataAttivazione>1967-08-13</csfi:dataAttivazione>
				<csfi:dataDismissione>1967-08-13</csfi:dataDismissione>
			</wege:giunzione>
			<wege:giunzione>
				<csfi:idGiunzione>AA_G00000000</csfi:idGiunzione>
				<csfi:codGiunzioneRT>RT 000 000 00000 GZ</csfi:codGiunzioneRT>
				<csfi:puntoRif>AA_P00000000</csfi:puntoRif>
				<csfi:intersezioneRif>
					<csfi:idStradaNG>AA_AA000</csfi:idStradaNG>
					<csfi:idIntersezioneNG>I000</csfi:idIntersezioneNG>
				</csfi:intersezioneRif>
				<csfi:tipologia>intersezione a raso/biforcazione</csfi:tipologia>
				<csfi:origine>RT</csfi:origine>
				<csfi:dataAttivazione>1967-08-13</csfi:dataAttivazione>
				<csfi:dataDismissione>1967-08-13</csfi:dataDismissione>
			</wege:giunzione>
		</wege:nuovografo>
	</wege:modifichegrafo>
</wege:AggiornamentoGrafo>


4. Bibliografia
===============
Bibliografia
============
[1] "RFC Applicativo e.Toscana", RFC 17, 
http://web.rete.toscana.it/eCompliance/portale/mostraRFC?idRev=55&idRfc=17

[2] "XML Schema: patterns for data type restrictions" 
http://www.w3.org/TR/xmlschema-2/#dt-pattern

[3] "PFI Catasto Strade - analisi di dettaglio COOPERAZIONE APPLICATIVA.pdf"

[4] "PFI Catasto Strade - analisi di dettaglio.pdf"
