Sunday, June 27, 2010

2010-06-27 Sunday - Cloud. Future. Bright. Buy Shades...

Gartner Says Worldwide Cloud Services Market to Surpass $68 Billion in 2010

2010-06-27 Sunday - SQL Antipatterns - Book Review

I've ordered the new book, SQL Antipatterns, and it should arrive Wednesday, June 30th.

I look forward to updating this blog posting with my book review within the next week.

SQL Antipatterns: Avoiding the Pitfalls of Database Programming, by Bill Karwin

2010-06-27 Sunday - IT Complexity

I met Tim Bray in San Francisco last year, at JavaOne.  I recently came across this thought-provoking blog post he made back in January:
http://www.tbray.org/ongoing/When/201x/2010/01/02/Doing-It-Wrong

2010-06-27 Sunday - REST Resource Links

I've spent some time doing a bit of research this weekend on RESTful architecture patterns, and wanted to share the links that I found interesting...not all of the articles are accurate reflections of valid REST approaches - but I found value in considering their dissenting opinions, and so might you.

If you are looking for a short and succinct article to get clarity on REST - you can do no better than reading Roy Fielding's commentary on the subject here:

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven


Or, if you have the time and inclination...reading his original PhD disseration...

Roy Fielding's Architectural Styles and,the Design of Network-based Software Architectures
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

Rohit Khare's dissertation is also worth reading:
Extending the REpresentational State Transfer (REST) Architectural Style for Decentralized Systems
http://www.ics.uci.edu/~rohit/Khare-Thesis-FINAL.pdf


Proceedings of the First,International Workshop on,RESTful Design, WS‐REST 2010
http://ws-rest.org/files/WSREST2010-Preliminary-Proceedings.pdf


JSR 311: JAX-RS: The JavaTM API for RESTful Web Services
http://www.jcp.org/en/jsr/detail?id=311


InfoQ: A Brief Introduction to REST
http://www.infoq.com/articles/rest-introduction


RESTful Web services: The basics
http://www.ibm.com/developerworks/webservices/library/ws-restful/


Should We Compare? SOAP VS REST
http://blogs.globallogic.com/should-we-compare-soap-vs-rest


Why understanding REST is hard and what we should do about it – systematization, models and terminology for REST
http://izuzak.wordpress.com/2010/04/03/why-understanding-rest-is-hard-and-what-we-should-do-about-it-systematization-models-and-terminology-for-rest/



InfoQ: REST and transactions?
http://www.infoq.com/news/2009/06/rest-ts


http://kesun.wordpress.com/2010/06/05/exploring-restful-web-service-part-1-roy-fieldings-rest-archite/


http://blog.whatfettle.com/2008/10/21/what-i-believe-roy-said/


REST for Java developers, Part 1
http://www.javaworld.com/javaworld/jw-10-2008/jw-10-rest-series-1.html


How [someone] explained REST to a SOAP pro
http://www.infosysblogs.com/microsoft/2009/08/how_i_explained_rest_to_a_soap.html


When to Use RESTful HTTP
http://www.innoq.com/blog/st/2008/01/when_to_use_restful_http.html


Designing SOA in a RESTful way
http://blogs.globallogic.com/designing-soa-in-a-restful-way

"nine-part dialogue with an imaginary eBay Architect,...an accessible discussion of the REST vs. SOA issue"
http://duncan-cragg.org/blog/post/getting-data-rest-dialogues/
http://duncan-cragg.org/blog/post/business-functions-rest-dialogues/


REST Resource Links...
http://gis.net/~amesar/links/rest.html



RETRO: A Consistent and Recoverable RESTful Transaction Model
http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5175785%2F5175786%2F05175822.pdf%3Farnumber%3D5175822&authDecision=-203


Abstract

With REST becoming a popular paradigm for Web services, more and more use cases are applied to it, including some that require transactional guarantees. We propose a RESTful transaction model that satisfies both the constraints of transactions as well as those of the REST architectural style. We provide formal proof of consistency and recoverability in the proposed framework and show the robustness of its properties in the presence of concurrent transactions.


http://java.sun.com/developer/technicalArticles/jersey-part1/index.html 


RESTful Web services with Apache Wink, Part 1: Build an Apache Wink REST service
http://www.ibm.com/developerworks/web/library/wa-apachewink1/index.html?ca=drs-


RESTful Web services with Apache Wink, Part 2: Advanced topics in Apache Wink REST development
http://www.ibm.com/developerworks/web/library/wa-apachewink2/index.html?ca=drs-


SOAP and REST: Choosing formal and informal Web services for,CICS integration
http://www.hostbridge.com/images/uploads/WP_HostBridge_SOAP_and_REST_090303.pdf


How to Secure REST and JSON
http://kscottmorrison.com/2010/01/08/how-to-secure-rest-and-json/


http://jcalcote.wordpress.com/2009/08/06/restful-transactions/


Credit Cards, Transactions, and REST
http://bill.burkecentral.com/2009/09/21/credit-cards-transactions-and-rest/



Fomenting unREST : Is RESTfulness a semantics game ? Why does REST require statelessness ?
http://blog.dhananjaynene.com/2008/11/rest-fomenting-unrest-is-restfulness-a-semantics-game-why-does-rest-require-statelessness/

REST Design Pattern
http://horicky.blogspot.com/2008/04/rest-design-pattern.html


PROPOSAL: Handling Asynchronous Operation Requests
http://kenai.com/projects/suncloudapis/forums/forum/topics/911-PROPOSAL-Handling-Asynchronous-Operation-Requests?

RESTful Transactions
http://www.jboss.org/reststar
http://www.jboss.org/reststar/specifications/transactions.html
(note: this is something that Fielding strongly disagrees with)
http://tech.groups.yahoo.com/group/rest-discuss/message/13266

Yahoo Groups >  REST Discussion Mailing List
http://tech.groups.yahoo.com/group/rest-discuss/messages


ERP/2.50/Developers Guide/Concepts/XML REST Web Services
http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/Concepts/REST_Web_Services


Dan Diephouse (of Mule Source) presentation on REST
http://netzooid.com/presentations/Scalable,%20Reliable,%20and%20Secure%20RESTful%20services.pdf

RESTful Casuistry
http://www.tbray.org/ongoing/When/200x/2009/03/20/Rest-Casuistry


WS-Angst
http://www.tbray.org/ongoing/When/200x/2006/02/22/WS-Flurry

Don Box (on the pragmatic considerations of REST vs. SOAP
http://www.pluralsight-training.net/community/blogs/dbox/archive/2006/02/17/18869.aspx



InfoQ: xTim Bray on Rails, REST, XML, Java, and More (October 11, 2006)
http://www.infoq.com/interviews/tim_bray_rails_and_more

How do you see REST replacing a lot of the functionality that the WS* specs are providing like security transactions, choreography?
"Well, that's a good question. I think that the vast majority of operations on the web right now are GETs, you know, information fetch and a vanishingly small, but important proportion of updates. And to the extent that you can model your system in what I call a web style, where you have a lot of nouns, a small number of verbs, and you clearly distinguish between idempotent, safe operations and things that change the state, you can really go a long way with that pure web style, REST approach. If you really need deeply reliable complex transactions with multi-phase commit and all that stuff, I'm not sure the Internet is a very good channel for doing that. I think you'd really like to do that kind of thing behind the firewall in an enterprise environment. If you're actually going to operate across a heterogeneous large scale network, it would really be much better if you could possibly do things in the web style, which is: "I'm going to send you a package of information with everything that's needed to accomplish this transaction and you're going to come back to me and say if that worked or didn't, which is reliable." Where things start to get weird is where you have to have intermediaries, multiple machines involved in executing some transaction. The WS* stack does have a bunch of proposed, unstable, in-motion drafts for doing reliable transactions and so on across the network that are very highly unproved in practice. At the moment, if I'm actually writing a high volume of transaction processing system, I would probably prefer to do it the old-fashioned way, by talking to Oracle or you know, however you do it. Let's not kid ourselves that the WS* guys are actually offering real solutions in the space of transaction processing, right now, today, it's all theory."



Apache Wink
http://incubator.apache.org/wink/index.html
Apache Wink is a simple yet solid framework for building RESTful Web services. It is comprised of a Server module and a Client module for developing and consuming RESTful Web services.
The Wink Server module is a complete implementation of the JAX-RS v1.0 specification. On top of this implementation, the Wink Server module provides a set of additional features that were designed to facilitate the development of RESTful Web services.
The Wink Client module is a Java based framework that provides functionality for communicating with RESTful Web services. The framework is built on top of the JDK HttpURLConnection and adds essential features that facilitate the development of such client applications.


Microsoft WCF Interoperability
http://msdn.microsoft.com/en-us/netframework/webservicesinterop.aspx


JavaWorld REST articles...
http://www.javaworld.com/search/index.html?cx=014839440456418836424%3Aiiuuq2fuymm&cof=FORID%3A9&ie=UTF-8&q=REST&x=0&y=0&siteurl=www.javaworld.com%2Fjavaworld%2Fjw-10-2008%2Fjw-10-rest-series-1.html#778


WSTF.org
http://www.wstf.org/
The Web Services Test Forum in an open and free community where developers and customers can perform interoperability testing and discuss issues surrounding the application of Web Service-based technologies. Web Services are machine-to-machine communications using HTTP, REST, SOAP or any other internet focused technology.

2010-06-27 Sunday - HTML 5 Resources

I did a bit of researching this morning to answer a colleague's questions about HTML 5 - here are a few interesting links that I collected:

http://www.w3.org/TR/html5-diff/
http://www.w3schools.com/html/default.asp

HTML 5 Reference
A Web Developer's Guide to HTML 5
http://dev.w3.org/html5/html-author/ 
 
http://googlecode.blogspot.com/search/label/html5 
 
http://playground.html5rocks.com/

http://www.html5ftw.com/html5_code_examples/

http://blog.dankantor.com/post/731977640/html5-and-the-write-once-run-anywhere-dream

http://ajaxian.com/archives/extensionfm-a-case-study-on-a-sexy-app-turn-extension

http://dev.opera.com/articles/view/html-5-canvas-the-basics/

http://html5gallery.com/

http://html5demos.com/

http://thenextweb.com/2010/04/03/5-html5-sites/

http://html5tutorial.net/

http://www.whatwg.org/

http://xhtml.com/en/xhtml/reference/

http://xhtml.com/en/future/x-html-5-versus-xhtml-2/

http://css-tricks.com/

http://www.quackit.com/html_5/tags/

http://html5code.com/

http://www.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/

http://www.alistapart.com/articles/get-ready-for-html-5/

http://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/

2007 article....
http://www.alistapart.com/articles/previewofhtml5


  
http://9elements.com/io/projects/html5/canvas/
 
Internet Explorer 9 Preview 3 Has Better HTML5 Support 
http://www.infoq.com/news/2010/06/IE9-Preview-3;jsessionid=38E79C966216E1A2C247D857ACEA6AE8

Saturday, June 12, 2010

2010-06-12 Saturday - Oracle OpenWorld 2010, Oracle Develop, and JavaOne

I've submitted my registration request today to attend the September 19-23 Oracle OpenWorld 2010 (which includes JavaOne and Oracle Develop) as a blogger.

In my role as an Enterprise Architect (specializing in Integration challenges), I am particularly interested in the following tracks during the conference:

  • Middleware for Enterprise Applications
  • Service-Oriented Architecture and Business Process Management
  • Data Integration

In addition to publishing articles to this blog, I will also plan on submitting articles CNET, Linux Magazine, Developer.com, and Dr. Dobbs Journal.


Sunday, June 06, 2010

2010-06-06 Sunday - Cryptography Resources

Some recent design work in the area of securing data-at-rest, and data-in-motion - particularly in relation to the requirements for Payment Card Industry (PCI) [i.e. credit/debit card information, bank account information, etc.] and Personal Information / Highly Confidential Data (i.e. social security number, driver license, passport, etc.) has raised my awareness of some new regulatory and legal compliance challenges (new MA law: Chapter 82 of the Acts of 2007) in designing security into an effective architecture.

State Security Breach Notification Laws

A few resources that may be of interest to others working on similar efforts:

PCI Quick Reference Guide

http://www-03.ibm.com/security/cryptocards/


http://domino.research.ibm.com/comm/research_projects.nsf/pages/security.index.html


http://www-03.ibm.com/security/products/cryptotools.shtml



































































2010-06-12 Update:
I came across this link today (via Slashdot):
Computing with Secrets, but Keeping them Safe
In 2009 Craig Gentry of IBM published a cryptographic proof that was that rare thing: a true breakthrough. He showed that it was possible to add and multiply encrypted data to produce a result that--when decrypted--reveals the result of performing the same operations on the original, unencrypted data. It's like being able to answer a question without knowing what the question is.

Called "fully homomorphic encryption," it has been dubbed the holy grail of cryptography.

2010-06-06 Sunday - Useful MD5 / SHA1 Utility

I have an old command-line utility that I use when I need to compute an MD5 hash for a file (it was written by an ex-NSA employee) - but recently I found myself wanting a more user-friendly tool - and also needed to check an SHA1 hash for a file I downloaded.

This utility seems to fit the need quite nicely:
http://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Copyright

© 2001-2021 International Technology Ventures, Inc., All Rights Reserved.