Server Smalltalk Guide
Preface
Notices
Trademarks
About this book
Who this book is for
What's new?
VAST Platform 2024 (version 13.0.0)
Conventions used in this book
Tell us what you think
What is Server Smalltalk (SST)
Getting started with SST
Supported infrastructure
Spaces, contexts, URLs
Concepts helpful for understanding SST
Connection-oriented design
Remote references and proxies
Transient references
Symbolic references
Object spaces
Application contexts
Message passing
Logical processes
Multithreading and multiprocessing
Actors
Programming with Actors
Transactions
Transactions
Transactional code
Transactors
Building server applications
Categorization and Interfaces
Configurations
Callbacks
Startup and shutdown
HTTP server access log
Putting your application together
RPC-style applications
Object invocation applications
An illustration: Ping-Pong examples
Ping-Pong examples
Basic Examples
Distributed Examples
RMI Examples
IIOP Examples
Setting up the examples
Running the native SST examples
Running the RMI examples
Smalltalk ping, Java pong
Java Ping, Smalltalk Pong
Other RMI PingPong examples
Applets
Summary
Distributed objects using application contexts
Packaging notes for SST applications
Direct packaging
Packaging through Server Workbench
Packaging RMI applications
Common packaging problems
Packaging applications with logical process debugging
Packaged image exits
SstUndefinedTransportError or SstUndefinedSchemeError
'UndefinedObject does not understand resume'
Inspecting and debugging SST applications
The SST menu
Inspectors
System objects
Distributed debugging
Using the Distributed Debugger
Potential problems
Remote administration
Distributed garbage collection
Requirements for using DGC
Installation, startup and shutdown
The DGC Object
DGC configuration
Restrictions and side-effects
Good practice and bad practice
Constructing new SST configurations
Startup, shutdown, and restart
Configurations
Communications
Endpoints
Equivalence between endpoints
URLs
Transports
Transport configurations
Transport configuration registry
Connective transports
TCP transports
TCP transport configuration
'tcp' and 'tcpl' URLs
MQ transports
MQ transport configuration
'mq' URLs
Email Support (SMTP and IMAP4)
SMTP Client
IMAP4 Client
Message tunneling
Communication messages
Message assemblers
Programming clients and servers with the communications API
MultiPart Data Support
New SstByteMessage Protocol
SstMultipartContent Protocol
Seaside Support
Getting remote content using HTTP
Classic content retrieval
Streaming HTTP responses
Interacting with an SstStreamedByteMessage
Streaming from the message
Transfer-encoding: chunked
Getting the contents (compatibility)
Using asynchronous Streams
SstHttpClientExample
Server programming using invocation handlers
HttpServerExample
Secure Client
Configuring an HTTP Client to Use a Proxy
Client Tunneling
HTTPS client tunneling through an HTTP proxy
Certificate Validation
Security Files
HTTPS server certificate validation by an HTTPS client
Two-Way Authentication – The Client is Required to Present a Certificate to the Server
Server Workspace
Client Workspace
Web Application Server
Method invocation
Requests
Invocation handlers
Dispatchers
Logical process invocation
Error and exception handling
UI handlers
Invocation handler configurations
Invocation handler callbacks
Invocation handler restart modes
Handler configuration registry
Marshaling
By-value marshaling
By-reference marshaling
Marshaling wrappers
Marshaling with Swapper
Advanced Swapper-based marshaling
Lightweight marshaling
Advanced lightweight marshaling
Remote object model
Object spaces
Space activations
Remote references
Managing access to remote references
Addressing objects with naming interfaces
Space configurations
Object space callbacks
Object space restart modes
Application contexts
Context restart modes
Java RMI support
Java type information
com.ibm.sst.JavaTypeRepository
SstRmiTools
Java type definitions
Examples of Java RMI support
Programming with RMI support
Configuring and starting RMI support
Using JDK 1.1
Changing the stub protocol version for JDK 1.1
Changing the stub protocol version for JDK 1.1
Java security for JDK 1.2 and higher
Migrating method mappings to JDK 1.2 and higher
Enabling Smalltalk objects
Java client objects
Exceptions
Limitations
Using the Java/Smalltalk RMI Mapping Wizard
Setting up the VisualAge for Java Remote Access Tool to API and tool servlet interface
RMI Wizard Java Interface Settings
Mapping a Smalltalk class to a Java class
Welcome page
Mapping Information page
Interface mapping page
Field mapping page
Method mapping page
Generate Mapping page
Mapping a Java interface
Welcome page
Interface Mapping page
Method Mapping page
Generate Mapping Definitions
Mapping a Smalltalk class to a Java exception
Welcome page
Mapping Information page
Field Mapping page
Method Mapping page
Generate Mapping Definitions
CORBA IIOP support
IIOP transports
Invoking methods using IIOP
IDL repositories
Configurations and starting IIOP
Helper methods for creating application contexts
Contexts for method invocation
IIOP marshaling
Remote object model
IORs
Remote references
CORBA object services
Naming Service
Other information on CORBA IIOP support
Repository cache operations
Constants
Exceptions
Unions
Named value lookups
Known limitations
Exceptions
Appendix A. Extensions to Kernel
SstSharedQueue
SstPool
SstWorkerManager
SstRegistry and SstDualRegistry
Scheduler
SstCronEntry
Class methods
Instance methods
SstCronEvent
Class methods
Instance methods
Index
Server Smalltalk Guide
Server Smalltalk Guide
Preface
Notices
Trademarks
About this book
Who this book is for
What's new?
Conventions used in this book
Tell us what you think
What is Server Smalltalk (SST)
Getting started with SST
Supported infrastructure
Spaces, contexts, URLs
Concepts helpful for understanding SST
Connection-oriented design
Remote references and proxies
Transient references
Symbolic references
Object spaces
Application contexts
Message passing
Logical processes
Multithreading and multiprocessing
Actors
Transactions
Building server applications
Categorization and Interfaces
Configurations
Callbacks
Startup and shutdown
Putting your application together
RPC-style applications
Object invocation applications
An illustration: Ping-Pong examples
Ping-Pong examples
Setting up the examples
Running the native SST examples
Running the RMI examples
Summary
Distributed objects using application contexts
Packaging notes for SST applications
Direct packaging
Packaging through Server Workbench
Packaging RMI applications
Common packaging problems
Inspecting and debugging SST applications
The SST menu
Inspectors
System objects
Distributed debugging
Using the Distributed Debugger
Potential problems
Remote administration
Distributed garbage collection
Requirements for using DGC
Installation, startup and shutdown
The DGC Object
DGC configuration
Restrictions and side-effects
Good practice and bad practice
Constructing new SST configurations
Startup, shutdown, and restart
Configurations
Communications
Endpoints
Equivalence between endpoints
URLs
Transports
Transport configurations
Transport configuration registry
Connective transports
TCP transports
TCP transport configuration
'tcp' and 'tcpl' URLs
MQ transports
MQ transport configuration
'mq' URLs
Email Support (SMTP and IMAP4)
SMTP Client
IMAP4 Client
Message tunneling
Communication messages
Message assemblers
Programming clients and servers with the communications API
MultiPart Data Support
Getting remote content using HTTP
SstHttpClientExample
Server programming using invocation handlers
HttpServerExample
Secure Client
Configuring an HTTP Client to Use a Proxy
Certificate Validation
Web Application Server
Method invocation
Requests
Invocation handlers
Dispatchers
Logical process invocation
Error and exception handling
UI handlers
Invocation handler configurations
Invocation handler callbacks
Invocation handler restart modes
Handler configuration registry
Marshaling
By-value marshaling
By-reference marshaling
Marshaling wrappers
Marshaling with Swapper
Advanced Swapper-based marshaling
Lightweight marshaling
Advanced lightweight marshaling
Remote object model
Object spaces
Space activations
Remote references
Managing access to remote references
Addressing objects with naming interfaces
Space configurations
Object space callbacks
Object space restart modes
Application contexts
Context restart modes
Java RMI support
Java type information
com.ibm.sst.JavaTypeRepository
SstRmiTools
Java type definitions
Examples of Java RMI support
Programming with RMI support
Configuring and starting RMI support
Using JDK 1.1
Enabling Smalltalk objects
Java client objects
Exceptions
Limitations
Using the Java/Smalltalk RMI Mapping Wizard
Setting up the VisualAge for Java Remote Access Tool to API and tool servlet interface
RMI Wizard Java Interface Settings
Mapping a Smalltalk class to a Java class
Welcome page
Mapping Information page
Interface mapping page
Field mapping page
Method mapping page
Generate Mapping page
Mapping a Java interface
Welcome page
Interface Mapping page
Method Mapping page
Generate Mapping Definitions
Mapping a Smalltalk class to a Java exception
Welcome page
Mapping Information page
Field Mapping page
Method Mapping page
Generate Mapping Definitions
CORBA IIOP support
IIOP transports
Invoking methods using IIOP
IDL repositories
Configurations and starting IIOP
Helper methods for creating application contexts
Contexts for method invocation
IIOP marshaling
Remote object model
IORs
Remote references
CORBA object services
Naming Service
Other information on CORBA IIOP support
Repository cache operations
Constants
Exceptions
Unions
Named value lookups
Known limitations
Exceptions
Appendix A. Extensions to Kernel
SstSharedQueue
SstPool
SstWorkerManager
SstRegistry and SstDualRegistry
Scheduler
Index