Grid Operations Center Infrastructure Team Soichi Hayashi, Arvind Gopu.

Slides:



Advertisements
Similar presentations
Apache Struts Technology
Advertisements

 2002 Prentice Hall. All rights reserved. Chapter 9: Servlets Outline 9.1 Introduction 9.2 Servlet Overview and Architecture Interface Servlet and.
The Web Warrior Guide to Web Design Technologies
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Internet Technologies 1 Master of Information System Management Java Server Faces Model/View/Controller Design Pattern for Web Development Slides.
Java Server Faces Model/View/Controller Design Pattern for Web Development Slides adapted from “Core JavaServer Faces” by Geary and Horstmann and the J2EE.
Comp2513 Java Servlet Basics Daniel L. Silver, Ph.D.
Hello Vaadin! CS 3130 Summer 2015.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
CS 160: Software Engineering August 27 Class Meeting Department of Computer Science San Jose State University Fall 2014 Instructor: Ron Mak
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
Overview of JSP Technology. The need of JSP With servlets, it is easy to – Read form data – Read HTTP request headers – Set HTTP status codes and response.
1 Web Developer & Design Foundations with XHTML Chapter 6 Key Concepts.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Applets & Servlets.
1 Servlet How can a HTML page, displayed using a browser, cause a program on a server to be executed?
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)
Pittsburgh Java User Group– Dec Java PureFaces: A JSF Framework Extension.
JavaScript & jQuery the missing manual Chapter 11
Chapter 3 Using Validation Controls. What is a Validation Control? A control that validates the value in another control Renders as an HTML tag with an.
Comp2513 Forms and CGI Server Applications Daniel L. Silver, Ph.D.
Chapter 33 CGI Technology for Dynamic Web Documents There are two alternative forms of retrieving web documents. Instead of retrieving static HTML documents,
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.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
AJAX Without the “J” George Lawniczak. What is Ajax?
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
Software Architecture for ColdFusion Developers Unit 4: Application Events and Global Variables.
Bridges To Computing General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. You are invited.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
JDeveloper 10g and JavaServer Faces: High-Performance UIs on the Web Avrom Roy-Faderman Senior Programmer May, 2006.
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
COMP 321 Week 7. Overview HTML and HTTP Basics Dynamic Web Content ServletsMVC Tomcat in Eclipse Demonstration Lab 7-1 Introduction.
J2EE Structure & Definitions Catie Welsh CSE 432
Mark Dixon 1 12 – Java Beans. Mark Dixon 2 Session Aims & Objectives Aims –To cover the use of Java Beans Objectives, by end of this week’s sessions,
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
JavaScript, Fourth Edition Chapter 5 Validating Form Data with JavaScript.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Service Side Ajax Richard Schmidt gmail. Com Metservice.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
Java Applets: GUI Components, Events, Etc. Ralph Westfall June, 2010.
CS-4220 Dr. Mark L. Hornick 1 Java Server Pages. HTML/JSPs are intended to be used as the views in an MVC- based web application Model – represents an.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 41 JavaServer Face.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
Jini Architecture Introduction System Overview An Example.
Implementing and Using the SIRWEB Interface Setup of the CGI script and web procfile Connecting to your database using HTML Retrieving data using the CGI.
Introduction to Servlets Allen Day. Notes This is a training NOT a presentation Please ask questions Prerequisites.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 21 Java Servlets Wed. 11/22/00 based on material.
Java Servlets and 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.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
ArcGIS for Server Security: Advanced
Data Virtualization Demoette… Logging in CIS
Development Environment
Active Server Pages Computer Science 40S.
Section 17.1 Section 17.2 Add an audio file using HTML
Web Applications Security What are web Applications?
JavaScript.
Presentation transcript:

Grid Operations Center Infrastructure Team Soichi Hayashi, Arvind Gopu

 About Us  What is DivRep?  What problem does it solve?  Demo (OIM)  Using DivRep  Q/A

 Open Science Grid (OSG)  Aims to promote discovery and collaboration in data-intensive research by providing a computing facility and services that integrate distributed, reliable and shared resources to support computation at all scales.  Grid Operations Center (GOC)  Provides a single point of operational support for the Open Science Grid. The Grid Operations Center performs real time Grid monitoring and problem tracking, provides support to users, developers and systems administrators, maintains grid services, provides security incident response, and maintains information repositories.

 Web Application Framework  Simple Java servlet-based web framework  Developed by GOC and currently used by one of our key application  Event Passing / Div Replacement  Client passes events to server  Server process the events  Tell browser what part of page to update (replace)  No client / server separation  Both Client and server code runs on server (as DivRep component)  What you see on browser is a proxy of the server state  No Javascripting  Both server and the client code in plain Java  Without any special recompilations steps

 Easy to develop, debug, and maintain  Everything can be written in 100% plain Java (almost.. )  User interaction can be debug/profiled just like a plain Java application  Simpler Code – inherently more secure  Less risk of XSS – 3 rd party user cannot invoke DivRep code  Client / Server validation is replaced by a single validation  For Rich / Interactive web applications  As easy as writing command line apps, or simple GUI applications.  Can create rich web applications like Facebook, Gmail, etc.  jQuery for plumbing  Used to allow communication between client & server  (Not absolutely necessary, and we may remove it in the future)

 Agile / Functional  Someone with a few years of Java programming, or shell scripting experience can start writing a DivRep application or maintain existing code … in matter of hours (not days)  People just want to get things done  A large collection of simple components can be better understood than a single complex component  Framework Boundaries (Native App / Static Web Page / Flash)  Most frameworks are either too rich or too thin  Too rich: Force web application to behave like a native application  Too thin: Framework that is focused too much on business logic.  DivRep allows optimal level of user interaction  Add functionality that matters most  With smallest possible learning / development

 Installation  Using Common Components  Application Structure  DivRep Life Cycle  HelloWorld  DivRep ID  Event Handling  Redraw()  DivRep on JSP

1. Create a default Dynamic (J2EE) web application project 2. Download the latest divrep.jar and commons-lang-2.4.jar from and place it under /WebContent/WEB- INF/lib 3. Add divrep.jar to the project build path 4. Add Servlet Definition for DivRep to web.xml DivRepServlet com.webif.divrep.DivRepServlet DivRepServlet /divrep

 Button  Link  Image Button  Text Box  Text Area  Check Box  Select Box (Can be Grouped)  High-level components  Toggler, Form, Contact Editor, etc..

class Form extends DivRepForm { DivRepTextBox name; DivRepTextBox tel; public Form(DivRep _parent) { //Second argument is the return address of this form //after user hit submit (sucessfully) or cancel the form, this is where browser redirects super(_parent, " name = new DivRepTextBox(this); name.setLabel("Full Name"); name.setSampleValue("Soichi Hayashi"); name.setRequired(true); tel = new DivRepTextBox(this); tel.setLabel("Telephone Number"); tel.setSampleValue(" "); tel.addEventListener(new TelephoneNumberFormatterEventListener()); } //When user clicks submit and if the form passes validations, this function will be called protected Boolean doSubmit() { //Do sometihng with the value alert("Thank you, " + name.getValue()); //return false to stay on the form return false; } class Form extends DivRepForm { DivRepTextBox name; DivRepTextBox tel; public Form(DivRep _parent) { //Second argument is the return address of this form //after user hit submit (sucessfully) or cancel the form, this is where browser redirects super(_parent, " name = new DivRepTextBox(this); name.setLabel("Full Name"); name.setSampleValue("Soichi Hayashi"); name.setRequired(true); tel = new DivRepTextBox(this); tel.setLabel("Telephone Number"); tel.setSampleValue(" "); tel.addEventListener(new TelephoneNumberFormatterEventListener()); } //When user clicks submit and if the form passes validations, this function will be called protected Boolean doSubmit() { //Do sometihng with the value alert("Thank you, " + name.getValue()); //return false to stay on the form return false; }

JFrameJPanelJTreeComponent JMenuBarComponentJListComponent JPanelComponent DivRepRoot DivRep Page DivRep Page DivRep  DivRep component is organized in a tree structure similar to traditional GUI applications Swing DivRep

User Opens Page User Opens Page Initialize DivRep PageRoot doGet() terminates DivRepPage Root DivRep Component B DivRep Component B DivRep Component A DivRep Component A Updated Content Updated Content User receives updated content on browser User Interact with DivRep Component A Time Line Container Session Servlet doGet() Render page and DivRep Roots DivRep Servlet

Content Content public void render(PrintWriter out) { out.write(" "); out.write(" Content "); out.write(" "); } public void render(PrintWriter out) { out.write(" "); out.write(" Content "); out.write(" "); }

Handle event from my own component

Handle event that happens on other DivRep component

class HelloWorld extends DivRep { int counter = 0; public HelloWorld(DivRep _parent) { super(_parent); // TODO Auto-generated constructor stub } public void render(PrintWriter out) { out.write(" "); out.write(" You have clicked me " + counter + " times "); out.write(" "); } protected void onEvent(DivRepEvent e) { counter++; redraw(); } class HelloWorld extends DivRep { int counter = 0; public HelloWorld(DivRep _parent) { super(_parent); // TODO Auto-generated constructor stub } public void render(PrintWriter out) { out.write(" "); out.write(" You have clicked me " + counter + " times "); out.write(" "); } protected void onEvent(DivRepEvent e) { counter++; redraw(); } Event Handler can call redraw() on itself, or on different DivRep component to redraw its content.

page language="java" contentType="text/html; charset=ISO " pageEncoding="ISO "%> DivRep on JSP <% DivRepPage pageroot = DivRepRoot.initPageRoot(request); PrintWriter writer = new PrintWriter(out); final DivRepButton button = new DivRepButton(pageroot, "Click Me"); button.addEventListener(new DivRepEventListener() { public void handleEvent(DivRepEvent e) { button.alert("Clicked via Event Listener!"); }}); button.render(writer); %> page language="java" contentType="text/html; charset=ISO " pageEncoding="ISO "%> DivRep on JSP <% DivRepPage pageroot = DivRepRoot.initPageRoot(request); PrintWriter writer = new PrintWriter(out); final DivRepButton button = new DivRepButton(pageroot, "Click Me"); button.addEventListener(new DivRepEventListener() { public void handleEvent(DivRepEvent e) { button.alert("Clicked via Event Listener!"); }}); button.render(writer); %>

 Make less memory intensive  More native components & make the more responsive  Make it enterprise ready

 For more info…   Feel free to contact me at…  ( )  (IM)