Upload
waldemar-egger
View
218
Download
1
Embed Size (px)
Geodaten prozessieren mitWPS (Web Processing Service)
Matthias Lendholt6 Januar 2010
Geodatenprozessierung
Geodatenprozessierung
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
- Corba (dagger)- RPC- Web Services SOAP - REST (direct HTTP)- Sprachspezifisch zB Java RMI
- WPS
Remote
WPS
- OGC Standardndash Spezifiziert fuumlr HTTPndash SOAP optional
- GeoDaten (XML) direkt in Prozessaufruf Typsicherheit (jenseits von int und String)
- Synchroner Aufruf- Ruumlckgabewerte
ndash Entweder direkt in Antwort ndash Oder als separater Download (URL)
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Geodatenprozessierung
Geodatenprozessierung
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
- Corba (dagger)- RPC- Web Services SOAP - REST (direct HTTP)- Sprachspezifisch zB Java RMI
- WPS
Remote
WPS
- OGC Standardndash Spezifiziert fuumlr HTTPndash SOAP optional
- GeoDaten (XML) direkt in Prozessaufruf Typsicherheit (jenseits von int und String)
- Synchroner Aufruf- Ruumlckgabewerte
ndash Entweder direkt in Antwort ndash Oder als separater Download (URL)
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Geodatenprozessierung
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
- Corba (dagger)- RPC- Web Services SOAP - REST (direct HTTP)- Sprachspezifisch zB Java RMI
- WPS
Remote
WPS
- OGC Standardndash Spezifiziert fuumlr HTTPndash SOAP optional
- GeoDaten (XML) direkt in Prozessaufruf Typsicherheit (jenseits von int und String)
- Synchroner Aufruf- Ruumlckgabewerte
ndash Entweder direkt in Antwort ndash Oder als separater Download (URL)
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
- Corba (dagger)- RPC- Web Services SOAP - REST (direct HTTP)- Sprachspezifisch zB Java RMI
- WPS
Remote
WPS
- OGC Standardndash Spezifiziert fuumlr HTTPndash SOAP optional
- GeoDaten (XML) direkt in Prozessaufruf Typsicherheit (jenseits von int und String)
- Synchroner Aufruf- Ruumlckgabewerte
ndash Entweder direkt in Antwort ndash Oder als separater Download (URL)
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
WPS
- OGC Standardndash Spezifiziert fuumlr HTTPndash SOAP optional
- GeoDaten (XML) direkt in Prozessaufruf Typsicherheit (jenseits von int und String)
- Synchroner Aufruf- Ruumlckgabewerte
ndash Entweder direkt in Antwort ndash Oder als separater Download (URL)
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
WPS - Operationen
- GetCapabilities Liste verfuumlgbarer Prozesse
- Describe Process Liste Eingabe- und Ruumlckgabeparameter
- Execute Operation
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
AAIS (I)
+
Projekt DEWSAffected Area Identification Service (AAIS)
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (II)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (III)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (IV)
GUIAWI-Simulation Resource-Service
AAIS
WPS Execute Process
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (V)
GUIAWI-Simulation Resource-Service
AAIS
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (VI)
GUIAWI-Simulation Resource-Service
AAIS
+
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AAIS (VII)
GUIAWI-Simulation Resource-Service
AAIS
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
ltxml version=10 encoding=utf-8gtltwpsExecute service=WPS version=100
xmlnswps=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11
xmlnsxlink=httpwwww3org1999xlinkgt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsDataInputsgt ltwpsInputgt ltowsIdentifiergtISOCountryCodeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtTHltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSimulationResultURLltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt httpdews-servicesresourcesdocsfoozipltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt
AAIS ndash wpsExecute (I)
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
ltwpsInputgt ltowsIdentifiergtEtaAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtarrivaltimltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtSshAttributeltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagtssh_maxltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsInputgt ltowsIdentifiergtMinSshltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt05ltwpsLiteralDatagt ltwpsDatagt ltwpsInputgt ltwpsDataInputsgtltwpsExecutegt
AAIS ndash wpsExecute (II)
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
ltwpsExecuteResponse hellip gt ltwpsProcess wpsprocessVersion=100gt ltowsIdentifiergt AffectedAreaIdentificationProcessltowsIdentifiergt ltwpsProcessgt ltwpsProcessOutputsgt ltwpsOutputgt ltowsIdentifiergt NumberOfIdentifiedAffectedAreasltowsIdentifiergt ltwpsDatagt ltwpsLiteralDatagt61ltwpsLiteralDatagt ltwpsDatagt ltwpsOutputgt ltwpsOutputgt ltowsIdentifiergtFeatureCollectionltowsIdentifiergt ltwpsDatagt ltwpsComplexDatagtUEsDBBQAC1ycDsAAA hellip =ltwpsComplexDatagt ltwpsDatagt ltwpsOutputgt ltwpsProcessOutputsgtltwpsExecuteResponsegt
AAIS ndash wpsExecuteResponse
~500000 BytesBase64 encodiertes und zuvor geziptes Shapefile
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Diskussion Anwendungsfall AAIS
+ Service ausgelagert+ Separation of Concerns+ Praumlzisere Architektur (Nutzung von Standards) + Wiederverwendbarkeit+ Erhoumlhte Flexibilitaumlt
+ Server Performance gt Client Performance
- Zweifelhaft Prozessor-Geschwindigkeit Parallelisierung RAM
- Up- und Downloadzeiten
NONSENSE
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Fazit Anwendungsfall AAIS (I)
bull Sinnvolle Auslagerung bessere Architekturbull Client unabhaumlngig von GeoDaten
bull Keine volle Nutzung der WPS Faumlhigkeiten (Shapefiles statt GML)
bull Kein Performancegewinnbull Zu hoher Anteil von Up- und Downloadbull Nur geringer Gewinn bei Prozessierungszeit
bull Alternative waumlre leichter zu realisierenbull Kein Deegree WPS Serverbull zB Java RMI oder XML RPC
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Fazit Anwendungsfall AAIS (II)
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Anwendungsfall 1Eigenen Prozess auslagern
Anwendungsfall 2Fremden WPS integrieren
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
DEWS
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Resource-Service
AAIS
Sensordaten
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
AWI-Simulation (I)
GUIAWI-Simulationals
WPS
Sensordaten
ltowsIdentifiergtobservationsltowsIdentifiergtltDatagt ltComplexDatagt ltomObservationCollection gmlid=oc_1234gt ltommembergt ltomObservation gmlid=obs_seismic_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T011200+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt ltomprocedure xlinkhref=urnGFZGITEWSdefprocedureSeiscomp3 gt ltomobservedPropertygt ltsweCompositePhenomenon gmlid=comp_123 dimension=1gt ltgmlcsNamegtDLRltgmlcsNamegt ltswebase xlinkhref=urnDLRGITEWSdefphenomenonSeismicComposite gt ltswecomponent xlinkhref=urnGFZGITEWSdefquantitydepthBelowEpicenter gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltswecomponent xlinkhref=urnDLRGITEWSdefphenomenonoriginLocation gt ltsweCompositePhenomenongt ltomobservedPropertygt ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongt ltomfeatureOfInterestgt ltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord xmlnsns=httpwwwopengisnetswe00gt
ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
ltnsuom xlinkhref=m gt ltnsQuantitygt ltnsfieldgt ltnsfield name=gt ltnsQuantity definition=urnDLRGITEWSdefphenomenonuniversalMagnitude gt ltnsfieldgt ltnsfield name=gt ltnsText definition=urnDLRGITEWSdefphenomenonoriginLocation gt ltnsfieldgt ltnsSimpleDataRecordgt ltswecomponentsgt ltsweencodinggt ltsweTextBlock decimalSeparator= blockSeparator= tokenSeparator= gt ltsweencodinggt ltsweDataBlockDefinitiongt ltomresultDefinitiongt ltomresultgt2007-12-12T011200+02109128104095 -625229ltomresultgt ltomObservationgt ltommembergt ltommembergt ltomObservation gmlid=obs_buoy_003_1234567gt ltomsamplingTimegt ltgmlTimeInstantgt ltgmltimePositiongt 2007-12-12T012000+02ltgmltimePositiongt ltgmlTimeInstantgt ltomsamplingTimegt
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
AWI-Simulation (III)
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Komplexitaumltsfalle
ltExecute xmlns=httpwwwopengisnetwps100 xmlnsows=httpwwwopengisnetows11 xmlnsxsi=httpwwww3org2001XMLSchema-instance xmlnsxlink=httpwwww3org1999xlink xmlnssmf=httpwwwawidetsunamismf10 xmlnsom=httpwwwopengisnetom00 xmlnsgml=httpwwwopengisnetgml xmlnsswe=httpwwwopengisnetswe00 service=WPS version=100gt
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
ltomfeatureOfInterestgt ltgmlFeatureCollection gmlid=foi_earthquakegt ltgmllocationgt ltgmlPointgt ltgmlpos srsName=urnogccrsepsg4328gt104095 -62522ltgmlposgt ltgmlPointgt ltgmllocationgt ltgmlFeatureCollectiongtltomfeatureOfInterestgtltomresultDefinitiongt ltsweDataBlockDefinitiongt ltswecomponents name=gt ltnsSimpleDataRecord
xmlnsns=httpwwwopengisnetswe00gt ltnsfield name=gt ltnsTime definition=urnogcdatatimeiso8601 gt ltnsfieldgt ltnsfield name=gt ltnsQuantity
definition=urnGFZGITEWSdefquantitydepthBelowEpicentergt
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Java Code XML
1 XML-Schema Java Bibliothek (zB XMLBeans) Nicht moumlglich
2 Generische Objektbaumlume (Map-List-Schachtelung) Nicht typsicher und nicht praktikabel
3 Templates mit String Ersetzung Wie bitte
ExecuteProcess-XML kann nicht sinnvoll erzeugt werden
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
AWI-Simulation
GUIAWI-Simulationals
WPS
Sensordaten
WPS
GeoDaten
Client
WPS WrapperR
SOAPHTTP
Java
Nicht sinnvoll realisierbar
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
WPS- GeoDaten (XML) direkt in Prozessaufruf
Typsicherheit (jenseits von int und String) Generik = Beliebigkeit
(XML Schema zu maumlchtig fuumlr Java)
Warum auslagern- KomplexitaumltsreduktionKomplexitaumlt wird weitergereicht
(schlechtes Schnittstellendesign)
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
Fazit Anwendungsfall AWI-Simulation
Warum auslagern
ndash Performanzgewinn- Hoher Ressourcenbedarf- Parallelisierbarkeit
ndash Wiederverwendbarkeit
ndash Komplexitaumltsreduktion
ndash Uumlbersichtlichere Architektur- Staumlrkere Kohaumlsion- Houmlhere Kapselung- Losere Kopplung
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
WPS Fazit
bdquoWann lohnt sich ein WPSldquo
Einzelfallentscheidung
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit
WPS Fazit
- Performanzgewinn beindash Hoher Parallelisierung ndash Hohem Arbeitsspeicher-Bedarfndash Abwaumlgung gegenuumlber Transferzeiten
- Typsicherheit nur beindash Nutzung von GML (statt Shapefiles)ndash in Java erzeugbarem XML (Schema Bibliothek)
- Verbesserung der Architekturndash Uumlbersichtlichkeit Verstaumlndlichkeitndash Funktionale Trennungndash Flexibilitaumlt und Wiederverwendbarkeit