User:Kuno/Development Overview: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
No edit summary
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<small>[[Development]] > Overview</small>
<small>[[Development]] > Overview</small>


==Architecture Overview==
==Focus areas==


The following diagram briefly illustrates the different components of the MusicBrainz service:<br />
Development of MusicBrainz is currently focused in three different areas:
http://www.frob.nl/tmp/architecture.overview.png<br/>''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).
; Picard
; Search server
; MusicBrainz web server


===MusicBrainz Web Server===
== Picard ==


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.
MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger.


===Human interaction (Web Browser)===
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/


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).
Please see http://wiki.musicbrainz.org/Picard_Development for more information on picard development.


===Machine interaction (XML Web Service)===
== 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.
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).
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


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.
== MusicBrainz web server (next version) ==


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


MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger.
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


* Current maintainer: [[User:OutsideContext|Philipp Wolfer]].
== MusicBrainz web server (current) ==
* 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.
The MusicBrainz web server currently used on musicbrainz.org is also written in perl, using Mason for templating.


== Search server ==
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/)


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.
For more information see [[MusicBrainz Server]].


* Current maintainers: Paul Taylor, [[User:Murdos|Aurélien Mino]].
* Bug tracker: http://jira.musicbrainz.org/browse/SEARCH
svn co <nowiki>http://svn.musicbrainz.org/search_server/trunk/</nowiki> search_server


Please see [[User:kuno/Search_server_setup_for_developers]] for instructions on setting up the server for development.
<hr />


== MusicBrainz web server (next version) ==
==Architecture Overview==


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.
The following diagram briefly illustrates the different components of the MusicBrainz service:
[[Image:MBComponents.png]]<br/>''How the MusicBrainz components are related to each other''


* Current maintainers: Oliver Charles, [[User:Kuno|Kuno Woudt]].
==MusicBrainz Web Server==
* 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) ==
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.


The MusicBrainz web server currently used on musicbrainz.org is also written in perl, using Mason for templating.
===Human interaction (Web Browser)===


* Current maintainers: Robert Kaye
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).
* Source code: http://svn.musicbrainz.org/mb_server/branches/RELEASE_20090524-BRANCH/
svn co <nowiki>http://svn.musicbrainz.org/mb_server/branches/RELEASE_20090524-BRANCH/</nowiki>


For more information see [[MusicBrainz Server]].
===Machine interaction (RDF/XML Webservices)===


== Other ==
The MusicBrainz server also provides a (machine-readable) RDF interface. [[RDF]] is an [[wikipedia:XML-based|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.


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...).
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.


* Bug tracker: http://jira.musicbrainz.org/browse/OTHER
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.


[[Category:To Be Reviewed]] [[Category:WikiDocs Page]] [[Category:Development]]
[[Category:To Be Reviewed]] [[Category:Development]]

Latest revision as of 23:47, 8 September 2012

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.

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.

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.

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.

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...).