1 / 14

Webszolgáltatások PHP-ben

Webszolgáltatások PHP-ben. Dr. Alvarez Gil Rafael főiskolai docens Kecskeméti Főiskola, GAMF Kar, Informatika Tanszék alvarez.rafael@gamf.kefo.hu. Webszolgáltatások. 1999: a Hewlett-Packard bevezette a köztudatba a webszolgáltatások elvét (e-Speak)

lynne
Télécharger la présentation

Webszolgáltatások PHP-ben

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. Webszolgáltatások PHP-ben Dr. Alvarez Gil Rafael főiskolai docens Kecskeméti Főiskola, GAMF Kar, Informatika Tanszék alvarez.rafael@gamf.kefo.hu

  2. Webszolgáltatások • 1999: a Hewlett-Packard bevezette a köztudatba a webszolgáltatások elvét (e-Speak) • 2000: a Microsoft bevezeti a webszolgáltatás (web service) kifejezést a kezdeti .NET és internetes szoftverfejlesztés kulcselemeként • Ma: szinte minden vezető szoftvergyártó árulja a webszolgáltatásokhoz kapcsolódó szoftvereszközöket és alkalmazásokat

  3. Webszolgáltatások • Alapkoncepciója az RPC (Remote Procedure Call) • Új elem a platformfüggetlen szabványok használata, XML-re épülő technológia • Megvalósítási elemek elrejtése a kliens alkalmazás elől • Működésük az internetre jellemző heterogén környezetben is garantált

  4. Emberközpontú Web HTML oldallal HTTP válasz HTTP GET Webszerver Webböngésző

  5. Alkalmazásközpontú Web Webszolgáltatások alkalmazásával XML válasz Alkalmazás XML kérés Webszerver Más alkalmazások

  6. Üzleti alkalmazások Webszolgáltatások (üzleti logika) Webalkalmazások Más (pl. Windows) alkalmazás Adatbázisok

  7. Webszolgáltatások protokolljai • Szolgáltatás-átvitel: HTTP • XML alapú üzenetkezelés: SOAP (Simple Object Acces Protocoll) • Szolgáltatás XML alapú leírása: WSDL (Web Services Description Language) • Szolgáltatás felkutatása: UDDI (Universal Description, Discovery and Integration)

  8. Webszolgáltatások PHP-ben A legelterjedtebb könyvtár PHP-re: NuSOAP http://dietrich/ganx4.com/nusoapl PHP osztályokat tartalmaz SOAP szolgáltatások létrehozásához és alkalmazásához. PHP 5-ben megjelent egy kiterjesztés SOAP szerverek és kliensek létrehozására KÍSÉRLETI JELLEGGEL. Ez azt jelenti, hogy minden dokumentált működés, beleértve a függvények nevét, működését vagy bármi más, amit a kiterjesztés kapcsán szerepel megváltozhat egy későbbi PHP kiadásban minden figyelmeztetés nélkül.

  9. Webszolgáltatások PHP-benNuSOAP SOAP szerver <?php //Szolgáltatás, amely adatbázisból ad vissza egy árat function lookup($ISBN){ if ($connect = mysql_connect("localhost", "root", "mysql")); else { return -2; } mysql_query('SET CHARACTER SET latin2',$connect); if (mysql_select_db("books")); else { return -3; } $query = "select price from books where isbn = '".$ISBN."'"; if ($result = mysql_query($query, $connect)); else { return -4; } if(! $row = mysql_fetch_array($result)) return -1; $price = $row['price']; if($price == 0) { return -5; } return $price; }

  10. Webszolgáltatások PHP-benNuSOAP SOAP szerver //SOAP osztályok beillesztése require_once("nusoap.php"); //szerver objektum létrehozása $server = new soap_server(); //A szolgáltatás regisztrálása $server -> register("lookup"); //A válasz, mint SOPAP válasz küldése a HTTP-n $server->service($HTTP_RAW_POST_DATA); ?>

  11. Webszolgáltatások PHP-benNuSOAP SOAP kliens <?php // A SOAP osztályok beillesztése require_once('nusoap.php'); $certificaterequired = false; // Kliens objektum definiálása $client = new soapclient('http://localhost/pelda/book.wsdl', true); // Paramétertömb definiálása az ISBN-számhoz $param = array('isbn'=>'0385503954'); // Hívás $price = $client->call('lookup',$param); if ($price < -1) { print "Hiba: ". $price;} else if ($price == -1) {print "A könyv nem található az adatbázisban.";} else {print "A ". $param['isbn'] ." számú könyv ára: ". $price ."Ft";} unset($client); ?>

  12. Webszolgáltatások PHP-benSzolgáltatás leírása (WSDL) <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://localhost/pelda/" targetNamespace="http://localhost/pelda/"> <types> <xsd:schema targetNamespace="http://localhost/pelda/" xmlns:ns1="http://localhost/pelda/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/> <xsd:complexType name="tesztParams"> <xsd:all> <xsd:element name="string" type="xsd:string"/> </xsd:all> </xsd:complexType> <xsd:element name="tesztParams" type="ns1:tesztParams"/> </xsd:schema> </types>

  13. Webszolgáltatások PHP-benSzolgáltatás leírása (WSDL) <message name="tesztRequest"> <part name="isbn" type="xs:string"/> </message> <message name="tesztResponse"> <part name="return" type="xs:integer"/> </message> <portType name="tesztPort"> <operation name="lookup"> <input name="tesztRequest" message="tns:tesztRequest"/> <output name="tesztResponse" message="tns:tesztResponse"/> </operation> </portType>

  14. Webszolgáltatások PHP-benSzolgáltatás leírása (WSDL) <binding name="tesztBinding" type="tns:tesztPort"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="lookup"> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost/pelda/"/> </input> <output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost/pelda/"/> </output> </operation> </binding> <service name="tesztService"> <port name="tesztPort" binding="tns:tesztBinding"> <soap:address location="http://localhost/pelda/book.php"/> </port> </service> </definitions>

More Related