www.korem.com 1 geospatial and business intelligence jean-sébastien turcotte executive vp san...
TRANSCRIPT
www.korem.com 1
Geospatial and Business Intelligence
Jean-Sébastien TurcotteExecutive VP
San Francisco - April 2007
Streamlining web mapping applications
www.korem.com 2
Streamlining web mapping applications
Business requirements and context Business requirements Today’s Web Apps Challenges
WebService Navigator At a glance Goals Approach Technologies Features and benefits
Demos… Summary What’s next
www.korem.com 3
Business requirements
Need to address requirement for our own set of tools to stay competitive
Possible to easily expand technology support
Efficient tools to develop cross platform application are limited
Simplify development process for new project
Not productize but set of tools evolving organically
www.korem.com 4
Today’s Web Apps
»WEB 2.0... • AJAX - Asynchronous JavaScript And XML
» an approach (methodology) where chunks of data are retrieved from a server without reloading the whole page.
» a set of technologies, libraries, toolkits and frameworks to implement the functionality. e.g.. DHTML, JavaScript, XML, JSON, FLASH, DOJO…
» an enhanced user experience (asynchronous actions done behind the scene).
» not without challenges/gotchas: back-button, history, bookmarking… » not necessarily tied to XML or JavaScript.
• SOA - Service Oriented Architecture» a programming model (design principle) that is independent of technology,
framework and implementation. (platform agnostic) » web services provide access to various loosely coupled systems.» core principles: integration, interoperability, scalability.» communication of messages between consumers and producers uses XML.» standard interface are described using the web service definition language.
(WSDL)
www.korem.com 5
Challenges
»Heterogeneous infrastructures: multiple OS, DBMS, legacy systems…»Leveraging current systems to address new business requirements.»Opening new channel of communication with users, customers, partners, suppliers.»Wide variety of principles and technologies.»Response time and unified user experience.
www.korem.com 6
WSNAV – At glance
Browser
Map
CommonJavascript
library (API)(Ajax)
Server side handler(Servlet/Struts action)
Services Adapter
MapServer
MapInfoMapXtreme/
Envinsa
OGC-WMS
Push'n'See
OracleMapViewer
...
Data Warehouse
Javascript client side API: Handlesuser interaction with cartographic toolsand send request (XMLHttpRequest) toweb server. Processes responses andupdates map.
J2EE component:-Handles calls from client.
-Dispatches request toappropriate service adapter.
-Propagates parameters fromclient request.
-Look and feel can be customizedusing CSS.
-Provides standard navigation tools:zoom in/out, panning, scale bar.
-Point of interests can be overlaidwith tool tip to display contextualinformation.
Oracle !0g
GIS Data
Each adapterimplements a
commoninterface
www.korem.com 7
WSNAV – Goals
»Unified programming model: published API.»Enabling developers to get up and running quickly. (reduces learning curves when switching from one map provider to another)»Provide basic navigation tools: zoom in/out, panning, scale bar…»Integration with various map providers.»Flexibility and ease of configuration.»Built a common interface to bridge different map rendering API.»Make writing new adapters a relatively simple task.
www.korem.com 8
WSNAV – Approach
»Development of presentation layer:• Core JavaScript API• Client side objects for map and tools: wsnav, zoomin, zoomout, pan, scalebar...• Objects are added as needed to page:
<script>wsnav = new WsNav(); zoomin = new ZoomIn(wsnav);</script>• Objects are configured on page load: <body onLoad="init()“>• Library takes care of event notification among map and tools. • Page include all necessary scripts: <script language="JavaScript"
src="js/pan.js"></script>• HTML rendering uses DIV tags to layout components: <div id="divToolbar">• Presentation layer done using JSP (Java Server Page).
»Development of server-side components.• Server side request handler (Servlet/Struts Action)• Client request submitted using XmlHttp is translated into server side call to specific
adapter.• All parameters are available to adapter class.• Methods are invoked at runtime using reflection. • Response returned to client has same structure regardless of mapping technology.• Configuration of target provider done in separate file.
»Development of adapter class for a specific provider. • Adapter makes calls to provider API for implementing zooming, panning and other
functionalities.
www.korem.com 9
WSNAV – Technologies
»JavaScript: Map and tools are actual scripting entities (object). Client request are sent using the XmlHttpRequest (allows for asynchronous event handling). No need of full page refresh.
»CSS: Images, colors are defined in stylesheet.
»Java: Server side handlers and wrappers can be deployed in any J2EE web server.
»JSON: JavaScript notation that provides alternative to XML (better performance when dealing with lengthy data)
www.korem.com 10
WSNAV – Features and Benefits
»Ease of deployment on any J2EE web server»Leverage existing commercial and open-source solutions»Best practices and standard: Web-Services, CSS, design-patterns»Customizable look and feel.»Implementation leverages common code from the WSNav server API.»Developer focuses on writing adapter (wrapper) that bridges specific map provider API to WSNav interface.»Independent of mapping technology used for rendering.»Concurrent development possible: team working on different implementation at the same time.»Core API becomes more robust as it matures over time and use.»Separation of map engine logic from map presentation and navigation logic.
www.korem.com 11
Some examples
www.korem.com 12
Summary
»Hides complexity of mapping technology.»Separates map rendering from map presentation and tools.»Flexible and easy to integrate into existing application»Uses a services oriented approach (SOA) to decouple components.»Leverages existing services oriented solutions.»Customizable look and feel.»Works with most popular Internet browser.»Minimal knowledge of JavaScript needed»Extensible: new tools can be added to the core JavaScript API. »Productivity: quick deployment of common ‘locator’ type of web mapping applications.»Currently used in many different projects.
www.korem.com 13
Questions ?
Thank you !