210 likes | 337 Views
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.
E N D
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 • Grid 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
Introduction • Grid programming languages • MPICH-G, MPICH-G2, GAT • POP-C++ • Based on TCP/IP connection • Use their proprietary protocols • Have problems when resources on grid are located at different virtual networks or separated by firewalls
Introduction • POP-C++ • parallel programming system for Grid • extend the C++ programming language • parallel objects • 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 Can not communicate with the remote object when using XDR/socket in the environment having firewall, virtual network
Extended POP-C++ approach Using HTTP can bypass firewall or virtual network (through proxy server)
Communication between POP-C++ objects • combox: determine protocol • buffer: determine encoding server client broker buffer buffer interface add add • Add combox HTTP & buffer SOAP send combox combox object
Communication between POP-C++ objects client server interface add network environment object add buffer soap factory buffer xdrfactory buffer soap factory combox factory combox factory broker buffer_soap combox_http buffer_soap combox_http combox_socket buffer_xdr
Communication between POP-C++ objects • Interface is created on local machine and broker, object are created on remote machine • Broker finds all protocols it supports and creates corresponding comboxes • Each combox asks its buffer factory to create its default buffer • Broker waits to listen all client requests on all comboxes it has created
Communication between POP-C++ objects • Interface determines which protocol is used to connect to server object • Interface creates comboxcorresponding to that protocol • Combox asks its buffer factory to create corresponding buffer • Interface uses these combox and buffer to send/receive requests to/from broker
Testing • Act as Web Services • Both client and server are implemented in POP-C++ • Client is implemented in POP-C++ and server is implemented in Java • Client is implemented in Java and server is implemented in POP-C++ • The extended POP-C++ is not only able to communicate to itself but also communicate to other Web Services systems
Experiments • Use 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 RAM • The second machine: Intel(R) Pentium(R) 4 CPU 2.80GHz and 512MB RAM • In the experiments, we analyze invocation time of calling function adding an array of integer numbers by using SOCKET+XDR, HTTP+XDR and HTTP+SOAP
Sending data time will dominate encoding/decoding time when data is large enough
Sending data time will dominate encoding/decoding time and sending HTTP header time when data is large enough
Most of time is used for encoding and decoding when message size is large
HTTP/XDR vs. SOCKET/XDR • HTTP/SOAP vs. others
Conclusion • Extend POP-C++ object to integrate protocol HTTP and encoding SOAP into it • Be able to communicate to Web Services systems written by other languages • Be able to work in environments having firewall and using proxy server • Do some experiments to see the performance of the extended POP-C++ system
Future works • Improve performance when using HTTP+SOAP • Enhance POP-C++ objects to support Grid Services