Distributed Computing Technologies


Table of contents

  1. Introduction
  2. Socket "level" technology
    1. Primitive socket support
    2. Protocol support
  3. Middleware
    1. Web authoring
    2. Other middleware

    Introduction

    In the sections below I will discuss various distributed computing resources. Since there are packages for all popular computing languages I have decided to concentrate on three: Java, Python and Smalltalk. The libraries found in these languages are representative of those you will find available for other languages although there are certainly exceptional languages specifically designed for distributed computing which will provide more resources. Since most of the discussions below will reference the documentation for these languages, the links to the root of these documents is here:

    Sockets "level" technology

    Primitive socket support

    Typically directly manipulating sockets is not the best choice for an developer since most languages have well-tested libraries to support well know protocols (often both the client and server side). However, most languages support a sockets API that is, or closely follows, the BSD sockets API. In C and C++ this API should be part of the standard libraries provided with your system (although on some platforms you need to link against libsocket.a).

    Language socket API's and support libraries include:

    Note that I have intentionally left out C and C++ since most sockets programmers have ample resources in these languages. See my Distributed Computing Workshop web pages for C and C++ resource links.

    Protocol support

    Many development environments include support for the client or server side of several protocols. Examples include(this is not a complete list):
    Language Package Clients Servers Comments
    Java Oro Inc's packages ftp, nntp, smtp, pop3, telnet, tftp    
      Suns Servlet and JSP packages   http  
    Python Standard library http, ftp, gopher, pop, imap, nntp, smtp, telnet http, ftp data handling classes
    Most Smalltalks See image http, smtp, ftp, (pop and imap from various sources) http Way cool Wiki's

    Middleware

    I divide the middleware into two categories which are not altogether separate: Web Authoring and "Other".

    Web Authoring

    Keep in mind, here, that the "language" refers more to the native language of the web authoring system, not the only language from which it can be used. For example, Java Server Pages can be part of a web application written in C.
    Language Active Documents Servlet
    Java Java server pages -- link is to FAQ, docs must be downloaded The java servlet architecture
    Python Zope Zope
      Apache python module None
      Netscape API support None
    Smalltalk None known Wiki server
      None known Pluggable web server

    Other middleware

    Language Technology Description
    Java RMI Java native distributed object system
      CORBA You should know.
      Java enterprise bean servers Object persistence and lifecycle management + application server
      Gemstone/J Object database and application server
    Python Fnorb Python CORBA ORB
    Smalltalk Several CORBA implementations See image
      Gemstone/S See Gemstone/J + many more years of Smalltalk software development

    Page maintained by:

    David Shaffer
    DavidShaffer@psu.edu
    Last modified: Wed May 3 16:12:05 EDT 2000