integrating web services into pop-c++ objects
DESCRIPTION
INTEGRATING WEB SERVICES INTO POP-C++ OBJECTS. Thanh-Nguyen Ngo Tuan-Anh Nguyen Tran Van Hoai. Outline. Introduction POP-C++ overview Implementation Experiments Conclusion Future works. Introduction. - PowerPoint PPT PresentationTRANSCRIPT
INTEGRATING WEB SERVICES INTO POP-C++ OBJECTS
Thanh-Nguyen NgoTuan-Anh NguyenTran Van Hoai
OutlineIntroductionPOP-C++ overviewImplementationExperimentsConclusionFuture works
2
IntroductionGrid environment is a collection of resources
distributed on different locations, owned by different organizations and managed by different policies
Grid computing is the ability to combine resources powers to compute a large-scale problem
Grid programming languages have been adopted to ease users to develop Grid applications
3
IntroductionGrid programming languages
MPICH-G, MPICH-G2, GATPOP-C++Based on TCP/IP connectionUse their proprietary protocols
4
Have problems when resources on grid are located at different virtual networks or
separated by firewalls
IntroductionPOP-C++
parallel programming system for Gridextend the C++ programming languageparallel objects
5
Provide POP-C++ objects a mechanism to choose suitable protocol and message
encoding to overcome firewall and virtual network issues when communicating
The previous POP-C++ approach
object
Grid middleware Grid resource
FirewallCreate object
Launch
User
XDR/Socket
Deliver to
6
Can not communicate with the remote object when using XDR/socket in the environment having firewall, virtual network
Extended POP-C++ approach
object
Grid middleware Grid resource
FirewallCreate object
Launch
User
HTTP
Deliver to
7
Using HTTP can bypass firewall or virtual network (through proxy server)
8
Communication between POP-C++ objectscombox: determine protocolbuffer: determine encoding
interface
buffer
combox
add
objectcombox
buffer brokeradd
send
clientserver
Add combox HTTP & buffer SOAP
9
Communication between POP-C++ objects
interface
buffer_soap
addobjectbroker
client server
buffersoap factory
combox factory combox_http
buffersoap factory
combox factory
buffer_soap
combox_http
buffer_xdr
combox_socket
add
netw
ork
envi
ronm
ent
bufferxdr factory
Communication between POP-C++ objectsInterface is created on local machine and broker,
object are created on remote machineBroker finds all protocols it supports and creates
corresponding comboxesEach combox asks its buffer factory to create its
default bufferBroker waits to listen all client requests on all
comboxes it has created
10
Communication between POP-C++ objectsInterface determines which protocol is used to
connect to server objectInterface creates combox corresponding to that
protocolCombox asks its buffer factory to create
corresponding bufferInterface uses these combox and buffer to
send/receive requests to/from broker
11
TestingAct as Web Services
Both client and server are implemented in POP-C++Client is implemented in POP-C++ and server is
implemented in JavaClient is implemented in Java and server is
implemented in POP-C++
12
The extended POP-C++ is not only able to communicate to itself but also communicate
to other Web Services systems
ExperimentsUse 2 machines running openSUSE 10.3 connected
to a LAN via fast ethernet (100Mb/s)The first machine: Intel(R) Core(TM)2 CPUs E8500
@ 3.16Gz and 1GB RAMThe second machine: Intel(R) Pentium(R) 4 CPU
2.80GHz and 512MB RAMIn the experiments, we analyze invocation time of
calling function adding an array of integer numbers by using SOCKET+XDR, HTTP+XDR and HTTP+SOAP
13
14
1 2 4 8 16 32 64 128
256
512
1024
2048
4096
8192
0%10%20%30%40%50%60%70%80%90%
100%
Detailed time in using SOCKET/XDR
send dataencode/decode
Array size (INTEGER)
Tim
e (%
)
Sending data time will dominate encoding/decoding time when data is large enough
15
Sending data time will dominate encoding/decoding time and sending HTTP header time when data is large enough
1 2 4 8 16 32 64 128
256
51210
2420
4840
9681
920%
10%20%30%40%50%60%70%80%90%
100%
Detailed time in using HTTP/XDR
send datasend HTTP headerencode/decode
Array size (INTEGER)
Tim
e (%
)
16
Most of time is used for encoding and decoding when message size is large
1 2 4 8 16 32 64 128
256
51210
2420
4840
9681
920%
10%20%30%40%50%60%70%80%90%
100%
Detailed time in using HTTP/SOAP
send datasend HTTP headerencode/decode
Array size (INTEGER)
Tim
e (%
)
17
HTTP/XDR vs. SOCKET/XDRHTTP/SOAP vs. others
1 2 4 8 16 32 64 128
256
512
1024
2048
4095
.999
9999
9999
8191
.999
9999
9999
06
1218
Invocation time
SOCKET/XDRHTTP/XDRHTTP/SOAP
Array size (INTEGER)
log(
Invo
catio
n tim
e(µs
))
ConclusionExtend POP-C++ object to integrate protocol HTTP
and encoding SOAP into itBe able to communicate to Web Services systems
written by other languagesBe able to work in environments having firewall and
using proxy serverDo some experiments to see the performance of the
extended POP-C++ system
18
Future worksImprove performance when using HTTP+SOAPEnhance POP-C++ objects to support Grid Services
19
Questions???
20
Thank you!!!
21