11.1 Grid Portals ITCS 4146/5146 Grid Computing, 2007, UNC-Charlotte, B. Wilkinson. March 11, 2007.

Post on 20-Dec-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

11.1

Grid Portals

ITCS 4146/5146 Grid Computing, 2007, UNC-Charlotte, B. Wilkinson. March 11, 2007

11.2

Grid Portal

• “A web-based application server enhanced with the necessary software to communicate to grid services and resources”

• “Provides application scientist a customized view of software and hardware resources from a web browser” [1]

[1] “Grid Computing Making the Global Infrastructure a Reality” ed. F. Berman, G. C. Fox and A. J. G. Hey, Wiley, 2003, Chapter 27 “The Grid portal development kit” by J. Novotny.

11.3

Grid Portals• Uses a Web browser interface

– Can use from anywhere.

• Hides details of Grid middleware– Good!!

• Provides– Access to grid information– Access to grid services– Automated execution of applications/jobs– Workflow management– File management– Single sign-on to grid resources

11.4

Access to Grid Services

• Security Services– management of certificates– access to virtual organization (people)

• Remote File Management– access to files and directories– moving files

• Remote job management– job submission– workflow management

11.5

Access to Information

• Portals also provide access to information -- anything related to tasks at hand, including communication with virtual organization.

• In fact, some portals started simply as informational portals in the same vein as web portals such as yahoo.

11.6

Grid Portal Toolkits

Need software tools to put together grid portals

Several portal “toolkits” developed since mid-1990’s.

Used for application specific grid projects, and for general-purpose grid portals

11.7

Available Technologies for putting together portal toolkits

11.8

Java ServletsObjects that allows a software developer to add dynamic content to a Web server using the Java platform.

Generate content commonly HTML but may be other data such as XML.

Servlets can maintain state across many server transactions by using HTTP cookies, session variables or URL rewriting (altering URL before requesting item).

http://en.wikipedia.org/wiki/Java_Servlet

11.9

JavaServer Pages (JSP)A Java technology that allows software developers to dynamically generate HTML, XML or other types of documents in response to a Web client request.

JSP syntax adds additional XML-like tags, called JSP actions, to be used to invoke built-in functionality.

JSPs compiled into Java Servlets by a JSP compiler.From: http://en.wikipedia.org/wiki/JavaServer_Pages

11.10

JavaBeans

Java classes used to encapsulate many objects into a single object (the bean), so that the bean can be passed around rather than the individual objects.

http://en.wikipedia.org/wiki/JavaBeans

11.11

Commodity Grid (CoG) Kits (Examples: Java and Python CoG Kits)

A higher-level framework for grid devopment.

Allow rapid Grid application development.

Encourage collaborative code reuse and avoid duplication of effort.

Used within GT3.2 and GT4.Java-based GSI, gridFTP, myProxy, GRAM client.

Provides support for portal developers.

http://wiki.cogkit.org/index.php/Main_Page

11.12

Servlet enginesProvides support for servlets.

Example

Apache Tomcat

Apache Tomcat used in Assignment 6, together with Gridsphere portlet framework)

11.13

Early Portal Toolkit Examples1990s:

• The Grid Portal Development Kit (GPDK) (not now supported)– Used Java Server Pages (JSPs) for

presentation layer, and JavaBeans to access backend.

• NPACI Grid Portal Toolkit (Gridport) (National Partnership for Advanced Computational Infrastructure)

11.14

• GridPort 2.0– Perl-based Grid portal toolkit

• Ninf Portal– JSP/Java Servlet front-end

• GridSpeed portal– an extension of Ninf

11.15

11.16

Application-Based Portals

• Portals often specialized to a particular application.– for example, grid portal for high energy

physics.

• Portal toolkits give ability to taylor portal to application or user.

11.17

MPI program

Starting job

From a paper”Building GridPortals: The NPACI Grid Portal Toolkit” by M. P. Thomas and J. R. Boisseau.

NPACI Hotpage Grid portal(based upon GridPort)

11.18Adapted from slides “The NCSA Alliance Portal and the Open Grid Computing Environment Project” by D. Gannon, G. Fox, B. Plale, M. Pierce, M. Thomas, C. Severance, G. von Lazewski, and J. Alameda.

11.19

DOE Fusion Grid Portal

Adapted from slides “Reuseable Grid Portral Components” by M Thomas.

11.20

Linked Environments for Atmospheric Discovery (LEAD)

Adapted from slides “Reuseable Grid Portral Components” by M Thomas.

11.21

NEES – www.neesgrid.org• George E. Brown, Jr. Network for

Earthquake Engineering Simulation– Large Installations of physical equipment for

earthquake experiments and simulations– Part of the award is to make equipment

available for remote collaborators

• Focus is on collaboration and experimental equipment sharing in addition to access to computation

From slides “The NCSA Alliance Portal and the Open Grid Computing Environment Project” by D. Gannon, G. Fox, B. Plale, M. Pierce, M. Thomas, C. Severance, G. von Lazewski, and J. Alameda.

11.22

Network for Earthquake Eng. and Simulation (NEESGrid)

Adapted from slides “Reuseable Grid Portral Components” by M Thomas.

11.23

• Early grid portals “tools” not very flexible.

• Tied to specific programming tools and grid software, such as Globus 2.4.

• Specific programming structure not suitable for users to develop portals themselves.

• Not standardized APIs.

11.24

Portal Implementation

• Should be flexible, meet grid industry standards, be able to be extended using parts developed by others.

• General approach currently is to use “software components” called portlets.

11.25

Portals with Portlets

• Portal server consists of portlets

• Each portlet provides certain functionality and a window within the portal.

• Each portlet can be associated with a particular grid service

• User can have any number of portlets as he/she wishes (will be associated with user’s persistent context).

11.26

Portlets provided for:

– Management of user proxy certificates– Remote file Management via Grid FTP– News/Message systems

• for collaborations– Grid Event/Logging service– Access to OGSA services – Access to directory services– Specialized Application Factory access

• Distributed applications• Workflow

– Access to Metadata Index tools• User searchable index

11.27

Portal Server

MyProxyServer Metadata

DirectoryService(s)

Directory& indexServices

ApplicationFactoryServices

Messagingand group

collaboration

Event andlogging

Services

Portal Server

Adapted from slides “The NCSA Alliance Portal and the Open Grid Computing Environment Project” by D. Gannon, G. Fox, B. Plale, M. Pierce, M. Thomas, C. Severance, G. von Lazewski, and J. Alameda.

11.28

Portlet Approach to Grid Services

Portal Server

MyProxyServer Metadata

DirectoryService(s)

Directory& indexServices

ApplicationFactoryServices

Messagingand group

collaboration

Event andlogging

Services

Portlet1

Portlet2

Portlet3

Portlet4

Portlet5

Portlet6

Adapted from slides “The NCSA Alliance Portal and the Open Grid Computing Environment Project” by D. Gannon, G. Fox, B. Plale, M. Pierce, M. Thomas, C. Severance, G. von Lazewski, and J. Alameda.

11.29

A Pane and portlet

ProxyManagerPortlet

The currentVisible pane

Adapted from slides “The NCSA Alliance Portal and the Open Grid Computing Environment Project” by D. Gannon, G. Fox, B. Plale, M. Pierce, M. Thomas, C. Severance, G. von Lazewski, and J. Alameda.

11.30

Advantages of Portlet Approach• Easy to add new grid services and

reconfigure user’s view (context)

• Different software developers can provide portals to be plugged into portal– Many parties developing portal and portlet tools

-- Jetspeed (Apache), Websphere (IBM), GridSphere, …

• Portal/portlet standard called JSR 168 (portlet Java Specification Request open

standard).

11.31

Portal Layout

11.32

National Science FoundationMiddleware Initiative (NMI)

• Started in 2001 initially over 3 years “to create and deploy advanced network services that simplify access to diverse Internet information and services.”

• Provides a centralized location for important grid software.

• Current NMI package includes Globus, Condor, MPI-G2, and:– a new grid portal project called OGCEGrid

(funding started Sept 2003).

11.33

Consortium established “Fall 2003 to foster collaborations and shareable components

with portal developers worldwide”

The following screenshots taken from http://www.ogce.org

11.34

OGCE version 1

Sample feature

11.35

Membership:Join/participate in different topic groups (Group tabs across top).

11.36

Schedule: Maintain a personal or group calendar.

11.37

Chat:Engage other members of your group in online discussion.

11.38

Proxy Manager and Job Submit:Obtain/manage Grid credentials to access Grid resources through browser.

Also shown are GRAM job launchers and sample "ping" portlet.

11.39

Grid FTP: Use your credential to browse remote directories/upload/download files.

11.40

Grid Context:Store arbitrary web objects (movies, web pages, audio

files) in a customizable, annotated directory tree.

11.41

The OGCE Release 2

• Consists of a core set of JSR 168 compatible Grid portlets.

• Portal container-independent.

• Currently can choose between uPortal and GridSphere containers to deploy OGCS2 portlets.

http://www.collab-ogce.org/nmi/ogce2-docs/index.html

11.42

GridSphere

• Portal framework provides an open-source portlet based Web portal.

http://www.gridsphere.org/gridsphere/gridsphere

11.43

11.44

Assignment 6a

• Goal: To learn how to deploy portlets within Gridsphere.

• Makes underlying software structure of JSR 168 grid portals more concrete.

11.45

Structure

Apache Tomcat servlet engine

Gridsphere portal framework

Deploy

Portlet

11.46

Step 1: Download and Install TomcatTestpage: http://localhost:8080/

11.47

Step 2: Download and Install Gridsphere

After downloading and installing Gridsphere, Gridsphere located at:

http://localhost:8080/gridsphere/

11.48

Goto http://localhost:8080/gridsphere/ to get set-up screen:

11.49

After filling details, get usual Gridsphere screen.Similar to course portal except PURSe registration portlet not installed (a separate package):

11.50

Creating your own portletThe portlet will accept one number and say whether it is odd or even (“oddeven” portlet)

11.51

Files

Gridsphere provides tool to create template files.

Portlet designer then needs to provide java source file that does the required evaluation,

and

Provide/modify three portlet deployment descriptor files.

11.52

Directory Structure

src holds directory structure leading to java source file

webapp holds deployment descriptor files

11.53

Deployment descriptor filesThree deployment descriptor files needed to create a portlet: • Portlet.xml JSR 168 standard, describing portlet• Layout.xml Gridsphere file describing layout of

portlet within page• Group.xml Gridsphere file describing collection

of portlets

 Files are held webapp\WEB-INF directory.

(There are other deployment files, which generated automatically during deployment.)

11.54

webapp\WEB-INF directory

Layout.xml

Portlet.xml

Group.xml

11.55

<portlet-tabbed-pane> <portlet-tab label="Odd Even"> <title lang="en">Odd Even</title> <portlet-tabbed-pane style="sub-menu"> <portlet-tab label="oddeventab"> <title lang="en">Odd Even</title> <table-layout> <row-layout> <column-layout> <portlet-frame label="Odd Even"> <portlet-class> edu.uncc.abw.portlets.OddEven </portlet-class> </portlet-frame> </column-layout> </row-layout> </table-layout> </portlet-tab> </portlet-tabbed-pane> </portlet-tab></portlet-tabbed-pane>

Layout.xml

Specified columns and rows of a table in portlet. Components are in cells of table.

Path to portlet code(There is an alternative format using # symbol)

11.56

group.xmlSpecifies group for portlet

<?xml version="1.0" encoding="UTF-8"?><portlet-group> <group-name>demo</group-name> <group-description>The demo group</group-

description> <group-visibility>PUBLIC</group-visibility> <portlet-role-info> <portlet-class>edu.uncc.abw.portlets.OddEven </portlet-class> <required-role>USER</required-role></portlet-role-info></portlet-group>

Group name

Portlet

11.57

Portlet.xml… <portlet> <description xml:lang="en">Odd Even Portlet</description> <portlet-name>OddEven</portlet-name> <display-name xml:lang="en">Odd Even Portlet</display-name> <portlet-class>edu.uncc.abw.portlets.OddEven</portlet-class> <expiration-cache>60</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>edit</portlet-mode> <portlet-mode>help</portlet-mode> </supports> <supported-locale>en</supported-locale> <portlet-info> <title>Odd Even</title> <short-title>Odd Even</short-title> <keywords>odd even</keywords> </portlet-info> </portlet></portlet-app>

Portlet

11.58

Java portletcode

public class OddEven extends ActionPortlet { private static final String DISPLAY_PAGE = "MainPage.jsp"; public void init(PortletConfig config) throws PortletException { super.init(config); DEFAULT_VIEW_PAGE = "prepare"; } public void action(ActionFormEvent event) throws PortletException { TextFieldBean value1 = event.getTextFieldBean("valueTF1"); TextBean answer = event.getTextBean("answer"); int val = Integer.parseInt( value1.getValue() ); if (value1.getValue() == null ) { answer.setValue(""); } else { if( isEven(val) ) { answer.setValue("The number: " + value1.getValue() + " is Even"); } else { answer.setValue("The number: " + value1.getValue() + " is Odd"); } } setNextState(event.getActionRequest(), DISPLAY_PAGE); } public void prepare(RenderFormEvent event) throws PortletException { setNextState(event.getRenderRequest(), DISPLAY_PAGE); } public boolean isEven(int val) { return val % 2 == 0; }}

11.59

JavaServer Pages, .jsp

OddEven.java also uses a file called MainPage.jsp to dynamically generate an HTML page.

MainPage.jsp held in webapp\jsp directory

11.60

MainPage.jsp

<%@ taglib uri="/portletUI" prefix="ui" %><%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %><portlet:defineObjects/><ui:form> <ui:table width="500"> <ui:tablerow> <ui:tablecell>

This portlet will figure out if the inputed number is even or odd. </ui:tablecell> </ui:tablerow> <ui:tablerow> <ui:tablecell> <ui:textfield size="10" beanId="valueTF1"/> </ui:tablecell> </ui:tablerow> <ui:tablerow> <ui:tablecell> <ui:text beanId="answer"/> </ui:tablecell> </ui:tablerow> <ui:tablerow> <ui:tablecell> <ui:actionsubmit action="action" value="Get Answer"/> </ui:tablecell> </ui:tablerow> </ui:table></ui:form>

11.61

Final Odd Even portlet

11.62

More Information

See the links on the Gridsphere portal page

11.63

General information on portalsBooks:

• “Grid Computing Making the Global Infrastructure a Reality” ed. F. Berman, G. C. Fox and A. J. G. Hey, Wiley, 2003.

– Chapter 27 “The Grid portal development kit” by J. Novotny.

– Chapter 28 “Building grid computing portals: the NPACI grid portal toolkit” by M. P. Thomas and J. R. Boisseau

11.64

More Information• JSR 168 Portlet specification

http://jcp.org/aboutJava/communityprocess/review/jsr168

• GridLab, The GridSphere Portalhttp://www.gridsphere.org/gridsphere/gridsphere

• Network for Earthquake Engineering Simulation Grid (NEESGrid)

http://www.neesgrid.org

11.65

Questions

top related