2. WSO2 Background
Founded in August 2005 by Leaders in XML and Web
services technologies & standards and open source
Building complete SOA platform, all 100% open
source
Founders/ leading contributors to all key Apache
Web Services/SOA Projects
Provide commercial support, training and services
around the software & solutions
Global corporation with R&D center in Sri Lanka
and offices in US & UK, totalling 60 + employees
3. What is the problem with the existing
PHP Systems?
Financial System
Content Management
System
Social Networking
System
CRM system
4. What is the problem with the existing
PHP SOAP support?
SAP
SOAP 1.1 .NET
No security
No reliability
No WS-I BP
PHP
Website
No MTOM Binary Secure, Reliable, Binary
No WS-Addressing J2EE
Web Services
CICS
Java
5. What is WSF/PHP?
A library that allows users to Create and
Consume SOAP and REST Web Services in
PHP
With full Secure Reliable Interop against
.NET, Java and JEE
Simple PHP-friendly programming model
$client = new WSClient(array(quot;useMTOMquot; => TRUE,
quot;useSOAPquot; => quot;1.2quot;,
quot;useWSAquot; => TRUE,
quot;policyquot; => $wspolicy,
quot;securityTokenquot; => $sec_token));
6. Comparison with other SOAP libraries
Package Written in WSDL Attachment Security Reliability
PHP5 SOAP Ext C Partial No No No
NuSOAP PHP Yes No No No
SCA with PHP(IBM) PHP Yes No No No
WSO2 WSF/PHP C Yes Yes Yes Yes
7. WSF/PHP Features
Stability
Multiple Deployment Models
Linux
Windows
Solaris
Apache
IIS
Tested with Zend Core for stability and functionality
8. WSF/PHP Features (Cont...)
Comprehensive Support for WS-* Standards
WS-Addressing
•Version Submission, 1.0
WS-Security
•Version 1.0, 1.1
•Base security standards mean that messages can be protected using
Encryption, Authentication and Signature
WS-Trust, WS-SecureConversation
•Version 1.0, 1.3
•Advanced security standards allow single-sign on, more efficient
encryption and more secure deployment
WS-Policy and WS-SecurityPolicy
•Enables using industry standard XML to configure security
WS-ReliableMessaging 1.0, 1.1 and WS-RMPolicy
•Enables reliability between PHP and other platforms including
message resending, duplicate detection and persistence
9. WSF/PHP Features (Cont...)
Support for Contract First And Code First
approaches
WSDL 1.1 and WSDL 2.0
SOAP 1.1 and SOAP 1.2
WSDL Generation support using annotated code.
Wide coverage of complex schema constructs.
WSDL2PHP Script to generate client and services for
given WSDL.
11. WSF/PHP Features (Cont...)
Binary Data Capability
Support for Base64, SWA and MTOM
Secure MTOM support
MTOM with reliable support
WSDL Mode API
Quick and easy API to handle binary with MTOM enabled
WSDLs.
Caching
Low Memory footprint for large binary attachments
12. WSF/PHP Features (Cont...)
Comprehensive Support for REST
Full REST support (GET, PUT, DELETE, POST) with custom URI
Mapping
Enables mapping a REST API into PHP easily and naturally
function echoFunction($inMessage) {
$outMessage = new WSMessage($inMessage->str);
return $outMessage;
}
$operations = array(quot;echoStringquot; => quot;echoFunctionquot;);
$restmap = array (quot;echoStringquot;=>array(quot;HTTPMethodquot;=>quot;GETquot;, quot;RESTLocationquot;=> quot;echoStringquot;));
$service = new WSService(array(quot;operationsquot; => $operations, quot;RESTMappingquot;=>$restmap));
$service->reply();
13. WSF/PHP Features (Cont...)
PHP Data Services
Multiple database engine support (with PHP PDO extension)
Nested Query support
Array based API
dbs2php converter tool to convert WSAS Java data service XML
configurations to PHP code
WSDL Generation support
$config = array(quot;dbquot; => quot;mysqlquot;, quot;usernamequot; => quot;rootquot;, quot;passwordquot; => quot;abcquot;, quot;dbnamequot; => quot;dsquot;,
quot;dbhostquot; => quot;localhostquot;);
$inputFormat = array(quot;employeeByNumberquot; => quot;INTquot;);
$outputFormat = array(quot;resultElementquot; => quot;employeesquot;,
quot;rowElementquot; => quot;employeequot;,
quot;elementsquot; => array(quot;last-namequot; => quot;lastNamequot;,
quot;first-namequot; => quot;firstNamequot;,
quot;emailquot; => quot;emailquot;));
$sql = quot;SELECT lastName,firstName,email FROM Employees WHERE employeeNumber=?quot;;
$operations = array(quot;employeesByNumberquot; =>
array(quot;inputFormatquot; => $inputFormat, quot;outputFormatquot; => $outputFormat, quot;sqlquot; => $sql));
$my_data_service = new DataService(array(quot;configquot; => $config, quot;operationsquot; => $operations));
$my_data_service->reply();
14. WSF/PHP Features (Cont...)
Interoperability
With .Net and Java
Messaging
Binary Data (MTOM)
WS-Addressing
WS-Security
WS-Reliable Messaging
15. WSF/PHP 2.0 improvements
Improved Stability
Interoperability
Better WSDL support
WS-SecureConversation support
PKCS support
Replay attack suppression
Support for ratified WS-* specifications
PHP Data Services support
Improved REST API
MTOM Caching
16. Customer Examples
Consuming SaaS from PHP Web applications
E.g.Betting, Gaming sites
Governmental and Standards-based work
Integrating CMS systems (Drupal, Joomla) with
SOA platforms
Consuming existing third party services
Exposing CMS functionality as services
Portal integration with SOA back-ends
Service enabling PHP legacy applications
Securingservice oriented applications that require
end-to-end message level security
19. Summary
A major new release of a popular library
Adds improved WS-* and REST support
Improved stability
Makes it simple to connect PHP to a wider SOA
New capability to expose Data Services makes
creating services more effective than ever
20. Getting Started
Oxygen Tank Articles
PHP Web Services: Getting Started http://wso2.org/library/3032
PHP Web Services: After Getting Started http://wso2.org/library/3056
PHP Web Services: Messaging – SOAP and REST http://wso2.org/library/3261
Writing Simple PHP Test Scripts For PHP Web Services http://wso2.org/library/3579
WSO2 WSF/PHP Interoperability with Microsoft WCF http://wso2.org/library/3125
WSO2 WSF/PHP – PHP Web Services Extension http://wso2.org/library/2570
PHP Web Services with WSDL http://wso2.org/library/3393
Running WSF/PHP on The Uniform Server http://wso2.org/library/3262
Installing WSF/PHP with PHP5 on IIS http://wso2.org/library/3465
How to Setup WSO2 WSF/PHP Build Environment on Windows XP
http://wso2.org/library/tutorials/setup-wso2-wsf-php-build-environment-windows-xp
WSF/PHP Demo Site
http://labs.wso2.org/wsf/php
PHP Web Services Blog
http://phpwebservices.blogspot.com/