Webservices: connecting Joomla! with other programs.
-
Upload
herman-peeren -
Category
Technology
-
view
32.978 -
download
1
description
Transcript of Webservices: connecting Joomla! with other programs.
Webservices
Herman Peeren June 1st 2010
connecting Joomla! with the rest
Webservice:• data-exchange with a webserver• often in XML-format
Alternative: ODBCdirectly calling the database from client-application
“normal”, indirect call, e.g. via webpage or webservice:
direct call to database, ODBC:
now: Webservices
Joomla! as a system on its own
connecting Joomla!
connecting Joomla!
connecting Joomla! to: • desktop applications
(RIAs), Java, Flex, Delphi, VS, Titanium, MS Office, etc.
• other webapplications: as a server or client
• browser: Ajax, Flash
• any other computer program...
Example uses:
• connecting to multiple Joomla!-sites for backup and upgrading. (e.g.: Akeeba Remote)
• using external services (e.g. Google Docs, Amazon S3, etc.)
• bridges with other applications (e.g. MageBridge)
Protocols:
• your own... • a binary protocol like AMF• using some XML or JSON (Ajax)• one way XML: feed (Atom/RSS)
• XML-RPC• SOAP• REST
when we talk about webservices we mostly talk about those 3 ways
}
Remote Procedure Calls (XML-RPC and SOAP)
• call a method on the server• DO something (procedure, verb)
vs REST• get/put/post/delete a resource on the server
• resource (object, noun)
XML-RPC
• define I/O types• phpxmlrpc-library• in Joomla!: as a plugin...• better: use MVC• changed in J! 1.6
Webservice and MVC• model: is the “heart” of application(use same model for webservice)
• controller decides what to do based on the input
• view: renders the output
XML-RPC in Joomla! 1.6
• no plugin anymore• new JController (might use a strategy pattern?)
• controllername.xmlrpc.php• idem: controllername.json.php• index.php?....&protocol=xmlrpc • http://docs.joomla.org/Xml-rpc
SOAP
• evolved from XML-RPC• heavily used in .NET• meta-data: WSDL and SOAP-envellope
• SOAP-header: a.o. for authentication
• WSDL: description in XML-format
SOAP-envellope:
WSDL:
• description of a webservice• automatic code generation!• easy to use in e.g. Delphi, Flex, etc.
sample SOAP-calls and WSDL
importing WSDL in Delphi 2010:
importing WSDL in Flex Builder 3:
SOAP in Joomla!, some possibilities:• JMSOAP and com_connector: J!1.0 (vBulletin-connection)
• VM SOA: SOAP for VirtueMart• other PHP libraries and Frameworks: NuSoap, PearSoap, Zend, PHP5 SOAP module...
• JSOAP coming soon! (based on PHP5-SOAP)
require_once(“nusoap.php”); $server = new soap_server;
REST
• “representational state transfer”• architecture, not a protocol• linking to recourses, not methods• resource = object + URI• stateless communication• uniform interface (CRUD)• using HTTP-headers and methods
REST in Nooku Framework:
• KControllerBread + KRequest works out of the box!
• authentication and http status messa-ges not yet 100% (planned for 0.9)
Joomla! RESTful thoughts:
• www.alltogetherasawhole.org/profiles/blogs/restful-api-for-joomla
Authentication/Authorization
• with XML/RPC credentials are para-meters in the remote procedure call.
• with SOAP credentials are in the SOAP-header.
• with REST the credentials are in HTTP-headers.
SSL or other encrypting
• SSL (https://) can be used to encrypt the credentials (and data)
• or you can define encryption of cre-dentials (and data) yourself: - basic (base64: no real encryption) - digest - WSSE, OAuth, your own variation
Get Joomla! connected
• providing standard, easy to use con-nections is essential for further deve-lopment of Joomla!
• let’s provide XML/RPC, SOAP and REST within the MVC framework in a uniform way (Zend has it all, why not we too?)
let’s connect Joomla!
let’s connect Joomla!
Questions?
Contact info:Herman [email protected]