= 10,000 Apps = || '''Date''' || 2009/09/10 || || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Heikki Heikki Doeleman] || || '''Last edited''' || [[Timestamp]] || || '''Status''' || under construction || || '''Assigned to release''' || - || || '''Resources''' || - || == Overview == GeoNetwork is a single application that combines many different functions in one web application. Because of this, it is not possible to easily scale the application. This also aggravates release management, as any change in any of its functions can only be released by releasing the whole thing. The separate functions don't have clear boundaries in the sources, obscuring the structure of the source tree. === Proposal Type === * '''Type''': GUI Change, Core Change * '''App''': !GeoNetwork * '''Module''': all === Links === === Voting History === * None as yet ---- == Motivations == The motivations for these changes are : '''1.''' Scalability[[BR]] '''2.''' Release management[[BR]] == Proposal == This proposal entails the creation of separate web applications for all functions. The applications communicate through Web Services and should be easily deployable in a horizontally scaled configuration. To avoid tight coupling between the applications and an obscure mass of criss-cross communication, and to provide a central controlling point where stuff like XSLT transformations, validations, invocation of authorization etc. takes place, we propose using an [http://en.wikipedia.org/wiki/Enterprise_service_bus Enterprise Service Bus]. A (very preliminary) sketch of the architecture is the following Component Diagram: [[Image(10.000.apps.component.diagram.jpg)]][[BR]] See also [http://erik.doernenburg.com/2009/07/making-esb-pain-visible/ this] and [http://rossmason.blogspot.com/2009/07/to-esb-or-not-to-esb.html this]. === Backwards Compatibility Issues === '''1.''' blah[[BR]] == Risks == == Participants == * As above