Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Asset Management for JVM Applications

Asset Management for JVM Applications

Module 1 student lightning talk for Computer Science 580 at Allegheny College.

Hawk Weisman

February 20, 2015
Tweet

More Decks by Hawk Weisman

Other Decks in Programming

Transcript

  1. The Problem: Asset Management Application software has to manage a

    diverse range of assets Graphics Sound Natives
  2. The Problem: Asset Management Application software has to manage a

    diverse range of assets Graphics Sound Natives Challenges
  3. The Problem: Asset Management Application software has to manage a

    diverse range of assets Graphics Sound Natives Challenges Consistency Assets stored in archives (zip/jar) Platform differences
  4. The Problem: Asset Management Application software has to manage a

    diverse range of assets Graphics Sound Natives Challenges Consistency Assets stored in archives (zip/jar) Platform differences Modularity Patches from original developer: ‘expansions’ Patches from third parties: ‘modifications’
  5. The Problem: Asset Management Application software has to manage a

    diverse range of assets Graphics Sound Natives Challenges Consistency Assets stored in archives (zip/jar) Platform differences Modularity Patches from original developer: ‘expansions’ Patches from third parties: ‘modifications’ Security
  6. The Solution: The Virtual File System Idea Construct a virtual

    file system that fuses multiple directories into a new file system tree.
  7. The Solution: The Virtual File System Idea Construct a virtual

    file system that fuses multiple directories into a new file system tree. Security Disallow reads/writes outside of VFS root (/)
  8. The Solution: The Virtual File System Idea Construct a virtual

    file system that fuses multiple directories into a new file system tree. Security Disallow reads/writes outside of VFS root (/) Modularity Patches can be ‘spliced in’ by overwriting existing files Overwriting controlled through a load order policy Compatibility Archives mounted as directories Platforms with multiple content roots (i.e. Android) fused into one directory tree VFS handles OS or platform-specific details
  9. Example: Before Melding assets/ textures/ a.png b.png sounds/ 1.ogg 2.ogg

    maps/ A.map B.map patchA.jar textures/ c.png d.png sounds/ 3.ogg patchB.jar textures/ c.png maps/ A.map
  10. Previous Work UnionFS http://unionfs.filesystems.org Kernel-level extension Provides a union mount

    for POSIX devices Multiple open-source implementations C Pathway Resource Manager https://github.com/MeteorCode/Pathway Component of the Pathway game engine Implemented by Hawk Weisman and Max Clive at MeteorCode Labs Scala/Java
  11. Proposal Expand Pathway resource manager to a standalone library Improve

    core algorithm and architecture Use Java Security API to disallow writes outside of virtual file system Extend functionality to handle additional platforms, media types, natives Add idiomatic Scala functional API
  12. Proposal Expand Pathway resource manager to a standalone library Improve

    core algorithm and architecture Use Java Security API to disallow writes outside of virtual file system Extend functionality to handle additional platforms, media types, natives Add idiomatic Scala functional API Evaluation Integration testing with edge cases Testing with ‘malicious’ code to ensure security Release as open-source library and collect user feedback