User:Kuno/Development Overview: Difference between revisions
Ianmcorvidae (talk | contribs) m (Ianmcorvidae moved page User:Kuno/development overview to User:Kuno/Development Overview) |
|||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<small>[[Development]] > Overview</small> |
<small>[[Development]] > Overview</small> |
||
⚫ | |||
==Focus areas== |
|||
⚫ | |||
⚫ | |||
(the above picture should be embedded, but that doesn't seem to work for external images --warp). |
|||
⚫ | |||
Development of MusicBrainz is currently focused in three different areas: |
|||
⚫ | |||
* Picard |
|||
* Search server |
|||
⚫ | |||
* MusicBrainz web server |
|||
⚫ | |||
⚫ | |||
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 == |
== Picard == |
||
Line 13: | Line 28: | ||
MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger. |
MusicBrainz Picard is a cross-platform (Linux/Mac OS X/Windows) application written in Python and is the official MusicBrainz tagger. |
||
* Current maintainer: [[ |
* Current maintainer: [[User:OutsideContext|Philipp Wolfer]]. |
||
⚫ | |||
* Bug tracker: http://bugs.musicbrainz.org/ |
* Bug tracker: http://bugs.musicbrainz.org/ |
||
⚫ | |||
bzr branch lp:picard |
|||
Please see http://wiki.musicbrainz.org/Picard_Development for more information on picard development. |
Please see http://wiki.musicbrainz.org/Picard_Development for more information on picard development. |
||
Line 21: | Line 37: | ||
== Search server == |
== 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 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. |
* Current maintainers: Paul Taylor, [[User:Murdos|Aurélien Mino]]. |
||
⚫ | |||
* Bug tracker: http://jira.musicbrainz.org/browse/SEARCH |
* Bug tracker: http://jira.musicbrainz.org/browse/SEARCH |
||
⚫ | |||
Please see [[User:kuno/Search_server_setup_for_developers]] for instructions on setting up the server for development. |
|||
== MusicBrainz web server (next version) == |
== 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 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, [[ |
* Current maintainers: Oliver Charles, [[User:Kuno|Kuno Woudt]]. |
||
⚫ | |||
* Bug tracker: http://jira.musicbrainz.org/browse/MBS |
* Bug tracker: http://jira.musicbrainz.org/browse/MBS |
||
* Source code: http://git.musicbrainz.org/ |
|||
⚫ | |||
== MusicBrainz web server (current) == |
== MusicBrainz web server (current) == |
||
Line 40: | Line 59: | ||
* Current maintainers: Robert Kaye |
* Current maintainers: Robert Kaye |
||
* Source code: http://svn.musicbrainz.org/mb_server/branches/RELEASE_20090524-BRANCH/ |
* 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]]. |
For more information see [[MusicBrainz Server]]. |
||
Line 51: | Line 71: | ||
⚫ | |||
<hr /> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
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. |
|||
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. |
|||
⚫ |
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.
- 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