1 / 19

gSOAP

gSOAP. Mikkel Rosendahl. Agenda. gSOAP teori gSOAP Øvelse. gSOAP. Hvad er gSOAP Hvad bruges gSOAP til Hvordan bruges gSOAP. Hvad er gSOAP ?. Definition: gSOAP er et open source SOAP/XML udviklingstoolkit til C og C ++. Baggrund:

pomona
Download Presentation

gSOAP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. gSOAP Mikkel Rosendahl

  2. Agenda • gSOAP teori • gSOAP Øvelse

  3. gSOAP • Hvad er gSOAP • Hvad bruges gSOAP til • Hvordan bruges gSOAP

  4. Hvad er gSOAP? • Definition: gSOAPer et opensource SOAP/XML udviklingstoolkit til C og C++. • Baggrund: • gSOAP (SOAP generators) blev introduceret i 2001 af Robert van Engelen fra Florida State University. • gSOAP blev lavet ud fra en tanke om compiler-baseret kodegenerering modsat brug af f.eks. reflection. • I starten understøttede gSOAP kun SOAP RPC, men understøtter nu bl.a. SOAP1.1/1.2.

  5. Hvad er gSOAP? • Egenskaber • Platform uafhængig Understøtter bl.a. Windows, Linux og Mac OS X samt mindre OS som VxWorks, WinCE og Symbian. • Small footprint Klient applikationer kan have et runtimememoryfootprint på ned til 150K.

  6. Hvad er gSOAP? • Egenskaber: • Native XML C/C++ data binding Kan automatisk serialisere: • pointerbaserede data strukturer • Unions • Enums • Klassenedarvning • Memory management I gSOAP nedlægges objekter, som styres af proxy’en, automatisk når proxy objektet nedlægges. På serversiden nedlægges objekter ved explicitte kald til soap_destroy() og soap_end(). virtual ~HelloGsoap() { if (soap) { soap_destroy(soap); soap_end(soap); soap_free(soap); } };

  7. Hvad er gSOAP? • Egenskaber: • Hastighed SOAP service invokeringround-trip < 1 ms. Til sammenligning ligger hastigheden for Apache Axis 1.2 på 2,5-7 ms(Jun et al., Speed-up SOAP Processing by Data MappingTemplate)

  8. Hvad er gSOAP? • Understøttede SOAP specifikationer : • WS-I Basic Profile 1.0a • SOAP 1.1 • SOAP 1.2 • WSDL 1.1 • Enkelte WS-*

  9. Hvad bruges gSOAP til? • Web services til embeddede systemer. • Web services til legacycode • Generering af: • Stubbe / skeletons • Web service specifikationer • WSDL

  10. Hvordan bruges gSOAP? • Værktøjerne: Der er 2 command-line værktøjer, wsdl2h og soapcpp2, til generering af proxy kode mm. • wsdl2h wsdl2h er en WSDL parser, som bruges til at generere en web service specifikation, i form af en headerfil, ud fra en WSDL.

  11. Hvordan bruges gSOAP? • Værktøjerne: • wsdl2h

  12. Hvordan bruges gSOAP? • Værktøjerne: • wsdl2h Options forklaret: • I: sti til filer, der skal inkluderes – i dette eksempel typemap.dat • f: genererer C++ kode. • o: output fil for web service specifikationen. Dette er blot et uddrag af de options der findes for wsdl2h

  13. Hvordan bruges gSOAP? • Værktøjerne: • wsdl2h • Den genererede headerfilindeholder: • parametertyper. • definitioner for service funktioner. • For at web service specifikationen kan benyttes, skal den kompileres med soapcpp2 compileren.

  14. Hvordan bruges gSOAP? • Værktøjerne: • soapcpp2 soapcpp2 er en stub / skeletoncompiler, som genererer filer ud fra en web service specifikation, som den der dannes af wsdl2h parseren.

  15. Hvordan bruges gSOAP? • Værktøjerne: • soapcpp2 Options forklaret • C: genererer kun client-side kode. • L: ingen .lib fil. Denne bruges til at lave et statisk library. • I: sti til filer der skal inkluderes, her stdvector.h • w: ingen WSDL generering. • x: ingen sample XML message generering.

  16. Hvordan bruges gSOAP? • Værktøjerne: • soapcpp2 Følgende filer dannes: • Alle filerne skal inkluderes i klient projektet. Uddrag af filerne: • soapHelloGsoapProxy.h – indeholder selve proxyen. • soapC.cpp - indeholder serializers og deserializers. • HelloGsoap.nsmap – indeholder mapningen mellem namespaceprefixes og XML namespaces.

  17. Hvordan bruges gSOAP? • Værktøjerne: • Opskrift: • Generér en header med wsdl2h • Compileheaderen med soapcpp2 • Opret en C++ win32 konsol applikation med standard indstillingerne. • Inkludér filerne soapcpp2 genererede i projektet. • Inkludér stdsoap2.h og stdsoap2.cpp fra <path to gsoap>\gsoap-2.7\gsoap\. Disse filer indeholder runtimelibrary med XML parser. • Sæt precompiledheaders for soapC.cpp, soapClient.cpp og stdsoap2.cpp til ”Not usingprecompiledheaders” • #include-r .nsmap, proxy.h og stdsoap2.h filerne i stdafx.h. • Skrive klient kode.

  18. Hvordan bruges gSOAP? • Brug af den autogenererede kode Indpakning Responskode

  19. Øvelse • Start med at hente toolkittet på http://www.cs.fsu.edu/~engelen/soap.html . • Lav en simpel Hello World ASP.NET web service. Sørg for at denne har mindst to metoder: En der tager imod simple typer, og en der tager imod komplekse typer. • Benyt gSOAP til at generere client-side kode ud fra web servicens WSDL. Til dette benyttes wsdl2h.exe og soapcpp2.exe • Lav en klient applikation, der benytter den autogenererede proxy til at kalde web servicen.

More Related