Container Format – While the spec does allow for a ZIP archive container, it is fairly restrictive in its use, particularly with regard to the ZIP item name, which limits the ability of a producer to include additional payloads in the ZIP archive. Why would you not allow use of the Open Packaging Conventions ZIP-based container format (now an ISO standard) to hold these documents and extract the markup part. It also has the advantage of specifying the pack:// URI scheme for addressing parts within the ZIP container (allowing you to only download the AMF markup out of the OPC container without having to download textures and the like. Have you considered relaxing the container format to allow for this form of ZIP container? Aside from this, the ZIP format itself could use additional specification. The format allows for informative ZIP item headers in addition to the central archive at the end of the file. When it comes to streaming scenarios for large files, it would be helpful to recommend that the ZIP items each have appropriate header information to assist streaming consumers. Personally, I believe it would be advantageous to support only an OPC container, which encapsulates all of the details for interacting with ZIP under the onus of another standard that is responsible for monitoring details of the underlying ZIP archive format.
I am open to suggestions here regarding container format. Our goal was to keep it simple and familiar. Anyone can zip an AMF file using a variety of free utilities and free libraries. I am not sure we need to have an expanded capability here yet – implementers already have plenty to contend with. But we could consider extending the container format if you think it would be worth the added complexity.
--hod
--
You received this message because you are subscribed to the Google Groups "STL 2.0" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/stl2/-/QVL7ofCbNUQJ.
To post to this group, send email to st...@googlegroups.com.
To unsubscribe from this group, send email to
stl2+uns...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/stl2?hl=en.
I am open to suggestions here regarding container format. Our goal was to keep it simple and familiar. Anyone can zip an AMF file using a variety of free utilities and free libraries. I am not sure we need to have an expanded capability here yet – implementers already have plenty to contend with. But we could consider extending the container format if you think it would be worth the added complexity.
I'd opt for leaving out the compression altogether and leave it to the
interchanger. For Unix systems it'll typically be ".amf.gz" or ".amf.Z" or
whatever is wanted. Its very easy for such systems to stream the data since
its basicly just one compressed data stream.
The usage of `zip' is only sensible if we insist on using multiple files
together in one archive. It also does't allow for streaming though since the
complete zip needs to be present when we start extracting files from it, even
if its just the main file. This limits streamability.
I'm not a fan of multiple file inclusion since all required data can be
inlined anyway. It also prevents zips inside zips when its included into
another XML stream/document. Finally it also ensures the data is there in one
piece and is allways one complete snapshot. (Think of AMF files with missing
texture files or referring to missing sub-AMF files).
Streamability is not an issue: AMF files can’t be streamed anyway because they are non-linear - you need the last vertex information before you can print anything.
The reason for including compression in the format is that it would be important for producer to produce a compressed file directly, rather than produce a non-compressed file and then compress it later. Otherwise, the intermediate file could be Gigabytes.
--hod
Hod Lipson
Associate Prof. of Mechanical & Aerospace Engineering and Computing & Information Science
Cornell University, 242 Upson Hall, Ithaca NY 14853, USA
Office: (607) 255 1686 Lab: (607) 254 8940 Fax: (607) 255 1222
Email: Hod.L...@cornell.edu
Web: http://www.mae.cornell.edu/lipson
Administrative Assistant: Craig Ryan cd...@cornell.edu, (607) 255-6981, Upson 258
--
You received this message because you are subscribed to the Google Groups "STL 2.0" group.
To view this discussion on the web visit https://groups.google.com/d/msg/stl2/-/mluTzHVWt-IJ.
Never the less, if you think of pipelining rather than streaming then things start making more sense. Consider the Linux approach of having small programs that do small tasks being able to work together using a pipeline. If you think of the standard this way then compression can be left out of the standard. The standard will produce the text stream. The stream can then be written to a pipeline input rather than an actual file and the pipeline output will be compressed using a method of choice. Decoupling has several advantages:
1. Keeps the standard simple and dedicated to represent the object as text
2. Leaves compression preferences to the user
3. Lets every program do best what it does best without replication of effort. And AMF coders should not worry about compression implementation.