Diapositive 1

fishnibblersspongyΛογισμικό & κατασκευή λογ/κού

14 Δεκ 2013 (πριν από 3 χρόνια και 10 μήνες)

85 εμφανίσεις

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 ?