Skip to end of metadata
Go to start of metadata

Purpose: Specify Mapbuilder long term Goals and outline roadmap for achieving them.

  1. #Introduction
  2. #Other Projects
    1. #OpenLayers
    2. #Mapbender
    3. #Web Services
    4. #Heavy clients
  3. #Key Accomplishments
  4. #Areas for Improvement
  5. #Opportunities for help
  6. #Outlook for 2008
  7. #Metrics
    1. #Key Milestones
    2. #Release Date Metrics
    3. #Download Metrics
    4. #Email Traffic Metrics
    5. #Subversion Commit Metrics
  8. #Previous Strategic Direction Papers

Introduction

This document summarises the state of the Mapbuilder project and it's relationship with projects around it. It doubles as Mapbuilder's OSGeo annual report.

Commmunity Mapbuilder is a browser based, standards compliant advanced web mapping client and framework.

2007 has been a solid year for Mapbuilder which has grown into a mature, stable project. Many new features have been added, there has been significant collaboration, sharing of code and developers with OpenLayers and our Project Steering Committee has steadily grown.

Mapbuilder related to other OSGeo projects

OpenLayers

OpenLayers is a browser based mapping library while Mapbuilder is more of a framework. OpenLayers provides one Javascript API which can access multiple data sources: Google Maps, Yahoo Maps, MSN Maps, WMS, WFS, Tiled Cache, KML, GML, etc. OpenLayers has a strong community behind it and its feature set continues to grow. If I were writing a SWAT analysis, OpenLayers could be listed under "Threats".

There has been significant collaboration between OpenLayers and Mapbuilder. Developers from the two projects regularly and openly share ideas and code and make adjustments to ensure functionality is useful for both projects. Many developers contribute to both projects. Recent areas of collaboration include:

  • Sharing design ideas
  • Vector Rendering
  • Styling
  • Projection (Proj4js)
  • KML layers

Mapbuilder differs from OpenLayers by:

  1. Using a Model/View/Controller design pattern in the client, which means that multiple widgets (views) can present data from one model in numerous ways, or one widget can aggregate data from multiple models. There is no dependency between widgets, so a designer can add/remove widgets without effecting the overall Mapbuilder framework.
    1. Mapbuilder is good at handling multiple models which drive interdependent widgets.
  2. Most state is stored as XML inside the model. Consequently:
    1. Using XML makes transactions with XML based web services simpler. In particular, standards based OGC services are mostly defined as XML and there is no loss of information round tripping XML->JS->XML.
    2. XSLT can be used to transform Models to views or transactions. XSLT is easier to work with than Javascript transformations from XML to Javascript then back to XML again.
  3. OWS Context: Mapbuilder stores state in OWS Context format. OWS Context is a draft OGC standard for describing layers and an AreaOfInterst from multiple data sources. It can be shared between supporting clients (like UDig).
  4. The configuration of Mapbuilder is stored in an XML file making it easy to develop a Mapbuilder application and migrate an application from one version to the other.

For less complicated web mapping applications, OpenLayers should be considered.

Mapbender

Mapbender is another OSGeo webmapping client.

Web Services

Mapbuilder acts as a client to WMS and WFS services like Geoserver and Mapserver. In particular, Mapbuilder shares examples with OpenLayers which makes it easy to test both applications.

Heavy clients

Mapping systems usually need a light, web based client, as well as functionally complete desktop applications like UDig, Jump, OpenJUMP, etc.

Key Accomplishments

Feb 2006: OSGeo was founded with Mapbuilder one of the founding projects. The extra visibility meant the number of Mapbuilder downloads doubled overnight.

Oct 2006: Mapbuilder was the second OSGeo project to graduate OSGeo incubation. This involved a code license audit, and refining and documenting our processes:

Dec 2006: GML Viewer client completed as part of OGC Testbed OWS4. This project introduced OpenLayers as a rendering engine and developed vector rendering in conjunction with OpenLayers.
started serious collaboration between OpenLayers and Mapbuilder as the projects shared the development of cross-browser vector (GML) rendering.

2007: Migration to OpenLayers' rendering engine completed. Through OpenLayers, Mapbuilder has access to the multitude of different layers types: WMS, WFS, GoogleMaps, MSM Maps, Yahoo Maps, GML, KML, ...

2007: Mapbuilder's re-projection code was re-factored and migrated to its own library so that it can:

  1. Be used by other AJAX libraries - the code is currently being incorporated into OpenLayers.
  2. Use re-projection as a service.

2007: Internationalization. Mapbuilder uses a language lookup table for all user messages.

2007: Commercial Support officially provided.

Areas for Improvement

Mapbuilder needs to define and sell its market position with respect to other webmapping clients, particularly OpenLayers. OpenLayers has attracted many of the potential Mapbuilder developers at the low end of the market. Our next focus needs to be on make Mapbuilder functionality accessible to OpenLayers developers, enabling Mapbuilder to be an extension to OpenLayers. This is to be achieved by moving Mapbuilder to use the same inheritance model as OpenLayers. (Some work has already been done in this area. For instance, projection code has been restructured to make it accessible to OpenLayers).

While Mapbuilder's documentation is now passable and has most issues covered, there is still room for improvement.

Opportunities for help

Key areas where people can help Mapbuilder include:

  1. Marketing, including demonstrating Mapbuilder functionality at conferences, providing workshops etc.
  2. Focusing documentation. Refining the documentation to be easier to use. Writing and refining tutorials.
  3. Integrate codebase with OpenLayers, to enable OpenLayers users to use Mapbuilder.

Outlook for 2008

Expect to see:

  1. proj4js spin off into a separate project
  2. Reshaping of Mapbuilder as a framework which complements OpenLayers and makes it easy for OpenLayers users to access Mapbuilder functionality. This is a good opportunity for a Google Summer of Code student.
  3. Extension of Mapbuilder's testing process to include TestAnotherWay, as used by OpenLayers. The will complement Mapbuilder's existing testing which targeted at the integration level.

Metrics

Key Milestones

Release

Date

Comment

 

2001-09-29

First email from Cameron Shorter announcing the project

 

2002

Initial development as an applet started in geotools

 

2003

Raj Singh builds prototype AJAX application

 

2003-12-22

Coding starts on current codebase

mapbuilder-lib-0.1-rc1

2004-05-17

Browser client for WMS map layers built from a WMC

mapbuilder-lib-0.1-rc2

2004-05-17

mapbuilder-0.1rc3

2004-05-28

 

mapbuilder-lib-0.1

2004-06-04

 

mapbuilder-lib-0.2-alpha

2005-03-18

WFS-T client, WFS transactions, vector rendering, Time series WMS, JS compression

 

2005-03-18

Mapbuilder bundled with Geoserver as a WFS-T client

mapbuilder-lib-0.3-alpha

2005-03-30

mapbuilder-lib-0.3.1-alpha

2005-06-12

mapbuilder-lib-0.4

2005-08-10

Change from GPL to LGPL license

 

2005-09-15

Openlayers initial release

mapbuilder-lib-1.0-rc1

2005-12-02

 

OSGeo Founded

2006-02-04

Downloads of Mapbuilder doubles

mapbuilder-lib-1.0-rc2

2006-02-23

Migrate from Sourceforge hosting to Codehaus

mapbuilder-lib-1.0-release

2006-04-25

 

mapbuilder-lib-1.0.1-release

2006-07-18

Internationalisation

 

2006-09-11

FOSS4G 2006 Webmapping Bird of Feather. Participants agreed to collaborate and use Openlayers as a rendering engine. This marks the beginning of the end for Mapbuilder

 

2006-10-26

Graduate OSGeo incubation

gml-viewer-1.0

2006-12-13

 

mapbuilder-lib-1.5-alpha1

2006-12-21

use SVG/VML for vector rendering, support OWS Context, provide a SLD Editor, start moving to Openlayers for rendering, GeoRSS support

mapbuilder-lib-1.5-alpha2

2007-08-23

Projection library refactored into its own project

mapbuilder-lib-1.5-rc1

2007-12-24

 

mapbuilder-lib-1.5-rc2

2008-04-27

Add a CS/W catalog client

 

2008-07-28

Announce Mapbuilder retiremen

Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388

Release Date Metrics

This data shows steady software development and releases over many years which is indicative of a stable mature project.
The project started with some quick release cycles, but leveled out to 3 to 4 months as the project matured.


Release

Months since last release

0.1rc3

0.5

0.1

0.5

0.2a

3

0.3a

0.5

0.3a

2.5

0.4

2

1.0rc1

4

1.0rc2

3

1.0

2

1.0.1

3

1.5a1

5

1.5a2

4

1.5rc1

4

Data Source: http://sourceforge.net/project/showfiles.php?group_id=35246&package_id=116388

Download Metrics

This graph shows a steady growth in interest since the start of the project, with a doubling of downloads when the OSGeo Foundation was founded (with Mapbuilder a founding project) in March 2006.

Data Source: http://sourceforge.net/project/stats/detail.php?group_id=35246&ugn=mapbuilder&type=prdownload&mode=alltime&package_id=116388

Email Traffic Metrics

This shows the monthly number of emails for Developer and User email lists. The fact that User emails is less than Developer emails suggests that Mapbuilder is too difficult for users to download and get working and we should focus more on user needs.

A drop in developer activity over the last couple of months is probably due to:

  1. Some time being focused toward incorporating Mapbuilder in OSGeo.
  2. Some corresponding focus on documentation.
  3. Some key developers focusing on applying Mapbuilder to applications rather than extending Mapbuilder.

    Date

    Devel

    User

    Total

    May-03

    2

     

    2

    Jun-03

    20

     

    20

    Jul-03

    24

     

    24

    Aug-03

    38

     

    38

    Sep-03

    23

     

    23

    Oct-03

     

     

    0

    Nov-03

    10

     

    10

    Dec-03

    24

     

    24

    Jan-04

    88

     

    88

    Feb-04

    200

     

    200

    Mar-04

    114

     

    114

    Apr-04

    85

     

    85

    May-04

    85

     

    85

    Jun-04

    191

     

    191

    Jul-04

    60

     

    60

    Aug-04

    75

     

    75

    Sep-04

    53

     

    53

    Oct-04

    47

     

    47

    Nov-04

    103

     

    103

    Dec-04

    72

     

    72

    Jan-05

    57

     

    57

    Feb-05

    71

     

    71

    Mar-05

    153

    2

    155

    Apr-05

    79

    15

    94

    May-05

    121

    1

    122

    Jun-05

    153

    14

    167

    Jul-05

    147

     

    147

    Aug-05

    203

    3

    206

    Sep-05

    417

    8

    425

    Oct-05

    267

    37

    304

    Nov-05

    182

    14

    196

    Dec-05

    211

    42

    253

    Jan-06

    363

    148

    511

    Feb-06

    338

    108

    446

    Mar-06

    369

    104

    473

    Apr-06

    128

    84

    212

    May-06

    150

    133

    283

    Jun-06

    128

    66

    194

    Jul-06

    96

    82

    178

    Aug-06

    63

    34

    97

    Sep-06

    71

    86

    157

    Oct-06

    107

    59

    166

    Nov-06

    145

    83

    228

    Dec-06

    182

    45

    227

    Jan-07

    119

    75

    194

    Feb-07

    72

    60

    132

    Mar-07

    130

    73

    203

    Apr-07

    232

    56

    288

    May-07

    134

    65

    199

    Jun-07

    135

    137

    272

    Jul-07

    200

    105

    305

    Aug-07

    174

    111

    285

    Sep-07

    80

    63

    143

    Oct-07

    69

    35

    104

    Nov-07

    103

    36

    139

    Dec-07

    89

    79

    168

    Data source: http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-devel and http://sourceforge.net/mailarchive/forum.php?forum_name=mapbuilder-users .

Subversion Commit Metrics

This graph tracks the number of lines of code in the Mapbuilder repository. The graph shows a that mapbuilder has been steadily growing since December 2003.

There is a spike in the code size between mid 2005 - 2007 when the code was duplicated into a test environment. Also at the end of 2007, deprecated widgets were cleaned up and archived.


Source data:
http://fisheye.codehaus.org/browse/mapbuilder/trunk/mapbuilder

Previous Strategic Direction Papers

  1. Strategic Direction - February 2008 (Doubling as Mapbuilder's OSGeo 2007 Annual Report).
  2. September 2006
  3. April 2006
  4. June 2005
  • No labels