User:Kuno/Development Overview
Development > Overview
Architecture Overview
The following diagram briefly illustrates the different components of the MusicBrainz service:
http://www.frob.nl/tmp/architecture.overview.png
How the MusicBrainz components are related to each other
(the above picture should be embedded, but that doesn't seem to work for external images --warp).
MusicBrainz Web Server
Starting with probably the most familiar part, MusicBrainz has a web site. Using the MusicBrainz web site, you can search, browse and edit the MusicBrainz database.
Human interaction (Web Browser)
Your web browser (top left) sends HTTP requests to the Server (centre) which then accesses the Database as appropriate, and returns a response to your browser (usually a web page showing the requested information).
Machine interaction (XML Web Service)
The MusicBrainz server also provides a (machine-readable) Web Service. By sending requests to the server, a client can query existing information, and possibly enter new information to the database.
Although any client can send web service queries to the MusicBrainz server, the easiest and most reliable way to do so is by using one of our client libraries. (FIXME: link to pymb2 and other libraries).
Some clients may want to identify music by using audio fingerprinting technology. Those clients use the open source libofa to query the MusicDNS Server, the MusicDNS server returns a PUID which can be used to query MusicBrainz. See How PUIDS Work for more information. MusicDNS is a service provided by AmpliFIND Music Services, MusicDNS is not part of MusicBrainz.
Picard
MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger.
- Current maintainer: Philipp Wolfer.
- Bug tracker: http://bugs.musicbrainz.org/
- Source code: https://launchpad.net/picard
bzr branch lp:picard
Please see http://wiki.musicbrainz.org/Picard_Development for more information on picard development.
Search server
The search server provides indexed searches for both the MusicBrainz website and the Web Service. The search server is built on Lucene and runs on Tomcat 6.
- Current maintainers: Paul Taylor, Aurélien Mino.
- Bug tracker: http://jira.musicbrainz.org/browse/SEARCH
svn co http://svn.musicbrainz.org/search_server/trunk/ search_server
Please see User:kuno/Search_server_setup_for_developers for instructions on setting up the server for development.
MusicBrainz web server (next version)
The MusicBrainz web server runs the main musicbrainz.org website, and provides the web service. The server code is written in perl, and current development is focused on a rewrite of much of the server code using the Catalyst web framework and Template Toolkit.
- Current maintainers: Oliver Charles, Kuno Woudt.
- Bug tracker: http://jira.musicbrainz.org/browse/MBS
- Source code: http://git.musicbrainz.org/
git clone git://git.musicbrainz.org/musicbrainz-server/core.git mb_server
MusicBrainz web server (current)
The MusicBrainz web server currently used on musicbrainz.org is also written in perl, using Mason for templating.
- Current maintainers: Robert Kaye
- Source code: http://svn.musicbrainz.org/mb_server/branches/RELEASE_20090524-BRANCH/
svn co http://svn.musicbrainz.org/mb_server/branches/RELEASE_20090524-BRANCH/
For more information see MusicBrainz Server.
Other
We also maintain a bug tracker for anything which doesn't fit neatly into the areas described above (things like this wiki, chat logging, forums, MetaBrainz, etc...).
- Bug tracker: http://jira.musicbrainz.org/browse/OTHER