I/O & Secure Communication Globus Toolkit™ Developer Tutorial The Globus Project™ Argonne National Laboratory USC Information Sciences Institute

Slides:



Advertisements
Similar presentations
The Globus Striped GridFTP Framework and Server Bill Allcock 1 (presenting) John Bresnahan 1 Raj Kettimuthu 1 Mike Link 2 Catalin Dumitrescu 2 Ioan Raicu.
Advertisements

LOP2P Architecture for Institutional Learning Objects Sharing Rafael de Santiago André Luís Alice Raabe, Dr. Master Program of Applied Computer Science.
1 Ports and IPv6. 2 Ports Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP), used for communication Generally speaking, a computer.
Remote Procedure Call Design issues Implementation RPC programming
FIREWALLS. What is a Firewall? A firewall is hardware or software (or a combination of hardware and software) that monitors the transmission of packets.
Issues of Security and Privacy in Networking in the CBA Karen Sollins Laboratory for Computer Science July 17, 2002.
1 Networking through Linux Partha Sarathi Dasgupta MIS Group Indian Institute of Management Calcutta.
Data Grids: Globus vs SRB. Maturity SRB  Older code base  Widely accepted across multiple communities  Core components are tightly integrated Globus.
1 Generic Transport Service Primitives Listen –notify Transport layer a call is expected Connect –establish Transport layer connection Send (or Write)
Java Socket Support Presentation by: Lijun Yuan Course Number: cs616.
CS3771 Today: network programming with sockets  Previous class: network structures, protocols  Next: network programming Sockets (low-level API) TODAY!
Introduction Globus Toolkit™ Developer Tutorial The Globus Project™ Argonne National Laboratory USC Information Sciences Institute
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE CSci530: Computer Security Systems Authentication.
Networking Support In Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Client Server Model The client machine (or the client process) makes the request for some resource or service, and the server machine (the server process)
Basics Globus Toolkit™ Developer Tutorial The Globus Project™ Argonne National Laboratory USC Information Sciences Institute Copyright.
GT4 Introductory and Advanced Practicals Rachana Ananthakrishnan, Charles Bacon, Lisa Childers Argonne National Laboratory University of Chicago.
Grid IO APIs William Gropp Mathematics and Computer Science Division.
Grid Information Systems. Two grid information problems Two problems  Monitoring  Discovery We can use similar techniques for both.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
CS240 Computer Science II Introduction to Unix Based on “UNIX for Programmers and Users” by G.Class and K. Ables.
SC84, Epics C# Library Written by Christoph Seiler Presented by Dirk Zimoch.
LWIP TCP/IP Stack 김백규.
LWIP TCP/IP Stack 김백규.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 4 Communication.
File Access and Transfer. Issues 4 Access and transfer are different operations –with different requirements 4 Transfer –move the file from one place.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Networking Concepts. Week-7 Network Protocols Three Major Components:  Application Interface –Connects programs to network  Global Network Transport.
Sockets API Overview Sockets with UDP Sockets with TCP Fast Sockets (Fast UDP) IP Multicasting.
 TCP (Transport Control Protocol) is a connection-oriented protocol that provides a reliable flow of data between two computers.  TCP/IP Stack Application.
Introduction to Network Programming with Sockets Network Programming Kansas State University at Salina.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Chapter 4: Interprocess Communication‏ Pages
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Saeed Darvish Pazoki – MCSE, CCNA Abstracted From: Cisco Press – ICND 2 – 6 IP Access Lists 1.
CN2668 Routers and Switches Kemtis Kunanuraksapong MSIS with Distinction MCTS, MCDST, MCP, A+
Lector: Aliyev H.U. Lecture №10 Multicast network software design TASHKENT UNIVERSITY OF INFORMATION TECHNOLOGIES THE DEPARTMENT OF DATA COMMUNICATION.
Communicating Security Assertions over the GridFTP Control Channel Rajkumar Kettimuthu 1,2, Liu Wantao 3,4, Frank Siebenlist 1,2 and Ian Foster 1,2,3 1.
Lab 2: TCP /IP communication Southern Methodist University Bryan Rodriguez.
Introduction to Sockets “A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port.
TFTP: Trivial file transfer protocol
CS 158A1 1.4 Implementing Network Software Phenomenal success of the Internet: – Computer # connected doubled every year since 1981, now approaching 200.
CE Operating Systems Lecture 13 Linux/Unix interprocess communication.
Lecture 8 Page 1 CS 111 Online Other Important Synchronization Primitives Semaphores Mutexes Monitors.
,294,967,296 Q. What are private IP addresses? A. The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the.
1 WNT Low Level Network Interfaces Tutorial NT015 Copyright, 1997 ©Mentec Inc Paul Fix Mentec Inc.
An Introduction to Device Drivers Ted Baker  Andy Wang COP 5641 / CIS 4930.
Socket Programming Introduction. Socket Definition A network socket is one endpoint in a two-way communication flow between two programs running over.
Copyright © 2012 Kendall Electric, Inc. All rights reserved.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
The Globus eXtensible Input/Output System (XIO): A protocol independent IO system for the Grid Bill Allcock, John Bresnahan, Raj Kettimuthu and Joe Link.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Doc.: IEEE /0057r0 Submission January 2010 Dan Harkins, Aruba NetworksSlide 1 [place presentation subject title text here] Date: Authors:
Multimedia Retrieval Architecture Electrical Communication Engineering, Indian Institute of Science, Bangalore – , India Multimedia Retrieval Architecture.
New Development Efforts in GridFTP Raj Kettimuthu Math & Computer Science Division, Argonne National Laboratory, Argonne, IL 60439, U.S.A.
A Sneak Peak of What’s New in Globus GridFTP John Bresnahan Michael Link Raj Kettimuthu (Presenting) Argonne National Laboratory and The University of.
1 Network Communications A Brief Introduction. 2 Network Communications.
Building programs LinuxChix-KE. What happens in your CPU? ● It executes a small set of instructions called "machine code" ● Each instruction is just a.
Collaboration with Existing Controllers
Boots Cassel Villanova University
Other Important Synchronization Primitives
Operating System Structure
Study course: “Computing clusters, grids and clouds” Andrey Y. Shevel
Chapter 2: The Linux System Part 1
The University of Adelaide, School of Computer Science
Windows System Programming Third Edition
Ns-3 Tutorial Xin Li.
Grid Security Infrastructure
Software Engineering and Architecture
Presentation transcript:

I/O & Secure Communication Globus Toolkit™ Developer Tutorial The Globus Project™ Argonne National Laboratory USC Information Sciences Institute Copyright (c) 2002 University of Chicago and The University of Southern California. All Rights Reserved. This presentation is licensed for use under the terms of the Globus Toolkit Public License. See for the full text of this license.

June 17, Globus Toolkit™ Developer Tutorial: Communication Motivation l Numerous applications already use combinations of TCP, UDP, IP multicast, and file I/O. –Reinvents the wheel, many times! –Security is rarely employed. l Advantages of globus_io –Ease of use of security, socket options, QoS –Easier Win32 portability –Very similar to existing BSD socket calls

June 17, Globus Toolkit™ Developer Tutorial: Communication Approach l Provide familiar socket and file abstractions l Provide both synchronous and asynchronous versions of everything –Can easily write code that will not block for anything l Handle security, socket options, and QoS through attributes –Easy to change options for each I/O handle

June 17, Globus Toolkit™ Developer Tutorial: Communication Win32 l Unlike Unix, in Win32 “file handles” and “socket handles” are treated differently –Select only works on socket handles –Different Win32 calls for file and socket I/O –globus_io allows us to mask this difference l Win 32 “completion ports” give the best I/O performance –globus_io’s asynchronous callback interface matches well with completion ports –globus_callback also designed for this

June 17, Globus Toolkit™ Developer Tutorial: Communication Core Functions l Common functions used for all forms of I/O –globus_io_[register]_select() –globus_io_[register]_cancel() –globus_io_[register]_close() –globus_io_[register]_read() –globus_io_[register]_write() –globus_io_[register]_writev() –globus_io_try_{read,write,writev}() –globus_io_get_handle_type() –globus_io_handle_{set,get}_user_pointer()

June 17, Globus Toolkit™ Developer Tutorial: Communication TCP Connection Setup l Typical functions for creating TCP connections –globus_io_tcp_create_listener() –globus_io_tcp_[register]_listen() –globus_io_tcp_[register]_accept() –globus_io_tcp_[register]_connect() l Setting and getting attributes –globus_io_tcp_set_attr() –globus_io_tcp_get_attr()

June 17, Globus Toolkit™ Developer Tutorial: Communication File Setup l Typical functions for establishing file I/O –globus_io_file_open() –globus_io_file_seek()

June 17, Globus Toolkit™ Developer Tutorial: Communication TCP Security Attributes l TCP authentication and delegation characteristics –globus_io_attr_set_secure_authentication_mode() >GLOBUS_IO_SECURE_AUTHENTICATION_MODE_NONE >GLOBUS_IO_SECURE_AUTHENTICATION_MODE_GSSAPI –globus_io_attr_set_secure_delegation_mode() >GLOBUS_IO_SECURE_DELEGATION_MODE_NONE >GLOBUS_IO_SECURE_DELEGATION_MODE_LIMITED_PROXY >GLOBUS_IO_SECURE_DELEGATION_MODE_FULL_PROXY

June 17, Globus Toolkit™ Developer Tutorial: Communication TCP Security Attributes l TCP authorization and channel characteristics –globus_io_attr_set_secure_authorization_mode() >GLOBUS_IO_SECURE_AUTHORIZATION_MODE_SELF >GLOBUS_IO_SECURE_AUTHORIZATION_MODE_IDENTITY >GLOBUS_IO_SECURE_AUTHORIZATION_MODE_CALLBACK –globus_io_attr_set_secure_channel_mode() >GLOBUS_IO_SECURE_CHANNEL_MODE_CLEAR >GLOBUS_IO_SECURE_CHANNEL_MODE_GSI_WRAP >GLOBUS_IO_SECURE_CHANNEL_MODE_SSL_WRAP

June 17, Globus Toolkit™ Developer Tutorial: Communication TCP Socket Attributes l TCP socket options –globus_io_attr_set_socket_reuseaddr() –globus_io_attr_set_socket_keepalive() –globus_io_attr_set_socket_linger() –globus_io_attr_set_socket_oobinline() –globus_io_attr_set_socket_sndbuf() –globus_io_attr_set_socket_rcvbuf() –globus_io_attr_set_tcp_nodelay()

June 17, Globus Toolkit™ Developer Tutorial: Communication Other Attributes l File attributes –globus_io_attr_set_file_type() >GLOBUS_IO_FILE_TYPE_TEXT >GLOBUS_IO_FILE_TYPE_BINARY l Restricting anonymous ports to a particular port range –globus_io_attr_set_tcp_restrict_port() l IP multicast –globus_io_attr_set_udp_multicast_loop() –globus_io_attr_set_udp_multicast_ttl()

June 17, Globus Toolkit™ Developer Tutorial: Communication globus_io exercises l Go to the “io” subdirectory l Documentation – l Follow instructions in the file README