Download presentation
Presentation is loading. Please wait.
Published byPercival Carpenter Modified over 9 years ago
1
Research Seminar Robert van Engelen Computer Science & CSIT Florida State University
2
Research, Nov 4, 20022 Restructuring compiler analysis and transformation Compilation techniques for embedded systems Web and Grid services technologies Bioinformatics and life sciences Atmospheric and oceanographic sciences Research Projects
3
Research, Nov 4, 20023 Current Funding Support Improving Symbolic Analysis of Restructuring Compilers DOE Early Career PI Program (Compilers & Algorithms for High-Performance Computing, Networking, and Data Management) Automatic Validation of Code Improving Transformations and Related Applications (with Dr. Whalley) Collaborative Research in Compilers (with Dr. Whalley)
4
Research, Nov 4, 20024 Research Assistants Chris Baker (for MS) collab. with Dr. Gallivan Compiler technology & numerical algorithms Johnnie Birch (for MS & PhD) Compiler analysis techniques Burt Walsh (for PhD) Compiler & embedded systems technology Yixin Shou (for PhD) Compiler technology Open position (for PhD) Web and grid services technologies
5
Research, Nov 4, 20025 Web and Grid Services Web and Grid services are remote applications, e.g. on the Web, that provide various data, document, and compute resources to client applications Web/Grid service technology is a big step forwards in distributed computing on the Internet Bridges platform and language interop gaps
6
Research, Nov 4, 20026 Web/Grid Service Protocols Web/Grid services technologies utilize the SOAP and WSDL protocols SOAP (Simple Object Access Protocol) is a light-weight protocol based on XML as the marshalling format for request and response messages, typically with HTTP WSDL is an XML-based Web/Grid services description language
7
Research, Nov 4, 20027 WSDL 1. A Web Service registers its existence in a registry 2. The Web Service publishes its WSDL in the registry 3. SOAP remote procedure calling by clients developed from this WSDL
8
Research, Nov 4, 20028 gSOAP Web Services SOAP/XML language binding for C & C++ SOAP/XML capabilities build into the C and C++ language Uses compiler technology Based on RPC compiler No need to write any wrapper code Generates SOAP/XML parsing routines (no DOM or SAX parser required)
9
Research, Nov 4, 20029 gSOAP Web Services gSOAP is open source (SourceForge project) (C/C++, Java) Platform independent (now with automake/conf) Integrated TCP/IP, HTTP, DIME, SOAP, and XML stacks Designed for high-performance throughput
10
Research, Nov 4, 200210 gSOAP Features SOAP 1.1 and 1.2 compliant WSDL 1.1 import and export Stand-alone servers (HTTP 1.0 and partially 1.1) Supports keep-alive and chunked transfers CGI, Fast-CGI, Apache_mod, IIS DIME attachments Supports pure C or C/C++ application mix Multi-threaded Web services, MT safe Extensible Plug-ins, callbacks, and user-defined (de)serializers
11
Research, Nov 4, 200211 gSOAP Users in Industry Adobe Systems (eg. GoLive Web site development software) IBM Alphaworks Xerox CoreNetworks Powerllel Siemens Ericsson Globus toolkit (DOE, Argonne National Labs) Harness toolkit (DOE) …
12
Research, Nov 4, 200212 Native C & C++ Application Code to Serve Requests (RPC Parameter Marshalling is Fully Automatic) libgsoap.a gSOAP Runtime Environment (Memory & I/O Management) Web Service Application Implementing a Web Service Application myService.h Specification of Remote Procedures and Parameter Types gSOAP RPC Compiler myService.wsdl soapService.c soapC.c RPC Skeleton Routines and XML Parsers/Generators Publish WSDL
13
Research, Nov 4, 200213 Native C & C++ Application Codes with SOAP RPC Calls (RPC Calls and Parameter Marshalling are Automatic) Client Application libgsoap.a gSOAP Runtime Environment (Memory & I/O Management) Implementing a Client Application someService.wsdl gSOAP WSDL importer WSDL Publication soapClient.c soapC.c RPC Stub Routines and XML Parsers/Generators gSOAP RPC Compiler someService.h Specification of Remote Procedures and Parameter Types
14
Research, Nov 4, 200214 SOAP RPC Marshalling struct BG { int val; struct BG *left; struct BG *right; }; 1 2 3 1 2 3 int remoteMethod(struct BG input, struct BG *output);
15
Research, Nov 4, 200215 SOAP RPC Demarshalling 1 23 1 2 3
16
Research, Nov 4, 200216 Application to Life Sciences Determine the “Tree of Life” from sequenced genome data Serialize and deserialize phylogenetic trees in XML Massive parallel computations Cluster of workstations SOAP/XML
17
Research, Nov 4, 200217 Results 1)Interoperability Testing 2)Legacy C Code Web Service Integration 3)Scalability and Performance
18
Research, Nov 4, 200218 Interoperability Testing WhiteMesa.org “interop lab” Suite of test cases designed for real-time interoperability testing Interop with: Apache Axis,.NET, Delphi,…
19
Research, Nov 4, 200219 Legacy C Code Integration: Linear System Solver Service LU decomposition from “Numerical Recipes in C”: ludcmp(double **a, int n, int *indx, double *d); ludcmp(double **a, int n, int *indx, 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 */
20
Research, Nov 4, 200220 Linear System Solver Service Linear system solver service (LSSS) code (CGI-based): main() { 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] */ }
21
Research, Nov 4, 200221 Scalability and Performance 1)Scalability and overhead of communication vs. computation LU-based double fp. matrix inversion 2)Performance (send 32bit int matrix) Full SOAP XML-encoded int32 matrix SOAP Base64-encoded int32 matrix CGI-based SOAP Web Service Stand-alone SOAP Web Service Java RMI
22
Research, Nov 4, 200222 Communication Overhead: Matrix Inversion Stand-alone linear system solver service Full double fp. Matrix representation in SOAP XML Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux)
23
Research, Nov 4, 200223 Full XML Versus Base64 int32 Matrix Representations Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux) SOAP XML- encoded 32bit int matrix SOAP Base64- encoded 32bit int matrix
24
Research, Nov 4, 200224 XML vs. Base64 vs. Java RMI with Stand-Alone Service Total time of client request and server response (100BaseT, Dual PIII 550MHz, Red Hat Linux) SOAP XML- encoded 32bit int matrix SOAP Base64- encoded 32bit int matrix Java RMI (1.2.2)
25
Research, Nov 4, 200225 Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.