Introduction to Access Grid Development - PowerPoint PPT Presentation

mandell
introduction to access grid development n.
Skip this Video
Loading SlideShow in 5 Seconds..
Introduction to Access Grid Development PowerPoint Presentation
Download Presentation
Introduction to Access Grid Development

play fullscreen
1 / 26
Download Presentation
Presentation Description
67 Views
Download Presentation

Introduction to Access Grid Development

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Introduction to Access Grid Development

  2. Agenda • Architecture • AG Application Basics • AccessGrid module overview • Example application • Exercises

  3. Architecture

  4. Technologies • Python • wxPython • pyGlobus • SOAP (SOAPpy) • pyOpenSSL

  5. AG Application Basics An Access Grid client application will perform (at least) these steps: • Create an application instance • Initialize application • Create an interface wrapper • Call methods on the interface wrapper


  6. AG Application Basics • The core of an AG application is an instance of AccessGrid.Toolkit.Application AppBase Application Service CmdlineApplication WXGUIApplication

  7. AG Application Basics • Distinguished between GUI and non-GUI applications to generalize user interactions (for example, prompt for passphrase, error reporting) • CmdlineApplication • Examples: BridgeServer, VenueServer, AGNodeService • WXGUIApplication • Examples: VenueClient, VenueManagement, NodeManagement

  8. Application Initialization • Create AG application instance • Initialize application • Verify certificate repository • Load default certificate • Create proxy certificate • Configure Globus environment app = CmdlineApplication.instance() app.Initialize(appName) • appName is used in logfile name

  9. Argument Processing • Standard Python module optparse is integrated into toolkit • Add option to application before initialization • Access options post-initialization app.AddCmdLineOption( optparse.Option(‘-u’,’—url’, dest=‘url’)) app.Initialize(‘SampleApp’) url = app.GetOption(‘url’)

  10. Standard Toolkit Arguments • The toolkit adds some options to all applications • Available options can be viewed with ‘-h’ or –help • Examples -d (turn on debug) -l <logFileName> --logfilesize <size> --numlogfiles <num> (rollover log files)

  11. Logging • Standard Python module logging is integrated into AccessGrid toolkit • Multiple logging levels are defined (see logging module documentation) • CRITICAL, ERROR, WARNING, INFO, DEBUG • Logging levels can be controlled for individual components in an application • Application will create appName.log (appName is from app.Initialize) in Log directory: • Windows: %APPDATA%\AccessGrid\Logs • Linux/OSX: $HOME/.AccessGrid/Logs • Logging calls in code will appear in logfile, according to call and current logging level • log.debug(‘this is debug logging text’)

  12. AccessGrid Module Overview • AccessGrid • Core toolkit code • AccessGrid.Security • CertificateManager, CertificateRepository, etc. • AuthorizationManager, Role, Action, etc. • AccessGrid.Platform • Platform-specific code • Config.{SystemConfig,UserConfig,etc.} • ProcessManager • AccessGrid.hosting • SOAP implementation adapters

  13. AccessGrid Module API Documentation

  14. Interfaces and InterfaceWrappers • Described in online API documentation • Interface wrappers are defined in individual modules • For example, AccessGrid.Venue.VenueIW • IW (and I) class methods handle serialization/deserialization of data types from SOAP implementation domain to AG application domain

  15. Available InterfaceWrappers • VenueIW • VenueServerIW • VenueClientIW • AGNodeServiceIW • AGServiceManagerIW • AGServiceIW • AuthorizationManagerIW • SharedApplicationIW • NetworkServiceIW

  16. VenueIW

  17. Types • Many types are found in Descriptions.py • StreamDescription • ApplicationDescription • Others are found in their own modules • ClientProfile • AGParameter • Capability

  18. AG Applications An Access Grid client application will perform (at least) these steps: • Create an application instance • Initialize application • Create an interface wrapper • Call methods on the interface wrapper

  19. Example: GetClients.py #!/usr/bin/python2 import sys from AccessGrid.Toolkit import CmdlineApplication from AccessGrid.Venue import VenueIW url = sys.argv[1] # Create and initialize application app = CmdlineApplication() app.Initialize('qwe') # Create venue interface wrapper venue = VenueIW(url) # Get clients from venue and process clientList = venue.GetClients() for client in clientList: print client

  20. Example: GetClients.py python GetClients.py https://vv2.mcs.anl.gov:9000/Venues/default Profile Type: user Name: Tom Uram Email: turam@mcs.anl.gov Phone Number: Location: Chicago, IL Venue Client URL: https://wormtongue.mcs.anl.gov:11000/VenueClient Public ID: 00000102220e6208008c00dd0022004754d Home Venue: https://vv2.mcs.anl.gov:9000/Venues/default

  21. Example: GetClients.py • Check logfile GetClients.log

  22. Notes • Online workshop materials: http://www.mcs.anl.gov/fl/research/accessgrid/documentation/tutorial/AGTk_2.4 • Online developer documentation (including API reference): http://www.mcs.anl.gov/fl/research/accessgrid/software/developer.html • OSX users will need to source an environment file to run code in a terminal • /Applications/AccessGridToolkit.app/Contents/Resources/setupenv.sh

  23. Exercise: GetStreams.py • Modify GetClients.py to call GetStreams instead of GetClients • Return value is a list of Descriptions.StreamDescription

  24. Exercise: GetUsers.py • Modify GetClients.py to call VenueClientIW.GetUsers • Return value is a list of ClientProfile