25
Research Seminar Research Seminar Robert van Engelen Robert van Engelen Computer Science & Computer Science & CSIT CSIT Florida State Florida State University University

Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

Embed Size (px)

Citation preview

Page 1: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

Research SeminarResearch Seminar

Robert van EngelenRobert van Engelen

Computer Science & CSITComputer Science & CSIT

Florida State UniversityFlorida State University

Page 2: Research Seminar Robert van Engelen Computer Science & CSIT Florida 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

Page 3: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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)

Page 4: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 5: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 6: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 7: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 8: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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)

Page 9: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 10: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 11: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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)

……

Page 12: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 13: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 14: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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);

Page 15: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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”/>

Page 16: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 17: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 18: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 19: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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 */

Page 20: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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] */}

Page 21: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 22: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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)

Page 23: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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

Page 24: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

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)

Page 25: Research Seminar Robert van Engelen Computer Science & CSIT Florida State University

Research, Nov 4, 2002Research, Nov 4, 2002 2525

Questions?Questions?