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
- share my acquired knowledge with people interested in JEE6
(EJB3, JPA, JSF) server applications and JavaFX
desktop applications because the best way to learn is sharing and teaching.
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.
HTML5 would be a good front end as well. I did some tries with it and I liked the results.
ReplyDeleteSome people alerted me about the existence of Silverlight too. I was forcing myself to not believe that Silverlight exists. There are plenty of possibilities out there, but I hope HTML5 will be the one. On the other hand, some philosophical problems still have to be addressed (Ogg Theora x H.264). Thanks for the contribution. :)
ReplyDeleteHi Hildeberto,
ReplyDeleteinteresting post. Regarding security, which Java EE 6 authentication method you have used (for example JDBC Realm authentication)?
Before using Java EE 6 did you have evaluated other frameworks like Spring?
Thanks,
Antonio
Hi Antonio, I'm using JDBC Realm. It is easier than I was expecting. By the way, this is one of the posts that I'm gradually writing (I have a lot of standby posts being written in parallel). When they get mature, I press the "post" button. :)
ReplyDeleteI'm not using Spring this time because I wanna learn the JEE6 specification in this project.
Latest response for this post but this is a great idea !
ReplyDeletesee it (pt_br)
http://www.youtube.com/watch?v=wZOG9m5HmYI
Nice video! Thanks for sharing. :)
ReplyDeleteHi Hildeberto,
ReplyDeleteI have a question, how do I use the source code in eclipse or netbean IDE ?
Thanks,
Wahid
Hi Wahid,
ReplyDeletethat's a long question. I will take that and write a post about it soon. Please, come back by the end of February, beginning of march to check it out.
Thanks a lot!