PHP5 – Generant WSDL amb Zend Studio 5.1
Al programar un webservice amb el PHP5 és més que trivial tal com podem llegir a la documentació sobre SOAP (local) del propi PHP. El problema ve quan volent aprofitar la simplicitat dels serveis SOAP toca programar a mà el WSDL. O sigui, agafa i posat a definir la interficie en XML de la/es classe/s que vols exportar a través del webservice, o sigui, una missión imposible.
La meva sorpresa ha estat veure que després d’adpotar el Zend Studio com a IDE de programació del meu codi PHP he vist que disposava d’un assistent ben senzill d’usar per tal de generar automàticament aquest fitxer WSDL. La cosa és ben senzilla imaginem que usem el codi de l’exemple de la web de Zend, com comentava abans.
El servidor SOAP:
<?php class QuoteService { private $quotes = array("ibm" => 98.42); function getQuote($symbol) { if (isset($this->quotes[$symbol])) { return $this->quotes[$symbol]; } else { throw new SoapFault("Server","Unknown Symbol '$symbol'."); } } } $server = new SoapServer("server2.wsdl"); $server->setClass("QuoteService"); $server->handle(); ?>
El client, encara més simple que el servidor:
<?php $client = new SoapClient("server2.wsdl"); print($client->getQuote("ibm")); ?>
Ara que ja tenim el codi en el nostre Zend, només cal que anem a:

Cal seguir l’assistent que no és massa difícil, aquí en teniu els passos capturats per l’exemple del que parlem:


Podeu veure com s’exporten automàticament les classes dels arxius que seleccioneu, cal que poseu al costat de cada classe exportada la URL a través de la qual s’accedeix al servei:

Al final obtenim el fitxer WSDL, en el nostre cas aquest:
<?xml version='1.0' encoding='UTF-8'?> <!-- WSDL file generated by Zend Studio. --> <definitions name="server2" targetNamespace="urn:server2" xmlns:typens="urn:server2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="getQuote"> <part name="symbol"/> </message> <message name="getQuoteResponse"> <part name="getQuoteReturn"/> </message> <portType name="QuoteServicePortType"> <operation name="getQuote"> <input message="typens:getQuote"/> <output message="typens:getQuoteResponse"/> </operation> </portType> <binding name="QuoteServiceBinding" type="typens:QuoteServicePortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getQuote"> <soap:operation soapAction="urn:QuoteServiceAction"/> <input> <soap:body namespace="urn:server2" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body namespace="urn:server2" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="server2Service"> <port name="QuoteServicePort" binding="typens:QuoteServiceBinding"> <soap:address location="http://oriol.joor.net/soap/server2.php"/> </port> </service> </definitions>
Si sou observadors notareu que aquest fitxer és lleugerament diferent al de la documentació que mostra Zend. Però jo l’he provat i funciona perfectament així doncs no m’hi trencaré el cap en saber a què es deuen aquests petits canvis al implmentar aquest format XML.
PC/104 – la interficie misteriosa
Quan fa uns anys em vaig començar a posar amb el tema del embedded vaig començar a descobrir aquest interficie tan desconeguda quan vens del món del PC. De fet, l’ensurt només és al principi després descobreixes que només és un connector que ens permet tenir unes plaques d’extenció en espais molt reduits i de forma que la connexió sigui ben segura per entorns ostils. A nivell lògic és ben senzill, perquè les senyals que transporten no deixen de ser ISA o PCI. Segons algunes companyies el mercat d’aquesta interficie ha de creixer un 45% en els propers 4 anys.
L’estàndard en qüestió és de l’any 1991, i el va definir el PC/104 Consortium. Els estàndards definits per aquest consorci són PC/104, PC/104+, PC-104, EBX i EPIC. El PC/104 defineix un slot de 104-pin que equival internament a la lògica de funcionament ISA. El PC/104+ incorpora compatibilitat amb el PC/104 i afegeix compatibilitat lògica amb el bus PCI a través de 120 pins totals. El PC-104 només és compatible PCI i té 120 pins. Finalment tan el EBX com el EPIC, defineixen com connectar una placa SBC a un backplane o xassís.

Les funcions de les targetes PC/104 són totes les que us pogueu imaginar i més. Des de les típiques que podem trobar en un PC: targeta de so, modem, targeta de xarxa, wifi, etc. Fins a d’altres targetes més pròpies del món industrial o de dispostius típicament enquestats. Per exemple, targetes GPIO, mini bateries, NVRAM, etc.
…i 1000!!!
Doncs després de més de 5 anys escribint al meu blog, ús informo que aquest és el post 1.000, per fi! hi ha molta gent que amb menys d’1 any de blog ja n’ha escrit més que jo de posts. Però bé suposo que el merit d’aquest blog no és el número d’articles sinó el temps que fa que els estic escribint 🙂
Aprofitant aquest motiu de celebració, també us informo que estreno verisó del blogcms, que no heu notat res, ja ho sé… hi hi hi! només he actualitzat el motor del sistema. A més també us informo que ara esta corrent amb un PHP 5.1.2 i no amb un PHP 4 com fins ara. Tinc intenció d’aprofundí molt més amb la programació orientada a objectes en PHP. Ja anireu tenint notícies del tema.
LIPS – Linux Phone Standard Forum
The mission
The Linux Phone Standards Forum (LiPS) will accelerate the adoption of Linux® in fixed, mobile and converged telephony devices by standardising Linux®-based services and APIs that directly influence the development, deployment and interoperability of applications and end user services.
What will LiPS do?
LiPS has been created to bring together key players in the industry to address these challenges. At a general level, the forum will work to foster dialogue and collaboration around Linux telephony for the benefit of all actors. However, the primary focus of LiPS will be to define standards for the aspects of Linux that directly enable the deployment, development and interoperability of applications and end user services.
I això d’on ve?
Doncs aquesta gent eren els nostre veins del davant, al 3GSM, fa dies que tenia la URL apuntada per donar-hi un cop d’ull aprofundir en el que fan i realment jo diria que els ‘copy/paste’, que us he posat de la seva web ho expliquen força bé. Realment una referència a no perdre de vista.
VIA Epia EN – nova generació de plaques base i processadors
A mitjans de Març VIA va anunciar la nova generació de plaques mini-ITX, si fins ara ja eren un producte amb unes prestacions impressionants i una mida encara més espectacular. No us perdeu el que prometen ser les noves característiques d’aquestes plaques base. Com sempre amb els seus processadors C7, però ara amb velocitats que arribaràn fins a 2GHz i només amb 20W de consum. A més el FSB de 800MHz. Com podeu veure no tenen res a envenjar a les plaques base de mida convencional, sinó mireu aquest petit resum de característiques:
- ATX power
- DDRII 400/533 memory socket
- UDMA 66/100/133 connectors
- SATA II, RAID 1 and 0
- CN700 Northbridge
- VT8237R+ Southbridge
- PCI connector
- LVDS/DVI modules available
- 6-channel audio
- Switchable (jumpers) S/PDIF / S-Video port
- PS-2 connectors
- USB 2.0
- Gigabit Ethernet

Si encara us preocupa el rendiment després de tot això, a linuxdevices hi ha un article, que fa una comparativa entre aquestes noves plaques i els pentium M. Realment podem veure que cada dia és una alternativa més interessant a tenir en compte a l’hora d’enquestar equips en sistemes petits.