Title: Research Seminar
1Research Seminar
- Robert van Engelen
- Computer Science CSIT
- Florida State University
2Research Projects
- Restructuring compiler analysis and
transformation - Compilation techniques for embedded systems
- Web and Grid services technologies
- Bioinformatics and life sciences
- Atmospheric and oceanographic sciences
SUIF
Trimaran
3Current Funding Support
DOE Early Career PI Program (Compilers
Algorithms for High-Performance Computing,
Networking, and Data Management)
Improving Symbolic Analysis of Restructuring
Compilers
Collaborative Research in Compilers (with Dr.
Whalley)
Automatic Validation of Code ImprovingTransformat
ions and Related Applications (with Dr. Whalley)
4Research 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
5Web 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
6Web/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
7WSDL
- A Web Service registers its existence in a
registry - The Web Service publishes its WSDL in the
registry - SOAP remote procedure calling by clients
developed from this WSDL
8gSOAP 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)
9gSOAP 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
10gSOAP 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
11gSOAP 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)
12Implementing a Web Service Application
Publish WSDL
13Implementing a Client Application
WSDL Publication
14SOAP RPC Marshalling
int remoteMethod(struct BG input, struct BG
output)
struct BG int val struct BG left struct
BG right
ltBGgt ltvalgt1lt/valgt ltleftgt ltvalgt2lt/valgt
ltright hrefX/gt lt/leftgt ltright
hrefX/gtlt/BGgt ltid idXgt ltvalgt3lt/valgt
ltright hrefX/gtlt/idgt
15SOAP RPC Demarshalling
ltBGgt
ltvalgt1lt/valgt
ltleftgt
ltvalgt2lt/valgt
ltright hrefX/gt
lt/leftgt
ltright hrefX/gt
lt/BGgt
ltid idXgt
ltvalgt3lt/valgt
ltright hrefX/gt
lt/idgt
16Application 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
17Results
- Interoperability Testing
- Legacy C Code Web Service Integration
- Scalability and Performance
18Interoperability Testing
- WhiteMesa.org interop lab
- Suite of test cases designed for real-time
interoperability testing - Interop with Apache Axis, .NET, Delphi,
19Legacy C Code Integration Linear System Solver
Service
- LU decomposition from Numerical Recipes in C
- 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 declarationsstruct 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
/
20Linear System Solver Service
- Linear system solver service (LSSS) code
(CGI-based)main() soap_serve(soap_new()) /
process request /
Example LSSS client application codemain()
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.__ptri-gt__ptrj
/ index ai,j /
21Scalability and Performance
- Scalability and overhead of communication vs.
computation - LU-based double fp. matrix inversion
- 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
22Communication 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)
23Full 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
24XML 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)
25Questions?