Senin, 30 Mei 2011

GeoNetwork in da cloud!




GeoSolutions is pleased to announce that GeoNetwork is now available on the Standing Cloud infrastructure.

Standing Cloud provides services that make it quick and easy to run open source applications in the cloud allowing users to focus on putting applications rather than worrying about the servers that run them.

Standing Cloud provides point-and-click application deployment and management on your cloud of choice with instant access to hosted applications. Focus on portability ensures no providers lock-in, so moving applications to a different cloud provider is a matter of a single click, at any time, for any reason.

Between available cloud partners, we have:
  • Amazon Web Services
  • GoGrid
  • Linode
  • Slicehost
  • Rackspace Cloud

GeoSolutions has joined the Partner Program of Standing Cloud and it is now listed as Solution Partner for GeoServer and will soon be listed for GeoNetwork as well. We have worked with the Standing Cloud team to integrate GeoNetwork 2.6.3 in their application network, so that now people can install and deploy a GeoNetwork instance in less than 15 minutes with no system administration skills!

Just look at the screenshots below, in 10 minutes with a few clicks I have gone from nothing to having GeoNetwork running.






So log in and have fun with GeoNetwork in da cloud!

If you have questions about the work described in this post, or if you want to know more about how our services could help your organization reaching its goals, do not hesitate to contact us

The GeoSolutions team

Senin, 23 Mei 2011

Developer's Corner: Turning GeoServer into an ImageServer

Dear All,
we would like to briefly talk about some of the lastest developments we have performed at GeoSolutions in order to turn GeoServer into an ImageServer.


So far GeoServer has not been able to publish single non georeferenced images as WMS layers, it always required a valid EPSG for specifying a well-known geospatial coordinate reference system. Lately, we have been working with OpenGeo on an application whose goal was to allow users to view non-georeferenced images through a WebGis based on OpenLayers. We decided to take the risk to modify the GeoServer and allow it to serve pure imagery via the WMS protocol. First thing we did was to define an EPSG code with a valid identifier that could convey enough information to have clients understand we were serving a pure image. The debate on the GeoTools mailing list was long but helpful, see the following links for reference:
Long story short, we followed Jody Garnett's suggestion to define an EPSG identifier using the code 404000 for a 2D wildcard coordinate reference system in meter as shown here. For those who know what a WKT is, we are showing it here below

LOCAL_CS["Wildcard 2D cartesian plane in metric unit",
LOCAL_DATUM["Unknown", 0],
UNIT["m", 1.0],
AXIS["x", EAST],
AXIS["y", NORTH],
AUTHORITY["EPSG","404000"]]

If you are curios, here below you can see an simple non-georeferenced Jpeg shown in OpenLayers:


If you want to play with a live demo (we do not guarantee it will be up forever though...) you can follow this link.

If you want to know more about this development or if you are interested in knowing how GeoSolutions can help your organization to reach its goals, feel free to contact us.

Regards,
the GeoSolutions Team.

Selasa, 17 Mei 2011

GeoServer upgraded to 2.0.3 release on Standing Cloud!


GeoSolutions is pleased to announce that GeoServer has been upgraded from 2.0.2 to 2.0.3 (check the announcement for  2.0.3) on the Standing Cloud infrastructure. Notice that we have GeoServer 2.1 series on the radar for the next round of upgrades.

Standing Cloud provides simple, powerful, services that make it fast and easy to run open source applications in the cloud allowingusers to focus on putting applications at work in the cloud rather than worrying about the servers that run them.  Standing Cloud makes it point-and-click easy to deploy and manage applications on your cloud of choice since it  provides instant access to host applications on many cloud providers. Focus on portability ensures no providers lock-in which means that moving applications to a different cloud provider with a single click, at any time, for any reason, is feasible.

Between available cloud partners, we have:
  • Amazon Web Services
  • GoGrid
  • Linode
  • Slicehost
  • Rackspace Cloud

GeoSolutions has joined the Partner Program of Standing Cloud and it is now listed as Solution Partner for GeoServer. We have worked with the Standing Cloud team to integrate GeoServer 2.0.3 in their application network, so that now people can install and deploy a GeoServer instance in less than 15 minutes with no system administration skills!

Just look at the screenshots below, in 10 minutes with a few clicks I have gone from nothing to having GeoServer running:






So log in and have fun with GeoServer in da cloud!



The GeoSolutions team

Rabu, 11 Mei 2011

Developer's Corner: GeoServer-Manager, super-simple Java client library for GeoServer

Dear All,
we just wanted to spend a few words about a Java library we have just released under the MIT license for talking to the GeoServer REST interface. We have named this library GeoServer-Manager (yeah, a lot of brainstorming behind that name, really...).

Basically the goal of this library is to provide a simple yet usable way to interface a Java application with the GeoServer that would actually ease the work of the developers hiding away from them the relative complexity of the GeoServer REST interface without introducing a complex communication layer.
Here you have some basic facts about the library:
  • minimum set of external dependencies, namely apache-http-common and jdom
  • dead-easy API, see examples here
  • works with GeoServer 2.1 and 2.0.X
  • allows to interact with most common formats:
    • geotiff
    • shapefile
    • postgis
    • mosaic
GeoServer-Manager is open source and licenced under the MIT License. This library draws its essence from the efforts endured inside GeoSolutions in various projects. Partial funding has been provided by FAO.

Our intent is to keep this library lean and mean, therefore we do not intend to add complex stuff like a de/deserializable entity model into it, since we want to use it as a simple yet powerful communication layer with the GeoServer REST interface. However, we have on the radar the possibility to reuse this library in order to build a web service to provide means to interact with the GeoServer internal configuration via other protocols like SOAP or Spring Remoting.

If you have questions or if you just want to talk to us about the using the library in your project, please, subscribe to the mailing list here. In any case, do not hesitate to contact us.

Regards,
the GeoSolutions Team.

Rabu, 04 Mei 2011

Preview: GeoRepository, advanced authorization manager for GeoServer

Dear All,
in this post we would like to introduce an application we have developer here at GeoSolutions in order to cope with the requirements coming from enterprise deployments in terms of Authentication and Authorization for GeoServer; its name is GeoRepository.

Whoever has been facing the technical problems involved with deploying GeoServer inside an enterprise infrastructure following the SOA paradigm knows that in such context Authorization and Authentication capabilities are usually provided by external services in order to centralize such feature, fostering reuse of existing capabilities, minimize risk of duplication of functionalities as well as to avoid duplication of users' credentials. Moreover in such context Single Sign On (SSO) services are usually a must-have.

GeoServer comes with an integrated security subsystem that is able to handle both Authentication and Authorization which is quite powerful and customizable, however we had the need to extend it further in order to be able to provide fine grained control over users' authorizations as well as in order to better integrate with existing A&A services.

A typical and yet simple usage scenario for GeoRepository is depicted here below.


In these setups GeoServer is normally not exposed directly, there is normally a load balancer as well as an Apache configured to perform duties such as single sign on authentication, SSL encryption and connection with external monitoring tools such as Nagios or Hyperic.
As suggested the authentication is performed by Apache HTTPD via LDAP; GeoServer will therefore be responsible only for the authorization based on the current user. In order to do this, GeoServer  communicates with GeoRepository in order to retrieve users' authorizations query limits (we will get to this later) and then applies them accordingly to the incoming requests (thus avoiding post-encoding filtering, see also this white paper comparing internal vs external security systems).

In order to make this approach possible GeoServer was modified by Andrea Aime, the author of the existing Security Subsytem as described in the picture below. GeoRepository obtains users' credentials from LDAP and allows administrator to decorate them with additional parameters which are specific for restricting GeoServer access to services and data (we will describe them shortly).


Now that we have seen the 10000 feet view let's delve into details of how us know provide additional details on how GeoRepository seamlessly applies specific geospatial access policies to one or more GeoServer instances
The possible types of authorizations that can be applied using GeoRepository are controlled via generic rules with priorities , are shown below.



Each rule comprises of:
  • User
  • Profile
  • Instance (since GeoRepository can control more than one instance of GeoServer, the typical enterprise scenario having a cluster of machines serving geospatial requests)
  • Service and Request which can be used to control grants on OGC services
  • Workspace which can be used to control grants on GeoServer workspaces
  • Layer which can be used to control grants on GeoServer layers
  • Grant
    • ALLOW grants access if the rule is satisfied, DENY denies access if the rule is satisfied
    • LIMIT applies only when we have spatial restrictions available, in this case if the ruse is satisfied we basically perform an allow with spatial restrictions.
For ALLOW and LIMIT grants we can, under some conditions, set also additional limits which are called details.



Available detail levels are:
  • Layer Details allows us to specify refined rules for a specific GeoServer layer. As an instance it is possible to override the default style or to filter the available styles' list. It is also possible to specify CQL filters for reading and/or writing (when possible) GeoServer layers' attributes.
  • Layer Attributes Details allows us to limit access to vector layer attributes. By default all attributes are readable/writable, but with this capability we can hide some of them or make them read only.

It is worth to point out that GeoRepository interprets rule by priority: higher priority rules (represented by a smaller integer number) are applied before rules at lower priority. Like in IPTABLES, the first match is considered valid and then executed.
The possibilities introduced by having GeoRepository work right next to GeoServer are quite a lot, let us list some of them:
  • Fine grain control over which services, layers, workspaces, operations (of a service) a user can access
  • Fine grain control over which geospatial area for a layer (being it raster or vector) a user can access
  • Fine grain control over the WMS style that a use can apply for a layer with the possibility to perform style substitution on a per request basis depending on the credentials received
  • Fine grain control over which attribute (for vector layers) or bands (for raster layers) a user can access (this way it is possible to hide/show sensible attributes depending on credentials)


As an example of full versus limited access to resources, check the difference in the following two layers previews. First one show administrator's preview, second one shows unprivileged user's preview, where some the attributes are hidden, the default style is forced by the access control and the geometries outside the restriction area have been .

We should set up an inline demo soon, meanwhile, if you want to know more about the features we currently support or about our roadmap, please, do not hesitate to contact us.

Regards,
the GeoSolutions Team