pipetree © 2001 pipetree.com dj adams piers harding transfusing message plasma into business with...

19
pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

Upload: erika-rice

Post on 28-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

DJ AdamsPiers Harding

Transfusing Message Plasma into Business with Perl and Other Magic

Page 2: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

The Next 45 Minutes

• Jabber– Instant Messaging --> Messaging– Plasma transporting B2B oxygen

between systems• Net::Jabber

– Extensive support for Jabber in Perl• SAP R/3

– Open Source technologies can extend & add value to ERP systems

Page 3: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Jabber and Messaging

• Jabber is a technology, a software embodiment, and a state of mind– open, XML-based messaging

infrastucture• Messaging is a fundamental

element in business processes• Business messages can be carried

in payload packets between systems

Page 4: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Net::Jabber

• Comprehensive support for most areas of the Jabber mechanisms

• Extensible via Delegate mechanism• Relies upon XML::Streams

Page 5: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Net::Jabber Overview Net::Jabber | ------------------ | | Jabber.pm Jabber/ | | +------------+---------+-----------------+--------------------------------------+ | | | | | Protocol.pm Data/ Dialback/ Query/ X/ Server.pm | | | | IQ.pm Auth.pm Result.pm +-------------------+ +-------------------------+ Component.pm Verify.pm | | | | | | X.pm | Agent.pm Roster/ Form/ SXPM/ Form.pm Dialback.pm +---------+----------+---------+ Agents.pm | | | Roster.pm Client.pm | | | | Auth.pm Item.pm | Map.pm SXPM.pm Debug.pm Roster/ AutoUpdate/ Search/ Filter/ AutoUpdate.pm | Encrypted.pm Message.pm | | | | Filter.pm +---------+ Signed.pm Presence.pm Item.pm Release.pm Item.pm Rule.pm Fneg.pm | | AutoUpdate.pm Data.pm Oob.pm Field/ Field.pm Delay.pm JID.pm Register.pm | GC.pm Key.pm Roster.pm Option.pm Ident.pm Log.pm Search.pm Oob.pm Query.pm Time.pm Replypres.pm XDB.pm Version.pm

Page 6: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Using Net::JabberConnectConnect

AuthenticateAuthenticate

Set CallbacksSet Callbacks

Off you go!Off you go!

Page 7: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Extending Net::Jabber # Connect defined($self->{connection}->Connect( hostname => $self->{host}, port => $self->{port}, )) or die "Cannot connect to Jabber server\n";

...

# Ident/Auth my @result = $self->{connection}->AuthSend( username => $self->{id}, password => $self->{pass}, resource => RESOURCE, ); die "Ident/Auth failed: $result[0] - $result[1]\n" if $result[0] ne "ok";

...

# Add frontier:xmlrpc namespace delegate $self->{connection}->AddDelegate( namespace => 'frontier:xmlrpc', parent => 'Net::Jabber::Query', parenttype => 'query', delegate => 'Net::Jabber::XMLRPC::Query', );

...

# Create a Jabber info/query message my $iq = new Net::Jabber::IQ(); $iq->SetIQ( type => 'set', to => $self->{endpoint}, ); my $query = $iq->NewQuery('frontier:xmlrpc'); $query->SetPayload($xmlrpc);

Page 8: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Live Demo!

• Technologies– Perl– Jabber– SAP– Apache– XML-RPC

• Business Process– Purchase order

placement– Order notification– Approval cycle– External order input– Asynchronous

connections– B2B

Page 9: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

R/3R/3JabberdJabberd

sapguisapgui

JIMJIM

RFCEXECscript

RFCEXECscript

1: Order Notification

Page 10: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

1: Order Notification

• Purchase Order placed through SAPGUI

• Order Exit sends Jabber message to Approver

Page 11: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

2: Order Approval

R/3R/3JabberdJabberd

sapguisapgui

JIMJIM

Webbrowser

Webbrowser

ApacheApache

RFCEXECscript

RFCEXECscript

SA

P::

Rfc

SA

P::

Rfc

Page 12: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

2: Order Approval

• URL sent in notification• Approver opens URL• Order viewed in browser• Approval actioned

Page 13: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

3: External Order Input

R/3R/3JabberdJabberd

sapguisapgui

PerlscriptPerl

script

JIMJIM

Webbrowser

Webbrowser

ApacheApache

ComponentComponent

RFCEXECscript

RFCEXECscript

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

Page 14: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

3: External Order Input

• Order placed from 3rd party• Order detail transported as XML-

RPC payload• Jabber component

connects to R/3to place order

Page 15: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

4: Asynchronous Connectivity

R/3R/3JabberdJabberd

sapguisapgui

PerlscriptPerl

script

JIMJIM

Webbrowser

Webbrowser

ApacheApache

ComponentComponent

PerlscriptPerl

script

RFCEXECscript

RFCEXECscript

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

SA

P::

Rfc

Page 16: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

4: Asynchronous Connectivity

• R/3’s availability can be independent of B2B process

• Jabber provides store-and-forward services

Page 17: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Jabber is the PLASMA

Bulb logo by Artwiz

Page 18: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Perl is the GLUE

The use of the camel image in association with the Perl language is a trademark of O’Reilly & Associates, Inc

Page 19: Pipetree © 2001 pipetree.com DJ Adams Piers Harding Transfusing Message Plasma into Business with Perl and Other Magic

pipetree© 2001 pipetree.com

Resources

• Net::Jabber http://www.cpan.org• Jabber Dev http://dev.jabber.org• SAP http://www.sap.com/linux• SAP::Rfc http://www.ompa.net• Apache & Perl http://perl.apache.org• Articles http://www.oreillynet.com/

p2p