User:Kuno/Development Overview: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
(New page: <small>Development > Overview</small> ==Architecture Overview== The following diagram briefly illustrates the different components of the MusicBrainz service: [[Image:MBComponents.pn...)
 
No edit summary
Line 1: Line 1:
<small>[[Development]] > Overview</small>
<small>[[Development]] > Overview</small>

==Focus areas==

Development of MusicBrainz is currently focused in three different areas:

; Picard
; Search server
; MusicBrainz web server

== 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][http://wiki.musicbrainz.org/User:OutsideContext]].
Source code: https://launchpad.net/picard (bzr branch lp:picard)
Bug tracker: http://bugs.musicbrainz.org/

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.
Source code: http://svn.musicbrainz.org/search_server/trunk/ (svn co http://svn.musicbrainz.org/search_server/trunk/ search_server)
Bug tracker: http://jira.musicbrainz.org/browse/SEARCH

== 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 the much of the server code using the Catalyst web framework and Template Toolkit.

Current maintainers: Oliver Charles, [[Kuno Woudt][http://wiki.musicbrainz.org/User:Kuno]].
Source code: http://git.musicbrainz.org/ (git clone git://git.musicbrainz.org/musicbrainz-server/core.git mb_server)
Bug tracker: http://jira.musicbrainz.org/browse/MBS

== 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]].


<hr />


==Architecture Overview==
==Architecture Overview==

Revision as of 07:03, 19 February 2010

Development > Overview

Focus areas

Development of MusicBrainz is currently focused in three different areas:

Picard
Search server
MusicBrainz web server

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][1]]. Source code: https://launchpad.net/picard (bzr branch lp:picard) Bug tracker: http://bugs.musicbrainz.org/

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. Source code: http://svn.musicbrainz.org/search_server/trunk/ (svn co http://svn.musicbrainz.org/search_server/trunk/ search_server) Bug tracker: http://jira.musicbrainz.org/browse/SEARCH

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 the much of the server code using the Catalyst web framework and Template Toolkit.

Current maintainers: Oliver Charles, [[Kuno Woudt][2]]. Source code: http://git.musicbrainz.org/ (git clone git://git.musicbrainz.org/musicbrainz-server/core.git mb_server) Bug tracker: http://jira.musicbrainz.org/browse/MBS

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.



Architecture Overview

The following diagram briefly illustrates the different components of the MusicBrainz service: MBComponents.png
How the MusicBrainz components are related to each other

MusicBrainz Web Server

Starting with probably the most familiar part, MusicBrainz has a web site. You are reading one of its pages right now, of course. 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 (right) which then accesses the Database as appropriate, and returns a response to your browser (usually a web page showing the requested information).

Machine interaction (RDF/XML Webservices)

The MusicBrainz server also provides a (machine-readable) RDF interface. RDF is an XML-based language. By sending RDF queries to the server, a client can query existing information, and possibly enter new information to the database. The client constructs an RDF message, and sends it to the server, then the server parses and processes the message, accesses the database as necessary, and returns a response to the calling client.

Although any client can send RDF queries to the MusicBrainz server, the easiest and most reliable way to do so is by using the libmusicbrainz. Any program can use the libmusicbrainz to query the web service for information. The library constructs the correct RDF query, sends it to the server, receives the server's response, and finally returns the data to the calling program. The program does not have to implement the mechanics of RDF or know about the RDF web service internals.

Whilst most client applications (e.g. media players) will probably use only the RDF interface (via libmusicbrainz), sometimes it is useful to also use the web interface at the same time. This is the approach taken by both the Classic Tagger and the CD Lookup Tool. The current workflow is as follows: The Classic Tagger will read a digital audio file, generate a TRM signature (using libmusicbrainz), look up that signature on the server (using libmusicbrainz) and show the results to the user. Then, if the user chooses to lookup the file, the tagger points its embedded web browser component to the MusicBrainz web site, where the user is assistet in finding the matching Track in the Database. Finally when the user selects the track, the tagger associates the TRM ID with the selected track (using libmusicbrainz, again).

The new Picard Tagger uses the same steps to associate fingerprints with digital audio files, but uses the libtunepimp library, and the new fingerprinting technology from MusicDNS to associate PUID to tracks.