As part of my research, I’m developing a system for media archiving with features that makes it a media information management. I figured out a nice acronym for this system: Yet Another System for Multimedia Information Management – YASMIM. The reason why it is “Yet Another System” is because there are several multimedia archiving systems out there and I’m going to create one more (I’m so brave! :P). It is not just a multimedia archiving system, but also a system to organize all information possibly related to the content of the media.
This system has 3 personal goals:
demonstrate my scientific contributions to the field of multimedia systems;
update my expertise on enterprise systems and manipulation of large datasets to get ready to the market again; and
According to my plans, I’m going to finish my PhD in October, 2010. I’m writing the thesis right now and it is all about the YASMIM system. it’s planned to support several kinds of media, including images, videos, audios, and 3D models. The main differentials are the possibility to segment and annotate all these kinds of media within only one integrated system and provide these features through a web service interface, in addition to the conventional web interface. This system is open source, but I can only make it fully available after my thesis defense. However, I have published an initial (but compilable) source on GitHub. If you wish, you can help me to develop it and we can figure out together many other innovative aspects.
Why did I chose JEE6 and JavaFX? The first reason is that I’m supposed to get into the market soon and I have to update my knowledge of enterprise systems, which was what I used to work before the PhD. But of course, I cannot put in the thesis this reason. Better to find reasonable technical reasons. So, the technical reasons to choose JEE6 were:
- the architecture allows the expansion of available resources without redesigning the code;
- support for multiple user sessions;
- support for authentication and authorization and I just have to worry about the content sensitiveness;
- totally based on POJO, so I can keep the code as simple as possible while focusing on the algorithm part; and
- the support for web services is native and implemented by Java annotations.
The technical reasons to choose JavaFX as the client technology were:
- vectorial user interface rendering;
- multi-platform, including mobile devices; and
- good support for media playback.
An alternative platform to implement this system would be Adobe Flash. However, a basic technical problem prevented me to choose this platform: I use a Linux 64 bits operating system and it doesn’t work appropriately on it. Thus, besides having a bigger number of machines supporting Flash, some platforms do not support it well. Considering JavaFX, most platforms support it well, however, less machines have it installed. So, my decision was in favor of more compatibility.
If you are interested in this kind of application, not only for multimedia processing, but also to learn about Enterprise Java and JavaFX, be my guest and get involved on http://github.com/htmfilho/Yasmim.