The first thing you'll want to do is review the following documentation:
Developer Docs:
http://www.salesforce.com/us/developer/docs/apexcode/index.htm
Force.com Apex Code Developer's Guide Version 18.0
http://www.salesforce.com/us/developer/docs/apexcode/salesforce_apex_language_reference.pdf
Visualforce Developer's Guide Version 18.0
http://www.salesforce.com/us/developer/docs/pages/index.htm
Salesforce.com Spring '10 Release Notes
https://na1.salesforce.com/help/doc/en/salesforce_spring10_release_notes.pdf
The Internal Design of Force.com’s Multi-Tenant Architecture
http://www.scribd.com/doc/17343814/The-Internal-Design-of-Forcecoms-MultiTenant-Architecture
There are some real software development lifecycle (SDLC) challenges in manaing and developing applications within Force.com - these three articles provide some excellent summaries of the pros and cons:
Force.com vs .NET
http://blog.pnbconsulting.com.au/index.php/forcecom-vs-net/
http://blog.pnbconsulting.com.au/index.php/force-com-evening-the-score/
Disadvantages of the Force.com platform
http://stackoverflow.com/questions/1664503/disadvantages-of-the-force-com-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
http://www.redmonk.com/jgovernor/2009/02/12/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 Force.com (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
http://www.thesoablog.com/2010/01/twitter-how-not-to-manage-restful.html
Twitter REST error handling
http://www.thesoablog.com/2009/12/twitter-rest-error-handling.html
Mashing up Force.com and Zillow
http://wiki.developerforce.com/index.php/Force.com_Zillow_Mashup
"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 Force.com platform, in this case Salesforce.com. 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)
http://blog.sforce.com/sforce/2009/02/calling-web-services-from-a-trigger-.html
Invoke salesforce.com API via enterprise.wsdl
http://wiki.open-esb.java.net/Wiki.jsp?page=RestSalesForce
HTTP (RESTful) Services Classes
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_restful.htm
Force.com Toolkit for Google Data APIs
http://developer.force.com/codeshare/apex/ProjectPage?id=a0630000002ahp1AAA
"The new Force.com 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 Force.com. The goal of the toolkit is to make Google Data APIs ? starting with Spreadsheets, Documents and Calendar ? first class citizens of the Force.com environment. Specifically, the toolkit exposes these APIs directly within Apex, making it easier to access them natively from Force.com apps and providing tighter integration between the platforms with less developer effort."
Build Force.com Apps that Leverage Google Data APIs
http://wiki.developerforce.com/index.php/Google_Data_API_Toolkit
Apex Web Services and Callouts
http://wiki.developerforce.com/index.php/Apex_Web_Services_and_Callouts
Apparently SalesForce.com doesn't support JSON out of the box...but there are some hacks available:
Calling a REST Web Service (JSON) with Apex
http://techblog.appirio.com/2010/01/calling-rest-web-service-json-with-apex.html
"Using JSON RESTful Web Services with Salesforce.com opens up your org to a number third-party integration opportunities (Google, Yahoo!, Flickr, bespoke, etc.). JSON support isn't baked into the Force.com platform but Ron Hess at Salesforce.com has created a JSON parser which will do the heavy lifting for you."
A REST+JSON facade to Salesforce.com
http://blog.feedly.com/2008/08/19/a-restjson-facade-to-salesforcecom/
Playing Together Nicely: Getting REST and SOAP to Share Each Other's Toys
http://onjava.com/pub/a/onjava/2006/02/15/jython-soap-interface-to-rest.html?page=1
Towards a RESTful Plug and Play Experience in the Web of Things
http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F4597156%2F4597157%2F04597240.pdf%3Farnumber%3D4597240&authDecision=-203
REST-Based Management of Loosely Coupled Services
http://www2009.org/proceedings/pdf/p931.pdf
Standards Supporting RESTful Services
http://www.soamag.com/I35/1209-1.php
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
http://www.omg.org/news/meetings/tc/ca/special-events/ci/Sun.pdf
The Many Flavors of Platform Services for Cloud Computing
http://www.drdobbs.com/windows/220300737;jsessionid=KN4BJJESFYWQ1QE1GHPSKH4ATMY32JVN?pgno=1
A useful blog to check back on from time-to-time: Perspectives on Salesforce.com
http://sfdc.arrowpointe.com/
New Force.com Tool Designs and Deploys Business Processes in the Cloud
http://www.cmswire.com/cms/web-cms/new-forcecom-tool-designs-and-deploys-business-processes-in-the-cloud-006610.php
Many developers have commented on the woeful lack of a debugger in the Force.com development environment, but this free tool might be useful in your debugging efforts:
Force.com Debug Log Parser
http://codebit.wordpress.com/2009/06/04/force-com-debug-log-parser/