Installing and Building GTLAB Marlon Pierce Indiana Univeristy.

Slides:



Advertisements
Similar presentations
Building Portals to access Grid Middleware National Technical University of Athens Konstantinos Dolkas, On behalf of Andreas Menychtas.
Advertisements

Open Grid Computing Environments Marlon Pierce (IU) & Gopi Kandaswamy (RENCI)
Developing Grid User Interface Components Portlets, gadgets, etc.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
A Blackboard Building Block™ Crash Course for Web Developers
Building and Testing OGCE Software on the NMI Build and Test Facility Marlon Pierce Indiana University.
Building Grid Portlets with GTLAB Mehmet A. Nacar and Marlon E. Pierce Community Grids Lab Indiana University.
OGCE Overview: Portals, Services, Workflows, Gadgets, and Tags Marlon Pierce (IU), Suresh Marru (IU), Gregor von Laszewski (RIT), Mary Thomas (SDSU), Nancy.
Ellucian Mobile: Don’t text and drive, kids!
Building Science Gateways Marlon Pierce Community Grids Laboratory Indiana University.
Open Grid Computing Environments Marlon Pierce, Suresh Marru, Gregor von Laszewski, Mary Thomas, Maytal Dahan, Gopi Kandaswamy, and Wenjun Wu.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Understanding and Managing WebSphere V5
1 Application Specific Module for P-GRADE Portal 2.7 Application Specific Module overview Akos Balasko MTA-SZTAKI LPDS
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
INTRODUCTION TO WEB DATABASE PROGRAMMING
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
GRAPPA Part of Active Notebook Science Portal project A “notebook” like GRAPPA consists of –Set of ordinary web pages, viewable from any browser –Editable.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Application Web Service Toolkit Geoffrey Fox, Marlon Pierce, Ozgur Balsoy Indiana University July
A Web 2.0 Portal for Teragrid Fugang Wang Gregor von Laszewski May 2009.
Future Grid Future Grid User Portal Marlon Pierce Indiana University.
Using the SAS® Information Delivery Portal
Towards a Javascript CoG Kit Gregor von Laszewski Fugang Wang Marlon Pierce Gerald Guo
Building the Portal. Choosing a Host Computer Select your host computer. o You will need a real IP address for some COG-based portlets o VPN also OK (?)
Guidelines for Homework 6. Getting Started Homework 6 requires that you complete Homework 5. –All of HW5 must run on the GridFarm. –HW6 may run elsewhere.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
OGCE Overview: Services, Gadgets, and Tags Marlon Pierce, Suresh Marru, Gregor von Laszewski, Mary Thomas, Maytal Dahan, Gopi Kandaswamy, Rion Dooley,
Grid Computing, B. Wilkinson, b.1 National Science Foundation Middleware Initiative (NMI) Started in 2001 initially over 3 years “to create and deploy.
Grids and Portals for VLAB Marlon Pierce Community Grids Lab Indiana University.
23:48:11Service Oriented Cyberinfrastructure Lab, Grid Portals Fugang Wang April 29
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
GEM Portal and SERVOGrid for Earthquake Science PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce Computer Science, Informatics, Physics.
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
Using Cyberaide JavaScript to develop Ajax based Grid Apps – A Tutorial for Grid App Developers Gregor von Laszewski Fugang Wang Jun 22, 2009.
Java Portals and Portlets Submitted By: Rashi Chopra CIS 764 Fall 2007 Rashi Chopra.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
1 Grid Portal for VN-Grid Cu Nguyen Phuong Ha. 2 Outline Some words about portals in principle Overview of OGCE GridPortlets.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
QuakeSim Project: Portals and Web Services for Geo-Sciences Marlon Pierce Indiana University
OGCE Components for Enhancing UltraScan Job Management. Suresh Marru,Raminder Singh, Marlon Pierce.
OGCE Overview: Services, Gadgets, and Tags Marlon Pierce, Suresh Marru, Gregor von Laszewski, Mary Thomas, Maytal Dahan, Gopi Kandaswamy, Rion Dooley,
The Open Grid Computing Environments Project Marlon Pierce Community Grids Laboratory Indiana University.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Some comments on Portals and Grid Computing Environments PTLIU Laboratory for Community Grids Geoffrey Fox, Marlon Pierce Computer Science, Informatics,
Biomedical and Bioscience Gateway to National Cyberinfrastructure John McGee Renaissance Computing Institute
Building Grid Portals with OGCE: Big Red Portal and GTLAB Mehmet A. Nacar, Jong Youl Choi, Marlon Pierce, Geoffrey Fox Community Grids Lab Indiana University.
Development of e-Science Application Portal on GAP WeiLong Ueng Academia Sinica Grid Computing
Open Grid Computing Environments Tutorial Marlon Pierce, Suresh Marru, Gopi Kandaswamy, Gregor von Laszewski, and Tom Scavo.
Grid Interoperability Update on GridFTP tests Gregor von Laszewski
Building Science Gateways Marlon Pierce Community Grids Laboratory Indiana University.
NBCR Summer Institute 2006 GridPortlets:Hands-on Installation and Development Jason Novotny
Application Web Service Toolkit Allow users to quickly add new applications GGF5 Edinburgh Geoffrey Fox, Marlon Pierce, Ozgur Balsoy Indiana University.
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Open Grid Computing Environment Summary
How to connect your DG to EDGeS? Zoltán Farkas, MTA SZTAKI
OGCE Short Summary Marlon Pierce Community Grids Lab
Writing Grid Portlets.
Shaowen Wang1, 2, Yan Liu1, 2, Nancy Wilkins-Diehr3, Stuart Martin4,5
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
GTLAB: Grid Tag Libraries Supporting Workflows within Science Gateways
…and web frameworks in general
OGCE Portal Software for Big Red and the TeraGrid
Open Grid Computing Environments
Presentation transcript:

Installing and Building GTLAB Marlon Pierce Indiana Univeristy

GTLAB and OGCE OGCE contains multiple sub-projects Portlet-based Grid portal (with GridSphere and Tomcat). Workflow suite (services and add-ins to the portal) Information Web services Gadget container Cyberaide JavaScript libraries GTLAB These are packaged with Maven and include everything you need except Java and (for some services) MySQL. We try to make things installable with minimal fuss. Consistent directory structures across projects Edit one config file (pom.xml) Run one command (mvn clean install) You may need to futz a little with MySQL

Overview and Examples

User’s Browser Portlet, Gadget Containers iGoogle, Facebook GTLAB Gadgets TeraGrid Services (GRAM, GridFTP, INCA) Google GData Services, Twitter Feeds, etc RPS, RDS, GPIR Services GTLAB’s Relationship to Other Components

Various GTLAB applications deployed as portlets: Remote directory browsing, proxy management, and LoadLeveler queues.

GTLAB Applications as Google Gadgets: MOAB dashboard, remote directory browser, and proxy management.

MyProxy Example <o:submit id="submit" value="Submit" binding="#{builder.body}" action="#{builder.junkAction}" > <o:myproxy id="mypr" hostname="#{resource.myproxyHostname}" lifetime="2" password="#{resource.password}" port="7512" username="#{resource.username}"/>

Executing Multiple Task <o:submit id="submit" value="Submit" binding="#{builder.body}" action="#{builder.junkAction}" > <o:multitask id="multi" persistent="true" taskname="#{resource.taskname}"> <o:jobsubmit id="js" myfaces="true" arguments="#{resource.arguments}" executable="#{resource.executable}" hostname="#{resource.hostname}" provider="#{resource.provider}" stdout="#{resource.stdout}"/> <o:filetransfer id="ft" myfaces="true" from="#{resource.from}" to="#{resource.to}" />

<o:submit id="submit" value="Submit" binding="#{builder.body}" action="#{builder.junkAction}"> <o:multitask id="multi" persistent="true" taskname="#{resources.taskname”> <o:rpsOptimal resource="task1-resources" id="rpsoptimal-exec" myfaces="true"/> Resource Prediction Service Client with GTLAB

Example with Dependency <o:rpsAddModel resource="task1-resources" id="rpsAddModel-exec" myfaces="true"/> <o:rpsManager resource="task1-resources" id="rpsManager-exec" myfaces="true"/> <o:dependency id="deps-rpsstuff” task="rpsManager-exec" dependsOn="rpsAddModel-exec"/>

More Detail: Available Tags and Features

GTLAB Features Extends Java Server Faces. o Tag components wrap major COG Abstraction Layer features o And Web Service clients, GridShib, etc. o Supports tag inter-dependencies. Allows you to do standalone development. Use JSF portlet bridge to convert into portlets  No new coding, just add/modify XML config files and jars.  Process is automated Or forget about portlets o Convert into Google Gadgets o Develop as a Facebook application o Etc.

Getting GTLAB See You can use your favorite SVN client to check out. svn co (latest) svn co tg09 (tagged) tg09 “Latest” will give you easy access to any updates “svn update” Best option if you want to actively develop and get fixes right away.

No SVN? Get the TAR SourceForge’s SVN/CVS viewer now provides a “Download GNU Tar” option. eforge.net/viewvc/ogc e/GTLAB/ for latest. eforge.net/viewvc/ogc e/GTLAB/ eforge.net/viewvc/ogc e/tags/GTLAB-tg09/ for tag eforge.net/viewvc/ogc e/tags/GTLAB-tg09/

Levels of Abstraction in GTLAB code 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 Note JSF is compatible with JSP, so you can mix and match. And you can embed JavaScript YUI, Scriptaculous user interface goodies. Google and Facebook APIs.

TagDescription MyProxyGets a proxy credential (COG) JobSubmitRuns remote commands (COG) FileOperationCreate, delete, list remote files and dirs (COG) FileTransferGridFTP downloads, 3 rd party transfers (COG) XSubmissionOutputFormat outputs of job and file operations ResourceDiscoveryClients for the RDS ResourcePredictionClients for the RPS MyCommunityProxyGet and decorate TG Community credentials with Grid Shib Community LogLog use of TG Community credentials

GTLAB ExampleDescription MyProxyExampleGet a credential and store in OGCE global proxy store. JobSubmitExamplesVarious examples showing how to submit a grid job and get output. Dashboard ExamplesRuns showq on Big Red, Cobalt, and Mercury and formats output. DirectoryBrowserDisplays and downloads files on a remote host via GridFTP MultipleTaskExampleShows how to couple file transfers, operations, and These will work as gadgets, portlets, or standalone applications

Gadgets and Portlets

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.

Making GTLAB Google Gadgets A Gadget is a standalone application that is integrated into your personal iGoogle display. They can run on your Web server. You can use SSL/HTTPS Google Gadgets have two versions http: these use Google’s JavaScript APIs url: these wrap external applications with Iframes. We currently support “url” gadgets.

Example Gadget Config File <ModulePrefs title="MyProxy Gadget Example" scrolling="true" height="500"/> <Content type="url" href=" Save this as MyProxy.xml and place in a Web accessible place.

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)

Click “Add stuff” and then “Add feed or gadget”. Type the URL of your gadget.

GTLAB Applications as Google Gadgets: MOAB dashboard, remote directory browser, and proxy management.

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.

Making GTLAB Gadgets into Portlets Do all development in jsf_standalone directory This is where your template tags will be placed When you are ready to convert: Download and build the OGCE portal cd GTLAB/transition mvn clean process-resources cd GTLAB/portlets mvn clean install You will need to make small edits to portlet.xml, group.xml, and layout.xml in GTLAB/portlet/src/main/webapp/WEB-INF/ That’s it.

Various GTLAB applications deployed as portlets: Remote directory browsing, proxy management, and LoadLeveler queues.

Getting Started with GTLAB

GTLAB Directory Structure

Build GTLAB Unpack or checkout code Cd GTLAB All commands are executed from here. Edit properties at the top of pom.xml. Change IP Change project.home if you unpack someplace besides $HOME. Run “mvn clean install” ${env.HOME}/GTLAB apache-tomcat ${project.home}/portal_deploy/${tomcat.version}/ ${env.HOME}/.globus/

Run Examples From GTLAB, start tomcat with./startup.sh. From GTLAB, stop Tomcat with./shutdown.sh Point browser to Start with MyProxy Example

Next Steps Play with examples. These are really bare bones. Make something interesting. Make a Google gadget. Mix and match tags in a pipeline to make a new application. Use the dependency tag. Note you can mix and match JSF and JSP if you are not familiar with JSF. Try making a new tag. Explained next.

Making New Tags and Examples

Making a New JSF Page from Tags I recommend starting from the examples. jsf_standalone/src/main/webapp/examples “Build” the examples with mvn –o clean install –f jsf_standalone/pom.xml The “-o” option is used to build offline. Will also avoid unnecessary Maven repository updates. The “-f” specifies only build this specific module. I recommend not futzing with the deployed versions under portal_deploy. A computer is a state machine. State must be reproducible.

Making a New Tag Run the following command from GTLAB: mvn clean process-resources -Dtag.name=test - Dprojectname=Test -f templateTag/pom.xml Add -Ddest.dir=/tmp for a dry run. Replace “test” with the name of your tag. Replace “Test” with the name for your Bean. This will make 4 files TestBean.java, TestTag.java, TestBeanFactory.java, UITest.java Edits also 3 config files gtlab-factory.xml, managed-beans.xml, components.xml This will compile but to implement something useful, you will need to edit the highlighted files.

Implementing a Tag The place to start is TestBean.java (or whatever you used for –Dprojectname=…). This includes several inherited methods that can be implemented. Most important is submit(). Use the try/catch block. This is where the action is. If you want to hook tags into chains, implement getOutput() and setInput(). Also take a look at the other beans.

Suggested Tags: A Wish List What can you do in your bean? Anything server-side Java can do. Some suggestions: Implement a tag client to a remote Web service. Amazon has some interesting ones…. Implement an RSS/Atom feed client to Twitter, your blog, Facebook, etc. Combine the feeds as a mash-up. Connect to a database with JDBC. Implement a JMS publisher or subscriber. Use Google Java APIs to interact with Blogger, Calendar, and YouTube. Try interacting with Facebook.

INCA Tags: An Extended Example

Example: Make an INCA Dashboard INCA is used as the testing framework for the TeraGrid. You can get the latest INCA test results from the URL v1/portal_summary v1/portal_summary See Sangmi’s notes at of-inca-service.html of-inca-service.html You’ll get back some fine looking XML. Let’s make a little dashboard out of this.

First, Create a New, Empty Tag mvn clean process-resources \ -Dtag.name=incastatus \ -Dprojectname=IncaStatus \ -f templateTag/pom.xml

Second, Implement the Bean Main thing is to implement IncaStatusBean’s submit() method. Code is hard to put in a PPT slide See ce/GTLAB/jsf_standalone/src/main/java/o gce/gsf/gridbeans/IncaStatusBean.java ce/GTLAB/jsf_standalone/src/main/java/o gce/gsf/gridbeans/IncaStatusBean.java

Third, Implement a JSF Page Actual tag is shown below. Full example is AB/jsf_standalone/src/main/webapp/examples/In caStatusExample.jsp?view=log It includes some boilerplate (can be automated). <o:incastatus id=”mytest" resource="task1-resources” myfaces="true"/>

Here’s the resulting page. You can make into a portlet in a couple of steps. You can also tie to other tags in a pipeline.

Next Steps: Make a Pipeline Implement the setInput() and getOutput() methods. Pipeline it with the Resource Description and Resource Prediction Service tags. Integrate QBETS tags Currently unwritten Integrate with Job Submission Find Running Hosts (INCA or RDS) Find Best Host for YourJob (RPS) Find Host with Shortest Wait Time (QBETS) Submit Job

More Stuff about GTLAB Supports linear tag dependencies. Removed dependence on COG graph processing (still use the COG) We can support graphs of any tag you care to write. Only support pipelines currently, not full DAGs Redesigned to simplify writing new tags. Extensive use of factories. You no longer have to change core code to add a tag Templates for 4 Java files and 3 XML config files now can be done in one (mvn) step Typically you will only need to edit one Java file.