Publish is a very vague word, especially considering there is an Alfresco add-in that will publish entire document sets to another server.
@lalli:
If you log in to Alfresco, and click on the details of the document, at the top of the details should be two links - View in Browser and Download Content. One of them serves the file up so you can see it in the browser (if you have the right plugins), the other forces the save/open in application response from your browser.
As for where the content actually is - it's in the alf_data directory as defined in your Alfresco configuration. However, it won't have the same name as what you uploaded it as - it'll have a globally unique name that Alfresco knows about, and has linked to the name you supplied when you uploaded the document.
If your application is webdav compliant, or understands CIFS (ie, Windows network drives), you can either access the document via webdav or a network drive.
@mdcl:
I think you're looking for the WCM module for Alfresco (Web Content Management). It implements an RMI service on the remote server, and allows you to push documents to that server. I went the dirty hack route, and have some perl that maps Alfresco Spaces to remote server + path tuples; it grabs all docs in the space via WebDAV and then pushes the downloaded documents to the appropriate remote server via rsync.