Office of Science U.S. Department of Energy Globus World Python WS Core Joshua R. Boverhof Lawrence Berkeley National Laboratory.

Slides:



Advertisements
Similar presentations
A PPARC funded project Asynchronous Activities in SOAP services Guy Rixon IVOA Interoperability Meeting Cambridge MA, May 2004.
Advertisements

Security Design and Solution in ARC1 Weizhong Qiang University of Oslo April 9, 2008.
Wei Lu 1, Kate Keahey 2, Tim Freeman 2, Frank Siebenlist 2 1 Indiana University, 2 Argonne National Lab
GT4 WS Core Tutorial Sam Meder Jarek Gawor 6/11/04.
LEAD Portal: a TeraGrid Gateway and Application Service Architecture Marcus Christie and Suresh Marru Indiana University LEAD Project (
Interaction model of grid services in mobile grid environment Ladislav Pesicka University of West Bohemia.
Web Service Resource Framework (WSRF) Alexander Wöhrer und Peter Brezany
MyProxy: A Multi-Purpose Grid Authentication Service
Wrapping Scientific Applications as Web Services Gopi Kandaswamy (RENCI) Marlon Pierce (IU)
Futures – Alpha Cloud Deployment and Application Management.
State and Events for Web Services: A comparison of Five WS-Resource Framework and WS-Notification Implementations Marty Humphrey, Glenn Wasson, JarekGawor,
This product includes material developed by the Globus Project ( Introduction to Grid Services and GT3.
Office of Science U.S. Department of Energy DANSE Kickoff Meeting 2006 Introduction to Python Grid Tools Keith R. Jackson David E. Konerding Lawrence Berkeley.
7-2.1 Additional Features of WSRF/GT4 Services A brief outline © 2011 B. Wilkinson/Clayton Ferner. Fall 2011 Grid computing course. Modification date:
Building Services in WSRF Ben Clifford GGF Summer School July 2004.
4d.1 Grid Computing, B. Wilkinson, 2005 Web Service Resource Framework Notes on “sticky note” assignment.
4a.1 Grid Computing Standards ITCS 4010 Grid Computing, 2005, UNC-Charlotte, B. Wilkinson, slides 4a.
Building services in WSRF Ben Clifford Draft For GGF summer school, July 2004.
Office of Science U.S. Department of Energy Globus World 2005 PyGridWare Performance Aspects Keith R. Jackson Lawrence Berkeley National Laboratory.
4c1 GT 4 grid services and their implementation Advanced features: An overview Topics: Resource home Singleton resource Multiple resources Notifications.
4c1 GT 4 Services Advanced features: A very brief overview Topics: Resource home Singleton resource Multiple resources Notifications Lifecycles Copyright.
NDT Tools Tutorial: How-To setup your own NDT server Rich Carlson Summer 04 Joint Tech July 19, 2004.
X.509 Certificate management in.Net By, Vishnu Kamisetty
1 Modeling Stateful Resources with Web Services ICE Ph.D lecture Byung-sang Kim.
TUTORIAL # 2 INFORMATION SECURITY 493. LAB # 4 (ROUTING TABLE & FIREWALLS) Routing tables is an electronic table (file) or database type object It is.
Timothy Heeney| Microsoft Corporation. Discuss the purpose of Identity Federation Explain how to implement Identity Federation Explain how Identity Federation.
Grid Computing Grid computing is all about achieving greater performance and throughput by pooling resources on a local, national, or international level.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
CGW 2003 Institute of Computer Science AGH Proposal of Adaptation of Legacy C/C++ Software to Grid Services Bartosz Baliś, Marian Bubak, Michał Węgiel,
Rsv-control Marco Mambelli – Site Coordination meeting October 1, 2009.
4c.1 Grid Computing, B. Wilkinson, 2005 Web Service Resource Framework Creating Globus 4 services.
OPEN GRID SERVICES ARCHITECTURE AND GLOBUS TOOLKIT 4
NeSC Grid Apps Workshop Exposing Legacy Applications as OGSI Components using pyGlobus Keith R. Jackson Distributed Systems Department Lawrence Berkeley.
The GRIMOIRES Service Registry Weijian Fang and Luc Moreau School of Electronics and Computer Science University of Southampton.
WSRF & WSRF’s Application in VO-DAS Haijun Tian ChinaVO
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
The VEGA Approach to Grid Security Grid System Software Group, ICT, CAS Security In VEGA GOS v2 Li ZHA
Evolution of the Open Science Grid Authentication Model Kevin Hill Fermilab OSG Security Team.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Supporting further and higher education The Akenti Authorisation System Alan Robiette, JISC Development Group.
OGSA Hauptseminar: Data Grid Thema 2: Open Grid Service Architecture
1 GT XACML Authorization Rachana Ananthakrishnan Argonne National Laboratory.
Grid Security: Authentication Most Grids rely on a Public Key Infrastructure system for issuing credentials. Users are issued long term public and private.
Barry Atkins Heather Kreger Steve Graham Micro Managing – Implementing WSDM in the Small Tiny WSDM Demo.
Security Token Service (STS) Design & Development Plans Henri Mikkonen / HIP 3 rd EMI All-Hands Meeting , Padova, Italy.
Python Web/Grid Services Presenter: Joshua Boverhof Lawrence Berkeley National Lab.
Web Service Resource Framework WSMO Presentation Jos de Bruijn Digital Enterprise Research Institute http ://
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Information Security 493. Lab # 4 (Routing table & firewalls) Routing tables is an electronic table (file) or database type object that is stored in a.
Services Security A. Casajus R. Graciani. 12/12/ Overview DIRAC Security Infrastructure HSGE Transport Authentication Authorization DIRAC Authorization.
Collaborative Planning Training. Agenda  Collaboration Overview  Setting up Collaborative Planning  User Setups  Collaborative Planning and Forecasting.
On Using BPEL Extensibility to Implement OGSI and WSRF Grid Workflows Aleksander Slomiski Presented by Onyeka Ezenwoye CIS Advanced Topics in Software.
Condor Services for the Global Grid: Interoperability between OGSA and Condor Clovis Chapman 1, Paul Wilson 2, Todd Tannenbaum 3, Matthew Farrellee 3,
Steve Graham WS-ResourceFramework Modeling Stateful Resources With Web services OASIS WSRF TC F2F Wednesday, April 28th, 2004.
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
10 th Lecture COP 4991 Component-Based Software Development Instructor: Masoud Sadjadi
DataGrid is a project funded by the European Commission EDG Conference, Heidelberg, Sep 26 – Oct under contract IST OGSI and GT3 Initial.
© 2005 Global Grid Forum The information contained herein is subject to change without notice Leading the pervasive adoption of grid computing for research.
December, 2006 ws-VLAM Workflow Management System a Re-factoring of VLAM Dmitry Vasyunin Adianto Wibisono Adam Belloum.
1 Globus Toolkit Security Java Components Rachana Ananthakrishnan Frank Siebenlist.
Access Grid Workshop – APAC ‘05 Node Services Development Thomas D. Uram Argonne National Laboratory.
WS-Resource Framework University of Amsterdam
Principles Architecture Functionality Configuration Future plans
OGSA Profiles Interoperability Testing
OGF PGI – EDGI Security Use Case and Requirements
CE-Monitor Luigi Zangrando INFN-Padova
CARA 3.10 Major New Features
IIS.
Student: Popa Andrei-Sebastian
Additional Features of WSRF/GT4 Services
Presentation transcript:

Office of Science U.S. Department of Energy Globus World Python WS Core Joshua R. Boverhof Lawrence Berkeley National Laboratory

Office of Science U.S. Department of Energy Globus World Outline Installation, packages and tools Example client and service –Service specific methods –WSRF methods and NotificationConsumer Handler Chain Architecture –WS-Security ResourceHomeManager –Persistence ResourcePortal –Authorization

Office of Science U.S. Department of Energy Globus World Installation Overview Core Components utilityresourcesecurity wsrf lifetime propertiesfaultsnotification generated resource propertiesservicesstubs %python setup.py install BaseNotification NotificationConsumerService SecureConversation SubscriptionManagerService DelegationService BaseFaults ResourceProperties ResourceLifetime ExclusiveCanonicalization config.txt services

Office of Science U.S. Department of Energy Globus World wsdl2web generated %wsdl2web.py --script=client.py --rpy=CounterService.rpy counter_service.wsdl server-config.tac ResourceTree ““wsrf/core/SubscriptionManager” --> SubscriptionManager Singleton ”/wsrf/services” -> dropins(“services”) Port Application services CounterService.rpy./start-container.sh 2006/08/02 22:34 PDT [-] Log opened. 2006/08/02 22:34 PDT [-] twistd starting up 2006/08/02 22:34 PDT [-] reactor class: 2006/08/02 22:34 PDT [-] Loading server-config.tac /08/02 22:34 PDT [-] Loaded. 2006/08/02 22:34 PDT [-] twisted.web.server.Site starting on /08/02 22:34 PDT [-] Starting factory 2006/08/02 22:34 PDT [-] ==> Delayed Call Sweep counter_service resource properties servicesstubs

Office of Science U.S. Department of Energy Globus World client.py script./client.py --help usage: client.py [options] options: -h, --help show this help message and exit -u URL, --url=URL location of service -d DEBUG, --debug=DEBUG Debug Messages to file, if 1 send to stdout, if 0 then off. -w WSADDRESSURI, --wsAddressURI=WSADDRESSURI Specify URI of ws-addressing version to use. -c CERT, --cert=CERT file path of certificate or proxy. -k KEY, --key=KEY file path of key -v M2SECURECONV, --m2secureConv=M2SECURECONV To use secure conversation, provide URL to Authorization service, and negotiate key used to sign/verify messages. -x M2SECUREMESSAGE, --m2secureMessage=M2SECUREMESSAGE use secure message to sign messages. -a AUTHZ, --authz=AUTHZ choose authorization, self or host.

Office of Science U.S. Department of Energy Globus World CounterService.rpy ################################################################# # Automatically generated by wsdl2web.py # See LBNLCopyright for copyright notice! ################################################################# from generated.counter_service.services.counter_service.CounterService import CounterServiceWSRF class Service(CounterServiceWSRF): '''override methods to do something useful''' resource = Service()

Office of Science U.S. Department of Energy Globus World Service Implementation # CounterService.py from pyGridWare.addressing.AddressingUtils import AddressingUtils from generated.counter_service.services.counter_service.CounterService\ import CounterServiceWSRF as WSRFService class Service(WSRFService): def wsa_add(self, ps, address, **kw): request,response = WSRFService.wsa_add(self, ps, address, **kw) ctx = WSRFService.GetResourceContext(ps, address, **kw) ctx.properties.Value += request return request, response.__class__(ctx.properties.Value) def wsa_createCounter(self, ps, address, **kw): request,response = WSRFService.wsa_createCounter(self, ps, address, **kw) ctx = WSRFService.NewResourceContextCounterPortTypePort(**kw) ctx.properties.Value = 0 response.EndpointReference = AddressingUtils.createEndpointReference(ctx) return request,response

Office of Science U.S. Department of Energy Globus World Example Service # CounterService.rpy import CounterService resource = CounterService.Service()

Office of Science U.S. Department of Energy Globus World Flowchart: SOAP In/out Core WSResource HandlerChain resource security generated resource properties services stubs Client ps addr request response Twisted.web HTTPRequest service

Office of Science U.S. Department of Energy Globus World Client: Create & Destroy from generated.counter_service.stubs import\ counter_service as CLIENT def main(**kw): locator = CLIENT.CounterServiceLocator() port = locator.getCounterPortType(**kw) response = port.create(CLIENT.CreateRequest()) iport = locator.getCounterPortType(\ endPointReference=response.EndpointReference, **kw) iport.destroy(CLIENT.DestroyRequest())

Office of Science U.S. Department of Energy Globus World Flowchart: Create generated resource manager properties services stubs service wsrf lifetime properties faults notification NewResourceContextCounterPortTypePort HTTPRequest ctx

Office of Science U.S. Department of Energy Globus World Flowchart: Destroy generated resource properties services stubs wsrf lifetime properties faults notification manager ctx ImmediateResourceTermination.Destroy(ctx, **kw) addrctx Immediate GetResourceContextDestroy

Office of Science U.S. Department of Energy Globus World Client: Subscribe from pyGridWare.wsrf.notification.NotificationConsumer import * from pyGridWare.wsrf.notification import SubscribeUtility from generated.counter_service.stubs import\ counter_service as COUNTER def main(**kw): consumer = NotificationConsumer() consumer.start() locator = COUNTER.CounterServiceLocator() port = locator.getCounterPortType(**kw) response = port.createCounter(COUNTER.CreateCounterRequest()) epr = response.EndpointReference iport = locator.getCounterPortType(endPointReference=epr, **kw) request = COUNTER.SubscribeRequest() SubscribeUtility.SimpleTopicExpression(request, consumer, " "Value”) response = iport.Subscribe(request)

Office of Science U.S. Department of Energy Globus World Flowchart: Subscribe generated resource properties services stubs wsrf lifetime properties faults notification Subscription Manager: create subscription & reference manager request context epr

Office of Science U.S. Department of Energy Globus World HandlerChain Core WSResource HandlerChain resource security Client addr soap Twisted.web HTTPRequest request response HTTPResponse service

Office of Science U.S. Department of Energy Globus World WSResource render def render_POST(self, request): chain = self.factory.newInstance() data = request.content.read() try: pyobj = chain.processRequest(data, request=request, resource=self) except Exception, ex: return self._writeFault(request, ex) try: soap = chain.processResponse(pyobj, request=request, resource=self) except Exception, ex: return self._writeFault(request, ex) if soap is not None: return self._writeResponse(request, soap) Single handler chain shared on a request/response flow.

Office of Science U.S. Department of Energy Globus World processRequest WSResource HandlerChain Client Service method DataHandler Callback WSAddr str ps ps - ParsedSoap factory = HandlerChainFactory Handler chain instance

Office of Science U.S. Department of Energy Globus World processResponse WSResource HandlerChain Client Service DataHandler Callback WSAddr request response request - pyobj response - pyobj sw - SoapWriter str response sw factory = HandlerChainFactory

Office of Science U.S. Department of Energy Globus World Example WS-Security # SecureCounterService.rpy import CounterService from pyGridWare.security.gss.resource import WSSecurityHandlerChainFactory resource = CounterService.Service() resource.factory = WSSecurityHandlerChainFactory # SecureCounterService-authService.rpy from pyGridWare.services import SecureConversationService resource = SecureConversationService.SecureConversationService()

Office of Science U.S. Department of Energy Globus World WSSecurity: verify WSResource HandlerChain Client Service method DataHandler Callback WSAddr str ps ps - ParsedSoap factory = WSSecurityHandlerChainFactory WSSecurityHandler GSISignatureHandler ps Verify signatures Handler chain instance

Office of Science U.S. Department of Energy Globus World WSSecurity: sign WSResource HandlerChain Client Service method DataHandler Callback WSAddr str factory = WSSecurityHandlerChainFactory WSSecurityHandler GSISignatureHandler add signatures request - pyobj response - pyobj sw - SoapWriter sw request, response

Office of Science U.S. Department of Energy Globus World ResourceHomeManager 1 Core resource Manager ResourceHome SimpleRH PersistentRH utility security generated Manager -- SimpleRH properties services stubs service Context.home = ManagerHome.getInstance(SimpleResourceHome) Manager is configured with a implementation of IResourceHome Client1 Client2 Twisted.web

Office of Science U.S. Department of Energy Globus World ResourceHomeManager 2 Core utility security generated Manager -- SimpleRH properties services stubs Create --> NewResourceContext home ctx1 Unprotected service will use a single resource home, “Anonymous” resource Manager ResourceHome SimpleRH PersistentRH

Office of Science U.S. Department of Energy Globus World Example Authorization # CounterService.rpy import CounterService from pyGridWare.security.authz.resource import ResourcePortal from pyGridWare.security.authz.checkers import GridMapChecker resource = ResourcePortal(CounterService.Service(), checkers=[GridMapChecker()], callback=None)

Office of Science U.S. Department of Energy Globus World ResourcePortal: setup ResourcePortal(Service(), checkers=[GridMapChecker()], callback=None) boverho f krjackson Twisted.web Site ResourcePortal Checker Realm service /wsrf/services/CounterService

Office of Science U.S. Department of Energy Globus World Portal: Service Login Service Level Authorization ResourcePortal render GridMapChecker requestAvatarId Realm requestAvatar service cred IResource avatarId (boverhof) Portal login cred service

Office of Science U.S. Department of Energy Globus World Portal: Service Instance Service Instance Level Authorization ResourcePortal render Service render ResourceHomeManager boverhof ctx1 krjackson ctx2 ctx3 cred IResourceHome request Portal login ctx1 boverhof

Office of Science U.S. Department of Energy Globus World Conclusions Use the wsdl2web tool to create a Site Service specific functionality must be implemented Configuration files are python scripts The Python Grid Service work is funded by the U.S. Department of Energy Office of Science