Abstract
The Earth Science community is tackling computational problems that tax our largest computational resources. The size of the resulting datasets has been increasing almost exponentially over the last decade. Analysis of this data requires a cross-section of tools to extract useful information. Several international teams are working in concert to generate and analyze this data. A growing number of tools operate through Web services, which are the currently accepted mechanism through which users initiate tasks on one computer and execute them at some remote location. This paper presents a new tool, KWATT, a C++ application that generates web services from Tcl, Python, and Ruby scripts automatically, with minimal user intervention. KWATT parses the scripts and extracts information about procedures and user-defined control statements, embedded as comments. KWATT creates all necessary C++ wrappers, along with the code stubs required by gSOAP, a C++ interface to the SOAP protocol. Initially conceived to translate VTK front-end Tcl scripts into Web Services, the architecture is sufficiently general to accommodate a wide range of input languages. We demonstrate this capability with Tcl, Python and Ruby. Clients receive images through a dedicated socket for efficiency.
Similar content being viewed by others
Notes
“Apec Cooperation for Earthquake Simulation,” http://www.quakes.uq.edu.au/ACES/.
“Web Services and Service-Oriented Architectures,” http://www.service-architecture.com/.
“Teragrid,” http://www.teragrid.org/.
“Math, Statistics, and Computational Science, National Institute of Standards and Technology,” http://math.nist.gov/.
“GAMS, Guide to Available Mathematical Software,” http://gams.nist.gov/.
“Computational Geometry Software Libraries,” http://compgeom.cs.uiuc.edu/~jeffe/compgeom/software.html.
“Netlib Repository at UTK and ORNL,” http://www.netlib.org.
“Libgmail, Library to provide access to Gmail via Python.,” http://sourceforge.net/projects/libgmail/.
“Flickr Services, API Documentation.”
“Amazon Web Services,” http://www.amazon.com/gp/browse.html?node=3435361.
“XMethods, publicly available web services,” http://www.xmethods.com/ve2/Directory.po.
“WSDL File Generation for ASP.NET Web Services,” http://msdn2.microsoft.com/en-us/library/ms181855.aspx.
“Matlab to Python conversion,” http://sourceforge.net/projects/mat2py/.
“Call Matlab from Perl,” http://xtargets.com/snippets/posts/show/43.
“Matlab-ruby 2.0.1,” https://rubyforge.org/forum/forum.php?forum_id=21959.
“Vis5D Scripting,” http://www.ssec.wisc.edu/~billh/script52.html.
“Using Python with VisAD,” http://www.ssec.wisc.edu/~tomw/visadtutor/.
“VisIT Python Interface Manual,” https://wci.llnl.gov/codes/visit/manuals.html.
“Py-OpenDX, Python Bindings for OpenDX,” http://people.freebsd.org/~rhh/py-opendx/.
“OGRE 3D: Open source graphics engine,” http://www.ogre3d.org/.
“Ogre3d Python bindings,” http://sourceforge.net/projects/python-ogre/.
“Virtual Laboratory for Earth and Planetary Materials,” http://www.vlab.msi.umn.
“PWscf (Plane-Wave Self-Consistent Field),” http://www.pwscf.org/.
“Open Grid Services Architecture Data Access and Integration,” http://www.ogsadai.org.uk/.
Garrett JJ. Ajax: a new approach to web applications. http://www.adaptivepath.com/publications/essays/archives/000385.php.
“Semantic Web Services Initiative.”
“ALTOVA, Building Web Services in MapForce,” http://www.altova.com/features_webservices_mapforce.html.
Enunciate, articulate your web API,” http://enunciate.codehaus.org.
“VTK example repository, Index of /Examples/VisualizationAlgorithms/Tcl,” http://www.vtk.org/cgi-bin/viewcvs.cgi/Examples/VisualizationAlgorithms/Tcl/.
Barre S “VTK example Tcl code,” http://www.vtk.org/doc/nightly/html/c2_vtk_t_17.html.
Barre S “VTK example code, Class To Examples (3..B),” http://www.vtk.org/doc/release/5.0/html/c2_vtk_e_0.html#c2_vtk_e_section_A.
“OpenMP. The OpenMP specification for Parallel Programming,” http://www.openmp.org.
Fox K. “When the STL Isn’t Enough: Adding Perl to your C++ Applicaitons,” http://www.perl.org/tpc/1998/User_Applications/When%20the%20STL%20Isn't%20Enough/paper.html.
References
Charters SM, Holliman NS, Munro M (2004) Visualization on the grid: a web services approach. In: UK e-Science All Hands Meeting 2004
Erlebacher G, Yuen DA, Bollig EF et al (2007) A grid framework for visualization services in the Earth Sciences. J Pure Appl Geophys 163(11–12):2467–2483
Karki BB (2005) Remote visualization of elasticity datasets. Vis Geosci (in press)
Sayar A, Pierce M, Fox GC (2005) Developing GIS visualization web services for geophysical applications. In: ISPRS 2005 spatial data mining workshop, Ankara, Turkey
Yuen DA, Garbow ZA, Erlebacher G (2004) Remote data analysis, visualization and problem solving environment (PSE) based on wavelets in the geosciences. Vis Geosci 8:83–92
Yuen DA, Garbow ZA, Erlebacher G (2003) Web- and wavelet-based problem solving environment (PSE) for data analysis and visualization in the geosciences. In: Workshop on innovative solution in grid computing, Melbourne, Australia, June 2003
Yuen DA, Kadlec BJ, Bollig EF et al (2005) Clustering and visualization of earthquake data in a grid environment. Vis Geosci. http://springerlink.metapress.com/content/?mode=allwords&k=Clustering+Visualization+of+Earthquake+Data+in+a+Grid+Environment&sortorder=asc
Cohen REE (2005) High performance computing requirements for the computational solid earth sciences. Carnegie Institution of Washington, Washington, DC
Bollig EF, Jensen PA, Lyness MD et al (2007) VLAB: Web services, portlets, and workflows for enabling cyberinfrastructure in computational mineral physics. Phys Earth Planet Inter 163(1–4):333–346
Calleja M, Bruin R, Tucker MG et al (2005) Collaborative grid infrastructure for molecular simulations: the eMinerals minigrid as a prototype integrated compute and data grid. Mol Simul 31:303
Richardson L (2007) RESTful web services. O’Reilly, Sebastopol
Gannon D, Ananthakrishnan R, Krishnan S et al (2003) Grid web services and application factories. In: Grid computing: making the global structure a reality, Wiley series in communications networking and distributed systems. Wiley, London
Kandaswamy G, Fang L, Huang Y et al (2006) Building web services for scientific grid applications. IBM J Res Dev 50(2/3):249–260
Alameda J, Christie M, Fox G et al (2006) The open grid computing environments collaboration: portlets and services for science gateways. Concurr Pract Exp 19(6):921–942
Dougherty D, Robbins A (1997) Sed & Awk, 2nd edn. O’Reilly, Sebastopol
d Silva CRS, d Silveira PRC, Karki BB et al (2007) Virtual laboratory for planetary materials: system service architecture overview (Special issue: computational challenges). Phys Earth Planet Int 163:321–332
Bollig EF, Lyness M, D., G. Erlebacher et al (2007) WATT: a compiler for automated visualization service generation. In: Grid computing environments (GCE) workshop, 2007
Jensen PA, Bollig EF, Yuen DA et al (2006) Automatic generation of remote visualization tools with WATT. Eos Trans. AGU, Fall Meet. Suppl., Absract IN14A-06
Sayar A, Pierce M, Fox G (2006) Integrating AJAX approach into GIS visualization web services. In: AICT-ICIW ’06. International Conference on Internet and Web Applications and Services/Advanced International Conference, 2006, p 169
Wang H, Huang JZ, Qu Y et al (2004) Web services: problems and future directions. J Web Semant 1(3):309–320
Magdalenic I, Vrdoljak B, Skocir Z (2006) Towards dynamic web service generation on demand. In: International Conference on Software in Telecommunications and Computer Networks, pp 276–280
Gao S, Chen D (2007) Applying web services technology in distributed visualization. Mach Learn Cybern 7:4075–4079
Itoh M, Tanaka Y (2005) Multispace information visualization framework for the intercomparison of data sets retrieved from web services. In: Special interest tracks and posters of the 14th international conference on World Wide Web, pp 970–971
Escalante LG, Castillo AB, Ocana LB (2005) Automatic generation and publication of web services for the access and integration of distributed data sources. In: Proceedings of the Sixth Mexican International Conference on Computer Science, pp 96–105
Bai X, Dong W, Tsai W-T et al (2005) WSDL-based automatic test case generation for Web services testing. In: Proceedings of the IEEE International Workshop, pp 207–212
Engelen RV (2004) Code generation techniques for developing light-weight XML web services for embedded devices. In: ACM SIGAPP SAC Conference
Schroeder W, Martin K, Lorensen B (2006) The visualization toolkit, an object-oriented approach to 3D graphics, 4th edn. Kitware, New York
Engelen RV, Gallivan AK (2002) The gSOAP toolkit for web services and peer-to-peer computing networks. In: 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid, p 128
He J, Yen I-L (2007) Adaptive user interface generation for web services. In: IEEE International Conference on e-Business Engineering, pp 536–539
Acknowledgments
The authors gratefully acknowledge National Science Foundation support through the ITR grant NSF0426867 and the remote visualization grant NSF-0345656.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Qu, Y., Bollig, E.F. & Erlebacher, G. KWATT: a toolkit for automatic web service generation. Vis Geosci 13, 59–69 (2008). https://doi.org/10.1007/s10069-008-0009-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10069-008-0009-8