2007 ASR end of studies project
The Integration of
Web Services
Supervision: Christian Bac, Olivier Berger
By Ilf Moussa & Asako Nakano
February 7. 2007
2
Outline
Introduction
Main issues
Step by step
Problem analysis
Solution
Progress
Technical problems
Taking things further
Conclusion
3
Introduction
Needs of developers for a project management
Independence of each tool but no harmonization
“Picolibre project”
Uses PhpGroupWare as a basis
Merges free applications: SVN, Sympa, Twiki
Goal
A single interface with a “single sign
-
on” system
4
Main issues
–
part 1/3
Open source mailing list software
Data stored in database (MySql, Oracle…)
Archives
Mail
Focused on customization possibilities
Scalable: small working groups, newsletter…
Web interface
What is Sympa?
5
HOST 1
Main issues
–
part 2/3
Web interface
: Picolibre
PhpGroupWare
-
SVN
-
Sympa
-
Twiki
…
Sympa
Sympa
DATABASE
Daemon
Queries for Sympa
DATABASE
SENDING
QUERIES
DIRTY
ACCESS
6
HOST 1
Main issues
–
part 3/3
The ideal version of Picolibre
Web interface
: Picolibre
PhpGroupWare
-
SVN
-
Sympa
-
Twiki
…
ACCESS by
Sympa application
Sympa
Sympa
DATABASE
Daemon
Queries for Sympa
DATABASE
7
Outline
Introduction
Main issues
Step by step
Problem analysis
Solution
Progress
Technical problems
Taking things further
Conclusion
8
Step by Step
-
Problem analysis
Search in Sympa
Only a SOAP server available
Many SOAP functions to control remotely
Search in Picolibre
Possibility of a SOAP client to send requests
A “nusoap” library
Choice of the SOAP solution
9
Step by Step
–
Solution
–
part 1/2
What is SOAP?
Simple Object Access Protocol
Exchange XML based messages
Existence different types of messaging patterns
RPC (Remote Procedure Call)
Exchange messages between Client
Server
10
HOST 1
Step by Step
–
Solution
–
part 2/2
Sympa
vers. 5.x
Sympa
DATABASE
SOAP
Server
REQUEST
ANSWER
Web interface
: Picolibre
PhpGroupWare
-
SVN
-
Sympa
-
Twiki
…
SOAP
Client
11
Outline
Introduction
Main issues
Step by step
Problem analysis
Solution
Progress
Technical problems
Taking things further
Conclusion
12
Step by step
-
Progress
1.
Configuration
2.
Testing the SOAP server
3.
Building a generic function
4.
Search for functions to add/modify in
Picolibre
5.
Integration of the SOAP version in the
project
6.
Final integration tests
7.
Documentation
13
Step by step
–
Progress
–
Part 1/7
Configuration
Sympa update: Version 4.X to 5.3a.10
SOAP server startup in Sympa
SOAP client (“NuSOAP”) update in Picolibre
File : /etc/httpd.conf
FastCgiServer /home/sympa/bin/sympa_soap_server.fcgi
-
processes 1
ScriptAlias /sympasoap /home/sympa/bin/sympa_soap_server.fcgi
<Location /sympasoap>
SetHandler fastcgi
-
script
</Location>
14
Step by step
–
Progress
–
Part 2/7
Testing the SOAP server
Independent
scripts
add
which
info
Sympa
SOAP_server
SOAP:add
SOAP:which
SOAP:info
…
…
15
Picolibre
Sympa_bo
generic
Sympa
SOAP_server
SOAP:createList
SOAP:closeList
SOAP:subscribe
Step by step
–
Progress
–
Part 3/7
Building a generic function
Picolibre
Sympa_bo
createList
closeList
subscribe
Sympa
SOAP_server
SOAP:createList
SOAP:closeList
SOAP:subscribe
Operation1 & param.
Operation2 & param
.
Operation3 & param.
16
Step by step
–
Progress
–
Part 4/7
Search for functions to add/modify in
Picolibre
Subscribe
Addlist
Closelist
And other minor changes concerning the cookie
setting, the creation of objects…
17
function
addlist
($email,$s_title,$list_name){
$commands
= createobject('picolibre_current.write_commands');
$sympa_scripts_path
= 'sympa_scripts';
$sep
= filesystem_separator();
return $commands
-
>append("$sympa_scripts_path$sep".'
sympa_addlist.sh
'."$email $s_title $list_name");
}
Before
Integration of the SOAP version in the
project
Generic_sympa_soap
Modified sympa_bo class:
Correct display
function
addlist
($email,$s_title,$list_name){
$parameters_sent
= array('list'=>"$s_title
-
$list_name",'topics'=>$s_title,'template'=>'discussion_list',
'subject'=>$list_name,'description'=>$list_name);
$ret
= $this
-
>sympa_soap
-
>generic_reception_treatment("
createList
",
$parameters_sent
);
return
$ret
;
}
After
Step by step
–
Progress
–
Part 5/7
18
Step by step
–
Progress
–
Part 6/7
Final integration tests
Create a list
Close a list
Subscribe a user to a list
Verify return information
Verify return errors
…
START
Test:function
Function work?
END
Yes
No
19
Step by step
–
Progress
–
Part 7/7
Documentation
Comment on source codes
Create a joint report
Source codes
available and usable by all
developers
20
Outline
Introduction
Main issues
Step by step
Problem analysis
Solution
Progress
Technical problems
Taking things further
Conclusion
21
Technical problems
Configuration of the computer system to use
Sympa (and SOAP) with Picolibre
Addition of missing functions in Sympa SOAP
Configuration of the single sign
-
on
Function :
add/del/closeList
<operation name="
%Name_of_the_function%
">
<soap:operation soapAction="urn:sympasoap#
%Name_of_the_function%
"/>
<input>
<soap:body use="encoded" namespace="urn:sympasoap" encodingStyle="…"/>
</input>
<output>
<soap:body use="encoded"
namespace="urn:sympasoap" encodingStyle="…"/>
</output>
</operation>
22
Host 1
Taking things further
–
part 1/2
Host
PICOLIBRE
Symp
a
Twiki
…
Host 2
SOAP
server
SYMPA
SOAP
client
PICOLIBR
E
Twiki
…
Internet
/ LAN
Toward distributed applications ?
23
Current
-
Picolibre
Picolibre
class soap for sympa
class for twiki
…
Sympa
Twiki
Possible evolution
-
Picolibre
Picolibre
Generic Soap Class
…
Sympa
Twiki
Taking things further
–
part 2/2
Expand the generic function to all the
applications using SOAP server
24
Conclusion
Asynchronous to synchronous
communication
New:
Acquiring knowledge about SOAP protocol
Learning more about Picolibre platform
Managing the project in a collaborative manner
25
Thank you for your attention
Questions ?
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Σχόλια 0
Συνδεθείτε για να κοινοποιήσετε σχόλιο