Date post: | 17-Jan-2016 |
Category: |
Documents |
Upload: | percival-carpenter |
View: | 219 times |
Download: | 0 times |
Research SeminarResearch Seminar
Robert van EngelenRobert van Engelen
Computer Science & CSITComputer Science & CSIT
Florida 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
WSDLWSDL
1.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/Generators
gSOAP RPCCompiler
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 Testing
2)2) Legacy C Code Web Service IntegrationLegacy C Code Web Service Integration
3)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 Service
Linear 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 Performance
1)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?