OGCE Project Overview


Published on

Overview of the OGCE project from e-Science 2008

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

OGCE Project Overview

  1. 1. OGCE Overview: Services, Gadgets, and Tags <ul><li>Marlon Pierce, Suresh Marru, Gregor von Laszewski, Mary Thomas, Maytal Dahan, Gopi Kandaswamy, Rion Dooley, and Wenjun Wu </li></ul>
  2. 2. Links for More Information <ul><li>Website: http://www.collab-ogce.org </li></ul><ul><li>News/RSS/Blog: http://collab-ogce.blogspot.com </li></ul><ul><li>Email: [email_address] </li></ul><ul><li>SVN Code Repository: http://ogce.svn.sourceforge.net/viewvc/ogce/ </li></ul><ul><ul><li>And get tar.gz’s </li></ul></ul><ul><li>Source Forge: http://sourceforge.net/projects/ogce </li></ul>
  3. 3. Services, Workflow, GTLAB, Cyberaide, and Gadget container are part of an emerging stack Project Description Status Grid Portal Packaged, one step installation of Grid portlets into Tomcat+Gridsphere Stable, V2.4 for SC08 Axis Services One step install of Resource Discovery and Prediction Services. More services to come. Dev. Release for SC08. Workflow Suite Support for scientific workflows, based on LEAD tools. Suresh will describe next. Dev. Release for E-Science GTLAB JSF Tag Libraries for building Grid portlets and gadgets Dev. Release for SC08 JavaScript COG (Cyberaide) JavaScript libraries for building Grid gateways. Dev. Preview for SC08 Gadget Container Open Social Inspired container for iGoogle gadget Dev. Preview for SC08 Incubator projects Pylons portals, metascheduling services, bio-gadgets, etc. SVN if you dare
  4. 4. OGCE and Gateways <ul><li>We develop and package software for use by Gateways. </li></ul><ul><li>A lot of this comes from active Gateways. </li></ul><ul><ul><li>GPIR: TeraGrid User Portal </li></ul></ul><ul><ul><li>Workflow tools: LEAD </li></ul></ul><ul><ul><li>Resource Discovery Service, File Browser Applet: TGUPGridChem </li></ul></ul>Gateways OGCE Software
  5. 5. GPIR for Facebook, iGoogle <ul><li>GPIR: GridPort Information Repository, stores dynamic and static resource information for VOs </li></ul><ul><li>Facebook </li></ul><ul><ul><li>Mini TeraGrid system monitor and full size system monitor </li></ul></ul><ul><ul><li>Mini: http://apps.facebook.com/mini_tgsysmon/ </li></ul></ul><ul><ul><li>Full Size: http://apps.facebook.com/tgsysmon/ </li></ul></ul><ul><li>Google </li></ul><ul><ul><li>Mini System monitor for iGoogle page </li></ul></ul><ul><ul><li>To add visit: </li></ul></ul><ul><ul><li>http://www.google.com/ig/adde?moduleurl=http://iola.tacc.utexas.edu:22080/gpir-app/minigpir.xml&nocache=1&source=imag </li></ul></ul>GPIR Facebook App
  6. 6. Open Life Science Gateway Bio-gadgets Job Submission History gadget Blast gadget ClustalW gadget
  7. 7. OGCE Portal
  8. 8. Components for Science Portals <ul><li>OGCE is founded on the principal that portals should be built out of reusable parts. </li></ul><ul><li>Key standard in our first phase: the JSR 168 portlet specification. </li></ul><ul><li>Portlets can run in multiple containers </li></ul><ul><ul><li>uPortal, Sakai, GridSphere, LifeRay, etc. </li></ul></ul><ul><li>Allows us to build Grid specific components and deploy along side other goodies: Sakai collaboration tools, contributed portlets, etc. </li></ul><ul><li>Future: Open Social compliant Google Gadgets </li></ul>
  9. 9. Downloading and Installing OGCE <ul><li>Portal installation is described in greater detail later in the tutorial. </li></ul><ul><li>Key point for current purposes: you can have a basic portal up and running in a few minutes. </li></ul><ul><li>Installation consists of </li></ul><ul><ul><li>Updating properties in pom.xml to match your Grid. </li></ul></ul><ul><ul><li>Running “mvn clean install” </li></ul></ul><ul><ul><li>That’s it </li></ul></ul><ul><li>We’ll now look at some features. </li></ul>
  10. 10. OGCE GPIR portlet can interoperate with TeraGrid and your own GPIR services.
  11. 11. Manage TeraGrid MyProxy credentials with the OGCE ProxyManager portlets.
  12. 12. OGCE file management client portlets interact with TeraGrid GridFTP servers.
  13. 13. General purpose batch and interactive job submission to GRAM, WS-GRAM is supported.
  14. 14. Dashboard Portlet The dashboard portlet allows users to track jobs on the selected resource. The user can view either his own set of jobs or get information on all submitted jobs.
  15. 16. Queue forecasting portlets work with the NWS QBETS to predict wait times and deadlines.
  16. 17. PURSe portlets manage user requests for portal accounts and Grid credentials.
  17. 18. Condor and Condor-G
  18. 19. OGCE IFrame Portlet can be used to integrate external sites.
  19. 20. Under the Hood: Building Components <ul><li>Portlets can be built with our Apache Velocity bridge. </li></ul><ul><ul><li>“ Template” or “steal this code” approach. </li></ul></ul><ul><li>OGCE portlets use the Java COG Abstraction Layer to access Grid services. </li></ul><ul><ul><li>Provides a buffer over different Grid toolkits and versions. </li></ul></ul><ul><ul><li>Provides ability to compose graph-based workflows. </li></ul></ul><ul><ul><li>Tutorial in itself </li></ul></ul><ul><li>We have also developed Grid Tag Libraries and Beans (GTLAB) to simplify this process. </li></ul>
  20. 21. Some OGCE Services <ul><li>New things available for download </li></ul>
  21. 22. Resource Discovery Service <ul><li>Extracted from the TeraGrid User Portal </li></ul><ul><ul><li>Contributed by Rion Dooley </li></ul></ul><ul><li>Axis2 Web service </li></ul><ul><li>Integrates information from INCA, GPIR services. </li></ul><ul><ul><li>What machines are in my Grid^H^H^H^H Cloud? </li></ul></ul><ul><ul><li>What are the service names? </li></ul></ul><ul><ul><li>Which ones are actually running? </li></ul></ul><ul><li>Works with TeraGrid deployed services, but you can use it with your own information service installations. </li></ul>
  22. 23. Resource Prediction Service (RPS) <ul><li>Predicts an optimal set of resources for running scientific applications </li></ul><ul><ul><li>Predicts a set of resources on which the sum of data transfer time, queue wait time and compute time for the application will be minimum </li></ul></ul><ul><ul><li>Data transfer time: Uses input data size and NWS info </li></ul></ul><ul><ul><li>Queue wait time: Uses QBETS info </li></ul></ul><ul><ul><li>Compute time: Uses application performance info </li></ul></ul><ul><li>Axis2 web service with a MySQL backend </li></ul><ul><li>RPS is a subset of the Fault Tolerance and Recovery service used in LEAD and VGrADS </li></ul>
  23. 24. Packaging Services <ul><li>Everything builds with one command </li></ul><ul><ul><li>mvn clean install </li></ul></ul><ul><li>We use Apache Maven 2 for builds. </li></ul><ul><ul><li>Structured, modular builds and consistent layouts </li></ul></ul><ul><li>Build a single module: </li></ul><ul><ul><li>mvn clean install –f somemod/pom.xml </li></ul></ul><ul><li>We include Apache Tomcat in the download, so all you need is Java and MySQL. </li></ul><ul><li>Suitable also for the NMI build and test system. </li></ul><ul><li>Want the Javadoc? mvn javadoc:javadoc </li></ul>
  24. 25. Upcoming Services <ul><li>XMC-CAT metadata cataloging service with JSDL sample implementation. </li></ul><ul><ul><li>See also our demo on Wednesday. </li></ul></ul><ul><li>Swarm Web Service for mass job submission and management. </li></ul><ul><ul><li>See also Sangmi Pallickara’s talk Friday at 2:00 </li></ul></ul><ul><ul><li>http://escience2008.iu.edu/sessions/SWARM.shtml </li></ul></ul><ul><li>GPIR Web Service for information on your Grid. This is being repackaged; older packaged version (but same code) is already available. </li></ul><ul><li>Workflow suite services will be integrated in the future. </li></ul>
  25. 26. GTLAB Tag Libraries for building gadgets and portlets out of reusable parts.
  26. 27. User’s Browser JavaScript OGCE Gadget Container iGoogle, Facebook GTLAB Gadgets TeraGrid Services Other Services RPS, RDS, GPIR Services GTLAB’s Relationship to Other Components
  27. 28. MyProxy Example <h:form id=&quot;form&quot;> <h:outputText value=&quot;Username:&quot;/> <h:inputText value=&quot;#{resource.username}&quot; required=&quot;true&quot;/> <h:outputText value=&quot;Password: &quot;/> <h:inputSecret value=&quot;#{resource.password}&quot; required=&quot;true&quot;/> <h:outputText value=&quot;MyProxy Server: &quot;/> <h:inputText value=&quot;#{resource.myproxyHostname}&quot; required=&quot;true&quot;/> <o:submit id=&quot;submit&quot; value=&quot;Submit&quot; binding=&quot;#{builder.body}&quot; action=&quot;#{builder.junkAction}&quot; > <o:multitask id=&quot;multi&quot; persistent=&quot;true&quot; taskname=&quot;#{resource.taskname}&quot;> <o:myproxy id=&quot;mypr&quot; hostname=&quot;#{resource.myproxyHostname}&quot; lifetime=&quot;2&quot; password=&quot;#{resource.password}&quot; port=&quot;7512&quot; username=&quot;#{resource.username}&quot;/> </o:multitask> </o:submit> </h:form>
  28. 29. Executing Multiple Task <o:submit id=&quot;submit&quot; value=&quot;Submit&quot; binding=&quot;#{builder.body}&quot; action=&quot;#{builder.junkAction}&quot; > <o:multitask id=&quot;multi&quot; persistent=&quot;true&quot; taskname=&quot;#{resource.taskname}&quot;> < o:jobsubmit id=&quot;js&quot; myfaces=&quot;true&quot; arguments=&quot;#{resource.arguments}&quot; executable=&quot;#{resource.executable}&quot; hostname=&quot;#{resource.hostname}&quot; provider=&quot;#{resource.provider}&quot; stdout=&quot;#{resource.stdout}&quot;/> < o:filetransfer id=&quot;ft&quot; myfaces=&quot;true&quot; from=&quot;#{resource.from}&quot; to=&quot;#{resource.to}&quot; /> <o:dependency id=&quot;dep&quot; task=&quot;ft&quot; dependsOn=&quot;js&quot;/> </o:multitask> </o:submit>
  29. 30. RR RPS Client with GTLAB <o:submit id=&quot;submit&quot; value=&quot;Submit&quot; binding=&quot;#{builder.body}&quot; action=&quot;#{builder.junkAction}&quot;> <o:multitask id=&quot;multi&quot; persistent=&quot;true&quot; taskname=&quot;#{resources.taskname”> <o:rpsOptimal resource=&quot;task1-resources&quot; id=&quot;rpsoptimal-exec&quot; myfaces=&quot;true&quot;/> </o:multitask> </o:submit>
  30. 31. Example with Dependency <o:submit id=&quot;submit” …> <o:multitask id=&quot;multi” …> <o:rpsAddModel resource=&quot;task1-resources&quot; id=&quot;rpsAddModel-exec&quot; myfaces=&quot;true&quot;/> <o:rpsManager resource=&quot;task1-resources&quot; id=&quot;rpsManager-exec&quot; myfaces=&quot;true&quot;/> <o:dependency id=&quot;deps-rpsstuff” task=&quot;rpsManager-exec&quot; dependsOn=&quot;rpsAddModel-exec&quot;/> </o:multitask> </o:submit>
  31. 32. GTLAB Features <ul><li>Extends Java Server Faces. </li></ul><ul><ul><li>Tag components wrap major COG Abstraction Layer features </li></ul></ul><ul><ul><li>And Web Service clients, GridShib, etc. </li></ul></ul><ul><ul><li>Supports tag inter-dependencies. </li></ul></ul><ul><li>Allows you to do standalone development. </li></ul><ul><li>Use JSF portlet bridge to convert into portlets </li></ul><ul><ul><ul><li>No new coding, just add/modify XML config files and jars. </li></ul></ul></ul><ul><li>Or forget about portlets and </li></ul><ul><ul><li>Convert into Google Gadgets </li></ul></ul><ul><ul><li>Develop as a Facebook application </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
  32. 33. Installing GTLAB <ul><li>Download the release code from www.collab-ogce.org or check out from SVN: </li></ul><ul><ul><li>svn checkout https://ogce.svn.sourceforge.net/svnroot/ogce/GTLAB </li></ul></ul><ul><ul><li>SourceForge also supports tar.gz downloads </li></ul></ul><ul><ul><li>Tagged release in http://ogce.svn.sourceforge.net/viewvc/ogce/tags/ </li></ul></ul><ul><li>Run “mvn clean install” in GTLAB directory. </li></ul><ul><ul><li>Download includes a web server. </li></ul></ul><ul><ul><li>Start with “./startup.sh”, go to http://localhost:8080/GTLAB </li></ul></ul>
  33. 34. What’s New with GTLAB? <ul><li>Completely revised dependency graph processing. </li></ul><ul><ul><li>Removed dependence on COG graph processing (still use the COG) </li></ul></ul><ul><ul><li>We can now support graphs of any tag you care to write. </li></ul></ul><ul><ul><li>Only support pipelines currently, not full DAGs </li></ul></ul><ul><li>Redesigned to simplify writing new tags. </li></ul><ul><ul><li>Extensive use of factories. </li></ul></ul><ul><ul><li>You no longer have to change core code to add a tag </li></ul></ul><ul><li>Simplified process of creating new tags </li></ul><ul><ul><li>4 Java files and 3 XML config files </li></ul></ul><ul><ul><li>Now can be done in one (mvn) step </li></ul></ul><ul><li>Many new tags </li></ul>
  34. 35. Levels of Abstraction in GTLAB code <ul><li>Note JSF is compatible with JSP, so you can mix and match. </li></ul><ul><li>And you can embed JavaScript </li></ul><ul><ul><li>YUI, Scriptaculous user interface goodies. </li></ul></ul><ul><ul><li>Google and Facebook APIs. </li></ul></ul>You can use prepackaged gadgets/portlets. You can develop new applications using existing tag libraries. You can make new tags for your services You can hack or steal the code
  35. 36. Tag Description MyProxy Gets a proxy credential (COG) JobSubmit Runs remote commands (COG) FileOperation Create, delete, list remote files and dirs (COG) FileTransfer GridFTP downloads, 3 rd party transfers (COG) XSubmissionOutput Format outputs of job and file operations ResourceDiscovery Clients for the RDS ResourcePrediction Clients for the RPS MyCommunityProxy Get and decorate TG Community credentials with Grid Shib Community Log Log use of TG Community credentials
  36. 37. These will work as gadgets, portlets, or standalone applications GTLAB Example Description MyProxyExample Get a credential and store in OGCE global proxy store. JobSubmitExamples Various examples showing how to submit a grid job and get output. Dashboard Examples Runs showq on Big Red, Cobalt, and Mercury and formats output. DirectoryBrowser Displays and downloads files on a remote host via GridFTP MultipleTaskExample Shows how to couple file transfers, operations, and
  37. 38. GTLAB Gadgets Code Base GTLAB Portlets Code Base Tomcat Web Server Tomcat Web Server + Portlet Container iGoogle Client Aggregator Compile and deploy into server Decorate with bridge and container jars, xml config files. GTLAB gadgets can also run as portlets with no code changes by using the JSF portlet bridge.
  38. 39. Making GTLAB Google Gadgets <ul><li>A Gadget is a standalone application that is integrated into your personal iGoogle display. </li></ul><ul><ul><li>They can run on your Web server. </li></ul></ul><ul><ul><li>You can use SSL/HTTPS </li></ul></ul><ul><li>Google Gadgets have two versions </li></ul><ul><ul><li>http : these use Google’s JavaScript APIs </li></ul></ul><ul><ul><li>url : these wrap external applications with IFrames. </li></ul></ul><ul><li>Limitations: </li></ul><ul><ul><li>Not much real estate (but location, location, location) </li></ul></ul><ul><ul><li>Cookies manage state on gadgets from the same server but we need a way to integrate multiple independent servers. </li></ul></ul>
  39. 40. Example Gadget Config File <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?> <Module> <ModulePrefs title=&quot;MyProxy Gadget Example&quot; scrolling=&quot;true&quot; height=&quot;500&quot;/> <Content type=&quot;url&quot; href=&quot;http://…/:8080/GTLAB/examples/MyProxyExample.jsf&quot;> </Content> </Module> Save this as MyProxy.xml and place in a Web accessible place.
  40. 41. Other Gadgets Providers Tomcat + GTLAB Gadgets Grid and Web Services (TeraGrid, OSG, etc) Other Gadgets Providers Social Network Services (Orkut, LinkedIn,etc) RSS Feed, Cloud, etc Services Gadget containers aggregate content from multiple providers. Content is aggregated on the client by the user. Nearly any web application can be a simple gadget (as Iframes)
  41. 42. Click “Add stuff” and then “Add feed or gadget”. Type the URL of your gadget.
  42. 43. GTLAB Applications as Google Gadgets: MOAB dashboard, remote directory browser, and proxy management.
  43. 44. Making GTLAB Gadgets into Portlets <ul><li>Do all development in jsf_standalone. </li></ul><ul><li>When you are ready to convert: </li></ul><ul><ul><li>cd GTLAB/transition </li></ul></ul><ul><ul><li>mvn clean process-resources </li></ul></ul><ul><ul><li>cd GTLAB/portlets </li></ul></ul><ul><ul><li>mvn clean install </li></ul></ul><ul><li>You will need to manually edit portlet.xml, group.xml, and layout.xml in GTLAB/portlet/src/main/webapp/WEB-INF/ </li></ul><ul><li>That’s it. </li></ul>
  44. 45. Tomcat + Portlets and Container Grid and Web Services (TeraGrid, OSG, etc) Grid and Web Services (TeraGrid, OSG, etc) Grid and Web Services (TeraGrid, OSG, etc) HTML/HTTP SOAP/HTTP Common science gateway architecture. Aggregation is in the portlet container. Users have limited selections of components.
  45. 46. Various GTLAB applications deployed as portlets: Remote directory browsing, proxy management, and LoadLeveler queues.
  46. 47. What’s next for GTLAB? <ul><li>OpenID and RSS client support </li></ul><ul><li>Many other client libraries </li></ul><ul><ul><li>Google, Facebook, Amazon </li></ul></ul><ul><li>Support for more complicated graphs </li></ul><ul><li>JavaScript/AJAX actions as well as HTML FORM actions. </li></ul><ul><li>But really, we’re looking for interested developers and users. </li></ul>