Organised by:
in collaboration with:



social media:


Accesso Utenti

IPAC, Caltech
Miscellaneous Information:

Abstract Reference: 30764
Identifier: O2.4
Presentation: Oral communication
Key Theme: 4 Long-term Management of Data Archives 

Next generation Firefly for web application

Wu Xiuqin, Roby William, Goldina Tatiana, Joliet Emmanuel, Ly Loi, Mi Wei, Cindy Wang, Zhang Lijun, Ciardi David, Dubois-Felsmann Gregory, 

Firefly is a web framework for astronomical data archive and visualization developed in the Infrared Processing and Analysis Center (IPAC). The development started with Spitzer Heritage Archive (SHA), and continued in WISE Image Archive, Planck Image Archive, and other web applications in the NASA/IPAC Infrared Science Archive (IRSA) applications. Back in 2008, we made the decision to use Java/GWT framework for web client side code. The decision has served us well in last eight years, enabling us to develop and deploy several data access applications in short time frame. Two years ago, IPAC started to develop the Science User Interface and Tools for the Large Synoptic Survey Telescope (LSST). Firefly must meet the needs of archive access and visualization for the 2021 LSST telescope and must serve astronomers beyond the year 2030. We need to take Firefly into the next generation, making it more flexible, stable, maintainable, and reliable. With the evolution of the web, advancement of JavaScript programming , all the web development frameworks based on JavaScript, we have a lot more choices in the web application development technology.

After much research and experiments, we decided to rewrite the client side code in JavaScript, adopting React/Redux framework. The work started in late 2015, and by end of July 2016 we could declare that we successfully ported the 150,000 lines Java code into JavaScript.

This talk will give a report on the decision making process, the challenges we faced, the new development process we adopted along the way, and the Firefly improvements we achieved by going to JavaScript.