Enterprise integration options with Smallworld
Upcoming SlideShare
Loading in...5
×
 

Enterprise integration options with Smallworld

on

  • 621 views

This was a presentation I did at the GE Smallworld conference in Vilamoura, Portugal, May 2012.

This was a presentation I did at the GE Smallworld conference in Vilamoura, Portugal, May 2012.

Statistics

Views

Total Views
621
Views on SlideShare
620
Embed Views
1

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Many people have a perception that “duplicating” data is bad, but in many situations it makes sense to do well managed replication. We’ll talk more about what you can do with your data in Oracle in the next section.
  • Updates are especially complex when you have multiple software products involved – usually you have to go through those products (or APIs that they provide) in order to enforce rules tha they require.
  • As soon as you use an API
  • Today by far the most common way of implementing distributed APIs is using web services, by which we mean (in general) services that work over HTTP, the main protocol of the web.
  • There are two main kinds of web service. The first uses SOAP and WSDL, sometimes known as “big web services”. This is a mature and robust, but relatively complex approach to web services. Interfaces have to be rigorously defined, which has pluses and minuses.
  • Before we talk more about REST

Enterprise integration options with Smallworld Enterprise integration options with Smallworld Presentation Transcript

  • GE EnergyEnterprise integration options with SmallworldPeter Batty, Ubisense
  • Overview Database Data Map technology integration integration Database types Databases Import Database sync Web services SOMs EAI OGC / WMS REST Tile Services
  • Database Data Maptechnology integration integrationDatabase types Databases ImportDatabase sync Web services SOMs EAI OGC / WMS REST Tile Services
  • Thou shalt have only ONE database management system!! 4 Presenter and Event 6/29/2012Photo by Oracle_Photos_Screenshots - http://flic.kr/p/8DhsjU
  • 5 Presenter and Event 6/29/2012Photo by Peter Kaminski - http://flic.kr/p/kkhK
  • One type of vehicle?Photo by ebatty - http://flic.kr/p/Hju5PPhoto by ebatty - http://flic.kr/p/5TCyge Photo by rickie22 - http://flic.kr/p/5phoa1
  • OLTP One type of DBMS? OLAP Full text Data Warehouse search ApplianceLong Real Timetransactions Event Processing Short NoSQL transactions
  • Database sync good!is VMDS Oracle
  • Database Data Maptechnology integration integrationDatabase types Databases ImportDatabase sync Web services SOMs EAI OGC / WMS REST Tile Services
  • Photo by Digitalnative - http://flic.kr/p/7Sp6WgThe integration problem 10 Presenter and Event 6/29/2012
  • Just store everything in the same DBMS!! 11 Presenter and Event 6/29/2012Photo by Oracle_Photos_Screenshots - http://flic.kr/p/8DhsjU
  • 12 Presenter and Event 6/29/2012Photo by Peter Kaminski - http://flic.kr/p/kkhK
  • Common DBMS …just helps a littlePhoto by micheleart -http://flic.kr/p/769kin Photo by freedryk - http://flic.kr/p/mJy8yReporting UpdatesSimple queries Complex queries
  • Need to use anAPI Application Programming Interface
  • Web ServicesPhoto by MrWoodnz - http://flic.kr/p/6WB4N1
  • SOAPSimple Object Access Protocol …and WSDL 16 Presenter and Event Web Services Description Language 6/29/2012
  • <?xml version="1.0" encoding="UTF-8"?> <!-- Concrete Binding Over HTTP --><description xmlns="http://www.w3.org/ns/wsdl" <binding name="RESTfulInterfaceHttpBinding" interface="tns:RESTfulInterface" xmlns:tns="http://www.tmsws.com/wsdl20sample" type="http://www.w3.org/ns/wsdl/http"> xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" <operation ref="tns:Get" whttp:method="GET"/> xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/" <operation ref="tns:Post" whttp:method="POST" targetNamespace="http://www.tmsws.com/wsdl20sample"> whttp:inputSerialization="application/x-www-form-urlencoded"/> <operation ref="tns:Put" whttp:method="PUT" whttp:inputSerialization="application/x-www-form-urlencoded"/><!-- Abstract type --> <operation ref="tns:Delete" whttp:method="DELETE"/> <types> </binding> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.tmsws.com/wsdl20sample" <!-- Concrete Binding with SOAP--> targetNamespace="http://www.example.com/wsdl20sample"> <binding name="RESTfulInterfaceSoapBinding" interface="tns:RESTfulInterface" type="http://www.w3.org/ns/wsdl/soap" <xs:element name="request"> wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/" <xs:complexType> wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response"> <xs:sequence> <operation ref="tns:Get" /> <xs:element name="header" maxOccurs="unbounded"> <operation ref="tns:Post" /> <xs:complexType> <operation ref="tns:Put" /> <xs:simpleContent> <operation ref="tns:Delete" /> <xs:extension base="xs:string"> </binding> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> <!-- Web Service offering endpoints for both bindings--> </xs:complexType> <service name="RESTfulService" interface="tns:RESTfulInterface"> </xs:element> <endpoint name="RESTfulServiceHttpEndpoint" <xs:element name="body" type="xs:anyType" minOccurs="0"/> binding="tns:RESTfulInterfaceHttpBinding" </xs:sequence> address="http://www.example.com/rest/"/> <xs:attribute name="method" type="xs:string" use="required"/> <endpoint name="RESTfulServiceSoapEndpoint" <xs:attribute name="uri" type="xs:anyURI" use="required"/> binding="tns:RESTfulInterfaceSoapBinding" </xs:complexType> address="http://www.example.com/soap/"/> </xs:element> </service> </description> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="body" type="xs:anyType" minOccurs="0"/> </xs:sequence> Example WSDL code <xs:attribute name="status-code" type="xs:anySimpleType" use="required"/> <xs:attribute name="response-phrase" use="required"/> </xs:complexType> </xs:element> </xs:schema> </types>
  • RESTRepresentationalState Transfer Jason Birch City of Nanaimo 18 Presenter and Event 6/29/2012
  • Photo by Digitalnative - http://flic.kr/p/7Sp6WgHow to connect your data silos? 19 Presenter and Event 6/29/2012
  • Photo by digicla - http://flic.kr/p/s39KGTypical solution 20 Presenter and Event 6/29/2012
  • n * (n-1) interfaces
  • Photo by Lance Cheung - http://flic.kr/p/6EXos3 22 Presenter and Event 6/29/2012
  • BusEAIEnterpriseApplicationIntegration n interfaces
  • SOAP Web Services (or JMS)EAI Connector WebSphere MQ
  • REST Jason Birch City of Nanaimo 25 Presenter and Event 6/29/2012
  • …/a2e/data/datasources/Pole/90974 26 Presenter and Event 6/29/2012
  • …/a2e/data/datasources/Pole/90974?f=gjson 27 Presenter and Event 6/29/2012
  • …/a2e/data/datasources//Pole/search?f=gjson&lat=42.600&lon=-76.1780&d=4 28 Presenter and Event 6/29/2012
  • 29Presenter and Event 6/29/2012
  • 30Presenter and Event 6/29/2012
  • 31Presenter and Event 6/29/2012
  • 32Presenter and Event 6/29/2012
  • 33Presenter and Event 6/29/2012
  • REST is good!! REST benefits Simplicity Linkability Jason Birch Searchability Simple update City of Nanaimo (using PUT and POST)Photo by ebatty - http://flic.kr/p/2f3BUQ
  • Database Data Maptechnology integration integrationDatabase types Databases ImportDatabase sync Web services SOMs EAI OGC / WMS REST Tile Services
  • 36 Presenter and Event 6/29/2012Photo by Kevin H. - http://flic.kr/p/7hnQQU
  • 37Presenter and Event 6/29/2012
  • Number of data formats supported by FME over time300 278 265250 254 238 225200 210 191 162 182150 137 154 123 136 94 112100 99 63 93 4650 67 29 57 33 9 17 0 39 1.4.7 FME 2.0 2.1 2.2 2.3 2.3a 2000 FME 2002 FMEFME 2003 X2 20042004 ICE3 FME 2006 GBFME 20082010 Beta UC Cut2011 201 FME FME FME FME FME FME 2000 SR-1 2002 SR-1 FME 2003 FMEFME FME ICE 2004 FME 2005 2006 FME 2007 FME 2009 FME 2010 FME FME FME FME Slide courtesy of Safe Software Presenter and Event 6/29/2012 9/2/10
  • SOM Spatial Object Manager DXF, DGN, DWG, Shapefile MrSID, ECWTIFF, PNG, JPEG, PCX, BMP, WMF WMS
  • WMS – Web Map Service V1.0 from 2000, V1.3 from 2004
  • 43 Presenter and Event 6/29/2012Photo by "KIUKO" - http://flic.kr/p/6hCxxi
  • 44 Presenter and EventPhoto by tandemracer - http://flic.kr/p/5H4L1 6/29/2012
  • Slippy Maps 45 Presenter and Event 6/29/2012Photo by bugmonkey - http://flic.kr/p/4yQVrZ
  • Tiled maps (“slippy maps”)Pre-render maps into image filesApproach used by Google, Microsoft, etcVery high performance and scalabilityMatches Smallworld styles and visibility exactlyEasy to integrate with modern web mapping APIs
  • http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
  • http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
  • Tile exampleGoogle tile Electric data tilex=37804&s=&y=48358&z=17 http://example.com/tiles/Electric/17_37804_4835 8.png
  • Tile exampleElectric data tile: http://example.com/tiles/Electric/17_37804_48358.pngJavaScriptgetTileUrl: function(ll, z) { var X = ll.x % (1 << z); // wrap return "http://example.com/tiles/Electric/" + z + "_" + X + "_" + ll.y + ".png";}
  • Smallworld OpenStreetMap Simple to overlay tiles from many different sources
  • Tiles usable in many JavaScript libraries
  • Imbedded web mapexample
  • Imbedded web mapexample
  • It’s amazing what you can do with tiles! Fast, Scalable, Cacheable, Preserve styles, Portable across clients, and Event Presenter 55 6/29/2012 Compatible across servers, Usable in many JavaScript clients
  • (more) Mashups 56Photo by –Merce Presenter and Event 6/29/2012http://flic.kr/p/ih7Hz
  • Sparse data Trucks Outages Jobs Often don’t need GIS maps KML and GeoRSS are good formats 57 Presenter and Event 6/29/2012
  • KML is child’s<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark> play! <name>Simple placemark</name> <description>Attached to the ground. Intelligently places itself at the height of the underlying terrain.</description> <Point> <coordinates>-122.0822035425683,37.42228990140251,0</coordinates> </Point> </Placemark></kml> 58 Presenter and Event 6/29/2012
  • So is<entry> <title>M 3.2, Mona Passage</title> geoRSS <link href="http://example.org/2005/09/09/atom01"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2005-08-17T07:02:32Z</updated> <summary>We just had a big one.</summary> 59 <georss:point>45.256 -71.92</georss:point> Presenter and Event 6/29/2012</entry>
  • KML viewable in Google Earth or Maps onMarketing application multiple devices including iPhone etc 60 Presenter and Event 6/29/2012
  • You can use KML in lots of places 61 Presenter and EventKML uploaded to GeoCommons and used for thematic mapping 6/29/2012
  • flic.kr/p/8eZBZk KML The Good Simple Good for sparse and dynamic data 62 Works with multiple platforms / products Presenter and Event 6/29/2012
  • KML The Bad Hard to match Smallworld styles Hard to scale to large data volumes 63flic.kr/p/6hwSwn Presenter and Event 6/29/2012
  • Summary Database Data Map technology integration integration Database types Databases Import Database sync Web services SOMs EAI OGC / WMS REST Tile Services
  • We can learn a lot from how the web worksPhoto by jurvetson - http://flic.kr/p/6yWE3
  • about.me/peter.battyThese slides are at slideshare.net/pmbatty peter.batty@ubisense.netPresentation video at vimeo.com/channels/peterbattygeo @pmbatty