Saturday, February 27, 2010

2010-02-27 Saturday - SOA Integration

I'm doing some research this weekend on integration strategies related to and an enterprise SOA.

The first thing you'll want to do is review the following documentation:

Developer Docs: Apex Code Developer's Guide Version 18.0

Visualforce Developer's Guide Version 18.0 Spring '10 Release Notes

The Internal Design of’s Multi-Tenant Architecture

There are some real software development lifecycle (SDLC) challenges in manaing and developing applications within - these three articles provide some excellent summaries of the pros and cons: vs .NET

Disadvantages of the platform

James Governor offers some interesting commentary that it worth keeping in mind when approaching any integration problem...especially when it comes to the design of a SOA:
The REST of The Cloud
"While there is a place for Big Architecture in IT, it shouldn’t be a necessity. You wouldn’t use a combine harvester to mow a lawn. You wouldn’t use a space shuttle to get to the shops. You wouldn’t build an airport to land a helicopter. But as an industry we are awesome at complexifying things."

I'm of the opinion that RESTful services are probably the better strategy for integrating with (due to some significant gaps in their compliance with the full WSDL and XSD specifications) - but one shouldn't loose sight of some of challenges in adopting a RESTful strategy:

Twitter - how not to manage RESTful services

Twitter REST error handling

Mashing up and Zillow
"This articles shows how to create such a mashup. We implement an interface to the Zillow REST-based web services API, providing all the code. We then build on that code by creating a Visualforce page that integrates the interface with an application on the platform, in this case The techniques used in this article are applicable to other REST based web services."

Calling Web Services from a Trigger (and an update to Zillow mashup)

Invoke API via enterprise.wsdl

HTTP (RESTful) Services Classes Toolkit for Google Data APIs
"The new Toolkit for Google Data APIs provides a free and open-source set of tools and services that developers can use to take advantage of Google Data APIs from within The goal of the toolkit is to make Google Data APIs ? starting with Spreadsheets, Documents and Calendar ? first class citizens of the environment. Specifically, the toolkit exposes these APIs directly within Apex, making it easier to access them natively from apps and providing tighter integration between the platforms with less developer effort."

Build Apps that Leverage Google Data APIs

Apex Web Services and Callouts

Apparently doesn't support JSON out of the box...but there are some hacks available:
Calling a REST Web Service (JSON) with Apex

"Using JSON RESTful Web Services with opens up your org to a number third-party integration opportunities (Google, Yahoo!, Flickr, bespoke, etc.). JSON support isn't baked into the platform but Ron Hess at has created a JSON parser which will do the heavy lifting for you."

A REST+JSON facade to

Playing Together Nicely: Getting REST and SOAP to Share Each Other's Toys

Towards a RESTful Plug and Play Experience in the Web of Things

REST-Based Management of Loosely Coupled Services

Standards Supporting RESTful Services

I also thought it interesting to review Sun's Cloud API - since it uses a RESTful approach too:
Sun Cloud API - A RESTful Open API for Cloud Computing

The Many Flavors of Platform Services for Cloud Computing;jsessionid=KN4BJJESFYWQ1QE1GHPSKH4ATMY32JVN?pgno=1

A useful blog to check back on from time-to-time: Perspectives on

New Tool Designs and Deploys Business Processes in the Cloud

Many developers have commented on the woeful lack of a debugger in the development environment, but this free tool might be useful in your debugging efforts: Debug Log Parser

Saturday, February 13, 2010

2010-02-13 Saturday - Sharepoint Blogging

I recently recommended to a client's project management office that they consider leveraging the blogging feature that is available in Sharepoint - to help communicate the progress of team members (and also as a way of capturing the tribal knowledge that so often simply walks out the door when the consultants leave at the end of a project).

Some of the team members are using the Sharepoint wiki feature - but that is generally more useful for publishing the "official" knowledge of the team. Blogging allows team members to maintain their own journal of research, avenues tried, options considered, and results of their trial-and-error.

I found an interesting project on the Codeplex site that provides Enhanced Blogging capabilities for Sharepoint's base feature:

Codeplex - Sharepoint 2007 Enhanced Blogging module

There's also a demo of the technology here:

2010-02-13 Saturday - PHP, WSDL, SOAP, and Web Services

This last week I spent some time researching the latest developments (and some of the outstanding issues that are involved) in integrating PHP with WSDL and SOAP Web Services.

Here are some of the resources that I found interesting or useful:

Programmer's Reference Guide - Zend_Soap

Zend Bug Tracker

Fixed Bug: Zend_Soap_AutoDiscover does not generate interoperable document-literal WSDL

Fixed Bug: ArrayOfTypeSequence strategy doesn't support complex types

Open Bug: Zend Soap Wsdl Strategy ArrayOfComplexType fails to generate JAX importable descriptions

Open Bug: Zend_Soap_Server should facilitate the use of document-literal-wrapped WSDL

Open Bug: SoapClient is unable to handle

Open Bug: SoapServer calls wrong function, although "SOAP action" header is correct

Open Bug: WSDL does not support soap:header tags

Open Bug: SOAP: Implement Document/Literal with wrapped convention

PHP SOAP Extension

PHP SOAP Extension

PHP, SOAP and operation signatures

PHP:SOAP manual


Soap, XmlRpc and Rest with the Zend Framework

Why does [PHP ext/soap] leave me feeling so dirty?

  • "ext/soap has no support for retrieving Soap Headers. You’re stuck with one of two hacks. You can either pass an object through from the client that maps to a method call on the server — which is less than helpful when using headers for authentication — or parse the XML from HTTP_RAW_POST_DATA manually in your SOAP request."

  • "ext/soap’s fault support is buggy and inconsistent. Defining custom Soap Faults in an intelligent way means hacking the response envelope."

WS-*/REST Web Services with,WSO2 WSF/PHP

WSO2 Web Services Framework for PHP (WSO2 WSF/PHP)

PHP SOAP Extension

PHP And Silverlight - DevDays session

2004-08-24 - Basic Profile Version 1.1
2006-04-10 - Basic Profile Version 1.1

PHP SOAP server and .Net client issues

Zend Server Community Edition

Zend FrameWork Cookbook

Which style of WSDL should [You] use?

($) Gartner Report: PHP: Past, Present and Future

Zend Core for IBM technical roadmap

2010-02-13 Saturday - Perl

Tonight I've installed the latest release of Perl.

I also discovered a plugin for Eclipse:
EPIC - Eclipse Perl Integration

One of the best books on Perl programming is Ellie Quigley's "Perl by Example"