DCI BRIDGE Introduction its Native Access Hands-On Akos Balasko

Slides:



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

The map and reduce functions in MapReduce are easy to test in isolation, which is a consequence of their functional style. For known inputs, they produce.
Informer Extensions PRESENTER: Brad Leupen | CTO, Entrinsik |
SETUP AND CONFIGURATIONS WEBLOGIC SERVER. 1.Weblogic Installation 2.Creating domain through configuration wizard 3.Creating domain using existing template.
ECE356 – Database Systems Lab 1 – Building a Web Project with NetBeans Tiuley Alguindigue Lab Instructor – University of Waterloo, E & CE Dept. Fall 2013.
1 Java Server Programming zLecture 1 focuses on: yIntroduction to web services y Web Services using Axis y The bigger Picture: Introduction to J2EE y Java.
Reproducible Environment for Scientific Applications (Lab session) Tak-Lon (Stephen) Wu.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
DAT602 Database Application Development Lecture 15 Java Server Pages Part 1.
WaveMaker Visual AJAX Studio 4.0 Training Studio Overview.
The ATLAS Production System. The Architecture ATLAS Production Database Eowyn Lexor Lexor-CondorG Oracle SQL queries Dulcinea NorduGrid Panda OSGLCG The.
Connecting Workflow-Oriented Science Gateways to Multi-Cloud Systems Zoltán Farkas, Péter Kacsuk, Ákos Hajnal MTA SZTAKI.
CloudBroker integration to WS- PGRADE/gUSE Zoltán Farkas MTA SZTAKI LPDS
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
SCI-BUS is supported by the FP7 Capacities Programme under contract nr RI gUSE Services Remote API, DCI Bridge, Data Bridge, Robot Certificate Zoltán.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
Java Server Pages A JSP page is a text-based document that contains two types of text: static template data, which can be expressed in any text-based format,
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
The gLite API – PART I Giuseppe LA ROCCA INFN Catania ACGRID-II School 2-14 November 2009 Kuala Lumpur - Malaysia.
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.
Designing and Developing WS B. Ramamurthy. Plans We will examine the resources available for development of JAX-WS based web services. We need an IDE,
Plug-in Development Environment. Session Outline Tools Installation Configuration New Project Basic Debugging Remote Debugging.
07/06/11 New Features of WS-PGRADE (and gUSE) 2010 Q Q2 Miklós Kozlovszky MTA SZTAKI LPDS.
SCI-BUS is supported by the FP7 Capacities Programme under contract nr RI Creating the Autodock gateway from WS-PGRADE/gUSE and making it cloud-enabled.
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
Utterly Useless Widget creating your own Chameleon widget...
1 ® Copyright 2009 Adobe Systems Incorporated. All rights reserved. Adobe confidential. 1 Building Portlets with ColdFusion Pete Freitag Foundeo, Inc.
The PROGRESS Grid Service Provider Maciej Bogdański Portals & Portlets 2003 Edinburgh, July 14th-17th.
ASM Hands-on. What will we learn? ● How to install an ASM-based web-application in gUSE ● How to develop ASM-related parts of an interface for – Importing.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Application Specific Module Tutorial Akos Balasko 02/07/
Convert generic gUSE Portal into a science gateway Akos Balasko 02/07/
0 eCPIC Admin Training: OMB Submission Packages and Annual Submissions These training materials are owned by the Federal Government. They can be used or.
An Introduction to Designing, Executing and Sharing Workflows with Taverna Katy Wolstencroft myGrid University of Manchester IMPACT/Taverna Hackathon 2011.
Chính phủ điện tử TS. Phạm Văn Tính Khoa CNTT, ĐH Nông Lâm TP.HCM
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 41 JavaServer Face.
How to Read gUSE Documents Orange Docs Series for General Pruposes RELEASE ISSUE POLICY LICENSE HOW TO READ GUSE DOCUMENTS GUSE IN A NUTSHELL by Tibor.
Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.
Creating and running an application.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Convert generic gUSE Portal into a science gateway Akos Balasko.
SCI-BUS is supported by the FP7 Capacities Programme under contract nr RI Accessing Cloud Systems from WS-PGRADE/gUSE Zoltán Farkas MTA SZTAKI LPDS.
Application Specific Module Tutorial Zoltán Farkas, Ákos Balaskó 03/27/
Grid Execution Management for Legacy Code Architecture Exposing legacy applications as Grid services: the GEMLCA approach Centre.
Spell Checker web service (you build a web client that interacts with the service) The client uses a servlet class and a JSP page. The user passes information.
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTEGRATION.
SHIWA Simulation Platform (SSP) Gabor Terstyanszky, University of Westminster EGI Community Forum Munnich March 2012 SHIWA is supported by the FP7.
1 Globe adapted from wikipedia/commons/f/fa/ Globe.svg IDGF-SP International Desktop Grid Federation - Support Project SZTAKI.
Development of portlets for special jobs: parametric, collections, workflows Mario Torrisi National Institute of Nuclear Physics.
Five todos when moving an application to distributed HTC.
SCI-BUS is supported by the FP7 Capacities Programme under contract nr RI CloudBroker usage Zoltán Farkas MTA SZTAKI LPDS
Development of portlets for special jobs: parametric, collections, workflows Mario Torrisi Istituto Nazionale di Fisica Nucleare.
Convert generic gUSE Portal into a science gateway Akos Balasko.
Convert generic gUSE Portal into a science gateway Akos Balasko.
WS-PGRADE + ASM Basic hands-on Zoltán Farkas, MTA SZTAKI
ArcGIS for Server Security: Advanced
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
Web Programming Developing Web Applications including Servlets, and Web Services using NetBeans 6.5 with GlassFish.V3.
Data Bridge Solving diverse data access in scientific applications
Section 13 - Integrating with Third Party Tools
Writing simple Java Web Services using Eclipse
An Introduction to Designing and Executing Workflows with Taverna
Remote Api Tutorial How to call WS-PGRADE workflows from remote clients through the http protocol?
Basic hands-on Zoltán Farkas, MTA SZTAKI
Plug-In Architecture Pattern
Presentation transcript:

DCI BRIDGE Introduction its Native Access Hands-On Akos Balasko

Outline Introduction (~10 min.) DCI-Bridge setup (~ 5 min) – Set up middlewares – View logs – Debug mode → View youtube video → utu.be Native access Hands-On (~10 min) – Precognitions Storing files Providing proxies Getting statuses – HandsOn (~ 1h) Middleware development (~ 25 min)

Introduction DCI-Bridge: – Is to submit/manage single jobs to remote resources – Supports many middlewares (from clusters till clouds) – Can be used as a stand-alone service – Provides standard interface – WS-PGRADE/gUSE uses this interface → a DCI-BRIDGE installed as a part of a normal portal instance can be invoked this way

Where are we now? 4 ASM API WS-PGRADE UI Customized UI Other, existing UI WS-PGRADE workflow UI

Check Youtube video!

Cloud Image Tomcat Storage Component representatives for hands- on Client FileServer WS-PGrade Credential Provider DCI-Bridge DCI System Status Receiver

Behind the scenes Client FileServer Credential Provider DCI-Bridge DCI System 1. store proxy 2. upload input files 3. submit JSDL 4. get proxy 5. get files 6. submit job Status Receiver

Behind the scenes Client FileServer Credential Provider DCI-Bridge DCI System 2. send status 1. send status Status Receiver

Behind the scenes Client FileServer Credential Provider DCI-Bridge DCI System 2. send status 1. send finish status Status Receiver 3. upload output files 5. download files 4. check status

Native access Hands-On Precognitions: DCI-Bridge can be invoked natively for job submission using a JSDL standard with 2 extensions. – JSDL Is a standard XML-format of job description. contains only URI's to identify file associations, not exact files – Extensions: contains status receiver web-service reference Contains Credential provider web-service reference

Example File output URI log.dlg overwrite true leUploadServlet?path= 70:8080_wspgrade/10239/AutoDock_ _ /AutoDock/outputs/balasko01/0/&am p;link=log.dlg

Pre-developed and deployed Status Receiver Service public class StatusWService implements JobStatusService { public java.lang.String sendStatus(java.lang.String pJobID, org.ggf.schemas.bes._2006._08.bes_factory.A ctivityStatusType pJobStatus, java.lang.String pResource) { System.out.println("STATUSSERVICE: Job Status arrived: jobID:" + pJobID); if(pJobStatus.getState().equals(ActivityStateEn umeration.FINISHED)) System.out.println("Status:FINISHED"); else if(pJobStatus.getState().equals(ActivityStateEn umeration.FAILED)) System.out.println("Status:FAILED"); else if(pJobStatus.getState().equals(ActivityStateEn umeration.RUNNING)) System.out.println("Status:RUNNING"); else if(pJobStatus.getState().equals(ActivityStateEn umeration.PENDING)) System.out.println("Status:PENDING"); else if(pJobStatus.getState().equals(ActivityStateEn umeration.CANCELLED)) System.out.println("Status:CANCELLED"); System.out.println("Resource: " + pResource); return new String(); }

Prepared development framework

● Create new project: File → New Project ● Select Java application ● Click Next

● Project Name: DCIBridgeInvokerDemo ● Click to Finish

● Create JAXB Binding (Right click on project name in Project Manager window, then New File) ● Click Next

Create JAX-B bindings Pick URL then type the URL (wsdl location) Mandatory and STATIC Name Pick URL then type the URL (wsdl location)

● Trust in all unknown authority (Click to Yes)

Import external libraries Right click on project Name in Project Window then select properties after it select libraries menuitem, Finally to click to add projects button Then navigate to dci-bridge_cli folder and select it And do it on information_cli folder as well

You should see something like this:

HANDS-ON section Login to your portal machine – ssh -Y Start netbeans development framework –./netbeans/bin/netbeans Open DCIBridgeInvokerDemo project's main class for editing

Edit the main method of the Main class, add the followings // Read JSDL file called "examplejob.jsdl" into a string object. // The file itself must be placed next to the jar file. File jsdlFile = new File("examplejob.jsdl"); Scanner scan = new Scanner(jsdlFile); String jsdlContent = scan.useDelimiter("\\Z").next(); //Parse the jsdl string according to the classes stored in classes array Class[] classes = new Class[]{JobDefinitionType.class, UserNameType.class, GroupNameType.class, FileNameType.class, ArgumentType.class, LimitsType.class, POSIXApplicationType.class, ExtensionType.class, SDLType.class}; JAXBContext jc = JAXBContext.newInstance(classes); Unmarshaller u = jc.createUnmarshaller(); JAXBElement obj = u.unmarshal(new StreamSource(new StringReader(jsdlContent)), JobDefinitionType.class); JobDefinitionType jsdl = (JobDefinitionType) obj.getValue();

In the main function // Submitting the jsdl file to DCI- Bridge // Create variable to store besID // (Note: in JSDL it will be the value of JobAnnotation tag) // Create object of a submitter interface class SubmitterFace client = null; // initialize submitter object as an object of hu.sztaki.lpds.dcibridge.client. SubbmitterJaxWSIMPL Class client = (SubmitterFace) Class.forName("hu.sztaki.lpds.dcibridge.client. SubbmitterJaxWSIMPL").newInstance(); // Set its main service ID client.setServiceID("/BESFactoryService?wsdl" ); // Set the web-service URL where DCI-Bridge is placed client.setServiceURL(" 080/dci_bridge_service");

In the main function // Create object of submission // (instance of CreateActivityType class) CreateActivityType submit = new CreateActivityType(); //Create a new ActivitiyDocumentType object and associate it into submit object submit.setActivityDocument(new ActivityDocumentType()); // Set the job definition to the parsed JSDL object submit.getActivityDocument().setJobDefinition(j sdl); // call client.createActivity with submit object for job submission CreateActivityResponseType rep = client.createActivity(submit); //catch exceptions

Compile the project, which produces DCIBridgeInvokerDemo.jar in DCIBridgeInvokerDemo/dist folder Copy /test/examplejob.jsdl next to the compiled jar

Edit the jsdl: (Change template placeholders to current values) CHANGE_JOB_ANNOTATION:=some unique ID CHANGE_CREDENTIALPROVIDER_URL:= CHANGE_FILESTORAGE_URL:= CHANGE_STATUSRECEIVER_URL/JobStatusS ervice?wsdl:= StatusServiceService?wsdl CHANGE_UNIQUE_FOLDER:=some unique ID

Execution Execute the application: java -jar DCIBridgeInvokerDemo.jar Check statuses in the logfile: tailf $HOME/apache-tomcat /logs/catalina.out Check output files at: $HOME/apache-tomcat /temp/storage/ 80_wspgrade/11004/AutoDock_ _ /AutoGrid/outputs/CHANGE_UNIQUE_ FOLDERNAME

End of Hands-On

Develop new middleware plugins Two scenarios available: 1.: Connect Native DCI-Bridge Service 2.: Connect whole WS-PGRADE/gUSE to a new middleware

Goal of this session + New Mid

Main architecture Admin Interface (JSP pages) Semi-autogenerated eventhandlers BES Middleware Brokering and Management Layer UnicoregLiteGT2GT4 Cloud Broker PBS Middleware Class local... JSDL

Execution with a JSDL Middleware Brokering Layer local dci-bridge host(64bit) 0 UnicoregLiteGT2GT4 Cloud Broker PBS Middleware Class local...

1.1 Creating Configuration Interface 1. Add new middleware name in mb_scheduling_description_language.xsd (other fields relevant for resource(VO,DCI) selection are generic) 2. Extend Configuration Schema with middleware-specific configuration possibilities in – dci-bridge_configuration_schema_2012.xsd (its values are stored in dcibridge.xml (e.g. place of trusted keystore ) 3. Do this in dci_bridge_service, in dcibridge_cli and in wfi components.

1.1 Creating Configuration Interface Sample extension of mb_scheduling_description_language.xsd ….. + New Mid

1.1 Creating Configuration Interface Sample dci-bridge_configuration_schema_2012.xsd

1.1 Creating Configuration Interface 2. Extend existing classes that process tab/ menu selection logic 3. Create JSPs (detailed in CreatingDCIBridgePlugin.pdf in Sourceforge)

1.2 Creating Middleware class Create the new plugin class in package hu.sztaki.lpds.submitter.grids; public class Grid_newmid extends Middleware

1.2 Creating Middleware class Implement the following methods: protected void submit(Job pJob) throws Exception; – invoked on job submission – performs job submission protected void getStatus(Job pJob) throws Exception; – invoked when job status need to be queried – queries job status and sets pJob’s status accordingly protected void abort(Job pJob) throws Exception; – invoked when the job need to be aborted – aborts the execution of the job protected void getOutputs(Job pJob) throws Exception; – invoked when the outputs of the job need to be downloaded – downloads the outputs to a local folder

1.2 Creating Middleware class You can find all data about the job (JSDL) in the pJob parameter. The input, exe and authentication files are stored by default in the job's directory: tomcat/temp/dci_bridge/jobAnnotation (set in the JSDL) The local output files mus be copied to: tomcat/temp/dci_bridge/jobAnnotation/outputs

1.2 Creating Middleware class Optional Modifications Update the configuration, if necessary: public void setConfiguration() throws Exception{} – sets/initializes additional data about the middleware

1.2 Creating Middleware class Invocation of setConfiguration() method OR at Tomcat's startup

1.2 Creating Middleware class Optional Modifications Middlewares thread: – invokes middleware methods according to the job/user interactions – handles a queue for each middleware – Default algorithm is : FIFO with put back again on demand Run method on the interpretation can be overridden, if different queue handling algorithm is required.

Where are we now? After doing these implementations, new middleware can be used by Native BES invokes of DCI-Bridge. Let's see how this middleware can be integrated and shown in WS-PGRADE/gUSE as well!

2. Modification to use the middleware in WS-PGRADE newmid

2. Create job configuration plugin (java) Create new class public class JobConfigUI_newmid implements JobConfigUI{ in package package hu.sztaki.lpds.pgportal.servlet.ajaxactions.grids; Implement the getJsp and getJobParameters methods. (Note: You can reuse the existing plugins, and you can use existing JSP pages for visualization. )

2. Create job configuration plugin (jsp) If the middleware has specific settings possibilities, a new JSP interface should be created and the control must be redirected in getJSP() method

2. Modifications in WFI component WFI generates and submits the jobs' JSDL to the DCI-BRIDGE. Modify the JobConfig class in hu.sztaki.lpds.wfi.util package: – Add the new middlewares name in mbsdlMiddleware() method. – (it maps the job's configuration to the middlewares configured in DCI-Bridge)

Thanks for your attention!