Highlights ========== * Direct SOAP dialog with ActiveWorks brokers. * Apache Forwarding of SOAP requests to an ActiveWorks brokers. * Make ActiveWorks requests via SOAP. Overview ======== SOAP-ActiveWorks provides a transport layer for sending and receiving SOAP requests to and from an ActiveWorks broker. Example adapter and client scripts are provided. The approach mirrors that of the original Transport::HTTP modules from which Transport::ActiveWorks borrows heavily. Demo Scripts & Setup ==================== You must first have the SOAP and Aw packages installed. It is advisable that you also install the SOAP-AutoInvoke v0.25 or later to use the demo scripts. Using the AW event_type_editor import the event defintions from "server/soap.data". This creates the "SOAP" client group, event scope, SOAP::Request and SOAP::Reply events. After the classes are installed with "make install" start "server/soap_adapter.pl" in one window and dialog with it using "client/calculator.pl" in another (which in turn depends on "Calculator.pm" module from SOAP-AutoInvoke). The "client/get_time.pl" may also be used at this point. To use an ActiveWorks broker thru an HTTP server prepare a mod_perl handler similar to the following which can peacefully coexist with your present SOAP HTTP installation: -------------------------------8<------------------------------------------ package Apache::SOAPServer; use strict; use Apache; use SOAP::Transport::HTTP::Apache; use SOAP::Transport::ActiveWorks::HTTP::Apache; sub handler { my $http_safe_classes = { ClassA => undef, ClassB => undef, }; my $aw_safe_classes = { Calculator => undef, Time => undef, }; my $r = Apache->request(); my %args = $r->args(); if ( $http_safe_classes->{$args{class}} ) { # # Handle requests here and now. # SOAP::Transport::HTTP::Apache->handler($http_safe_classes); } else { # # Forward to an adapter for handling. # SOAP::Transport::ActiveWorks::HTTP::Apache->handler($aw_safe_classes); } } 1; __END__ ------------------------------->8------------------------------------------ ~ Alternatively SOAP::Transport::ActiveWorks::HTTP::Proxy provides the "http_proxy" subroutine which may be used as an optional dispatcher with "safe_classes" with the standard SOAP::Transport::HTTP::Apache handler. This approach incurs a little more overhead however. The "client/get_time_via_http.pl" script and the the "client/calculator.pl" script from SOAP-AutoInvoke may both be used now thru the HTTP server. It is assumed that a time adapter is running. Future ====== With direct SOAP to ActiveWorks connectivity the possibility is present to create persistant objects on the server side. Comments and suggestions are of course appreciated. Daniel yacob@rcn.com