research seminar
DESCRIPTION
Research Seminar. Robert van Engelen Computer Science & CSIT Florida State University. Research Projects. Restructuring compiler analysis and transformation Compilation techniques for embedded systems Web and Grid services technologies Bioinformatics and life sciences - PowerPoint PPT PresentationTRANSCRIPT
Research SeminarResearch Seminar
Robert van EngelenRobert van Engelen
Computer Science & CSITComputer Science & CSITFlorida State UniversityFlorida State University
Research, Nov 4, 2002Research, Nov 4, 2002 22
Restructuring compiler Restructuring compiler analysis and transformationanalysis and transformation
Compilation techniques for Compilation techniques for embedded systemsembedded systems
Web and Grid services Web and Grid services technologiestechnologies
Bioinformatics and life Bioinformatics and life sciencessciences
Atmospheric and Atmospheric and oceanographic sciencesoceanographic sciences
Research ProjectsResearch Projects
Research, Nov 4, 2002Research, Nov 4, 2002 33
Current Funding SupportCurrent Funding Support
Improving Symbolic Analysisof Restructuring Compilers
DOE Early Career PI Program(Compilers & Algorithms for High-Performance
Computing, Networking, and Data Management)
Automatic Validation of Code ImprovingTransformations and Related Applications
(with Dr. Whalley)
Collaborative Research in Compilers(with Dr. Whalley)
Research, Nov 4, 2002Research, Nov 4, 2002 44
Research AssistantsResearch Assistants Chris BakerChris Baker (for MS) collab. with Dr. Gallivan (for MS) collab. with Dr. Gallivan
Compiler technology & numerical algorithmsCompiler technology & numerical algorithms Johnnie BirchJohnnie Birch (for MS & PhD) (for MS & PhD)
Compiler analysis techniquesCompiler analysis techniques Burt WalshBurt Walsh (for PhD) (for PhD)
Compiler & embedded systems technologyCompiler & embedded systems technology Yixin ShouYixin Shou (for PhD) (for PhD)
Compiler technologyCompiler technology Open position (for PhD)Open position (for PhD)
Web and grid services technologiesWeb and grid services technologies
Research, Nov 4, 2002Research, Nov 4, 2002 55
Web and Grid ServicesWeb and Grid Services Web and Grid servicesWeb and Grid services are remote are remote
applications, e.g. on the Web, that provide applications, e.g. on the Web, that provide various data, document, and compute various data, document, and compute resources to client applicationsresources to client applications
Web/Grid service technology is a big step Web/Grid service technology is a big step forwards in distributed computing on the forwards in distributed computing on the InternetInternet
Bridges platform and Bridges platform and language interop gapslanguage interop gaps
Research, Nov 4, 2002Research, Nov 4, 2002 66
Web/Grid Service ProtocolsWeb/Grid Service Protocols Web/Grid services technologies utilize the Web/Grid services technologies utilize the
SOAP and WSDL protocolsSOAP and WSDL protocols SOAPSOAP (Simple Object Access Protocol) is (Simple Object Access Protocol) is
a light-weight protocol based on XML as a light-weight protocol based on XML as the marshalling format for request and the marshalling format for request and response messages, typically with HTTPresponse messages, typically with HTTP
WSDLWSDL is an XML-based Web/Grid is an XML-based Web/Grid services description languageservices description language
Research, Nov 4, 2002Research, Nov 4, 2002 77
WSDLWSDL1.1. A Web Service A Web Service
registers its registers its existence in a existence in a registryregistry
2.2. The Web Service The Web Service publishes its WSDL publishes its WSDL in the registryin the registry
3.3. SOAP remote SOAP remote procedure calling by procedure calling by clients developed clients developed from this WSDLfrom this WSDL
Research, Nov 4, 2002Research, Nov 4, 2002 88
gSOAP Web ServicesgSOAP Web Services SOAP/XML language binding for C & C++SOAP/XML language binding for C & C++
SOAP/XML capabilities build into the C and SOAP/XML capabilities build into the C and C++ languageC++ language
Uses compiler technologyUses compiler technology Based on RPC compilerBased on RPC compiler No need to write any wrapper codeNo need to write any wrapper code
Generates SOAP/XML parsing routinesGenerates SOAP/XML parsing routines(no DOM or SAX parser required)(no DOM or SAX parser required)
Research, Nov 4, 2002Research, Nov 4, 2002 99
gSOAP Web ServicesgSOAP Web Services gSOAP is open source (SourceForge gSOAP is open source (SourceForge
project) project) (C/C++, Java)(C/C++, Java)
Platform independent Platform independent (now with automake/conf)(now with automake/conf)
Integrated TCP/IP, HTTP, DIME, SOAP, Integrated TCP/IP, HTTP, DIME, SOAP, and XML stacksand XML stacks
Designed for high-performance throughputDesigned for high-performance throughput
Research, Nov 4, 2002Research, Nov 4, 2002 1010
gSOAP FeaturesgSOAP Features SOAP 1.1 and 1.2 compliantSOAP 1.1 and 1.2 compliant WSDL 1.1 import and exportWSDL 1.1 import and export Stand-alone servers (HTTP 1.0 and partially 1.1)Stand-alone servers (HTTP 1.0 and partially 1.1)
Supports keep-alive and chunked transfersSupports keep-alive and chunked transfers CGI, Fast-CGI, Apache_mod, IISCGI, Fast-CGI, Apache_mod, IIS DIME attachmentsDIME attachments Supports pure C or C/C++ application mixSupports pure C or C/C++ application mix Multi-threaded Web services, MT safeMulti-threaded Web services, MT safe ExtensibleExtensible
Plug-ins, callbacks, and user-defined (de)serializersPlug-ins, callbacks, and user-defined (de)serializers
Research, Nov 4, 2002Research, Nov 4, 2002 1111
gSOAP Users in IndustrygSOAP Users in Industry Adobe Systems Adobe Systems (eg. GoLive Web site development software)(eg. GoLive Web site development software)
IBM AlphaworksIBM Alphaworks XeroxXerox CoreNetworksCoreNetworks PowerllelPowerllel SiemensSiemens EricssonEricsson Globus toolkit Globus toolkit (DOE, Argonne National Labs)(DOE, Argonne National Labs)
Harness toolkit Harness toolkit (DOE)(DOE)
……
Research, Nov 4, 2002Research, Nov 4, 2002 1212
Native C & C++ ApplicationCode to Serve Requests
(RPC Parameter Marshalling is Fully Automatic)
libgsoap.agSOAP Runtime Environment(Memory & I/O Management)
Web Service Application
Implementing a Web Service Implementing a Web Service ApplicationApplication
myService.hSpecification of
Remote Proceduresand Parameter Types
gSOAP RPCCompiler
myService.wsdl
soapService.c soapC.cRPC Skeleton Routines and
XML Parsers/Generators
Publish WSDL
Research, Nov 4, 2002Research, Nov 4, 2002 1313
Native C & C++ ApplicationCodes with SOAP RPC Calls(RPC Calls and Parameter
Marshalling are Automatic)
Client Application
libgsoap.agSOAP Runtime Environment(Memory & I/O Management)
Implementing a Client Implementing a Client ApplicationApplication
someService.wsdl
gSOAP WSDLimporter
WSDL Publication
soapClient.c soapC.cRPC Stub Routines and
XML Parsers/GeneratorsgSOAP RPC
Compiler
someService.hSpecification of
Remote Proceduresand Parameter Types
Research, Nov 4, 2002Research, Nov 4, 2002 1414
SOAP RPC MarshallingSOAP RPC Marshalling
struct BG{ int val; struct BG *left; struct BG *right;};
<BG> <val>1</val> <left> <val>2</val> <right href=“#X”/> </left> <right href=“#X”/></BG><id id=“X”> <val>3</val> <right href=“#X”/></id>
1
2
3
int remoteMethod(struct BG input, struct BG *output);
Research, Nov 4, 2002Research, Nov 4, 2002 1515
SOAP RPC DemarshallingSOAP RPC Demarshalling
1
2
3
<BG> <val>1</val> <left> <val>2</val>
</left> <right href=“#X”/></BG><id id=“X”> <val>3</val> <right href=“#X”/></id>
<right href=“#X”/>
Research, Nov 4, 2002Research, Nov 4, 2002 1616
Application to Life SciencesApplication to Life Sciences Determine the “Tree of Life” from Determine the “Tree of Life” from
sequenced genome datasequenced genome data Serialize and deserialize phylogenetic Serialize and deserialize phylogenetic
trees in XMLtrees in XML Massive parallel computationsMassive parallel computations
Cluster of workstationsCluster of workstations
SOAP/XML
Research, Nov 4, 2002Research, Nov 4, 2002 1717
Results Results
1)1) Interoperability TestingInteroperability Testing2)2) Legacy C Code Web Service IntegrationLegacy C Code Web Service Integration3)3) Scalability and PerformanceScalability and Performance
Research, Nov 4, 2002Research, Nov 4, 2002 1818
Interoperability TestingInteroperability Testing
WhiteMesa.org WhiteMesa.org ““interop lab”interop lab”
Suite of test Suite of test cases designed cases designed for real-time for real-time interoperability interoperability testingtesting
Interop with: Interop with: Apache Apache Axis, .NET, Axis, .NET, Delphi,…Delphi,…
String Integer Float Struct String Array
Integer Array
Float Array
Struct Array Void Base64 Date Hex
Binary Decimal Boolean Map Map Array
gSOAP PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS SOAP::Lite PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS FAULT Apache 2.2 PASS PASS PASS PASS FAULT PASS FAULT FAULT PASS PASS PASS PASS PASS PASS PASS PASS Apache Axis PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS FAIL FAULT PASS PASS PASS PASS ASP .NET PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS FAULT PASS PASS N/A N/A Cape Connect PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A
Delphi PASS PASS PASS PASS FAIL PASS PASS FAULT PASS PASS PASS PASS PASS PASS N/A N/A easySOAP++ PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A eSOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS N/A N/A Frontier PASS PASS PASS PASS FAULT FAULT FAULT FAULT PASS PASS FAIL FAULT FAULT FAULT N/A N/A GLUE PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS FAIL PASS PASS PASS N/A N/A MS SOAP 3.0 PASS PASS PASS PASS FAULT PASS FAULT FAULT PASS PASS FAIL PASS PASS PASS N/A N/A
nuSOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS FAULT FAULT OpenLink Virtuoso PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS PASS PASS PASS PASS N/A N/A
PEAR SOAP PASS PASS PASS PASS FAIL PASS PASS FAIL PASS PASS FAULT PASS FAIL PASS FAULT FAULT SOAP4R PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS Spheon jSOAP PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS
Spray PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A SQLData PASS PASS PASS PASS PASS PASS FAULT FAULT PASS PASS PASS PASS PASS PASS N/A N/A WASP Adv. PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A White Mesa PASS PASS PASS PASS FAULT PASS FAULT PASS PASS PASS PASS PASS PASS PASS N/A N/A XMLBus PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS PASS N/A N/A 4S4C 2.0 PASS PASS PASS PASS PASS PASS FAULT PASS PASS PASS FAULT FAULT PASS PASS N/A N/A
Research, Nov 4, 2002Research, Nov 4, 2002 1919
Legacy C Code Integration: Legacy C Code Integration: Linear System Solver ServiceLinear System Solver ServiceLU decomposition from “LU decomposition from “Numerical Recipes in C”Numerical Recipes in C”:: ludcmpludcmp((double **adouble **a, , int nint n, , int *indxint *indx, double *d);, double *d);
Service routine (array size n stored in structs for vectors and matrices)ludcmp /**** ludcmp request ****/( struct mat *a, /* input: matrix */ struct ludcmpResponse /**** ludcmp response ****/ { struct mat *a; /* output: matrix (decomposed) */ struct ivec *indx; /* output: reordering vector */ double *d; /* output: arg for determinant */ } *result );
Struct declarations:struct vec /**** vector ****/{ double *__ptr; /* pointer to array of double */ int __size; }; /* run-time array size */
struct mat /**** matrix ****/{ struct vec *__ptr; /* pointer to array of vectors */ int __size; }; /* run-time array size */
Research, Nov 4, 2002Research, Nov 4, 2002 2020
Linear System Solver ServiceLinear System Solver ServiceLinear system solver service (LSSS) code (CGI-based):Linear system solver service (LSSS) code (CGI-based):
main()main(){ soap_serve(soap_new()); /* process request */{ soap_serve(soap_new()); /* process request */}}
Example LSSS client application code:main(){ struct soap soap; /* runtime environment */ struct mat a; /* input matrix */ struct ludcmpResponse result; /* result output */ … soap_init(&soap); /* init runtime */ if (soap_call_ns__ludcmp(&soap, “URL”, “”, &a, &result)) soap_print_fault(&soap, stderr); … … = result.a.__ptr[i]->__ptr[j]; /* index a[i,j] */}
Research, Nov 4, 2002Research, Nov 4, 2002 2121
Scalability and PerformanceScalability and Performance1)1) Scalability and overhead of Scalability and overhead of
communication vs. computationcommunication vs. computation LU-based double fp. matrix inversionLU-based double fp. matrix inversion
2)2) Performance (send 32bit int matrix)Performance (send 32bit int matrix) Full SOAP XML-encoded int32 matrixFull SOAP XML-encoded int32 matrix SOAP Base64-encoded int32 matrixSOAP Base64-encoded int32 matrix CGI-based SOAP Web ServiceCGI-based SOAP Web Service Stand-alone SOAP Web ServiceStand-alone SOAP Web Service Java RMIJava RMI
Research, Nov 4, 2002Research, Nov 4, 2002 2222
Communication Overhead: Communication Overhead: Matrix InversionMatrix Inversion
Stand-alone linear Stand-alone linear system solver system solver serviceservice
Full double fp. Full double fp. Matrix Matrix representation in representation in SOAP XMLSOAP XML
Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)
Research, Nov 4, 2002Research, Nov 4, 2002 2323
Full XML Versus Base64 Full XML Versus Base64 int32 Matrix Representationsint32 Matrix Representations
Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)
SOAP XML-SOAP XML-encoded 32bit int encoded 32bit int matrixmatrix
SOAP Base64-SOAP Base64-encoded 32bit int encoded 32bit int matrixmatrix
Research, Nov 4, 2002Research, Nov 4, 2002 2424
XML vs. Base64 vs. Java RMI XML vs. Base64 vs. Java RMI with Stand-Alone Servicewith Stand-Alone Service
Total time of client Total time of client request and server request and server response response (100BaseT, Dual (100BaseT, Dual PIII 550MHz, Red PIII 550MHz, Red Hat Linux)Hat Linux)
SOAP XML-SOAP XML-encoded 32bit int encoded 32bit int matrixmatrix
SOAP Base64-SOAP Base64-encoded 32bit int encoded 32bit int matrixmatrix
Java RMI (1.2.2)Java RMI (1.2.2)
Research, Nov 4, 2002Research, Nov 4, 2002 2525
Questions?Questions?