8-2.1 Grid Portals © 2011 B. Wilkinson/Clayton Ferner. Fall 2011Grid computing course. Modification date: July 26, 2011.

Slides:



Advertisements
Similar presentations
Overview Environment for Internet database connectivity
Advertisements

Languages for Dynamic Web Documents
Copyright 2004 Monash University IMS5401 Web-based Systems Development Topic 2: Elements of the Web (g) Interactivity.
Server-Side vs. Client-Side Scripting Languages
Slides for Grid Computing: Techniques and Applications by Barry Wilkinson, Chapman & Hall/CRC press, © Chapter 1, pp For educational use only.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
1-2.1 Grid computing infrastructure software Brief introduction to Globus © 2010 B. Wilkinson/Clayton Ferner. Spring 2010 Grid computing course. Modification.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
11.1 Grid Portals ITCS 4146/5146 Grid Computing, 2007, UNC-Charlotte, B. Wilkinson. March 11, 2007.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
1 Java Server Pages Can web pages be created specially for each user? What part does Java play?
Globus Computing Infrustructure Software Globus Toolkit 11-2.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
2440: 141 Web Site Administration Web Server-Side Programming Professor: Enoch E. Damson.
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Grid Computing, B. Wilkinson, a.1 Grid Portals.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
1 CS 3870/CS 5870 Static and Dynamic Web Pages ASP.NET and IIS.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
NBCR Summer Institute 2006 GridSphere:Hands-on Installation and Development Jason Novotny
8-2.1 Grid Portals Slides for Grid Computing: Techniques and Applications by Barry Wilkinson, Chapman & Hall/CRC press, © Chapter 8, pp
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Web Application Programming Carol Wolf Computer Science.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
J2EE Structure & Definitions Catie Welsh CSE 432
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Grids and Portals for VLAB Marlon Pierce Community Grids Lab Indiana University.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
CMPUT 391 – Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems Web based Applications,
Web Server Programming 1. Nuts and Bolts. Premises of Course Provides general introduction, no in-depth training Assumes some HTML knowledge Assumes some.
23:48:11Service Oriented Cyberinfrastructure Lab, Grid Portals Fugang Wang April 29
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
1 ® Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 1 Building Portlets with ColdFusion Pete Freitag Foundeo, Inc.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
1 Welcome to CSC 301 Web Programming Charles Frank.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Holding slide prior to starting show. A Portlet Interface for Computational Electromagnetics on the Grid Maria Lin and David Walker Cardiff University.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Copyright © 2002 ProsoftTraining. All rights reserved. JavaServer Pages.
11a.1 Grid Portals Copyright B. Wilkinson, This material is the property of Professor Barry Wilkinson (UNC-Charlotte) and is for the sole and exclusive.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Middleware 3/29/2001 Kang, Seungwoo Lee, Jinwon. Description of Topics 1. CGI, Servlets, JSPs 2. Sessions/Cookies 3. Database Connection(JDBC, Connection.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Introduction to HTML. _______________________________________________________________________________________________________________ 2 Outline Key issues.
Development of e-Science Application Portal on GAP WeiLong Ueng Academia Sinica Grid Computing
Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 21 Java Servlets Wed. 11/22/00 based on material.
CSI 3125, Preliminaries, page 1 JSP (Java Server Pages)
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
World Wide Web has been created to share the text document across the world. In static web pages the requesting user has no ability to interact with the.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
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.
Introduction and Principles
Haritha Dasari Josue Balandrano Coronel -
Web App vs Mobile App.
MSIS 655 Advanced Business Applications Programming
Chapter 27 WWW and HTTP.
Grid Computing Software Interface
Web Application Development Using PHP
Presentation transcript:

8-2.1 Grid Portals © 2011 B. Wilkinson/Clayton Ferner. Fall 2011Grid computing course. Modification date: July 26, 2011

Grid Portal Web page designed to provide a user-friendly interface to a Grid computing environment rather than a command line interface. Portal should: – Hide details of Grid middleware – Provides single sign-on to access to Grid computing services, distributed resources and Grid information. 2

A Grid portal comes in one of two forms: 1.General-purpose portal - front-end to a Grid computing platform in non-specific application domains, e.g.: –SURAGrid portal –Our Grid computing course portal 2.Portal tailored to a particular application domain, e.g. a bioinformatics portal. –Application-specific portal should provide access to specific tools of application domain

Terms Science portal - emphasis in science domain. Gateway also used to describe a portal. Science gateway -- for scientists -- physics, chemistry, biology, etc. Any self-respecting Grid computing project has a portal

Portals provide access to Grid computing services: Security Services –Management of certificates Remote File Management –Access to files and directories –Moving files Remote job management –Job submission –Workflow management Grid information services –Static information (machine type, etc.) –Dynamic information (machine load, etc.) Portals also provide access to information -- anything related to tasks at hand, including communication with virtual organization. 5

Portal Toolkits A software framework and components to put together a portal easily. Ideally re-useable software components Potentially components developed by others can be incorporated. Ideally, standard interfaces should exist. Ideally, presentation layer that the user sees should be separated in software construction from back-end. 6

8-2.7 Available Technologies for putting together portal toolkits

Dynamic Content Refers to a Web page display that can be altered as opposed to static content. Dynamic content can be done: 1. At client side, that is, after the page is downloaded. –Downloaded HTML page has embedded code –JavaScript language specifically for such embedded code –All browsers support JavaScript. 2.At server side –When Web client makes request within a Web page, server receives this request and sends appropriately altered HTML page, which is then displayed. Client-side and server-side methods can be used together. Grid portals can use client-side dynamic content but generally require server-side dynamic content

Generating server-side dynamic content Can use languages such as C and Java to create HTML pages. Technologies specifically for generating server-side dynamic content : CGI (Common Gateway Interface) –Oldest - standard protocol between Web servers and client applications PHP (originally Personal Home Page, now Hypertext Preprocessor) – Scripting language specifically designed for server-side dynamic content –non-Java technology ASP.NET (Active Server Pages.NET framework) – Microsoft Web application framework that can provide dynamic content – Successor to ASP (Active Server Pages). – Non-Java technology Java Servlets JSP (Java Server Pages) Many Grid portals focus on Java implementations using Java Servlets/JSP 9

Java Servlets Small Java programs (objects) that receive requests from Web clients and generate responses, usually handling HTTP requests/responses. Allows a software developer to add dynamic content to a Web server using Java platform.* Generate content commonly HTML but may be other data such as XML.* Can maintain state across server transactions by various means. javax.servlet package defines required methods that must be implemented for client-servlet interaction. * 10

Servlet container A Web server that provides environment for servlets Maps URLs to specific servlets. servlet engine - Another term for servlet support. e.g. Apache Tomcat 11

Using Java servlets alone would typically require invoked Java programs to create HTML using println statements. Java Server Pages (JSP) A complementary SUN technology to Java servlets. Used to create Java servlet code from static content. JSP file is an HTML page with embedded JSP tags. JSP tags provide for creating servlet Java code. This Java code created automatically from JSP file by JSP compiler. Code might be fully compiled machine-executable code or Java byte code executed by a JVM. 12

JSP/Java servlet environment 13

JSP tags Five tags. Three tags available for inserting code. declaration tag ( ) Used to declare variables and methods, i.e.: <%! Java variable declarations or/and Java methods %>

JSP tags scriptlet tag ( Used to include Java code including variable declarations and methods, but broader to include any Java code fragment, i.e.: <%! Any Java code fragment %>

JSP tags expression tag ( ) Will compute a Java expression and convert result into a string that is inserted in-line into HTML code, i.e. HTML code

Other JSP tags directive tag ( ) - Provides information about the JSP page. Can extend functionality of tags and include other files. Example action tag - To invoke server-side JavaBeans, transfer control to another page, and support for applets. More information:

Commodity Grid (CoG) Kits Conceived during Globus development from 1996 – Objective Combining commodity software technologies with Grid components (hence the name “Commodity Grid Kit”) and providing a higher-level interface to Grid components

“Commodity technologies” Accepted software components – Common libraries, –Programming languages such as Java, C, Python –Standard distributed computing frameworks Standard network protocols Should not be confused with hardware commodity components

Java CoG kit First most prevalent Commodity Grid Kit Provides Java APIs that enable one to: –Submit and monitor Globus jobs –Transfer files by CoG calls within a Java application program Avoids lower level Globus APIs, which change from one version to another CoG kit development continued during same time period as Globus. Python version

Use of Java CoG kit in Globus Used within GT3.2 and GT4: Java-based GSI, gridFTP, myProxy, GRAM. A part of CoG kit, known as “JGlobus” now included in Globus 4 distribution. CoG kit provides support for portal developers. JGlobus not used within Globus version 5 although APIs can still be used with GT5 services, and used by Globus team for testing.

CoG kit program to transfer files (Villalobos 2007) Fig 8.13

Portlets A general approach for portal design developed in the early-mid 2000’s Presentational layer of portal constructed with portlets – software components Each portlet provides specific functionality and a window within portal Each portlet can be associated with a particular service User can have any number of portlets (will be associated with user’s persistent context). 23

Portlets 24

Portlet server and portlet container Portlets can be compared to servlets and requires a similar environment called a portlet container managed by a portlet server. In general, portlets do not communicate with each other, only with the services they front-end, and only provide for the presentation-level. With the portlet approach, it should be easy to reconfigure user’s view. Different portlets from different sources should be able to be plugged into portal. 25

Portlet development After early experiences of portal designs in mid-late 1990’s, effort made to develop a Java portlet specification in period leading to Java Specification Request JSR 168 Portlet Specification released in Oct JSR 168 based upon Apache Jetspeed portlets. 26

Java Specification Request JSR 168 Portlet Specification (Also called Java Portlet Specification version 1.0) Portlet code generally has the following structure: 1. Initialize 2. Render portlet 3. For a request received: Accept request and perform required back-end actions Render display according to result 4. Finalize and destroy portlet 27

28

OGCE portal release 2 Core set of JSR 168 compatible Grid portlets. Portal independent of specific container. Two portal containers supported: –uPortal –GridSphere Consortium established “Fall 2003 to foster collaborations and shareable components with portal developers worldwide” 29

GridSphere Portal framework with open-source portlet based Web portal. Very widely used We still use it

8-2.31

8-2.32

Core GridSphere portlets Login Locale, profile and layout personalization Administration portlets for creation of users, groups, portlet management Localization support French, English, Spanish, German, Dutch, Czech, Polish, Hungarian, Italian, Arabic, Japanese, and Chinese onto which many other portlets can be installed from various sources, for example: myProxy server portlet, Globus job submission and control portlets, information services portlets collaborative tools such as Sakai, etc. 33

GridSphere portlets deployed into a servlet engine (Tomcat) 34

Web Services for Remote Portlets (WSRP) Standard introduced by OASIS for defining a Web service interface for interacting with “presentation- oriented Web services” in 2003 (version 1) Uses WSDL for its interface description. WSRP Version 2 introduced in

JSR 286 Portlets Specification v2.0 Updated version of JSR 168 released in June 2008 after about fives years of development. Backward compatible with JSR 168 portlets JSR 168 portlets can be deployed in JSR 286 portlet containers. JSR 286 incorporates inter-portlet communication, which was absent in JSR 168. JSR 286 includes an alignment with WSRP v

GridSphere Portlet Assignment Outline

GridSphere Portlet Assignment Purpose is to create and test portlets within the Gridsphere portal. Assignment done on your own computer. Need to install Gridsphere. As with all assignment, some code is given and assignment is to make the concepts concrete

We have two versions of the assignment: –Using GridSphere version 2 (most commonly used version) –Using GridSphere version 3 (more recent version) We will use version 3 which is slightly simpler to use

Step 1 -- Download and Install Tomcat

Step 2: Download and Install Gridsphere* After downloading and installing Gridsphere, Gridsphere located at: For Fall 2011, we will use the most recent version of Gridsphere, version 3. Assignment was originally was tested with version 3.1. Version 3.2 now available.

Go to to get set- up screen: Select Embedded Database Gridsphere version 3.1

Next you will see login screen. Set the administrators password Gridsphere version 3.1

After filling details, get Gridsphere login screen. Similar to UNCC/UNCW Grid portal except PURSe registration portlet installed on Grid portal (a separate package) GridSphere v 2 GridSphere v 3 44

Creating your own portlet Goal Create and deploy a portlet that will accept one number and say whether it is odd or even (“oddeven” portlet) The code for this portlet is given. You simply have to deploy it. Later you can ceate your own portlets. 45

46

Portlet layout 47

Files Need to provide: Java source file that does evaluation, with JSP file for dynamically generating HTML, and Portlet deployment descriptor file(s) 48

HTML/JSP file HTML page layout defined in JSP file called MainPage.jsp Mostly simple HTML code modified with JSP tags added at beginning. 49

MainPage.jsp Fig

Java portlet code 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; } 51

Deployment descriptor files GridSphere version 2 -- Three user-defined deployment descriptor files: –Portlet.xmlJSR 168 standard, describing portlet –Layout.xmlGridSphere file describing layout of portlet within page –Group.xmlGridSphere file describing a collection of portlets GridSphere version 3 -- One user-defined deployment descriptor file –Portlet.xmlJSR 168 standard, describing portlet (There are other deployment files, generated automatically during deployment.) 52

… Odd Even Portlet OddEven Odd Even Portlet edu.uncc.abw.portlets.OddEven 60 text/html edit help en Odd Even odd even Portlet.xml Portlet Fig

Odd Even Odd Even edu.uncc.abw.portlets.OddEven 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) 54

group.xml Specifies group for portlet demo The demo group PUBLIC edu.uncc.abw.portlets.OddEven USER Group name Portlet Fig

Directory Structure src holds directory structure leading to java source file webapp holds deployment descriptor files

webapp\WEB-INF directory Layout.xml Portlet.xml Group.xml

More Information on Gridsphere See the links on the Gridsphere portal page

Multiple-choice question

What is meant by dynamic content in the context of the implementation of Web pages? (a) A Web page that keeps changing at regular intervals (b) A Web page that changes in response to changing information and client requests (c) A Web page using dynamic memory (d) A Web page that has to be refreshed at regular intervals SAQ 8-10

What is a Java servlet? (a) A Java program (object) that handles requests from Web clients (b) A Web service written in Java (c) A small Java-based server (d) A Java program that hands out small objects SAQ 8-11

What is a Java Server Page (JSP)? (a) Java code that implements a Web service (b) A SUN technology used in conjunction with servlets to create Web pages with dynamic content (c) Java code that can implement a server (d) An XML language used to describe Java server programs SAQ 8-12

What is Commodity Grid (CoG) kit? (a) A toolkit to create a Grid platform for Grids on commodity cluster hardware (b) A toolkit specifically for trading commodities on the Grid (c) The lowest level software beneath Globus to access the Grid resources (d) A toolkit providing higher-level interfaces to Grid components than basic Globus APIs SAQ 8-13

What is a portlet? (a) A pull-down menu in a Grid portal (b) A group of portals (c) A small Grid portal (d) A tabbed window within a portal (e) A back-end component in a portal such as a Web service (f) Software component used for an area within a portal providing a presentation- level interface associated with some functionality SAQ 8-14

In a JSR 168 portlet environment, suppose the file layout.xml describes a table with two rows and two columns. Describe its effect? (a) It creates a layout for a portal window that has four cells arranged as two rows and two columns, one cell for each portlet. (b) It creates a layout for a portlet that has four cells arranged as two rows and two columns. (c) It creates a layout for a complete portal that has four cells arranged as two rows and two columns. The lower left cell can hold selectable menu items. The upper left cell can hold a logo. (d) It defines a user input layout SAQ 8-15

11.66 Questions