ACS Tutorials, Spring 2005

Berkeley Lab's Advanced Computing for Science Department, which has developed and deployed various tools and applications to help geographically dispersed scientists collaborate on scientific research, presented four tutorials at the Lab to help LBNL researchers to learn more about these collaborative resources.

Here are summaries of the four tutorials. Click on the tutorial name or scroll down for a more detailed description, to obtain an electronic copy of the slides.

Introduction to Grid Computing
Basic Grid computing concepts, Web Services, and Grid troubleshooting.
Secure Collaboration
Distributed security and access control, including PKI and Kerberos.
Collaborative Tools and Sociology
Technical and sociological aspects of commercial and research tools for secure remote collaboration.
Tools and Techniques for Managing Large Scientific Software Projects
Software engineering tools and techniques for the entire software lifecycle.


Tutorial #1: Introduction to Grid Computing


This tutorial provides an introduction to Grid computing, starting  with an overview of basic Grid computing concepts and a brief history of Grid computing. It then looks in more detail at the recent convergence of Web services and Grid computing. The first part of this tutorial is suitable for those looking for a basic understanding of what the Grid is and how it might be useful to you. The second part contains a more in-depth look at the technology with a focus on the most recent version of the Globus Toolkit ® (GT4). The tutorial also includes Grid instrumentation and monitoring techniques to aid in troubleshooting.

Topics will include:
* What is Grid computing?
* Web services overview
* OGSA/WSRF
* PKI and Grid security
* Implementations of WSRF
* Installing and using Globus Toolkit version 4
* Grid troubleshooting techniques

Tutorial slides




Tutorial #2: Secure Collaboration: Concepts and Tools

Do you have remotely accessed data or programs? Are you trying to collaborate with people from remote sites or allow semi-public access to your results? Are you trying to write applications that operate across several sites? And do you need to do all this securely?

This tutorial discusses the most common security threats and describe how you can counter them. The tutorial also shows you how to achieve as much control as you need, while not overburdening the system or users.

Topics include:
* Definition of security properties
* Secure protocols: https, openTLS, WS-security
* Cryptographic basics and how they are applied to secure an application
* How PKI ties it all together
* The Kerberos approach
*Tools that provide secure communication: openSSL, Java Crytpo libraries, JCE, JSSE
Advanced topics:

* Single sign on, authorization, delegation, P2P authentication, one-time passwords

Tutorial slides



Tutorial #3: Collaborative Tools and Sociology
 
Many tools are now available to aid in connecting people so they can collaborate at a distance. This tutorial provides an overview and demonstrations of a broad range of the available commercial and research collaborative tools. We provide an explanation of how each tool works, how to use it, and the equipment required. We also discuss some of the sociological issues that should be considered when choosing collaborative tools.

Topics include:
* Videoconferencing - H.323, Access Grid, Conference XP, and Virtual Room Videoconferencing System
* Shared whiteboards
* Wikis and blogs
* Instant messaging and presence
* Peer-to-peer file-sharing
* Seminar broadcasting and archiving

Tutorial slides




Tutorial #4: Tools and Techniques for Managing Large Scientific Software Projects

Are you trying to manage a mess of code that was developed over several years by a bunch of grad students who no longer work here? Or are you about to start a large software project, and want to make sure you get it right this time around? This tutorial covers a number of tools and techniques that save you time and make your software more maintainable.

These topics include:
* Source code management tools (cvs and subversion)
* IDEs and debuggers
* UNIX build tools (automake, autoconf, libtool, etc.)
* Communication tools (bug trackers, email lists, plones, wiki's, chat rooms, etc.)
* Unit testing/release management
* Logging and tuning strategies
* Using chat rooms productively
* State diagramming tools (e.g., SMC)

Tutorial slides