Patt
erns
in In
form
ation
Tec
hnol
ogy
1
Some Observations on Common Patterns in Information Technology
Prof. Dr. Franz-Josef Behr, Stuttgart University of Applied Sciences
ICTES 2014, University of Kelaniya, Sri Lanka
http://en.wikipedia.org/wiki/University_of_Kelaniya#mediaviewer/File:Unikelruki.jpg
Patt
erns
in In
form
ation
Tec
hnol
ogy
2
Outline
• Introduction • Features and collections of them, and their Identity• Encoding
– Markup Languages, Structuring vocabularies by namespaces– Key value pairs– Separating information chunks
• Standards• Openess• Networking and Service Orientation
Patt
erns
in In
form
ation
Tec
hnol
ogy
3
• Field data collection• Surveying• Photogrammetry• Remote sensing
• Mobile Apps• Geodatabeses• Spatial Data Infrastructures• Data Harmonization• Service oriented Architectures• Web Mapping• OGC WebServices• Architectures• Reports & Presentations• 3D, 4D, …
Patt
erns
in In
form
ation
Tec
hnol
ogy
4
Complexity
Patt
erns
in In
form
ation
Tec
hnol
ogy
5
Reduction ofComplexity
Patt
erns
in In
form
ation
Tec
hnol
ogy
6
Recognition ofPattern
Patt
erns
in In
form
ation
Tec
hnol
ogy
7 Features andcollections of them
Patt
erns
in In
form
ation
Tec
hnol
ogy
8
Features
• real world: consisting of entities / phenomena (latin: ens: a being)
• Feature = an abstraction of real world phenomena‖(ISO 19101)
• geographic feature: associated with a location relative to the Earth.
• The state of a feature is defined by a set of properties, where each property may be thought of as a {name, type, value} triple.
Real worldt
Model
Entity
feature
Identity
properties
behaviour
attributes
geometry
styling properties
meta properties
Technical viewpoint,abstraction,generalization
relationships
Patt
erns
in In
form
ation
Tec
hnol
ogy
9
feature
feature
feature
feature
feature
feature
featurefeature
feature
feature
feature
feature
feature
feature
Patt
erns
in In
form
ation
Tec
hnol
ogy
10
Single features and collections: in GML
• FeatureCollection: a collection of GML Features, having own properties and an optional list of Spatial Reference System Definitions. [1]
• GML feature collections are themselves valid GML features. [2]
<complexType name="AbstractFeatureCollectionType" abstract="true"> <complexContent> <extension base="gml:AbstractFeatureType"> <sequence> <element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:featureMembers" minOccurs="0"/> </sequence> </extension> </complexContent></complexType>>
<element name="AbstractFeatureCollection" type="gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:AbstractFeature" />
[1] http://www.w3.org/Mobile/posdep/GMLIntroduction.html[2] OpenGIS Geography Markup Language (GML) Encoding Standard, v 3.2.1, http://portal.opengeospatial.org/files/?artifact_id=20509
Patt
erns
in In
form
ation
Tec
hnol
ogy
11
Single features and collections: in Java
Patt
erns
in In
form
ation
Tec
hnol
ogy
12
Real worldt
Model
Entity
feature
Identity
properties
behaviour
attributes
geometry
styling properties
meta properties
Technical viewpoint,abstraction,generalization
relationships
Identity of features
• Each feature must be identifiable.
• Need of identification systems – perhaps many
• Identification also needed in networking (discussed later)
Patt
erns
in In
form
ation
Tec
hnol
ogy
13
Identity of features
<gml:featureMember> <AX_Flurstueck gml:id="DEBWL0010001UiIg"> <gml:identifier codeSpace="http://www.adv-online.de/">urn:adv:oid:DEBWL0010001UiIg</gml:identifier> <zeigtAufExternes> <AA_Fachdatenverbindung> <art>urn:bw:fdv:1000</art> <fachdatenobjekt> <AA_Fachdatenobjekt><name>0680199400016V</name></AA_Fachdatenobjekt>… <position> <gml:Surface srsName="urn:adv:crs:DE_DHDN_3GK3_BW100" gml:id="Y33">… <gml:Curve gml:id="Y34"> <gml:segments> <gml:LineStringSegment> <gml:posList>515748.750 5454798.050 515758.590 5454780.310</gml:posList> </gml:LineStringSegment> </gml:segments>… </gml:polygonPatches> </gml:Surface> </position> <gemarkung> <AX_Gemarkung_Schluessel> <land>08</land> <gemarkungsnummer>680</gemarkungsnummer> </AX_Gemarkung_Schluessel>… <flurstueckskennzeichen>08068000300592____00</flurstueckskennzeichen> <amtlicheFlaeche uom="urn:adv:uom:m2">290.00</amtlicheFlaeche>cou
Patt
erns
in In
form
ation
Tec
hnol
ogy
14
Encoding Data
Patt
erns
in In
form
ation
Tec
hnol
ogy
15
Encoding Data
Principle of MarkUp
• Markup Language• Definition of structural
elements for data• Strict syntax
End-TagElement contentStart tag with attribute
Element nameAttribute nameAttribute value
<person city="Karlsruhe">Franz-Josef Behr</person>
eXtensible
Patt
erns
in In
form
ation
Tec
hnol
ogy
16
Encoding Data
Markup Languages: XML
Aft
er:
htt
p:/
/ww
bota
.fre
e.f
r/Sam
ple
s/pars
ing.h
tm
• You can have your won Markup Language
• It‘s understandable for human beings and for computer programs
Patt
erns
in In
form
ation
Tec
hnol
ogy
17
<georss:where> <gml:Point> <gml:pos>48.947534 8.482132</gml:pos> </gml:Point></georss:where>
<georss:where> <gml:Point> <gml:pos>48.947534 8.482132</gml:pos> </gml:Point></georss:where>
<georss:point>48.947534 8.482132</georss:point><georss:point>48.947534 8.482132</georss:point>
<?xml version='1.0' encoding='UTF-8'?><kml> <Placemark> <name>48° 56' 51.120623'' N, 8° 28' 55.675049' E</name> <description></description> <Point> <coordinates>8.482132, 48.947534, 0</coordinates> </Point> </Placemark></kml>
<?xml version='1.0' encoding='UTF-8'?><kml> <Placemark> <name>48° 56' 51.120623'' N, 8° 28' 55.675049' E</name> <description></description> <Point> <coordinates>8.482132, 48.947534, 0</coordinates> </Point> </Placemark></kml>
<geo:Point> <geo:lat>48.947534</geo:lat> <geo:long>8.482132</geo:long></geo:Point>
<geo:Point> <geo:lat>48.947534</geo:lat> <geo:long>8.482132</geo:long></geo:Point>
Ambiguity of names in different XML Ambiguity of names in different XML DialectsDialects
W3C Geo
KML
GeoRSS (GML)
GeoRSS (simple)
Patt
erns
in In
form
ation
Tec
hnol
ogy
18
Solution: Structuring vocabularies by namespaces
In programming languages (here: Java)
In XML
In Database technology: context for database names
Source: ISO 19101, ISO 19115
Patt
erns
in In
form
ation
Tec
hnol
ogy
19
Key value pairs
htt
ps:
//w
ww
.car2
go.c
om
/api/v2.1
/vehic
les?
loc=
stu
ttgart
&oauth
_consu
mer_
key=
car2
gow
ebsi
te&
form
at=
jso
n&
callb
ack
=jQ
uery
171
087
9229
0978
2993
11_1
36932
4710
467&
_=
136
9324
710
759
In URLs to identify resources
in JSON
Patt
erns
in In
form
ation
Tec
hnol
ogy
20
Separating information chunks
http://www.gis-news.de/cgi-bin/mapserv.exe?img.x=348&img.y=318&zoomdir=1&zoomsize=2&layer=city&layer=motorway&layer=Europe&imgext=4.296614+49.186302+7.284114+52.174938&imgxy=274.5+274.5
http://www.gis-news.de/cgi-bin/mapserv.exe?img.x=348&img.y=318&zoomdir=1&zoomsize=2&layer=city&layer=motorway&layer=Europe&imgext=4.296614+49.186302+7.284114+52.174938&imgxy=274.5+274.5
In URLs to identify resources:
In GML encodings:
?
Patt
erns
in In
form
ation
Tec
hnol
ogy
21
Separators have to be defined:
Decimal separator (.)
Decimal separator (.)
coordinate separator (,)coordinate separator (,)
tuple separator (space)tuple separator (space)
Patt
erns
in In
form
ation
Tec
hnol
ogy
22
Source
Data
Standards
Open
Patt
erns
in In
form
ation
Tec
hnol
ogy
23
Open agenda is now implemented by the UK Government and delivering huge cost savings for government
£409 million in the first half of this year
Read on: https://www.gov.uk/government/news/government-bodies-must-comply-with-open-standards-principles
Patt
erns
in In
form
ation
Tec
hnol
ogy
24
EU Digital Agenda and Open Data
Source: http://ec.europa.eu/digital-agenda/en/blog/eu-open-data-portal-here [2014-06-21]
Patt
erns
in In
form
ation
Tec
hnol
ogy
25
Source
Data
Standards
Open
Openess
• Data must be complete.• Data must be primary.• Data must be timely.• Data must be accessible.• Data must be machine-processable.• Access must be non-discriminatory.• Data formats must be non-proprietary.• Data must be under an open license or license free.• Data must have permanence and be findable over time.• Usage costs must be affordable (de minimis).
Patt
erns
in In
form
ation
Tec
hnol
ogy
26
Standards
Patt
erns
in In
form
ation
Tec
hnol
ogy
27
Organisations and their dependencies
Establish definition of and terms of engagement in *SDI
ISO
TC 211 TC 204
JTC-1
National Standards
Organizations
Provideexpertise &candidate stds.
Review &approvestds.
Adopter/Implementer Community
Adopter/Implementer Community
OpenGISConsortium
(OGC)
World WideWeb Consortium
(W3C)
Internet Engineering Task Force (IETF)
Facilitation Bodies
• GSDI• ANZLIC• PCGIAP• FGDC • PC-IDEA• INSPIRE• GeoConnections• CODI/UNECA• AGI• …
W3C: HTTP, PNG, RDF, SOAP/XMLP (Web Services Activity), XML, Xlink, Xpath, Xpointer, XSL/XSLT, XML Schema
OGC: Web Map Server, Web Feature Server, GML, Web Coverage Server, Style Layer Descriptor, Catalog Service
ISO: Ref Model, Terminology, Conformance testing, Profiles, Spatial Schema, Temporal Schema, Feature Cataloguing Methodology, Spatial Ref by Coords and Ids, Quality, Metadata, WMS, GML, LBS, Registration of Geo-information Items
Metadata Profile, Data Content Standards, etc.
Class A liaison
XML Protocol (XMLP),XML Signature, I18N
Class C Liaison:XML, I18N
Modified after: http://www.fgdc.gov/library/presentations/documents/2003-presentations/GIS_Standards_Rockies1003.ppt [2013-05-31]
• ISPRS• ICA•…
• ASPRS• DGPF• localchapters•…
Patt
erns
in In
form
ation
Tec
hnol
ogy
28 SharingInteroperability
Patt
erns
in In
form
ation
Tec
hnol
ogy
29
Networking and Service Orientation
Source: http://commons.wikimedia.org/wiki/File:Social_Network_Analysis_Visualization.png
GIS = High Complexity = Empowering a Few
Web Services:Simplicity = Empowering a Billion
Patt
erns
in In
form
ation
Tec
hnol
ogy
30
Networking
• Uniform Resource Identifier (URI). URIs can be: – Locations / adresses: Uniform Resource Locator (URL) , [RFC2396]
– Names: Uniform Resource Name (URN) [RFC 1737, RFC 2141, RFC 3061]
– IP-Adresses (IPv4, IPv6)
<gml:Point srsname=“urn:adv:crs:ETRS89_UTM32“> <gml:coordinates>369949.671 5615301.383</gml:coordinates></gml:Point>
http://www.w3.org/Provider/Style/URI
Patt
erns
in In
form
ation
Tec
hnol
ogy
31
Web Gis Architecture
InternetHTTP
Webserver
HTTP
CGI protocol
Document rootStatic resources
Server side programsDynamic Generation of resources
Client"User Agent"
PNG, JPG, …XML / SVG
DBMSServer
Data preparation, analysis
SQL
Presentation Tier
Data Tier
Communication Tier,Web Tier
Application Tier,Business Logic Tier
ApplicationServer
IP address / Server Name / Host nameIP address
DNS Server
80
HTTP-ClientHTTP-ClientHTTP-Client
Local GIS
80
Communication TierCommunication Tier
Application TierApplication Tier
Data TierData Tier
Presentation TierPresentation Tier
Patt
erns
in In
form
ation
Tec
hnol
ogy
32
InternetHTTP
Webserver
HTTP
CGI protocol
Document rootStatic resources
Server side programsDynamic Generation of resources
Client"User Agent"
PNG, JPG, …XML / SVG
DBMSServer
Data preparation, analysis
SQL
Presentation Tier
Data Tier
Communication Tier,Web Tier
Application Tier,Business Logic Tier
ApplicationServer
IP address / Server Name / Host nameIP address
DNS Server
80
HTTP-ClientHTTP-ClientHTTP-Client
Local GIS
80
Architecture: The protocols
HTTPRFC 2616
HTTPRFC 2616
CGIRFC 3875
CGIRFC 3875
SQLISO/IEC 9075
SQLISO/IEC 9075
XMLw3.org/XML/
XMLw3.org/XML/
Content-TypeRFC 2045
Content-TypeRFC 2045
URIRFC 1630
URIRFC 1630
Patt
erns
in In
form
ation
Tec
hnol
ogy
33
Publish-Find-Bind-Pattern
Client
Web Service Offer
Service RegistryCatalogue
publish
„bind“ = "cosuming" the service
Find = "discover"
OGC GetCapabilities,WSDL
OGC Web Catalogue Service,
UDDI, Discovery
Service
Service Comsumer, OpenLayers
View Services, Download Services, …
Patt
erns
in In
form
ation
Tec
hnol
ogy
34
Summary / Outlook
• Several observable patterns in ICT were shown.
• Try to figure out ALWAYS the design pattern in information technology applicable for YOUR filed of work.
• Take care of standards.
• Be open regarding data, services, collaboration – be interoperable.